/* Digitales Kursbuch */

#hv-tt { display: flex; flex-direction: column; gap: .9rem; color: inherit; font-size: .85rem; }
#hv-tt [hidden] { display: none !important; }
#hv-tt .hv-tt__head { display: flex; flex-direction: column; gap: .8rem; padding: 1rem; border: 1px solid rgba(148, 163, 184, .28); border-radius: 1rem; background: rgba(148, 163, 184, .08); }

#hv-tt .hv-tt__title { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; }
#hv-tt .hv-tt__titletext { min-width: 0; flex: 1; }
#hv-tt .hv-tt__title h2 { margin: 0; font-size: 1.25rem; font-weight: 800; line-height: 1.25; }
#hv-tt .hv-tt__title p { margin: .15rem 0 0; font-size: .78rem; opacity: .7; }
#hv-tt .hv-tt__titlelinks a { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .85rem; border: 1px solid rgba(148, 163, 184, .45); border-radius: .65rem; color: inherit; font-size: .75rem; font-weight: 800; text-decoration: none; }
#hv-tt .hv-tt__titlelinks a:hover { background: rgba(148, 163, 184, .16); }
#hv-tt .haver-line { display: inline-block; min-width: 2.6rem; padding: .2rem .6rem; border-radius: .4rem; background: var(--hv-line, #475569); color: #fff; font-size: 1.05rem; font-weight: 800; text-align: center; }

#hv-tt .hv-tt__bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; }
#hv-tt .hv-tt__field, #hv-tt .hv-tt__day { display: flex; flex-direction: column; gap: .25rem; }
#hv-tt .hv-tt__field > span, #hv-tt .hv-tt__label { font-size: .6rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
#hv-tt .hv-tt__field input { min-width: 8rem; padding: .5rem .65rem; border: 1px solid rgba(148, 163, 184, .45); border-radius: .6rem; background: rgba(255, 255, 255, .9); color: inherit; font-size: .85rem; font-weight: 600; }
.dark #hv-tt .hv-tt__field input, .dark #hv-tt .hv-tt__daybox input { background: rgba(2, 6, 23, .6); border-color: rgba(148, 163, 184, .28); }
#hv-tt .hv-tt__daybox { display: flex; align-items: stretch; }
#hv-tt .hv-tt__daybox button { padding: 0 .7rem; border: 1px solid rgba(148, 163, 184, .45); background: transparent; color: inherit; cursor: pointer; }
#hv-tt .hv-tt__daybox button:first-child { border-radius: .6rem 0 0 .6rem; }
#hv-tt .hv-tt__daybox button:last-child { border-radius: 0 .6rem .6rem 0; }
#hv-tt .hv-tt__daybox button:hover { background: rgba(148, 163, 184, .2); }
#hv-tt .hv-tt__daybox input { padding: .5rem .6rem; border: 1px solid rgba(148, 163, 184, .45); border-width: 1px 0; background: rgba(255, 255, 255, .9); color: inherit; font-size: .85rem; font-weight: 600; }
#hv-tt .hv-tt__quick { display: flex; flex-wrap: wrap; gap: .35rem; }
#hv-tt .hv-tt__quick button { padding: .5rem .85rem; border: 1px solid rgba(148, 163, 184, .45); border-radius: 999px; background: transparent; color: inherit; font-size: .74rem; font-weight: 700; cursor: pointer; }
#hv-tt .hv-tt__quick button:hover { background: rgba(148, 163, 184, .16); }
#hv-tt .hv-tt__field--stop { margin-left: auto; }

#hv-tt .hv-tt__info { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
#hv-tt .hv-tt__valid { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 700; }
#hv-tt .hv-tt__valid i { color: #16a34a; }
#hv-tt .hv-tt__valid.is-warn, #hv-tt .hv-tt__valid.is-warn i { color: #b45309; }
.dark #hv-tt .hv-tt__valid.is-warn, .dark #hv-tt .hv-tt__valid.is-warn i { color: #fbbf24; }
#hv-tt .hv-tt__pdf { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .85rem; border-radius: .65rem; background: #dc2626; color: #fff; font-size: .76rem; font-weight: 800; text-decoration: none; }
#hv-tt .hv-tt__pdf:hover { filter: brightness(1.1); }
#hv-tt .hv-tt__warn { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border: 1px solid rgba(245, 158, 11, .5); border-radius: .65rem; background: rgba(245, 158, 11, .12); color: inherit; font-size: .76rem; font-weight: 700; text-decoration: none; }
#hv-tt .hv-tt__warn i { color: #d97706; }

#hv-tt .hv-tt__dirs { display: flex; flex-wrap: wrap; gap: .4rem; }
#hv-tt .hv-tt__dirs button { padding: .55rem .9rem; border: 1px solid rgba(148, 163, 184, .45); border-radius: .65rem; background: transparent; color: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
#hv-tt .hv-tt__dirs button small { margin-left: .35rem; opacity: .6; }
#hv-tt .hv-tt__dirs button[aria-selected="true"] { border-color: var(--brand-primary, #00a300); background: var(--brand-primary, #00a300); color: #fff; }

