:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#172238;background:#f3f5f8;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}header{background:#142d36;color:white;padding:20px 4vw;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:750;color:white;text-decoration:none}.brand small{display:block;font-size:12px;letter-spacing:.1em;font-weight:500;color:#b6d4d7}nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}nav a{color:white;text-decoration:none;padding:8px}nav form{margin:0}main{max-width:1250px;margin:auto;padding:32px 24px 64px}h1{font-size:30px;letter-spacing:-.7px;margin:0 0 6px}h2{font-size:20px;margin:0 0 12px}p{margin:10px 0 18px}.muted,small{color:#59677b}a{color:#17616b;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}.card{background:white;border:1px solid #e0e5eb;border-radius:16px;padding:24px;margin:22px 0;box-shadow:0 4px 16px #15253805}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats .card{margin:16px 0}.stats span{display:block;color:#59677b;font-size:14px;min-height:42px}.stats strong{font-size:34px}.toolbar,.actions,.filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.toolbar{justify-content:space-between}.filters{margin:20px 0;align-items:flex-end}.filters label{flex:1;min-width:160px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.auth{max-width:500px;margin:32px auto}label{display:block;font-size:14px;font-weight:600;margin:0 0 15px}input,select,textarea,button,.button{font:inherit}input,select,textarea{display:block;width:100%;padding:11px 12px;border:1px solid #bfc9d4;background:white;color:#172238;border-radius:8px;margin-top:6px;font-weight:400;font-size:16px}textarea{min-height:100px;resize:vertical}button,.button{display:inline-flex;align-items:center;justify-content:center;background:#166773;color:white;border:1px solid transparent;padding:10px 16px;min-height:44px;border-radius:8px;font-size:14px;font-weight:650;cursor:pointer;text-decoration:none}button:hover,.button:hover{background:#0e4f59}.secondary{background:#edf4f5;color:#185661;border-color:#c5d9dc}.secondary:hover{background:#dcecee}.subtle{background:#28414b;color:white;border-color:#5a7078}.filters button{margin-bottom:15px}:focus-visible{outline:3px solid #e6a22f;outline-offset:3px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{color:#536175;background:#f6f8fa;font-size:12px;text-transform:uppercase;letter-spacing:.03em}th,td{padding:14px 12px;border-bottom:1px solid #e5e9ef}td a{font-weight:650}.badge{display:inline-block;white-space:nowrap;background:#f0f2f5;color:#536175;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:600}.ready{background:#e1f3e9;color:#186039}.passed{background:#e1edf9;color:#214c7d}.error{background:#fff0ee;border-left:4px solid #bf4134;padding:16px;border-radius:6px}.notice{background:#e8f4ef;border-left:4px solid #268362;padding:16px;border-radius:6px}summary{font-weight:650;cursor:pointer;padding:8px 0}details>form,details>p{margin-top:16px}.check{display:flex;align-items:center;gap:10px;margin-top:20px}.check input,input[type=checkbox]{width:20px;height:20px;flex-shrink:0;margin:0;accent-color:#166773}.attendance-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-person{display:flex;align-items:center;gap:12px;background:#f7f9fb;border:1px solid #e0e5eb;padding:14px;border-radius:8px;margin:0;font-weight:400}.attendance-person small{display:block;font-weight:400}.signature{display:none}.save-bar{position:sticky;bottom:0;background:#ffffffed;padding:18px 0 0;margin-top:16px}.person-total{display:flex;align-items:center;gap:20px}.person-total>strong{font-size:36px}.year-link{display:inline-block;margin:6px 14px 0 0}.table-wrap tr[hidden]{display:none}footer{text-align:center;color:#647287;font-size:12px;padding:24px}.form-grid label{min-width:0}
@media(max-width:700px){header{padding:16px 20px}nav{gap:4px;font-size:14px}main{padding:24px 14px 44px}h1{font-size:26px}.card{padding:18px}.stats{grid-template-columns:1fr;gap:0}.stats .card{margin:5px 0;display:flex;align-items:center;justify-content:space-between}.stats span{min-height:0;max-width:75%}.stats strong{font-size:27px}.form-grid,.attendance-list{grid-template-columns:1fr}.filters{gap:8px}.actions{width:100%}.actions .button{flex:1}td,th{padding:12px 9px}nav form button{padding:8px 10px}}
@media print{header,footer,.filters,.actions,button,.button,details,.save-bar,.muted{display:none!important}body{background:white;color:black}main{padding:0;max-width:none}.card{border:0;box-shadow:none;padding:0}.attendance-list{display:block}.attendance-person{background:white;border:0;border-bottom:1px solid #aaa;border-radius:0;break-inside:avoid}.signature{display:block;margin-left:auto}.stats{display:none}a{color:black;text-decoration:none}input[type=checkbox]{appearance:none;border:1px solid black;width:18px;height:18px}input[type=checkbox]:checked:after{content:'✓';display:block;text-align:center}.badge{background:none;color:black}}

.brand-logo{display:block;width:44px;height:auto;flex-shrink:0;object-fit:contain}@media(max-width:700px){.brand-logo{width:38px}.brand{gap:10px}}

/* Compact paper lists; screen layout and attendance controls stay unchanged. */
@media print {
  @page { size: A4 portrait; margin: 10mm; }
  body { font-size: 10pt; line-height: 1.2; }
  h1 { font-size: 16pt; margin: 0 0 3mm; }
  h2 { font-size: 12pt; margin: 0 0 2mm; }
  p { margin: 1mm 0 3mm; }
  .card { margin: 3mm 0; border-radius: 0; }
  main > a { display: none; }
  .table-wrap { overflow: visible; }
  table { font-size: 9pt; }
  th { font-size: 8pt; letter-spacing: 0; }
  th, td { padding: 1.5mm 2mm; }
  thead { display: table-header-group; }
  tr { break-inside: avoid; }
  .badge { padding: 0; font-size: 8pt; white-space: normal; }
  .attendance-person {
    min-height: 8mm; padding: 1mm 0; gap: 2mm;
    font-size: 9pt; line-height: 1.15;
  }
  .attendance-person > span:not(.signature) { min-width: 0; overflow-wrap: anywhere; }
  .attendance-person small { font-size: 8pt; line-height: 1.1; }
  .signature { flex-shrink: 0; font-size: 8pt; white-space: nowrap; }
  .attendance-person input[type=checkbox] { width: 3mm; height: 3mm; padding: 0; border-radius: 0; }
  .attendance-person input[type=checkbox]:checked:after { font-size: 8pt; line-height: 3mm; }
}

/* Documents and administrator management */
.doc-description{display:block;font-weight:400}.danger{background:#fff0ee;color:#9b2c22;border-color:#e8b9b3}.danger:hover{background:#fbdcd7}
td details form{margin:8px 0}td details{min-width:150px}td>a{display:inline-block;margin-top:6px}
.documents{list-style:none;margin:0;padding:0}.documents li{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid #e5e9ef}.documents li:last-child{border-bottom:0}.documents .actions{width:auto}
.setup-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;letter-spacing:.08em;user-select:all;overflow-wrap:anywhere}h3{font-size:17px;margin:22px 0 10px}
@media(max-width:700px){.documents .actions{width:100%}.documents .actions .button{flex:1}}

/* Attendance sign-in sheet: no page title, one-line lesson header, two dense columns. */
@media print {
  @page { size: A4 portrait; margin: 8mm; }
  body:has(.attendance-list) main > h1, body:has(.attendance-list) main > .notice { display: none !important; }
  .lesson-head { margin: 0 0 2mm; }
  .lesson-head h2 { display: inline; font-size: 11pt; margin: 0 3mm 0 0; }
  .lesson-head p { display: inline; margin: 0; font-size: 9pt; }
  .attendance-card { margin: 0; }
  .attendance-card .toolbar, .attendance-card > p { display: none !important; }
  .attendance-list { display: block !important; column-count: 2; column-gap: 6mm; border-top: .5pt solid #999; }
  .attendance-person, .attendance-person.attendance-person {
    display: flex; align-items: center; height: 8mm; min-height: 0; padding: 0 0 0 1mm; gap: 1.5mm;
    font-size: 8.5pt; line-height: 1.1; border-bottom: .5pt solid #999; break-inside: avoid;
  }
  .attendance-person.print-skip { display: none !important; }
  .attendance-person > span:not(.signature) { flex: 1 1 auto; min-width: 0; }
  .attendance-person strong, .attendance-person small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .attendance-person small { font-size: 7pt; color: #444; }
  .attendance-person .signature { display: block !important; flex: 0 0 40mm; align-self: stretch; margin: 0; border-left: .5pt solid #bbb; }
}

/* Terminplan: screen view mirrors the printed plan (A4 portrait, bordered table). */
.schedule-head{display:flex;flex-direction:row-reverse;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.schedule-head>div{flex:1;text-align:center}.schedule-logo{width:60px;height:auto}
.schedule-title{font-size:22px;font-weight:750;margin:6px 0 10px}.schedule-subtitle{margin:0 0 6px}
.schedule-table{border:1px solid #9aa6b2}.schedule-table th,.schedule-table td{border:1px solid #9aa6b2;vertical-align:top;padding:8px 10px}.schedule-table th{text-align:center}
.schedule-when,.schedule-time{text-align:center;white-space:nowrap}.schedule-time small,.schedule-table td small{display:block;margin-top:6px}
.schedule-topic{text-decoration:underline;text-underline-offset:2px}.schedule-note{display:block;color:#c0261b}.schedule-table tr.past{color:#59677b}
.schedule-footer{text-align:center;font-weight:700;margin-top:18px}.schedule-form textarea{min-height:0}.unit-links{margin:0;padding-left:20px}
.upcoming{list-style:none;margin:0;padding:0}.upcoming li{padding:10px 0;border-bottom:1px solid #e5e9ef}.upcoming li:last-child{border-bottom:0}.upcoming small{display:block}
@media(max-width:700px){.schedule-head{flex-direction:column;align-items:center}.schedule-title{font-size:18px}}
@media print{
  .no-print{display:none!important}
  body:has(.schedule-doc) main>h1,body:has(.schedule-doc) main>.notice,body:has(.schedule-doc) main>.error{display:none!important}
  .schedule-card{margin:0;padding:0}
  .schedule-doc{font-size:9.5pt;line-height:1.25;color:#000}
  .schedule-head{margin:0 0 5mm}.schedule-logo{width:16mm}.schedule-title{font-size:15pt;margin:2mm 0 4mm}.schedule-subtitle{font-size:10pt;margin:0}
  .schedule-table{font-size:9.5pt;border:.6pt solid #000}
  .schedule-table th{background:#d9d9d9!important;color:#000;font-size:9.5pt;text-transform:none;letter-spacing:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .schedule-table th,.schedule-table td{border:.6pt solid #000;padding:1mm 1.5mm}
  .schedule-table tr.past{color:#000}
  .schedule-note{color:#e00000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .schedule-footer{font-size:9.5pt;margin-top:5mm}
  :root,body:has(.schedule-doc){background:#fff}
  .schedule-table td:nth-child(4),.schedule-table td:nth-child(5){white-space:nowrap}
}
@page{@bottom-right{content:"Seite " counter(page);font-size:9pt}}
/* Terminbuchung und Einstellungen (Oktober 2026) */
.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #d5dce4;margin:18px 0 6px}.tabs a{padding:9px 14px;text-decoration:none;border-radius:8px 8px 0 0;color:#185661;font-weight:600}.tabs a[aria-current=page]{background:white;border:1px solid #d5dce4;border-bottom-color:white;margin-bottom:-1px;color:#172238}
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.badge.cancelled{background:#fff0ee;color:#9b2c22}
.pre{white-space:pre-line}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0}.facts dt{color:#59677b}.facts dd{margin:0;overflow-wrap:anywhere}
.booking-list{list-style:none;padding:0;margin:0}.booking-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.booking-list h2{margin:0}.booking-list p{margin:4px 0 0}
.booking-list li>div:last-child{display:flex;align-items:center;gap:12px}
form.inline{display:flex;align-items:center;gap:8px;margin:6px 0 0;flex-wrap:wrap}form.inline .check{margin:0;font-weight:400}
.subtle-link{background:none;border:none;color:#9b2c22;padding:4px 0;min-height:0;text-decoration:underline}.subtle-link:hover{background:none;color:#6e1f18}
.muted-row td{color:#8692a3}
.print-only{display:none}
@media print{.print-only{display:table-cell!important}.booking-table .print-skip{display:none}.booking-table .sign-cell{width:45mm;border-bottom:.5pt solid #999}.tabs{display:none}}
@media (max-width:640px){.booking-list li>div:last-child{width:100%;justify-content:space-between}}
[hidden]{display:none!important}
/* Admin-Login hinter dem Symbol oben rechts im Banner; Buchungsliste auf der Startseite. */
.login-menu{position:relative;margin-left:auto}.login-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;color:white;cursor:pointer;padding:0}.login-menu>summary::-webkit-details-marker{display:none}.login-menu>summary:hover,.login-menu[open]>summary{background:#28414b}
.login-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:10;width:min(340px,calc(100vw - 32px));background:white;color:#172238;border:1px solid #e0e5eb;border-radius:12px;padding:20px;box-shadow:0 12px 32px #15253833}.login-panel h2{font-size:18px}.login-panel button{width:100%}.login-panel p:last-child{margin-bottom:0}
.booking-teaser li{padding:12px 0;border-bottom:1px solid #e5e9ef}.booking-teaser li:last-child{border-bottom:0}.booking-teaser p{color:#59677b;font-size:14px}
@media(max-width:700px){.login-menu>summary{width:40px;height:40px}}
