/* ===== Unified table styles ===== */

/* Row container — smooth hover, better min-height */
.fin-acc-row {
    min-height: 28px;
    transition: background-color 0.12s ease, opacity 0.12s ease;
}

/* Single row separator — cell bottom-borders handle it, no row-level top needed */
.fin-acc-row + .fin-acc-row {
    border-top: none;
}

/* Suppress cell border-top inside rows: prevents the double-line effect
   caused by row-N cell border-bottom + row-N+1 cell border-top stacking */
.fin-acc-row [class*="border-1px"] {
    border-top: none !important;
}

/* Cell content padding — consistent across all row types */
.fin-acc-row .message-wrapper-title,
.fin-acc-row .message-text-line {
    padding-top: 4px;
    padding-bottom: 4px;
}

/* Header cells — table-caption class marks column titles */
.message-text-line.table-caption,
.table-caption {
    font-size: 0.86em;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--text-muted) !important;
}

/* Tighter padding inside header cells — gives more horizontal space for text */
.interactive-only:has(.table-caption) .message-wrapper-title {
    padding: 3px 3px;
}

/* Header row: just min-height, no border (rows are visually separated by color) */
.interactive-only:has(.table-caption) {
    min-height: 24px;
}

/* Explicit .table-header class for manual use */
.table-header {
    font-weight: 600;
    font-size: 0.8em;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border) !important;
    min-height: 30px;
}

.table-header .message-wrapper-title {
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Numeric cells — monospace, tabular alignment */
.fin-reg-amount .message-text-line,
.fin-reg-amount-end .message-text-line,
.fin-reg-amount-end-sub .message-text-line,
.fin-acc-amount .message-text-line,
[class*="col-amount"] .message-text-line {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 0.9em;
    letter-spacing: 0.01em;
}

/* Scrollable table wrapper for mobile */
.table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ===== GridView (Yii2 widget) ===== */

.grid-view {
    overflow-x: auto;
}

.grid-view table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.93em;
}

.grid-view th {
    font-family: var(--font-base);
    font-weight: 600;
    font-size: 0.8em;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
    padding: 8px 10px;
    border-bottom: 2px solid var(--border);
    white-space: nowrap;
    background-color: transparent;
}

.grid-view td {
    padding: 7px 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    vertical-align: middle;
}

.grid-view tr:hover td {
    background-color: rgba(30, 95, 168, 0.04);
    transition: background-color 0.12s ease;
}

.grid-view .summary {
    color: var(--text-muted);
    font-size: 0.85em;
    margin-bottom: 8px;
    padding: 4px 0;
}

.grid-view .empty {
    text-align: center;
    padding: 20px;
    color: var(--text-muted);
    font-style: italic;
}

/* Sorting arrows */
.grid-view a.asc:after,
.grid-view a.desc:after {
    color: var(--primary);
    opacity: 0.7;
}

/* ===== Dark theme ===== */

[data-theme="dark"] .fin-acc-row + .fin-acc-row {
    border-top-color: rgba(255, 255, 255, 0.04);
}

[data-theme="dark"] .table-header {
    color: var(--text-muted);
    border-bottom-color: var(--border) !important;
}

[data-theme="dark"] .grid-view th {
    color: var(--text-muted);
    border-bottom-color: var(--border);
}

[data-theme="dark"] .grid-view td {
    border-bottom-color: rgba(255, 255, 255, 0.06);
    color: var(--text);
}

[data-theme="dark"] .grid-view tr:hover td {
    background-color: rgba(196, 154, 122, 0.07);
}

[data-theme="dark"] .grid-view .summary {
    color: var(--text-muted);
}

/* ===== Mobile ===== */

@media (max-width: 767px) {
    /* Financial register: allow horizontal scroll */
    .fin-container-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Minimum row width so columns don't collapse to nothing */
    .fin-acc-row {
        min-width: 480px;
    }

    /* Goals list minimum width */
    [class*="colName"] {
        white-space: nowrap;
    }
}

@media (max-width: 600px) {
    .grid-view table {
        font-size: 0.85em;
    }

    .grid-view th,
    .grid-view td {
        padding: 5px 7px;
    }
}