/* Runtime overrides loaded after dist CSS.
   Keep library list views visually identical across notes/documents/flashcards. */

.library-table-view .library-table-header {
    gap: 0 !important;
}

.library-table-view {
    --library-progress-col-pad-left: 14px;
    --library-progress-col-pad-right: 22px;
    --library-measure-col-pad-left: 22px;
    --library-measure-col-pad-right: 22px;
    --library-date-col-pad-left: 14px;
    --library-date-col-pad-right: 22px;
    --library-progress-bar-max-width: 204px;
}

.folder-deck-grid.list-view.library-table-body {
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

/* One source of truth for grid tracks so header/body never drift */
.library-table-view.flashcards-table-view {
    --library-track-columns: minmax(188px, 2.2fr) minmax(172px, 1fr) minmax(76px, 96px) minmax(84px, 100px);
}

.library-table-view.documents-table-view {
    --library-track-columns: minmax(188px, 2.2fr) minmax(172px, 1fr) minmax(76px, 96px) minmax(88px, 112px) minmax(84px, 100px);
}

.library-table-view.flashcards-table-view .flashcards-table-header,
.library-table-view.flashcards-table-view .flashcards-table-body .library-table-row,
.library-table-view.documents-table-view .documents-table-header,
.library-table-view.documents-table-view .documents-table-body .library-table-row {
    grid-template-columns: var(--library-track-columns) !important;
}

.library-table-view .library-table-body .library-table-row {
    gap: 0 !important;
    position: relative !important;
    isolation: isolate;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.library-table-view .library-table-body .library-table-row>* {
    position: relative;
    z-index: 1;
}

/* Fill hover/selected completely, including row separator seams */
.library-table-view .library-table-body .library-table-row::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    bottom: -1px;
    background: transparent;
    pointer-events: none;
    transition: background-color 0.12s ease;
    z-index: 0;
}

.library-table-view .library-table-body .library-table-row:first-child::before {
    top: 0;
}

.library-table-view .library-table-body .library-table-row:last-child::before {
    bottom: 0;
}

.library-table-view .library-table-body .library-table-row:hover::before {
    background: #f4f8ff !important;
}

.library-table-view .library-table-body .library-table-row.selected::before {
    background: #edf4ff !important;
}

.library-table-view .library-table-body .library-table-row:hover,
.library-table-view .library-table-body .library-table-row.selected {
    background: transparent !important;
}

.library-table-view .library-table-body .library-table-row:hover {
    border-bottom-color: #f4f8ff !important;
}

.library-table-view .library-table-body .library-table-row:has(+ .library-table-row:hover) {
    border-bottom-color: #f4f8ff !important;
}

.library-table-view .library-table-body .library-table-row.selected {
    border-bottom-color: #edf4ff !important;
}

.library-table-view .library-table-body .library-table-row:has(+ .library-table-row.selected) {
    border-bottom-color: #edf4ff !important;
}

.documents-table-header .sortable.col-progress,
.documents-table-header .sortable.col-pages,
.documents-table-header .sortable.col-size,
.flashcards-table-header .sortable.col-progress,
.flashcards-table-header .sortable.col-cards {
    justify-content: flex-start !important;
}

.documents-table-header .sortable.col-progress,
.flashcards-table-header .sortable.col-progress,
.documents-table-body .deck-col-progress,
.flashcards-table-body .deck-col-progress {
    padding-left: var(--library-progress-col-pad-left) !important;
    padding-right: var(--library-progress-col-pad-right) !important;
    box-sizing: border-box !important;
}

.documents-table-header .sortable.col-pages,
.documents-table-header .sortable.col-size,
.flashcards-table-header .sortable.col-cards,
.documents-table-body .deck-col-pages,
.documents-table-body .deck-col-size,
.flashcards-table-body .deck-col-cards {
    padding-left: var(--library-measure-col-pad-left) !important;
    padding-right: var(--library-measure-col-pad-right) !important;
    box-sizing: border-box !important;
}

.documents-table-body .deck-col-pages,
.documents-table-body .deck-col-size,
.flashcards-table-body .deck-col-cards {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
}

.documents-table-header .sortable.col-date,
.flashcards-table-header .sortable.col-date,
.documents-table-body .deck-col-date,
.flashcards-table-body .deck-col-date {
    padding-left: var(--library-date-col-pad-left) !important;
    padding-right: var(--library-date-col-pad-right) !important;
    box-sizing: border-box !important;
}

.documents-table-body .deck-col-progress,
.flashcards-table-body .deck-col-progress {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 0 !important;
    min-width: 0 !important;
}

.documents-table-body .deck-progress-value,
.flashcards-table-body .deck-progress-value {
    display: none !important;
}

.documents-table-body .deck-progress-column,
.flashcards-table-body .deck-progress-column {
    width: 100% !important;
    max-width: var(--library-progress-bar-max-width) !important;
    justify-self: start !important;
    position: relative !important;
}

@media (hover: hover) and (pointer: fine) {

    .documents-table-body .deck-progress-column[data-progress-tooltip]:hover::after,
    .flashcards-table-body .deck-progress-column[data-progress-tooltip]:hover::after {
        content: attr(data-progress-tooltip);
        position: absolute;
        right: 0;
        bottom: calc(100% + 8px);
        padding: 4px 7px;
        border-radius: 6px;
        background: rgba(15, 23, 42, 0.92);
        color: #ffffff;
        font-size: 0.72rem;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
        pointer-events: none;
        z-index: 6;
    }

    .documents-table-body .deck-progress-column[data-progress-tooltip]:hover::before,
    .flashcards-table-body .deck-progress-column[data-progress-tooltip]:hover::before {
        content: '';
        position: absolute;
        right: 10px;
        bottom: calc(100% + 3px);
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 5px solid rgba(15, 23, 42, 0.92);
        pointer-events: none;
        z-index: 6;
    }
}

@media (max-width: 900px) {
    .library-table-view.flashcards-table-view {
        --library-track-columns: minmax(166px, 2.15fr) minmax(124px, 0.85fr) minmax(68px, 84px) minmax(84px, 100px);
    }

    .library-table-view.documents-table-view {
        --library-track-columns: minmax(166px, 2.15fr) minmax(124px, 0.85fr) minmax(68px, 84px) minmax(84px, 100px);
    }

    .library-table-view {
        --library-progress-bar-max-width: 184px;
    }

    .documents-table-header .col-size,
    .documents-table-body .deck-col-size {
        display: none !important;
    }
}

@media (max-width: 680px) {
    .library-table-view.documents-table-view {
        --library-track-columns: minmax(164px, 1.45fr) minmax(98px, 0.55fr) minmax(84px, 100px);
    }

    .library-table-view.flashcards-table-view {
        --library-track-columns: minmax(164px, 1.45fr) minmax(98px, 0.55fr) minmax(84px, 100px);
    }

    .library-table-view {
        --library-progress-col-pad-left: 20px;
        --library-progress-col-pad-right: 20px;
        --library-measure-col-pad-left: 20px;
        --library-measure-col-pad-right: 20px;
        --library-progress-bar-max-width: 152px;
    }

    .documents-table-header .col-pages,
    .documents-table-body .deck-col-pages {
        display: none !important;
    }

    .documents-table-header .col-size,
    .documents-table-body .deck-col-size {
        display: none !important;
    }

    .flashcards-table-header .col-cards,
    .flashcards-table-body .deck-col-cards {
        display: none !important;
    }

    .documents-table-header .sortable.col-progress,
    .flashcards-table-header .sortable.col-progress,
    .documents-table-body .deck-col-progress,
    .flashcards-table-body .deck-col-progress {
        gap: 0 !important;
    }

    .documents-table-body .deck-progress-value,
    .flashcards-table-body .deck-progress-value {
        display: none !important;
    }

    .documents-table-body .deck-progress-column,
    .flashcards-table-body .deck-progress-column {
        max-width: var(--library-progress-bar-max-width) !important;
    }
}

@media (max-width: 560px) {
    .library-table-view.documents-table-view {
        --library-track-columns: minmax(0, 1fr) minmax(84px, 98px);
    }

    .library-table-view.flashcards-table-view {
        --library-track-columns: minmax(0, 1fr) minmax(84px, 98px);
    }

    .documents-table-header .col-progress,
    .documents-table-body .deck-col-progress,
    .flashcards-table-header .col-progress,
    .flashcards-table-body .deck-col-progress {
        display: none !important;
    }
}

/* Flashcards/Documents header cleanups */
.unfiled-section .section-header-static {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    cursor: default;
}

.library-main-section-title {
    margin-left: 0 !important;
}

/* Tighten folder section spacing */
.folders-section {
    margin-bottom: 0.45rem !important;
}

.folders-section .section-header-row {
    margin-bottom: 0.78rem !important;
}

.folders-section>.folders-grid {
    margin-top: 0 !important;
}

.folders-section+.unfiled-section {
    margin-top: 0.65rem !important;
}