#hv-tt .hv-tt__hint { margin: 1rem 0; opacity: .7; }
#hv-tt .hv-tt__scroll { max-height: min(68vh, 46rem); overflow: auto; border: 1px solid rgba(148, 163, 184, .3); border-radius: .9rem; background: rgba(255, 255, 255, .5); }
.dark #hv-tt .hv-tt__scroll { background: rgba(8, 10, 12, .6); }
#hv-tt .hv-tt__table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
#hv-tt .hv-tt__table th, #hv-tt .hv-tt__table td { padding: .42rem .7rem; border-bottom: 1px solid rgba(148, 163, 184, .18); text-align: center; white-space: nowrap; }
#hv-tt .hv-tt__table thead th { position: sticky; top: 0; z-index: 3; background: #eef2f7; font-size: .72rem; font-weight: 800; }
.dark #hv-tt .hv-tt__table thead th { background: #111827; }
#hv-tt .hv-tt__table tbody th { position: sticky; left: 0; z-index: 2; max-width: 17rem; overflow: hidden; background: #fff; text-align: left; font-weight: 600; text-overflow: ellipsis; border-right: 1px solid rgba(148, 163, 184, .3); }
.dark #hv-tt .hv-tt__table tbody th { background: #0b0d10; }
#hv-tt .hv-tt__table thead th.hv-tt__corner { left: 0; z-index: 4; text-align: left; }
#hv-tt .hv-tt__table tbody th a { color: inherit; text-decoration: none; }
#hv-tt .hv-tt__table tbody th a:hover { text-decoration: underline; }
#hv-tt .hv-tt__table tr.is-terminal th, #hv-tt .hv-tt__table tr.is-terminal td { font-weight: 800; }
#hv-tt .hv-tt__table td.is-empty { opacity: .35; }
#hv-tt .hv-tt__table .is-past { opacity: .4; }
#hv-tt .hv-tt__table tbody tr:hover td, #hv-tt .hv-tt__table tbody tr:hover th { background: rgba(148, 163, 184, .16); }
#hv-tt .hv-tt__table .is-col { background: rgba(0, 163, 0, .14); }
#hv-tt .hv-tt__part { display: block; font-size: .58rem; font-weight: 700; opacity: .75; }

#hv-tt .hv-tt__foot { display: flex; flex-direction: column; gap: .5rem; }
#hv-tt .hv-tt__actions button { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .85rem; border: 1px solid rgba(148, 163, 184, .45); border-radius: .65rem; background: transparent; color: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; }
#hv-tt .hv-tt__note { margin: 0; font-size: .7rem; opacity: .65; }
#hv-tt .hv-tt__print { display: none; }

@media (max-width: 767px) {
    #hv-tt .hv-tt__field--stop { margin-left: 0; }
    #hv-tt .hv-tt__table tbody th { max-width: 10rem; }
    #hv-tt .hv-tt__field input { min-width: 7rem; }
}

/* ---------- Druck: nur das Kursbuch, A4 quer, schwarz auf weiß ---------- */
@media print {
    @page { size: A4 landscape; margin: 9mm; }
    html, body { background: #fff !important; color: #000 !important; }
    body > *:not(main) { display: none !important; }
    main, #content-slot { display: block !important; padding: 0 !important; margin: 0 !important; background: #fff !important; }
    main * { visibility: hidden; }
    #hv-tt, #hv-tt .hv-tt__print, #hv-tt .hv-tt__print * { visibility: visible; }
    #hv-tt .hv-tt__head, #hv-tt .hv-tt__body, #hv-tt .hv-tt__foot { display: none !important; }
    #hv-tt { position: absolute; left: 0; top: 0; width: 100%; display: block; font-size: 8pt; color: #000; }
    #hv-tt .hv-tt__print { display: block; }
    #hv-tt .hv-tt__printhead { display: flex; align-items: center; gap: 4mm; margin-bottom: 3mm; }
    #hv-tt .hv-tt__printhead .pl { display: inline-block; min-width: 14mm; padding: 1mm 3mm; border-radius: 1.2mm; color: #fff !important; font-size: 14pt; font-weight: 800; text-align: center; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    #hv-tt .hv-tt__printhead h1 { margin: 0; font-size: 13pt; }
    #hv-tt .hv-tt__printhead p { margin: .6mm 0 0; font-size: 8.5pt; }
    #hv-tt .hv-tt__sheet { break-after: page; page-break-after: always; }
    #hv-tt .hv-tt__sheet:last-of-type { break-after: auto; page-break-after: auto; }
    #hv-tt .hv-tt__sheet table { width: 100%; border-collapse: collapse; table-layout: auto; font-variant-numeric: tabular-nums; }
    #hv-tt .hv-tt__sheet th, #hv-tt .hv-tt__sheet td { padding: .7mm 1.4mm; border: .2mm solid #777; font-size: 7.5pt; line-height: 1.15; text-align: center; white-space: nowrap; }
    #hv-tt .hv-tt__sheet thead th { background: #e5e7eb !important; font-weight: 800; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    #hv-tt .hv-tt__sheet tbody th { text-align: left; font-weight: 600; }
    #hv-tt .hv-tt__sheet tr.t th, #hv-tt .hv-tt__sheet tr.t td { font-weight: 800; background: #f3f4f6 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    #hv-tt .hv-tt__sheet tr { break-inside: avoid; }
    #hv-tt .hv-tt__sheetno { margin: 1.5mm 0 0; font-size: 7pt; text-align: right; }
    #hv-tt .hv-tt__printnote { margin: 3mm 0 0; font-size: 7pt; color: #333; }
}

#hv-tt .hv-datebtn { display: inline-flex; align-items: center; justify-content: center; padding: 0 .7rem; border: 1px solid rgba(148, 163, 184, .45); border-width: 1px 0; background: transparent; color: inherit; cursor: pointer; }
#hv-tt .hv-tt__daybox button.hv-datebtn { border-radius: 0; border-width: 1px 0; }
