﻿/*
 * Karteikarten (Views/Kartei/index.cshtml, editbs.cshtml)
 * Ersetzt die frühere Bündeldatei Kartei.css (Font Awesome 4 + newlook + Visilex) sowie Kartei.min.css/Kartei2*.css.
 * Farben ausschließlich über Bootstrap-5.3-Variablen, damit hell/dunkel funktionieren.
 */

/* ---------- Startansicht ---------- */
.today-card {
    padding: 1.5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    background: linear-gradient(120deg, var(--up-soft), var(--bs-body-bg) 70%);
    box-shadow: var(--up-shadow);
}
.today-kicker { font-size: .875rem; font-weight: 600; color: var(--bs-secondary-color); }
.today-title { font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem); color: var(--bs-emphasis-color); }
.today-sub { max-width: 46rem; }
.today-card .boxChooser { min-width: 14rem; }
.today-card .boxChooser select { min-width: 14rem; }

/* Gastmodus (ohne Anmeldung; Lernstand im Browser) */
.guest-banner {
    border: 1px solid var(--bs-border-color);
    border-left: 4px solid var(--up-orange);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}
.guest-banner .btn { white-space: nowrap; }
.guest-locked .card-header { color: var(--bs-secondary-color); }
@media (max-width: 575.98px) {
    .guest-banner .btn { width: 100%; }
}

.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .75rem; }
.stat {
    display: flex; flex-direction: column; gap: .1rem;
    padding: .85rem 1rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; background: var(--bs-body-bg);
}
.stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: var(--bs-emphasis-color); }
.stat-label { font-size: .85rem; color: var(--bs-secondary-color); }

/* Übersicht nach letzter Bewertung (früher Fortschrittsleiste in der Kopfzeile) */
.box-bar { display: flex; height: 1.75rem; border-radius: 999px; overflow: hidden; background: var(--up-track); }
.box-bar > button {
    flex: 0 1 0; min-width: 2rem; border: 0; padding: 0 .5rem; font-size: .8rem; font-weight: 700; cursor: pointer;
}
.box-bar > button:focus-visible { outline-offset: -3px; }
#certain, .legend-certain { background-color: #2f7d32; color: #fff; }
#uncertain, .legend-uncertain { background-color: var(--up-orange); color: var(--up-on-orange); }
#wrong, .legend-wrong { background-color: #b42318; color: #fff; }
#unused, .legend-unused { background-color: var(--bs-secondary-bg); color: var(--bs-body-color); }
.legend { display: inline-block; width: .75rem; height: .75rem; border-radius: 50%; margin-right: .25rem; vertical-align: -.05rem; }
[data-bs-theme=dark] #certain, [data-bs-theme=dark] .legend-certain { background-color: #3f9a43; }
[data-bs-theme=dark] #wrong, [data-bs-theme=dark] .legend-wrong { background-color: #d92d20; }
#boxBarList { max-height: 18rem; overflow: auto; }

.settings-card { max-width: 42rem; }
#karteiTabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; white-space: nowrap; }
#karteiTabs::-webkit-scrollbar { display: none; }

