
a {
    text-decoration: none;
}

.tableRowLink {
    cursor: pointer;
    font-weight: 600;
}

.tableRowLink:hover {
    text-decoration: underline;
}

.action-placeholder {
    cursor: default;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 32px;
    vertical-align: middle;
    text-align: center;
    user-select: none;
}

.active-badge {
    float: none !important;
    display: inline-flex !important;
    align-items: center;
    vertical-align: middle;
    margin: 0 !important;
}

.scoresheet td {
    padding: 1px 2px;
}

.scoresheet-modal-content {
    overflow-x: auto;
    max-width: 100%;
    box-sizing: border-box;
}

.scoresheet-modal-content table {
    border-collapse: collapse;
    border: 1px solid var(--dui-border-color, #999);
    margin: 0 auto;
    white-space: nowrap;
}

.scoresheet-view-content table.scoresheet-table {
    margin: 0 auto 24px auto;
}

.scoresheet-modal-content th,
.scoresheet-modal-content td {
    border: 1px solid var(--dui-border-color, #ccc);
    padding: 2px 4px;
}

.scoresheet-modal-content tr:nth-child(even) {
    background-color: var(--dui-accent-l-5, #f5f5f5);
}

.scoresheet-modal-content tr.scoresheet-header-row {
    background-color: var(--dui-surface-color, #fff);
}

.scoresheet-modal-content tbody.scoresheet-runs tr:nth-child(odd) {
    background-color: var(--dui-accent-l-5, #f5f5f5);
}

.scoresheet-modal-content tbody.scoresheet-runs tr:nth-child(even) {
    background-color: var(--dui-surface-color, #fff);
}

.scoresheet-modal-content .target-num {
    font-size: 0.8em;
    color: var(--dui-color-text-secondary, #555);
    padding: 1px 2px;
    text-align: center;
}

.scoresheet-modal-content .target-sep {
    border-right: 2px solid var(--dui-border-color-dark, #777) !important;
}

.scoresheet-modal-content .score-zero {
    color: var(--dui-color-text-disabled, #aaa);
}

.scoresheet-modal-content .score-hit {
    font-weight: 600;
}

/* don't show empty space below text fields in dialogs, score sheet and tables */
.dui-dialog-body .dui-form-field,
.scoresheet .dui-form-field,
.dui-datatable .dui-form-field {
    margin-bottom: 0 !important;
}

/* Dialogs should fit their content height instead of stretching to 95% of viewport */
.dui-dialog:not(.dui-maximized) {
    min-height: 0 !important;
    max-height: calc(100dvh - 32px) !important;
    height: auto;
}

.dui-dialog.dui-w-sm:not(.dui-maximized) {
    max-width: 440px;
}

td.statusOk {
}

td.statusUnsaved {
    background-color: yellow;
    color: black !important;
}

td.statusSent {
    background-color: green;
    color: white !important;
    font-weight: bold;
}

td.statusOverwritten {
    background-color: orange;
}

td.statusError {
    background-color: red;
}

td.statusWarning {
    background-color: blue;
}

.mergedCell {
    text-align: center !important;
}

.monitorTimeClock {
    font-size: 80px;
    font-weight: bold;
}

.judgeTimeClock {
    font-size: 1.5em;
    font-weight: bold;
    text-align: center;
}

.monitorResult {
    font-weight: bold;
}

.noscript-warning {
    width: 22em;
    position: absolute;
    left: 50%;
    margin-left: -11em;
    color: red;
    background-color: white;
    border: 1px solid red;
    padding: 4px;
    font-family: sans-serif;
}

/* Color for table header */
.dui-datatable-thead .dui-datatable-row {
    background-color: var(--dui-accent-l-4) !important;
}

.dui-datatable-extra-head {
    background-color: var(--dui-accent-l-4) !important;
}

.dui-field-error {
    white-space: pre-line !important;
}


@media (max-width: 768px) {
    .ihaa-layout .dui-layout-content {
        padding: var(--dui-spc-px-10);
    }
}

.tableResponsiveWrapper {
    overflow-x: auto;
    max-width: 100%;
}

.tableResponsiveWrapper th.dui-datatable-th-title {
    white-space: inherit;
}

/* fields in the FlexPanel should not be stretched... */
.flexPanel .dui-form-field {
    width: max-content !important;
    min-width: min-content !important;
}

/* ...except the select box */
.flexPanel .dui-form-select {
    flex: 1;
}

/* score box should show all its values */
.scoreTextBox {
    min-width: 6ch;
    field-sizing: content;
}

/* hide empty label of checkbox */
.dui-form-checkbox:not(.dui-hide-label) .dui-field-label:empty {
    display: none !important;
}

/* drag and drop row styles */
.draggable-row {
    cursor: grab;
}
.draggable-row:active {
    cursor: grabbing;
}
.draggable-row.dragging {
    opacity: 0.4;
}
.drag-over {
    background-color: rgba(33, 150, 243, 0.15) !important;
    outline: 2px dashed var(--dui-accent-color, #2196F3) !important;
    outline-offset: -2px;
}
.drag-over-top td,
.drag-over-top th {
    border-top: 3px solid var(--dui-accent-color, #2196F3) !important;
}
.drag-over-bottom td,
.drag-over-bottom th {
    border-bottom: 3px solid var(--dui-accent-color, #2196F3) !important;
}

.selected-for-move {
    outline: 2px dashed #f57c00 !important;
    background-color: rgba(245, 124, 0, 0.1) !important;
    animation: pulse-border 1.5s infinite;
}

@keyframes pulse-border {
    0% { outline-color: rgba(245, 124, 0, 0.4); }
    50% { outline-color: rgba(245, 124, 0, 1); }
    100% { outline-color: rgba(245, 124, 0, 0.4); }
}

.drag-handle-cancel {
    cursor: pointer;
    color: #f44336 !important;
}

.drag-handle-drop {
    cursor: pointer;
    color: #4caf50 !important;
}

.new-group-row th {
    background-color: #fafafa !important;
    border: 2px dashed #ccc !important;
    text-align: center !important;
    padding: 12px !important;
    color: #666 !important;
}
.new-group-row.drag-over th {
    background-color: rgba(33, 150, 243, 0.1) !important;
    border-color: var(--dui-accent-color, #2196F3) !important;
    color: var(--dui-accent-color, #2196F3) !important;
}

.competition-banner-container {
    width: 100%;
    max-width: 900px;
    margin-bottom: 12px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.competition-banner-img {
    max-width: 100%;
    max-height: 140px;
    height: auto;
    object-fit: contain;
    border-radius: 4px;
}

@media (max-width: 600px) {
    .competition-banner-img {
        max-height: 100px;
    }
}