/* ---------- Kopfzeile: Fortschritt der Lernsitzung ---------- */
.session-progress { display: flex; align-items: center; gap: .6rem; flex: 1 1 auto; max-width: 28rem; min-width: 0; margin-left: .5rem; }
.session-progress .progress { flex: 1 1 auto; height: .5rem; }
.session-count { font-weight: 700; font-size: .9rem; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* ---------- Lernsitzung: umdrehbare Karte ---------- */
.learn-wrap { max-width: 46rem; margin: 0 auto; }
.flashcard {
    position: relative;
    perspective: 1600px;
    cursor: pointer;
    touch-action: pan-y;
    outline: none;
    transition: transform .25s ease, opacity .25s ease;
    -webkit-tap-highlight-color: transparent;
}
.flashcard:focus-visible .face { outline: 3px solid var(--up-orange); outline-offset: 2px; }
.flashcard-inner {
    display: grid;
    transform-style: preserve-3d;
    transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
.flashcard.flipped .flashcard-inner { transform: rotateY(180deg); }
.flashcard .face {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    min-height: min(22rem, 55vh);
    padding: 1.5rem 1.5rem 1.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    background: var(--bs-body-bg);
    box-shadow: var(--up-shadow);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    overflow-wrap: break-word;
}
.flashcard .face.front { border-top: 4px solid var(--up-orange); }
.flashcard .face.back { transform: rotateY(180deg); border-top: 4px solid var(--up-grey); }
.flashcard .face .Content { font-size: 1.2rem; line-height: 1.6; }
.flashcard .face .Content img { max-width: 100%; height: auto; }
.flashcard .question-recap { max-height: 8rem; overflow: hidden; }
.flashcard .myPrev, .flashcard .ownNote {
    margin-top: .75rem; padding: .6rem .75rem; border-radius: .6rem; background: var(--bs-tertiary-bg); font-size: .95rem;
}
.flashcard .notice:empty, .flashcard .myPrev:empty, .flashcard .ownNote:empty { display: none; }
.flashcard .flip-hint { padding-top: 1rem; }
.flashcard.dragging { transition: none; }
.flashcard.hint-left .face.back { box-shadow: 0 0 0 3px #b42318, var(--up-shadow); }
.flashcard.hint-right .face.back { box-shadow: 0 0 0 3px #2f7d32, var(--up-shadow); }
.flashcard.leave-left { transform: translateX(-30%) rotate(-4deg); opacity: 0; }
.flashcard.leave-right { transform: translateX(30%) rotate(4deg); opacity: 0; }
html[data-anim=off] .flashcard, html[data-anim=off] .flashcard-inner { transition: none; }
@media (prefers-reduced-motion: reduce) {
    .flashcard, .flashcard-inner { transition: none; }
}

/* Menü „…“ (NewSite.css positionierte #EdCard früher absolut) */
.learn-toolbar .dropdown-menu button#EdCard { position: static; z-index: auto; }

/* Bewertung */
.rate-bar { margin-top: 1rem; }
.rate-bar .rate-buttons { display: none; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.rate-bar.is-back .rate-buttons { display: grid; }
.rate-bar.is-back .show-answer { display: none; }
.rate-bar .add-to-box { margin-top: .5rem; }

/* Smartphone: Bewertung in der Daumenzone */
@media (max-width: 767.98px) {
    .rate-bar {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; margin: 0;
        padding: .5rem .5rem calc(.5rem + env(safe-area-inset-bottom));
        background: var(--bs-body-bg); border-top: 1px solid var(--bs-border-color);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
    }
    .rate-bar .rate-buttons { gap: .35rem; }
    .rate-btn { min-height: 3.25rem; font-size: .95rem; }
    body.learning #play { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)) !important; }
    body.learning .app-footer { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)); }
    .flashcard .face { padding: 1.1rem 1rem 1rem; min-height: min(20rem, 52vh); }
    .flashcard .face .Content { font-size: 1.1rem; }
    .session-progress { max-width: none; }
    .today-card { padding: 1.1rem; }
    .today-card .boxChooser, .today-card .boxChooser select { min-width: 0; width: 100%; }
}

/* Zusammenfassung */
.summary-card {
    max-width: 40rem; padding: 1.75rem; border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); box-shadow: var(--up-shadow);
}
.summary-card .stat:nth-child(1) { border-top: 4px solid #b42318; }
.summary-card .stat:nth-child(2) { border-top: 4px solid #c76a00; }
.summary-card .stat:nth-child(3) { border-top: 4px solid #2f7d32; }
.summary-card .stat:nth-child(4) { border-top: 4px solid #1d6fd8; }

/* ---------- Kartenlisten (Auswahl / Karten im Kasten) ---------- */
div#searchResults > div,
#CardList > div {
    text-align: justify;
    margin-bottom: 20px;
    position: relative;
    transform: scale(0.97,0.97);
    transition: 0.3s;
    box-shadow: none;
}

    #CardList > div:hover,
    div#searchResults > div:hover {
        transform: scale(1,1);
        cursor: pointer;
        background-color: var(--bs-secondary-bg);
        box-shadow: var(--bs-box-shadow);
        border-color: var(--bs-emphasis-color);
    }

    div#searchResults > div.hiddenCard,
    #CardList > div.hiddenCard {
        border-style: dashed;
        opacity: 0.8;
        transform: rotate(-1deg) scale(0.97,0.97);
    }

        div#searchResults > div.hiddenCard:hover,
        #CardList > div.hiddenCard:hover {
            transform: rotate(-1deg) scale(1.0,1.0);
        }

        div#searchResults > div.hiddenCard span.notinbox,
        div#searchResults > div span.inbox,
        #CardList > div.hiddenCard span.notinbox,
        #CardList > div span.inbox {
            display: block;
            float: right;
        }

        div#searchResults > div.hiddenCard span.inbox,
        div#searchResults > div span.notinbox,
        #CardList > div.hiddenCard span.inbox,
        #CardList > div span.notinbox {
            display: none;
        }

/* ---------- Redaktionsansicht ---------- */
div#Questions > .card {
    cursor: pointer;
}

    div#Questions > .card:hover,
    div#Questions > .card:focus-within {
        border-color: var(--bs-primary);
    }

        div#Questions > .card:hover > .card-header,
        div#Questions > .card:hover > .card-footer {
            background-color: var(--bs-primary-bg-subtle);
            color: var(--bs-primary-text-emphasis);
        }

.kartei .comment-card {
    border-color: var(--bs-warning-border-subtle);
}

    .kartei .comment-card > .card-header {
        background-color: var(--bs-warning-bg-subtle);
        color: var(--bs-warning-text-emphasis);
    }

span.selectedText, span.highlight {
    background-color: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
    border-radius: 4px;
}

/* ---------- Druckansicht (Views/Kartei/Print.cshtml) ---------- */
.print-cards .print-page {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-bottom: 1.5rem;
    border: 1px solid var(--bs-border-color);
}

.print-cards .print-cell {
    min-height: 70mm;
    padding: 4mm;
    overflow: hidden;
    border: 1px dashed var(--bs-border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

    .print-cards .print-cell.empty {
        visibility: hidden;
    }

.print-cards .print-side {
    font-size: .75rem;
    color: var(--bs-secondary-color);
    text-transform: uppercase;
    letter-spacing: .05em;
}

@media print {
    @page {
        size: A4 landscape;
        margin: 0;
    }

    html, body {
        background: #fff !important;
        color: #000 !important;
    }

    .app-navbar, nav.navbar, footer, .no-print, #toastArea, .visually-hidden-focusable {
        display: none !important;
    }

    .app-main, main {
        padding: 0 !important;
        margin: 0 !important;
    }

    .print-cards {
        padding: 0 !important;
    }

        .print-cards .print-page {
            break-after: page;
            page-break-after: always;
            width: 297mm;
            height: 210mm;
            margin: 0;
            border: 0;
            grid-template-rows: repeat(3, 70mm);
        }

        .print-cards .print-cell {
            height: 70mm;
            min-height: 0;
            border: 0.5px dashed #c0c0c0;
            font-size: 11pt;
            color: #000;
            background: #fff;
        }

        .print-cards .print-side {
            display: none;
        }

        .print-cards a {
            color: #000;
            text-decoration: none;
        }
}
