.admin-body{background:#f4f4f5}.admin-top{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 max(18px,calc((100vw - 1240px)/2));background:#fff;border-bottom:1px solid var(--dz-line);position:sticky;top:0;z-index:20}.admin-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.admin-brand strong{font-size:17px}.admin-top-actions{display:flex;align-items:center;gap:8px}.admin-top-actions form{margin:0}.admin-shell{width:min(calc(100% - 32px),1240px);margin:0 auto;padding:38px 0 80px}.admin-shell.narrow{width:min(calc(100% - 32px),900px)}.admin-intro{margin-bottom:26px}.admin-intro h1{font-size:clamp(32px,4vw,48px);margin:6px 0 8px;letter-spacing:-.035em}.admin-intro p{max-width:820px;color:var(--dz-muted);font-size:17px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.module-card{position:relative;min-height:190px;display:flex;flex-direction:column;padding:22px;border:1px solid var(--dz-line);border-radius:20px;background:#ebebed;color:#777;text-decoration:none}.module-card.active{background:#fff;color:var(--dz-ink);box-shadow:0 5px 18px rgba(0,0,0,.04);transition:.18s ease}.module-card.active:hover{border-color:#d3a0aa;transform:translateY(-2px);box-shadow:var(--dz-shadow)}.module-card.active.muted{background:#f9f9fa}.module-icon{font-size:31px}.module-card strong{font-size:20px;margin:12px 0 5px}.module-card small{font-size:14px;line-height:1.45}.module-card em{margin-top:auto;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-style:normal;font-weight:800;color:#999}.module-card.active em{color:var(--dz-red)}.editor-form{display:flex;flex-direction:column;gap:15px}.editor-card{background:#fff;border:1px solid var(--dz-line);border-radius:18px;padding:22px;box-shadow:0 4px 15px rgba(0,0,0,.035)}.editor-card h2{margin:0 0 18px}.editor-card label+label{margin-top:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:15px}.check-row{flex-direction:row;align-items:center;gap:10px}.check-row input{width:auto;min-height:0}.editor-preview{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:14px;margin-top:14px;border:1px solid var(--dz-line)}.editor-sticky{position:sticky;bottom:14px;display:flex;justify-content:flex-end;padding:12px;border-radius:16px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border:1px solid var(--dz-line);box-shadow:var(--dz-shadow)}.admin-auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f4f4f5,#fff3f5)}.auth-card{width:min(100%,470px);background:#fff;border:1px solid var(--dz-line);border-radius:24px;padding:30px;box-shadow:var(--dz-shadow)}.auth-logo{display:flex;align-items:center;gap:10px}.auth-card h1{margin:22px 0 5px}.auth-card>p{color:var(--dz-muted)}.auth-card form{display:flex;flex-direction:column;gap:14px;margin-top:22px}@media(max-width:850px){.module-grid{grid-template-columns:1fr 1fr}.admin-top{padding:0 16px}}@media(max-width:580px){.module-grid,.form-grid{grid-template-columns:1fr}.admin-top-actions .btn-secondary{display:none}.module-card{min-height:160px}.admin-shell{padding-top:26px}}

/* Core 0.2 – gemeinsame Verwaltungsbausteine */
.status-grid,.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.status-good{color:var(--dz-success);font-weight:800}.status-bad{color:var(--dz-danger);font-weight:800}.status-warn{color:#9a6d19;font-weight:800}.muted{color:var(--dz-muted)}.mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.mini-stats span{padding:11px 12px;background:var(--dz-soft);border-radius:12px}.mini-stats b{font-size:21px;margin-right:5px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 15px}.toolbar form{flex:1;max-width:520px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--dz-line);border-radius:18px;box-shadow:0 4px 15px rgba(0,0,0,.035)}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--dz-line);vertical-align:top}.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.055em;color:var(--dz-muted);background:#fafafa}.data-table tr:last-child td{border-bottom:0}.data-table td small{display:block;color:var(--dz-muted);margin-top:2px}.tag-row{display:flex;gap:5px;flex-wrap:wrap}.tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f7e9ec;color:#852038;font-size:11px;font-weight:750}.role-checks{display:flex;flex-wrap:wrap;gap:9px 14px;margin:10px 0 15px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section-head h2{margin:0}.section-head small{display:block;color:var(--dz-muted)}.inline-create{margin-top:18px;padding-top:14px;border-top:1px solid var(--dz-line)}details summary{cursor:pointer;font-weight:800;color:var(--dz-red)}.editor-form.compact{gap:10px;margin-top:12px}.family-card{padding:14px 0;border-bottom:1px solid var(--dz-line)}.family-card:last-child{border-bottom:0}.member-row,.room-row,.audit-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0}.member-row small,.room-row small,.audit-row small{color:var(--dz-muted)}.audit-row time{font-size:11px;color:var(--dz-muted);white-space:nowrap}.location-grid{display:flex;flex-direction:column;gap:16px}.location-card h2{margin-bottom:4px}.room-list{margin:12px 0}.room-row{padding:9px 10px;border-radius:11px;background:var(--dz-soft);margin:6px 0}.audit-list{display:flex;flex-direction:column}.audit-row{border-bottom:1px solid var(--dz-line)}.audit-row:last-child{border-bottom:0}@media(max-width:780px){.status-grid,.two-col{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar form{max-width:none;width:100%}.toolbar>div{display:flex;flex-wrap:wrap;gap:7px}.mini-stats{grid-template-columns:1fr 1fr}}

/* Core 0.3 – Musikschule & Stundenplan */
.admin-nav{display:flex;gap:4px;overflow:auto;padding:8px max(16px,calc((100vw - 1240px)/2));background:#fff;border-bottom:1px solid var(--dz-line);position:sticky;top:68px;z-index:19}.admin-nav a{white-space:nowrap;text-decoration:none;color:#555;font-weight:750;font-size:13px;padding:8px 10px;border-radius:9px}.admin-nav a:hover{background:#f7e9ec;color:var(--dz-red)}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 18px}.stat-pill{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--dz-line);border-radius:15px;padding:13px 15px;text-decoration:none;color:var(--dz-ink)}.stat-pill b{font-size:25px;color:var(--dz-red)}.stat-pill span{font-size:13px;font-weight:750}.stat-pill.is-active{border-color:#d7a2ac;background:#fff8f9}.filter-row{display:flex;gap:8px;max-width:none!important}.filter-row input{min-width:230px}.filter-row select{min-width:150px}.lesson-section{margin-top:18px}.lesson-row,.subject-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--dz-line)}.lesson-row:last-child,.subject-row:last-child{border-bottom:0}.lesson-row small,.subject-row small{display:block;color:var(--dz-muted);margin-top:3px}.student-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.student-check{display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid var(--dz-line);border-radius:13px;padding:10px 12px}.student-check input{width:auto;min-height:0}.student-check span{display:flex;flex-direction:column}.student-check small{font-weight:500;color:var(--dz-muted)}.week-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.day-column{background:#fff;border:1px solid var(--dz-line);border-radius:18px;padding:17px;min-height:120px}.day-column h2{margin:0 0 12px}.schedule-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 0;border-top:1px solid var(--dz-line)}.schedule-card time{font-size:17px;font-weight:850;color:var(--dz-red)}.schedule-card strong,.schedule-card span,.schedule-card small{display:block}.schedule-card span{font-size:13px;margin-top:2px}.schedule-card small{color:var(--dz-muted);margin-top:2px}.schedule-card a{font-size:12px;color:var(--dz-red);text-decoration:none;font-weight:750}.status-prospect{background:#f4f4f5;color:#555}.status-trial{background:#fff5df;color:#805a0b}.status-active{background:#eaf8ef;color:#1f6840}.status-former{background:#f0f0f2;color:#777}@media(max-width:850px){.stat-strip{grid-template-columns:1fr 1fr}.week-board{grid-template-columns:1fr}.filter-row{flex-wrap:wrap}.student-check-grid{grid-template-columns:1fr}.admin-nav{top:68px}}@media(max-width:580px){.stat-strip{grid-template-columns:1fr 1fr}.schedule-card{grid-template-columns:50px minmax(0,1fr)}.schedule-card>a{grid-column:2}.filter-row{width:100%}.filter-row>*{width:100%;min-width:0!important}}

/* Core 0.3.1 – Fächer & Kategorien */
.stacked-cards{display:flex;flex-direction:column;gap:16px}.subject-category-heading{margin:20px 0 4px;padding:9px 11px;border-radius:10px;background:#f7e9ec;color:var(--dz-red);font-size:14px;text-transform:uppercase;letter-spacing:.04em}.subject-category-heading:first-of-type{margin-top:0}.subject-category-list{display:flex;flex-direction:column}.subject-edit-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,.8fr) minmax(140px,.8fr) 72px auto;align-items:center}.subject-main{min-width:0}.subject-name-input{min-width:0}.sort-input{width:72px!important;min-width:72px}.category-overview{margin-top:20px;padding-top:16px;border-top:1px solid var(--dz-line);display:flex;flex-direction:column;gap:8px}.category-edit-line{display:grid;grid-template-columns:minmax(0,1fr) 72px 42px;gap:7px;align-items:center}.category-edit-line input{min-height:40px}.category-edit-line .btn{min-height:40px;padding:0 9px}@media(max-width:900px){.subject-edit-row{grid-template-columns:1fr 1fr}.subject-main{grid-column:1/-1}.subject-edit-row .btn{justify-self:start}}@media(max-width:580px){.subject-edit-row{grid-template-columns:1fr}.subject-main{grid-column:auto}.sort-input{width:100%!important}.category-edit-line{grid-template-columns:1fr 72px 42px}}

/* Core 0.3.2 – Fachaktionen */
.subject-compact-row{padding:10px 4px}.subject-icon-actions{display:flex;align-items:center;gap:5px}.subject-icon-actions form{margin:0}.icon-action{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;text-decoration:none;cursor:pointer;font-size:17px;line-height:1}.icon-action:hover{background:#f3f3f4}.icon-action.icon-danger:hover{background:#fff0f2}.icon-action.is-disabled{opacity:.28;cursor:not-allowed}.form-actions{display:flex;gap:8px;flex-wrap:wrap}


/* Core 0.3.3 – UI-Regel: mehr als 3 Datensätze einklappen */
.dataset-menu-stack{display:flex;flex-direction:column;gap:8px;margin-top:12px}.dataset-menu,.choice-dropdown{border:1px solid var(--dz-line);border-radius:14px;background:#fff;overflow:hidden}.dataset-menu>summary,.choice-dropdown>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;cursor:pointer;font-weight:800;color:var(--dz-ink);background:#fafafa}.dataset-menu>summary::-webkit-details-marker,.choice-dropdown>summary::-webkit-details-marker{display:none}.dataset-menu>summary:after,.choice-dropdown>summary:after{content:'⌄';font-size:18px;color:var(--dz-red);transition:.15s ease}.dataset-menu[open]>summary:after,.choice-dropdown[open]>summary:after{transform:rotate(180deg)}.dataset-menu>summary small,.choice-dropdown>summary span{font-size:11px;color:var(--dz-muted);font-weight:700}.dataset-menu-body{padding:3px 13px 8px}.choice-dropdown>.role-checks,.choice-dropdown>.student-check-grid{padding:12px 14px;margin:0}.compact-hint{font-size:12px;margin:0 0 8px}.category-picker-form{margin-top:8px}.category-overview>label{margin-top:10px}

/* Core 0.4.0 – Tarife, Bankdaten, Probe-/Schnuppertermine */
.stat-strip.five{grid-template-columns:repeat(5,1fr)}
.read-only-field{min-height:46px;display:flex;align-items:center;padding:11px 12px;border:1px solid var(--dz-line);border-radius:11px;background:#f8f8f9;color:#444;font-weight:700}
.bank-details{padding:0;overflow:hidden}.bank-details>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:20px 22px;list-style:none}.bank-details>summary::-webkit-details-marker{display:none}.bank-details>summary span{font-size:12px;color:var(--dz-muted);font-weight:600}.bank-details-body{padding:0 22px 22px;border-top:1px solid var(--dz-line)}
.tariff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tariff-card{display:flex;flex-direction:column;gap:16px}.tariff-current{font-size:20px;font-weight:850;color:var(--dz-red);white-space:nowrap}.simple-data-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--dz-line)}.simple-data-row:last-child{border-bottom:0}.simple-data-row span{font-size:12px;color:var(--dz-muted)}
.icon-actions{display:flex;align-items:center;gap:4px}.appointment-list{display:flex;flex-direction:column}.appointment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--dz-line)}.appointment-row:last-child{border-bottom:0}.appointment-row>div{min-width:0}.appointment-row strong,.appointment-row small{display:block}.appointment-row small{margin-top:3px;color:var(--dz-muted)}
.status-taster{background:#eef4ff;color:#315d9b}.form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.stat-strip.five{grid-template-columns:repeat(2,1fr)}.tariff-grid{grid-template-columns:1fr}}

/* Core 0.5.0 – Rabatte, Geschwister, Tarife und Zeitraster */
.tariff-inline-card{border-top:1px solid var(--dz-line);padding:15px 0}.tariff-inline-card:first-of-type{border-top:0}.sibling-action{flex:1 1 300px;max-width:520px}.sibling-list{margin-bottom:12px}.student-pricing-list{display:flex;flex-direction:column;gap:10px}.student-pricing-row{border:1px solid var(--dz-line);border-radius:14px;padding:11px;background:#fff}.pricing-grid{display:grid;grid-template-columns:110px 150px minmax(160px,1fr);gap:8px;margin-top:8px}.pricing-grid label{font-size:11px;color:var(--dz-muted)}.pricing-grid input{margin-top:3px}.schedule-timeline-wrap{overflow:auto;border:1px solid var(--dz-line);border-radius:18px;background:#fff;box-shadow:0 4px 15px rgba(0,0,0,.035)}.schedule-timeline{display:grid;grid-template-columns:70px repeat(var(--day-count),minmax(180px,1fr));min-width:max(980px,100%);position:relative}.timeline-head{position:sticky;top:0;z-index:7;background:#fff;border-bottom:1px solid var(--dz-line);border-left:1px solid var(--dz-line);padding:12px 8px;text-align:center;font-weight:850}.timeline-head.time-head{left:0;z-index:9;border-left:0}.timeline-times{position:relative;border-right:1px solid var(--dz-line);background:#fafafa}.timeline-times span{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:var(--dz-muted);font-weight:700}.timeline-day{position:relative;border-right:1px solid var(--dz-line);background:linear-gradient(to bottom,#fff,#fff)}.timeline-line{position:absolute;left:0;right:0;height:1px;background:#ececee}.timeline-event{position:absolute;left:6px;right:6px;z-index:3;border-radius:9px;background:#f7e9ec;border-left:4px solid var(--dz-red);padding:5px 7px;overflow:hidden;box-shadow:0 2px 7px rgba(0,0,0,.06);font-size:11px}.timeline-event.is-appointment{background:#fff4da;border-left-color:#b47a00;border:1px dashed #c99b36}.timeline-event strong,.timeline-event span,.timeline-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event strong{font-size:11px}.timeline-event span{font-size:10px}.timeline-event small{font-size:9px;color:#666}.timeline-event a{position:absolute;right:4px;top:3px;text-decoration:none}.schedule-legend{display:flex;gap:18px;margin-top:8px}.schedule-legend span:first-child{color:var(--dz-red)}.schedule-legend span:last-child{color:#a16a00}@media(max-width:760px){.pricing-grid{grid-template-columns:1fr}.schedule-timeline{min-width:780px}}


/* Core 0.5.1 – Stundenplan als Tagesansicht: Räume nebeneinander, Lehrerfarben */
.schedule-toolbar{align-items:flex-start}.schedule-day-nav{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;max-width:520px;margin:0 auto 12px}.schedule-day-nav>div{text-align:center;display:flex;flex-direction:column;gap:2px}.schedule-day-nav strong{font-size:18px}.schedule-day-nav a:not(.icon-action){font-size:12px;color:var(--dz-red);font-weight:800;text-decoration:none}.schedule-room-grid{display:grid;grid-template-columns:70px repeat(var(--room-count),minmax(170px,1fr));min-width:max(960px,100%);position:relative}.room-head{display:flex;flex-direction:column;gap:2px}.room-head strong{font-size:14px}.room-head small{font-size:10px;color:var(--dz-muted);font-weight:650}.timeline-room{position:relative;border-right:1px solid var(--dz-line);background:#fff}.timeline-line.is-hour{background:#d8d8db}.timeline-event.room-event{left:5px;right:5px;background:var(--teacher-color)!important;border:1px solid #111!important;color:#111!important;padding:6px 8px;box-shadow:0 2px 8px rgba(0,0,0,.13)}.timeline-event.room-event strong,.timeline-event.room-event span,.timeline-event.room-event small{color:#111!important}.timeline-event.room-event small{opacity:1}.timeline-event.room-event a{color:#111!important;background:rgba(255,255,255,.78);border-radius:6px;padding:1px 3px}.timeline-event.room-event.is-appointment{outline:2px dashed rgba(255,255,255,.92);outline-offset:-4px}.teacher-color-legend{display:flex;align-items:center;flex-wrap:wrap;gap:9px 14px;margin:12px 2px 4px;font-size:12px}.teacher-color-legend span{display:inline-flex;align-items:center;gap:5px}.teacher-color-legend i{width:13px;height:13px;border-radius:4px;display:inline-block;border:1px solid rgba(0,0,0,.14)}input[type="color"]{min-height:46px;padding:5px;cursor:pointer}
@media(max-width:760px){.schedule-room-grid{min-width:max(840px,100%)}.schedule-day-nav{max-width:none}.teacher-color-legend{align-items:flex-start}}

.inline-icon-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}

.tariff-price-highlight{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-soft);margin:10px 0}.tariff-price-highlight span{color:var(--text-muted);font-size:.9rem}.tariff-price-highlight strong{font-size:1.25rem}

/* Core 0.6 · Anwesenheit, Nachholpflichten und Honorar */
.attendance-student-row{border-top:1px solid var(--dz-line);padding:15px 0}.attendance-student-row:first-of-type{border-top:0}.attendance-student-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.attendance-student-name strong{font-size:17px}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:25px;padding:4px 8px;border-radius:999px;background:#f1f1f3;color:#555;font-size:11px;font-weight:800}.status-badge.warning{background:#fff2dc;color:#865900}.attendance-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.attendance-rule-grid span{padding:9px 11px;border:1px solid var(--dz-line);border-radius:12px;background:#fafafa;font-size:12px}.attendance-history{display:flex;flex-direction:column}.attendance-history-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--dz-line)}.attendance-history-row:first-child{border-top:0}.attendance-history-row strong,.attendance-history-row span,.attendance-history-row small{display:block}.attendance-history-row span{font-size:13px;margin-top:3px}.attendance-history-row small{font-size:11px;color:var(--dz-muted);margin-top:3px}.warning-text{color:#9b6200!important;font-weight:800}.makeup-resolution-box{margin:0 0 12px;padding:12px;border:1px solid #edd59d;border-radius:14px;background:#fffaf0}.makeup-resolution-box>strong{display:block;margin-bottom:8px}.makeup-resolution-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.makeup-resolution-actions>details{flex:1 1 360px;margin:0}.makeup-resolution-actions>form{margin:0}.dashboard-alert-card{margin-bottom:18px;border-left:5px solid #d28a00}.payroll-teacher{margin-bottom:14px}.payroll-list{margin-top:10px}.schedule-event-actions{position:absolute;right:4px;top:3px;display:flex;gap:3px}.timeline-event.room-event .schedule-event-actions a{position:static!important;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0!important;background:rgba(255,255,255,.82);color:#222!important;border-radius:6px;font-weight:900}.schedule-inline-link{position:static!important;background:none!important;padding:0!important;color:inherit!important;text-decoration:none!important}.schedule-inline-link:hover{text-decoration:underline!important}
@media(max-width:700px){.attendance-rule-grid{grid-template-columns:1fr}.makeup-resolution-actions{flex-direction:column}.makeup-resolution-actions>*{width:100%}}

/* Core 0.6.1 – Anwesenheit direkt im Tagesstundenplan */
.schedule-event-actions button.schedule-attendance-open{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;background:rgba(255,255,255,.82);color:#222;border-radius:6px;font-weight:900;cursor:pointer}.attendance-dialog{width:min(920px,calc(100vw - 28px));max-height:90vh;border:0;border-radius:20px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.28);color:var(--dz-ink)}.attendance-dialog::backdrop{background:rgba(28,28,31,.55);backdrop-filter:blur(2px)}.attendance-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px 22px 14px;border-bottom:1px solid var(--dz-line);background:#fff}.attendance-dialog-head h2{margin:3px 0 4px}.attendance-dialog-head p{margin:0;color:var(--dz-muted)}.attendance-dialog-body{padding:0 22px;max-height:67vh;overflow:auto;background:#fafafa}.attendance-quick-student{padding:18px 0;border-bottom:1px solid var(--dz-line)}.attendance-quick-student:last-child{border-bottom:0}.attendance-quick-student h3{margin:0}.attendance-quick-history{margin-top:13px;padding:12px 14px;border:1px solid var(--dz-line);border-radius:14px;background:#fff}.attendance-quick-history>strong{display:block;margin-bottom:7px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--dz-muted)}.attendance-quick-history-list{display:flex;flex-direction:column}.attendance-quick-history-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid #ececef}.attendance-quick-history-row:first-child{border-top:0}.attendance-quick-history-row time{font-size:11px;font-weight:800;color:var(--dz-muted)}.attendance-quick-history-row strong,.attendance-quick-history-row span{display:block}.attendance-quick-history-row strong{font-size:12px}.attendance-quick-history-row span{font-size:12px;color:#555;margin-top:2px;line-height:1.4}.attendance-dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--dz-line);background:#fff}.attendance-quick-result{font-size:12px;font-weight:800;color:var(--dz-muted)}.attendance-quick-result.is-success{color:#267447}.attendance-quick-result.is-error{color:#a32636}@media(max-width:650px){.attendance-dialog{width:calc(100vw - 12px);max-height:96vh}.attendance-dialog-head,.attendance-dialog-footer{padding-left:14px;padding-right:14px}.attendance-dialog-body{padding:0 14px}.attendance-dialog-footer{align-items:flex-start;flex-direction:column}.attendance-dialog-footer>div{width:100%;display:flex;gap:8px}.attendance-dialog-footer .btn{flex:1}.attendance-quick-history-row{grid-template-columns:70px minmax(0,1fr)}}

/* Core 0.7.0 – Dokumente & Monatskonten */
.admin-two-col{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:16px;align-items:start}.document-row .inline-icon-actions,.billing-entry .billing-amount{display:flex;align-items:center;gap:7px}.billing-entry.is-credit{background:#f2fbf5;border-radius:12px;padding-left:10px;padding-right:10px}.billing-entry.is-credit .billing-amount>strong{color:var(--dz-success)}.billing-amount{white-space:nowrap}.tariff-price-highlight.compact{margin:0;padding:7px 10px;min-width:120px}.finance-month-status{border-left:4px solid var(--dz-red)}
@media(max-width:850px){.admin-two-col{grid-template-columns:1fr}}

/* Core 0.8.0 – Desktop-/Tablet-Arbeitsstruktur */
@media(min-width:1000px){
  .admin-shell{width:min(calc(100% - 36px),1480px)}
  .admin-top{padding-left:max(18px,calc((100vw - 1480px)/2));padding-right:max(18px,calc((100vw - 1480px)/2))}
  .admin-nav{padding-left:max(16px,calc((100vw - 1480px)/2));padding-right:max(16px,calc((100vw - 1480px)/2))}
  .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.config-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;text-decoration:none;color:var(--dz-ink);transition:.18s ease}.config-card:hover{border-color:#d3a0aa;transform:translateY(-1px)}.config-card h2{margin:0 0 4px}.config-card p{margin:0 0 4px;font-weight:800}.config-card small{color:var(--dz-muted)}.config-card>strong{color:var(--dz-red);white-space:nowrap}.config-icon{width:52px;height:52px;border-radius:15px;background:#f7e9ec;display:flex;align-items:center;justify-content:center;font-size:26px}
.student-workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.65fr);gap:18px;align-items:start}.student-workspace.is-new{grid-template-columns:1fr}.student-workspace-main{min-width:0}.student-sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:124px}.student-side-card{padding:17px}.student-side-card h2{font-size:18px;margin:0}.side-action{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding:10px 0;border-top:1px solid var(--dz-line);text-decoration:none;color:var(--dz-ink)}.side-action:first-of-type{margin-top:10px}.side-action>span{font-size:20px}.side-action strong,.side-action small{display:block}.side-action small{color:var(--dz-muted);margin-top:2px}.side-action.is-disabled{opacity:.55}.payer-summary{display:flex;flex-direction:column;gap:3px;margin:12px 0}.payer-summary>small{color:var(--dz-muted)}.btn-block{width:100%;margin-top:7px}.student-doc-list{display:flex;flex-direction:column;margin:10px 0}.student-doc-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--dz-line);text-decoration:none;color:var(--dz-ink)}.student-doc-row:first-child{border-top:0}.student-doc-row strong,.student-doc-row small{display:block}.student-doc-row small{font-size:11px;color:var(--dz-muted);margin-top:2px}.student-doc-row>span{font-size:10px;font-weight:900;color:var(--dz-red);border:1px solid #e8c7cf;border-radius:7px;padding:3px 5px}
@media(max-width:1000px){.student-workspace,.config-grid{grid-template-columns:1fr}.student-sidebar{position:static}}

/* Core 0.8.1 – Importvorschau */
.import-list{display:flex;flex-direction:column;gap:10px;margin:16px 0}.import-row{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.import-row>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;list-style:none}.import-row>summary::-webkit-details-marker{display:none}.import-row>summary small{display:block;color:var(--muted);margin-top:3px}.import-row-body{border-top:1px solid var(--border);padding:14px}.two-column-admin{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(520px,1.8fr);gap:18px;align-items:start}@media(max-width:980px){.two-column-admin{grid-template-columns:1fr}}


.schedule-msv-controls{display:flex;flex-direction:column;gap:10px;margin:0 0 14px;padding:12px 14px;background:#fff;border:1px solid var(--dz-line);border-radius:16px}
.schedule-filter-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.schedule-filter-line input,.schedule-filter-line select{width:auto;min-width:150px}
.schedule-week-tools{display:flex;gap:7px;flex-wrap:wrap}
.schedule-weekdays{display:grid;grid-template-columns:repeat(7,minmax(64px,1fr));gap:6px}.schedule-weekdays a{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 5px;border:1px solid var(--dz-line);border-radius:10px;text-decoration:none;color:var(--dz-ink);background:#fafafa}.schedule-weekdays a.is-active{border-color:var(--dz-red);background:#fff1f4;color:var(--dz-red)}.schedule-weekdays small{font-size:10px;margin-top:2px}.schedule-current-day{text-align:center;font-size:18px}
.lesson-price-line{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:6px}.lesson-price-line b{font-size:15px}.lesson-price-line span{font-size:11px;padding:3px 6px;border-radius:999px;background:#f3f3f4;color:#555}
.course-move-inline{margin:8px 0 13px}.past-courses{margin-top:12px}
.lesson-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}.lesson-workspace.has-student{grid-template-columns:minmax(0,1.65fr) minmax(280px,.55fr)}.lesson-student-sidebar{position:sticky;top:124px}
.group-workspace{align-items:start}.group-student-row{padding:12px 0;border-top:1px solid var(--dz-line)}.group-student-row:first-child{border-top:0}.group-student-row>a,.group-student-row strong,.group-student-row span,.group-student-row small{display:block}.group-student-row span{font-size:12px;margin-top:3px}.group-student-row small{font-size:11px;color:var(--dz-muted);margin-top:3px}.group-student-row.is-past{opacity:.62}.group-move-box{margin-top:8px}
@media(max-width:1000px){.lesson-workspace.has-student{grid-template-columns:1fr}.lesson-student-sidebar{position:static}}
@media(max-width:760px){.schedule-weekdays{grid-template-columns:repeat(4,1fr)}.schedule-filter-line>*{flex:1 1 150px}}

/* Core 0.8.7 · Vertragsende */
.contract-end-notice{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:7px 10px;border:1px solid #d79ca8;border-radius:10px;background:#fff4f6;color:#7a1027;font-weight:700;font-size:13px}.past-lessons-card{border-left:4px solid #777575}


/* Core 0.8.9 · Zahlperson / MSV-inspirierte Kontenansicht */
.payer-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.payer-student-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border:1px solid #d8d8dc;border-radius:12px;text-decoration:none;color:#1b1b1d;background:#fff}
.payer-student-item:hover{border-color:#bb0c2c;background:#fff8f9}.payer-student-item span{font-size:.82rem;color:#666}
.payer-assign{margin-top:14px}.payer-history-card .history-month summary strong{margin-left:auto}.payer-history-card .dataset-menu-body{padding-top:8px}
@media(max-width:800px){.payer-student-grid{grid-template-columns:1fr}}

/* Core 0.9.0 · Zahlperson, Anwesenheitsstatus, Ausfälle/Pausen */
.schedule-event-actions button.schedule-attendance-open.is-complete{background:#267447;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.55)}
.schedule-event-actions button.schedule-attendance-open.is-partial{background:#d79a22;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.55)}
.schedule-absence-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.schedule-absence-item{display:flex;flex-direction:column;gap:2px;min-width:240px;padding:10px 12px;border:1px solid #d6a4ad;border-left:4px solid var(--dz-red);border-radius:12px;background:#fff7f8}.schedule-absence-item strong{font-size:13px}.schedule-absence-item span,.schedule-absence-item small{font-size:11px;color:#5d5d62}
.absence-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px 0;border-top:1px solid var(--dz-line)}.absence-row:first-of-type{border-top:0}.absence-row strong,.absence-row span,.absence-row small{display:block}.absence-row span{font-size:12px;margin-top:3px}.absence-row small{font-size:11px;color:var(--dz-muted);margin-top:3px}.absence-row .inline-icon-actions{display:flex;gap:5px}.absence-rules{display:flex;flex-direction:column;gap:8px;margin:4px 0}.absence-rule-hint{padding:10px 12px;border:1px solid #dedee2;border-radius:11px;background:#fafafa;color:#555;font-size:12px;line-height:1.45}
.payer-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.65fr);gap:18px;align-items:start}.payer-workspace-main{display:flex;flex-direction:column;gap:16px;min-width:0}.payer-workspace-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:124px}.payer-student-item>a{min-width:0;flex:1;text-decoration:none;color:inherit}.payer-student-item>a strong,.payer-student-item>a span{display:block}.payer-doc-list{display:flex;flex-direction:column;margin-top:10px}.payer-doc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-top:1px solid var(--dz-line)}.payer-doc-row>a{min-width:0;flex:1;text-decoration:none;color:var(--dz-ink)}.payer-doc-row strong,.payer-doc-row small{display:block}.payer-doc-row small{font-size:11px;color:var(--dz-muted);margin-top:2px}.payer-change-dialog{width:min(560px,calc(100vw - 24px));border:0;border-radius:20px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.3)}.payer-change-dialog::backdrop{background:rgba(20,20,22,.52)}.payer-change-dialog-inner{padding:22px}.payer-change-dialog-inner h2{margin-top:0}.payer-change-dialog-inner>p{color:var(--dz-muted)}
@media(max-width:1050px){.payer-workspace{grid-template-columns:1fr}.payer-workspace-side{position:static}}

/* Core 0.10.1 · rollenbasierte Neuanlage mit direkter Kurs-/Zahlerzuordnung */
.role-first-card{border-top:4px solid var(--dz-red)}
.role-first-grid{align-items:end}.role-active{min-height:44px;padding:10px 12px;border:1px solid var(--dz-line);border-radius:12px;background:#fafafa}.secondary-roles{margin-top:12px}
.subsection-box{margin-top:18px;padding:16px;border:1px solid var(--dz-line);border-radius:16px;background:#fafafa}.subsection-box h3{margin:0}.strong-check{font-weight:850;color:var(--dz-ink)}
.inline-payer-card{margin-top:14px;padding:15px;border:1px solid #e5c7ce;border-radius:15px;background:#fff}.inline-payer-card .bank-details{margin-top:12px}
.initial-course-box{border-color:#e4c7cd;background:#fffafb}.free-slot-panel{margin-top:14px;padding:14px;border:1px solid #dedee2;border-radius:14px;background:#fff}.free-slot-panel .section-head{margin-bottom:10px}.free-slot-panel select{font-weight:700}
@media(max-width:700px){.role-first-grid{grid-template-columns:1fr}.subsection-box{padding:13px}}

/* Core 0.10.3 – klare Trennung Personen / S-&-U-Schülerakte */
.student-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.student-summary-grid>div,.payer-facts>div{border:1px solid var(--dz-line);border-radius:12px;background:#fafafa;padding:10px 12px}.student-summary-grid small,.student-summary-grid strong,.payer-facts span,.payer-facts strong{display:block}.student-summary-grid small,.payer-facts span{font-size:11px;color:var(--dz-muted);margin-bottom:3px}.student-summary-grid strong{font-size:14px;overflow-wrap:anywhere}.student-note-box{margin-top:12px;padding:11px 13px;border-radius:12px;background:#f7f7f8;border:1px solid var(--dz-line)}.student-note-box small,.student-note-box span{display:block}.student-note-box small{font-weight:800;color:var(--dz-muted);margin-bottom:4px}.planned-lessons{margin-top:14px;padding-top:8px;border-top:1px solid var(--dz-line)}.planned-lessons h3{font-size:14px;margin:6px 0 10px}.lesson-row-rich.planned{background:#fafafa;border-radius:12px;padding:10px}.attendance-stat-mini{display:flex;gap:6px;flex-wrap:wrap}.attendance-stat-mini span{font-size:11px;font-weight:800;background:#f2f2f4;border-radius:999px;padding:5px 8px}.student-attendance-history{max-height:620px;overflow:auto;padding-right:3px}.payer-facts{display:grid;gap:7px;margin:12px 0}.student-link-card{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px;border:1px solid var(--dz-line);border-radius:14px;background:#fafafa}.student-link-card strong,.student-link-card small{display:block}.student-link-card small{color:var(--dz-muted);margin-top:3px}.contract-end-notice{margin-top:8px;padding:8px 10px;border-radius:10px;background:#fff4dc;color:#815600;font-size:12px;font-weight:800}
@media(max-width:720px){.student-summary-grid{grid-template-columns:1fr}.student-link-card{align-items:flex-start;flex-direction:column}.student-link-card .btn{width:100%}}

/* Core 0.10.4 – sichtbare S-&-U-Schülerakte */
.student-record-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.student-record-head .form-actions{justify-content:flex-end}.student-record-nav{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.student-record-nav a{display:inline-flex;align-items:center;text-decoration:none;color:var(--dz-ink);background:#fff;border:1px solid var(--dz-line);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.student-record-nav a:hover{border-color:#d3a2ad;color:var(--dz-red)}.student-record-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:18px;align-items:start}.student-record-main,.student-record-side{display:flex;flex-direction:column;gap:16px;min-width:0}.student-record-side{position:sticky;top:118px}.student-record-card{margin:0}.student-key-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.student-key-grid>div{border:1px solid var(--dz-line);border-radius:12px;background:#fafafa;padding:10px 12px}.student-key-grid>div.wide{grid-column:1/-1}.student-key-grid span,.student-key-grid strong{display:block}.student-key-grid span{font-size:11px;color:var(--dz-muted);margin-bottom:3px}.student-key-grid strong{font-size:14px;overflow-wrap:anywhere}.student-course-card{border:1px solid var(--dz-line);border-radius:14px;padding:13px 14px;margin-top:10px;background:#fff}.student-course-card.is-current{border-left:4px solid var(--dz-red)}.student-course-card.is-planned{background:#fafafa;border-left:4px solid #8b8b92}.student-course-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.student-course-title h3{margin:6px 0 0;font-size:17px}.student-course-title>strong{white-space:nowrap}.student-course-facts{display:flex;flex-wrap:wrap;gap:6px 12px;margin:10px 0;color:var(--dz-muted);font-size:12px}.student-course-facts b{color:var(--dz-ink)}.student-past-lessons{margin-top:12px}.student-record-side .editor-card{margin:0}.student-record-side .choice-dropdown{margin-top:9px}
@media(max-width:1000px){.student-record-layout{grid-template-columns:1fr}.student-record-side{position:static}.student-record-head{align-items:flex-start;flex-direction:column}.student-record-head .form-actions{justify-content:flex-start}}
@media(max-width:700px){.student-key-grid{grid-template-columns:1fr}.student-key-grid>div.wide{grid-column:auto}.student-course-title{flex-direction:column}.student-record-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.student-record-nav a{white-space:nowrap}}

/* Core 0.10.14 · MSVplus Snapshot-Vorschau */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 16px}.stat-card{border:1px solid var(--dz-line);border-radius:14px;background:#fafafa;padding:12px 14px}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card span{font-size:11px;color:var(--dz-muted);font-weight:800}.stat-card strong{font-size:24px;color:var(--dz-red);margin:3px 0}.stat-card small{font-size:11px;color:var(--dz-muted)}@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.stats-grid{grid-template-columns:1fr}}

/* Core 0.10.28 · Dokumentvorlagen-Editor */
.document-template-toolbar{margin-bottom:16px}.document-template-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start}.document-template-sidebar{display:flex;flex-direction:column;gap:14px;position:sticky;top:118px}.document-template-workspace{min-width:0;position:sticky;top:96px;align-self:start}.template-preview-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.template-preview-head strong,.template-preview-head small{display:block}.template-preview-head small{color:var(--dz-muted);margin-top:3px}.document-canvas-wrap{overflow:auto;padding:26px;border:1px solid var(--dz-line);border-radius:18px;background:#d9d9dc;min-height:520px;max-height:calc(100vh - 190px)}.document-canvas{position:relative;margin:0 auto;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.18);overflow:hidden;touch-action:none}.doc-element{position:absolute;box-sizing:border-box;cursor:move;border:1px dashed transparent;overflow:hidden;user-select:none}.doc-element:hover,.doc-element.is-selected{border-color:var(--dz-red);background:rgba(187,12,44,.025)}.doc-text{padding:0;line-height:1.22;color:#111;font-family:Arial,Helvetica,sans-serif}.doc-image img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.doc-resize{position:absolute;right:0;bottom:0;width:12px;height:12px;background:var(--dz-red);border-radius:4px 0 0 0;cursor:nwse-resize}.template-add-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.placeholder-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;max-height:280px;overflow:auto}.placeholder-chip{border:1px solid #ddd;border-radius:999px;background:#fff;padding:6px 8px;font-size:11px;font-weight:750;cursor:pointer;color:#444}.placeholder-chip:hover{border-color:var(--dz-red);color:var(--dz-red)}.template-danger{margin-top:14px;text-align:right}.document-graphic-upload{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.document-pdf-preview{padding:10px}.document-pdf-preview iframe{width:100%;height:76vh;min-height:680px;border:0;border-radius:12px;background:#eee}.document-preview-actions{align-items:end;justify-content:flex-end}.document-run-options{margin-bottom:14px}.document-run-options .form-grid{align-items:end;margin-top:0}.btn-block{width:100%}@media(max-width:1050px){.document-template-layout{grid-template-columns:1fr}.document-template-sidebar{position:static}.document-template-workspace{position:static}.document-canvas-wrap{min-height:450px;max-height:none}.template-preview-head{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.document-graphic-upload{grid-template-columns:1fr}.document-pdf-preview iframe{min-height:520px}.template-add-buttons{grid-template-columns:1fr}}

.template-zoom-control{display:flex;flex-direction:row;align-items:center;gap:7px;font-size:12px;color:var(--dz-muted);font-weight:800}.template-zoom-control select{width:auto;min-height:38px;padding:7px 9px}

/* Core 0.10.35 · Leihinstrumente */
.instrument-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.65fr);gap:18px;align-items:start}.instrument-library{display:flex;flex-direction:column;gap:16px}.instrument-editor{position:sticky;top:118px}.instrument-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.instrument-stats>div{border:1px solid var(--dz-line);border-radius:12px;padding:10px 12px;background:#fafafa}.instrument-stats span,.instrument-stats strong{display:block}.instrument-stats span{font-size:11px;color:var(--dz-muted)}.instrument-stats strong{font-size:20px}.instrument-filter{display:grid;grid-template-columns:minmax(220px,1fr) 180px 160px auto;gap:8px}.instrument-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.instrument-card{padding:0;overflow:hidden;display:grid;grid-template-columns:150px minmax(0,1fr)}.instrument-card.is-inactive{opacity:.62}.instrument-photo{min-height:160px;background:#f5f5f6;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--dz-line);font-size:44px}.instrument-photo img{width:100%;height:100%;object-fit:cover}.instrument-card-body{padding:16px}.instrument-card-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.instrument-card-title h2{font-size:18px;margin:3px 0 0}.instrument-card-title small{color:var(--dz-muted)}.instrument-facts{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dz-muted);margin:10px 0}.instrument-facts b{color:var(--dz-ink)}.instrument-notes{font-size:12px;line-height:1.45;background:#fafafa;border:1px solid var(--dz-line);border-radius:10px;padding:9px 10px}.instrument-edit-preview{width:100%;max-height:220px;object-fit:cover;border:1px solid var(--dz-line);border-radius:12px}.rental-list{display:flex;flex-direction:column;gap:9px;margin:10px 0}.rental-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--dz-line);border-radius:12px;padding:10px 12px;background:#fafafa}.rental-row strong,.rental-row small,.rental-row span{display:block}.rental-row small{color:var(--dz-muted);margin-top:2px}.rental-row span{font-size:12px;margin-top:4px}.rental-actions{display:flex;gap:5px}.rental-end{margin-top:-3px}.student-note-box span+span{margin-top:4px}.instrument-editor .form-grid{margin-top:0}
@media(max-width:1100px){.instrument-layout{grid-template-columns:1fr}.instrument-editor{position:static}.instrument-card-grid{grid-template-columns:1fr}.instrument-filter{grid-template-columns:1fr 1fr}.instrument-filter input{grid-column:1/-1}}@media(max-width:620px){.instrument-card{grid-template-columns:1fr}.instrument-photo{height:180px;border-right:0;border-bottom:1px solid var(--dz-line)}.instrument-filter{grid-template-columns:1fr}.instrument-filter input{grid-column:auto}.instrument-stats{grid-template-columns:1fr 1fr 1fr}}

/* Core 0.10.40 · Lehrer-/Mitarbeiterbereich */
.teacher-body{background:#f4f4f5}.teacher-shell{width:min(calc(100% - 28px),1320px)}.teacher-intro{margin-bottom:18px}.teacher-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.teacher-mini-card{min-height:132px;padding:16px;border-radius:16px}.teacher-mini-card .module-icon{font-size:25px}.teacher-mini-card strong{font-size:17px;margin:8px 0 3px}.teacher-main-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.65fr);gap:18px;align-items:start}.teacher-primary{display:flex;flex-direction:column;gap:18px}.teacher-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:116px}.teacher-side-card{padding:17px}.teacher-side-card h2{font-size:18px;margin-bottom:10px}.teacher-date-form,.teacher-month-form{display:flex;gap:8px;align-items:center}.teacher-date-form input,.teacher-month-form input{min-height:38px;padding:7px 9px}.teacher-day-jump{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 4px}.teacher-empty{padding:24px 0}.teacher-schedule-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.teacher-lesson-card{border:1px solid var(--dz-line);border-radius:16px;padding:14px;background:#fff}.teacher-lesson-card.is-complete{border-left:5px solid #2f8f58}.teacher-lesson-head{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:start}.teacher-lesson-time strong{font-size:22px;color:var(--dz-red);display:block}.teacher-lesson-time small{color:var(--dz-muted)}.teacher-lesson-head h3{margin:3px 0 2px;font-size:18px}.teacher-lesson-head small{color:var(--dz-muted)}.teacher-student-attendance{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(170px,.6fr) minmax(190px,1fr);gap:8px;align-items:center;border-top:1px solid var(--dz-line);padding:9px 0}.teacher-student-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.teacher-student-name a{text-decoration:none;color:var(--dz-ink)}.teacher-student-name a:hover{color:var(--dz-red)}.teacher-student-attendance select,.teacher-student-attendance input{min-height:39px;padding:8px 9px}.teacher-inline-actions{justify-content:flex-end;margin-top:8px}.teacher-cancel{margin-top:8px;padding-top:8px;border-top:1px dashed var(--dz-line)}.teacher-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.teacher-student-tile{display:flex;flex-direction:column;border:1px solid var(--dz-line);border-radius:13px;padding:11px 12px;text-decoration:none;color:var(--dz-ink);background:#fafafa}.teacher-student-tile:hover{border-color:#d3a0aa;background:#fff7f8}.teacher-student-tile span{font-size:12px;margin-top:2px}.teacher-student-tile small{color:var(--dz-muted);margin-top:3px}.teacher-doc-list{display:flex;flex-direction:column;gap:7px}.teacher-doc-list a{display:flex;flex-direction:column;text-decoration:none;color:var(--dz-ink);border:1px solid var(--dz-line);border-radius:10px;padding:9px 10px}.teacher-doc-list small{color:var(--dz-muted);margin-top:2px}.teacher-student-record{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.7fr);gap:18px;align-items:start}.teacher-copy{margin-top:6px}.teacher-history-list .simple-data-row small{display:block;color:var(--dz-muted);margin-top:2px}.status-badge.success{background:#eaf8ef;color:#1f6840}.teacher-instrument-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dance-mobile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.teacher-main-grid,.teacher-student-record{grid-template-columns:1fr}.teacher-side{position:static}.teacher-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-instrument-grid{grid-template-columns:1fr}}
@media(max-width:700px){.teacher-shell{width:min(calc(100% - 18px),1320px);padding-top:22px}.teacher-card-grid,.dance-mobile-grid{grid-template-columns:1fr 1fr}.teacher-lesson-head{grid-template-columns:58px minmax(0,1fr)}.teacher-lesson-state{grid-column:2}.teacher-student-attendance{grid-template-columns:1fr}.teacher-student-grid{grid-template-columns:1fr}.teacher-date-form{width:100%;align-items:stretch;flex-direction:column}.teacher-date-form>*{width:100%}.teacher-top .admin-top-actions .btn-secondary{display:inline-flex}}
@media(max-width:480px){.teacher-card-grid,.dance-mobile-grid{grid-template-columns:1fr}.teacher-nav{top:68px}.teacher-top .admin-brand strong{font-size:14px}}

/* Core 0.10.42 · Lehrer-Zeitleiste und Ferienstatus */
.schedule-weekdays a.is-holiday{background:#e5e5e7;border-color:#c6c6ca;color:#626267}.schedule-weekdays a.is-holiday.is-active{background:#d8d8dc;border-color:#8f8f95;color:#242428}.schedule-weekdays a.is-holiday small::after{content:' · Ferien';font-weight:800}
.schedule-timeline-wrap.is-school-holiday{border-color:#c8c8cc;background:#e7e7ea}.schedule-timeline-wrap.is-school-holiday .timeline-room{background:#ececef}.schedule-timeline-wrap.is-school-holiday .timeline-times{background:#e4e4e7}.schedule-timeline-wrap.is-school-holiday .timeline-line{background:#d3d3d7}.schedule-timeline-wrap.is-school-holiday .timeline-line.is-hour{background:#bfc0c4}
.timeline-event.room-event.is-school-holiday-event{background:#d1d1d5!important;border-color:#88898e!important;color:#333!important;box-shadow:none}.timeline-event.room-event.is-school-holiday-event strong,.timeline-event.room-event.is-school-holiday-event span,.timeline-event.room-event.is-school-holiday-event small{color:#333!important}
.schedule-absence-item.is-school-holiday{border-color:#c9c9cd;border-left-color:#777;background:#ededf0}.holiday-status-field{min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:8px 10px;border:1px solid #d9d9dc;border-radius:11px;background:#f4f4f5}.holiday-status-field small{color:var(--dz-muted);font-size:11px}.attendance-student-row.is-school-holiday-row,.attendance-quick-student.is-school-holiday-row{background:#f7f7f8;border-radius:12px;padding-left:10px;padding-right:10px}
.attendance-history-row.is-system-holiday,.teacher-history-list .simple-data-row.is-system-holiday{opacity:.62;background:#f7f7f8;border-radius:10px;padding:7px 10px;margin:2px 0}.attendance-history-row.is-system-holiday strong,.teacher-history-list .simple-data-row.is-system-holiday strong{font-size:12px;font-weight:700}.attendance-history-row.is-system-holiday span,.teacher-history-list .simple-data-row.is-system-holiday span{font-size:11px;color:#777}.attendance-history-row.is-system-holiday small,.teacher-history-list .simple-data-row.is-system-holiday small{font-size:10px;color:#8a8a8f}
.teacher-schedule-card{overflow:visible}.teacher-week-tools{margin:14px 0 8px}.teacher-weekdays{margin-bottom:8px}.teacher-timeline-wrap{margin-top:12px}.teacher-timeline-grid{display:grid;grid-template-columns:70px minmax(480px,1fr);min-width:620px;position:relative}.teacher-timeline-day{min-width:0}.teacher-timeline-event{left:7px;right:7px}.teacher-timeline-event .schedule-event-actions{z-index:5}.teacher-timeline-event .schedule-attendance-open{width:24px!important;height:24px!important}.teacher-absence-strip{margin-top:12px}.teacher-lesson-dialog .attendance-dialog-body{max-height:56vh}.teacher-cancel-dialog-form{border-top:1px solid var(--dz-line);background:#fff}.teacher-cancel-dialog-box{padding:14px 22px 18px}.teacher-cancel-dialog-box>strong{display:block;margin-bottom:8px}.teacher-cancel-dialog-box label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800}.teacher-cancel-dialog-box textarea{margin-top:4px}
@media(max-width:760px){.teacher-timeline-grid{min-width:560px}.schedule-weekdays a.is-holiday small::after{content:' · F'}}

/* Core 0.11.1 · zentrale Lehrer-Nachrichten / Chat */
.teacher-card-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.teacher-message-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.7fr);gap:18px;align-items:start}.teacher-message-compose{position:sticky;top:116px}.teacher-message-list{display:flex;flex-direction:column;border-top:1px solid var(--dz-line);margin-top:10px}.teacher-message-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 5px;border-bottom:1px solid var(--dz-line);text-decoration:none;color:var(--dz-ink)}.teacher-message-row:hover{background:#fafafa}.teacher-message-row.is-unread{background:#fff8f9}.teacher-message-avatar{width:38px;height:38px;border-radius:12px;background:var(--dz-soft);display:flex;align-items:center;justify-content:center}.teacher-message-row-main{min-width:0}.teacher-message-row-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.teacher-message-row-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-message-row-head small{white-space:nowrap;color:var(--dz-muted)}.teacher-message-row-main>span{display:block;margin-top:3px;color:var(--dz-muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-chat-form{display:flex;flex-direction:column;gap:12px}.teacher-chat-form label,.teacher-chat-composer label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800}.teacher-chat-card{padding:0;overflow:hidden}.teacher-chat-thread{display:flex;flex-direction:column;gap:10px;max-height:62vh;min-height:360px;overflow:auto;padding:22px;background:#f7f7f8}.teacher-chat-bubble{max-width:min(78%,720px);border:1px solid var(--dz-line);border-radius:16px;padding:11px 13px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.04)}.teacher-chat-bubble.is-mine{align-self:flex-end;background:#fff4f6;border-color:#e6b9c2}.teacher-chat-bubble.is-other{align-self:flex-start}.teacher-chat-bubble.is-retracted{opacity:.65;font-style:italic}.teacher-chat-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;margin-bottom:5px}.teacher-chat-meta span{color:var(--dz-muted)}.teacher-chat-text{white-space:normal;word-break:break-word}.teacher-chat-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end;margin-top:8px}.teacher-chat-actions form{margin:0}.teacher-chat-reply-quote{border-left:3px solid var(--dz-red);padding:5px 8px;margin-bottom:8px;background:#fafafa;border-radius:7px;font-size:11px}.teacher-chat-reply-quote strong,.teacher-chat-reply-quote span{display:block}.teacher-chat-reply-quote span{color:var(--dz-muted);margin-top:2px;max-height:38px;overflow:hidden}.teacher-chat-composer{padding:16px 20px 20px;border-top:1px solid var(--dz-line);background:#fff}.teacher-chat-composer textarea{min-height:92px}.teacher-chat-composer-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px}.teacher-chat-composer-actions small{color:var(--dz-muted)}.teacher-chat-reply-preview{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:10px;background:#fff6f7;border:1px solid #e9c8cf;border-radius:10px;font-size:12px}.teacher-chat-reply-preview[hidden]{display:none}.teacher-chat-intro a{text-decoration:none;color:var(--dz-red);font-weight:800}.teacher-student-quick-actions{display:flex;justify-content:flex-end;margin:-10px 0 14px}
@media(max-width:1180px){.teacher-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.teacher-message-layout{grid-template-columns:1fr}.teacher-message-compose{position:static}.teacher-chat-bubble{max-width:88%}}@media(max-width:700px){.teacher-card-grid{grid-template-columns:1fr 1fr}.teacher-chat-thread{padding:14px;min-height:300px}.teacher-chat-bubble{max-width:94%}.teacher-chat-composer-actions{align-items:stretch;flex-direction:column}.teacher-chat-composer-actions .btn{width:100%}}@media(max-width:480px){.teacher-card-grid{grid-template-columns:1fr}.teacher-message-row{grid-template-columns:36px minmax(0,1fr) auto}.teacher-message-avatar{width:34px;height:34px}.teacher-message-row-head{align-items:flex-start;flex-direction:column;gap:1px}.teacher-message-row-head small{font-size:10px}.teacher-student-quick-actions{justify-content:stretch}.teacher-student-quick-actions .btn{width:100%}}

/* Core 0.11.4 · mehrtägige Lehrerausfälle & delegierte Instrumentenpflege */
.teacher-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.teacher-absence-workspace{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start}
.teacher-absence-targets{max-height:360px;overflow:auto;padding-right:4px}
.teacher-absence-targets .check-row{align-items:flex-start}
.teacher-absence-targets .check-row span{display:flex;flex-direction:column;gap:2px}
.teacher-absence-targets .check-row small{color:var(--dz-muted);font-weight:500}
.teacher-absence-save textarea{min-height:126px}
.teacher-instrument-manager{align-items:start}.teacher-instrument-manager .instrument-editor{position:sticky;top:116px}
@media(max-width:1050px){.teacher-absence-workspace{grid-template-columns:1fr}.teacher-instrument-manager .instrument-editor{position:static}}
@media(max-width:1180px){.teacher-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.teacher-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.teacher-card-grid{grid-template-columns:1fr}}

/* Core 0.11.5 · mehrseitige Dokumente */
.template-page-list{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.template-page-list .btn{min-width:72px}.document-template-sidebar .template-page-list+.template-add-buttons{margin-top:8px}

/* Core 0.11.6 · verwaltbare Grundlayouts im Dokumenteneditor */
.base-layout-divider{height:1px;background:var(--dz-line);margin:14px 0}.base-layout-status{margin-top:10px;padding:8px 10px;border-radius:9px;background:#eef8ef;border:1px solid #bdddbf;color:#24572a;font-size:12px;font-weight:700}.base-layout-status.is-error{background:#fff1f1;border-color:#e6bcbc;color:#8a2020}#deleteBaseLayout:disabled{opacity:.45;cursor:not-allowed}
.sheet-preview-row{display:flex;align-items:center;gap:12px;margin:0 0 12px}.sheet-preview-row small{display:block;color:var(--dz-muted);margin-top:3px}.sheet-preview-thumb{width:58px;height:78px;object-fit:cover;border:1px solid var(--dz-line);border-radius:7px;background:#fff;display:block}.sheet-preview-picker{margin:14px 0;padding:14px;border:1px solid var(--dz-line);border-radius:14px;background:#fafafa}.sheet-preview-picker>strong{display:block;margin-bottom:8px}.sheet-preview-large{display:block;width:180px;max-width:100%;max-height:250px;object-fit:contain;border:1px solid var(--dz-line);border-radius:9px;background:#fff;margin-bottom:10px}.sheet-preview-picker small{display:block;color:var(--dz-muted);margin-top:7px}.sheet-preview-picker .preview-error{color:#a51f35}
.sheet-reader{margin-top:18px}.sheet-reader-image{display:flex;justify-content:center;align-items:flex-start;min-height:220px;background:#ececef;border:1px solid var(--dz-line);border-radius:14px;padding:14px;margin-bottom:12px}.sheet-reader-image img{max-width:100%;max-height:72vh;object-fit:contain;background:#fff;border-radius:7px;box-shadow:0 2px 12px rgba(0,0,0,.08)}

/* Core 0.11.14: Noten standardmäßig im App-ähnlichen Vorschaumodus anzeigen. */
.sheet-preview-open{appearance:none;border:0;padding:0;background:transparent;cursor:pointer;border-radius:9px}.sheet-preview-open:focus-visible{outline:3px solid rgba(187,12,44,.22);outline-offset:3px}.sheet-preview-open .sheet-preview-thumb{transition:transform .15s ease,box-shadow .15s ease}.sheet-preview-open:hover .sheet-preview-thumb{transform:scale(1.03);box-shadow:0 6px 18px rgba(0,0,0,.13)}
body.sheet-reader-open{overflow:hidden}.sheet-reader-overlay{position:fixed;inset:0;z-index:10000;background:rgba(20,22,25,.72);display:flex;align-items:center;justify-content:center;padding:18px}.sheet-reader-dialog{width:min(1000px,96vw);height:min(92vh,980px);background:#fff;border-radius:18px;box-shadow:0 26px 70px rgba(0,0,0,.32);display:flex;flex-direction:column;overflow:hidden}.sheet-reader-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--dz-line);background:#fff}.sheet-reader-head strong{display:block;font-size:1.05rem}.sheet-reader-head small{display:block;color:var(--dz-muted);margin-top:2px}.sheet-reader-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#eceeef;padding:16px 54px;overflow:auto}.sheet-reader-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.12);transition:opacity .12s ease}.sheet-reader-stage img.is-loading{opacity:.45}.sheet-reader-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:56px;border:0;border-radius:10px;background:rgba(255,255,255,.92);box-shadow:0 2px 12px rgba(0,0,0,.16);font-size:2rem;line-height:1;cursor:pointer}.sheet-reader-arrow:disabled{opacity:.25;cursor:default}.sheet-reader-arrow-left{left:9px}.sheet-reader-arrow-right{right:9px}.sheet-reader-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--dz-line);background:#fff}.sheet-reader-controls label{display:flex;align-items:center;gap:6px}.sheet-reader-controls input{width:78px}.sheet-reader-controls .muted{min-width:92px;text-align:center}@media(max-width:640px){.sheet-reader-overlay{padding:0}.sheet-reader-dialog{width:100vw;height:100vh;max-height:none;border-radius:0}.sheet-reader-stage{padding:10px 42px}.sheet-reader-arrow{width:32px;height:50px}.sheet-reader-controls{padding:10px}.sheet-reader-controls .btn{padding-left:9px;padding-right:9px}}

/* Core 0.11.14: Noten standardmäßig im App-ähnlichen Vorschaumodus anzeigen. */
.sheet-preview-open{appearance:none;border:0;padding:0;background:transparent;cursor:pointer;border-radius:9px}.sheet-preview-open:focus-visible{outline:3px solid rgba(187,12,44,.22);outline-offset:3px}.sheet-preview-open .sheet-preview-thumb{transition:transform .15s ease,box-shadow .15s ease}.sheet-preview-open:hover .sheet-preview-thumb{transform:scale(1.03);box-shadow:0 6px 18px rgba(0,0,0,.13)}
body.sheet-reader-open{overflow:hidden}.sheet-reader-overlay{position:fixed;inset:0;z-index:10000;background:rgba(20,22,25,.72);display:flex;align-items:center;justify-content:center;padding:18px}.sheet-reader-dialog{width:min(1000px,96vw);height:min(92vh,980px);background:#fff;border-radius:18px;box-shadow:0 26px 70px rgba(0,0,0,.32);display:flex;flex-direction:column;overflow:hidden}.sheet-reader-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--dz-line);background:#fff}.sheet-reader-head strong{display:block;font-size:1.05rem}.sheet-reader-head small{display:block;color:var(--dz-muted);margin-top:2px}.sheet-reader-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#eceeef;padding:16px 54px;overflow:auto}.sheet-reader-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.12);transition:opacity .12s ease}.sheet-reader-stage img.is-loading{opacity:.45}.sheet-reader-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:56px;border:0;border-radius:10px;background:rgba(255,255,255,.92);box-shadow:0 2px 12px rgba(0,0,0,.16);font-size:2rem;line-height:1;cursor:pointer}.sheet-reader-arrow:disabled{opacity:.25;cursor:default}.sheet-reader-arrow-left{left:9px}.sheet-reader-arrow-right{right:9px}.sheet-reader-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--dz-line);background:#fff}.sheet-reader-controls label{display:flex;align-items:center;gap:6px}.sheet-reader-controls input{width:78px}.sheet-reader-controls .muted{min-width:92px;text-align:center}@media(max-width:640px){.sheet-reader-overlay{padding:0}.sheet-reader-dialog{width:100vw;height:100vh;max-height:none;border-radius:0}.sheet-reader-stage{padding:10px 42px}.sheet-reader-arrow{width:32px;height:50px}.sheet-reader-controls{padding:10px}.sheet-reader-controls .btn{padding-left:9px;padding-right:9px}}

/* Sheet music tile view */
.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:14px}.sheet-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--dz-line);border-radius:16px;background:#fff;min-width:0;box-shadow:0 2px 8px rgba(0,0,0,.03)}.sheet-card-cover-wrap{position:relative;padding:14px 14px 0}.sheet-card-cover{display:block;width:100%;height:280px;border:1px solid var(--dz-line);border-radius:14px;background:#fafafa;overflow:hidden}.sheet-card-cover.is-empty{display:flex;align-items:center;justify-content:center;color:var(--dz-muted);font-size:13px;font-weight:700}.sheet-card-cover-image{display:block;width:100%;height:100%;object-fit:cover;background:#fff}.sheet-card-badges{position:absolute;top:24px;right:24px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sheet-card-body{display:flex;flex:1;flex-direction:column;padding:14px}.sheet-card-body h3{margin:0 0 5px;font-size:18px;line-height:1.2;word-break:break-word}.sheet-card-meta{margin:0;color:var(--dz-muted);font-size:12px;line-height:1.45}.sheet-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0 8px}.sheet-card-tag{display:inline-flex;align-items:center;border:1px solid var(--dz-line);border-radius:999px;padding:4px 8px;background:#fafafa;font-size:11px;font-weight:700;color:var(--dz-muted)}.sheet-card-note{margin:0 0 12px;font-size:12px;line-height:1.45;color:var(--dz-ink)}.sheet-card-note.muted{color:var(--dz-muted)}.sheet-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.sheet-card-actions form{margin:0}.teacher-sheet-grid .sheet-card-cover{height:305px}.portal-sheet-grid .sheet-card-cover{height:290px}@media(max-width:700px){.sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sheet-card-cover,.teacher-sheet-grid .sheet-card-cover,.portal-sheet-grid .sheet-card-cover{height:220px}.sheet-card-body{padding:12px}.sheet-card-body h3{font-size:16px}}@media(max-width:480px){.sheet-grid{grid-template-columns:1fr}.sheet-card-cover,.teacher-sheet-grid .sheet-card-cover,.portal-sheet-grid .sheet-card-cover{height:260px}}
.sheet-card-grant{margin:2px 0 12px;border:1px solid #e5c0c7;border-radius:12px;background:#fff8f9;overflow:hidden}.sheet-card-grant>summary{list-style:none;cursor:pointer;padding:9px 10px;font-size:12px;font-weight:800;color:var(--dz-red)}.sheet-card-grant>summary::-webkit-details-marker{display:none}.sheet-card-grant>summary:after{content:'⌄';float:right}.sheet-card-grant[open]>summary:after{transform:rotate(180deg)}.sheet-card-grant form{display:grid;gap:8px;padding:0 10px 10px}.sheet-card-grant label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}.sheet-card-grant select,.sheet-card-grant input{min-height:36px;padding:7px 8px}.sheet-card-grant .btn{width:100%}

/* Compact teacher sheet-music actions */
.sheet-icon-action{width:42px!important;height:38px!important;min-width:42px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:19px!important;line-height:1!important;text-decoration:none!important}.sheet-card-grant-icon{display:inline-block;margin:0 0 8px}.sheet-card-grant-icon>summary.sheet-icon-action{list-style:none;border:1px solid var(--dz-red);border-radius:10px;background:#fff;color:var(--dz-red);cursor:pointer;font-weight:800}.sheet-card-grant-icon>summary.sheet-icon-action::-webkit-details-marker{display:none}.sheet-card-grant-icon[open]{display:block;width:100%;border:1px solid var(--dz-line);border-radius:12px;padding:8px;background:#fafafa}.sheet-card-grant-icon[open]>summary.sheet-icon-action{margin-bottom:8px}.sheet-card-grant-icon form{display:grid;gap:8px}.sheet-card-grant-icon form label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}

/* Core 0.11.19: kompakte Notenaktionen; Geschenkformular klappt unter der Symbolzeile auf. */
.sheet-card-actions-compact{display:flex;flex-wrap:nowrap;align-items:center;gap:8px}.sheet-card-actions-compact>form{display:flex;margin:0}.sheet-card-actions-compact .sheet-icon-action:disabled{opacity:.38;cursor:default}.sheet-card-grant-panel{margin-top:10px;padding:10px;border:1px solid #e5c0c7;border-radius:12px;background:#fff8f9}.sheet-card-grant-panel[hidden]{display:none}.sheet-card-grant-panel form{display:grid;gap:8px}.sheet-card-grant-panel label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}.sheet-card-grant-panel select,.sheet-card-grant-panel input{min-height:36px;padding:7px 8px}.sheet-card-grant-panel .btn{width:100%}

/* Core 0.12.0 – Tanzlehrerbereich */
.teacher-area-switch{display:flex;gap:5px;align-items:center}.dance-dashboard-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.dance-dashboard-main{margin-top:18px}.dance-course-list,.dance-date-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}.dance-course-row,.dance-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--dz-line);border-radius:13px;padding:12px 14px;background:#fafafa}.dance-course-row strong,.dance-course-row small{display:block}.dance-course-row small{color:var(--dz-muted);margin-top:3px}.dance-course-row-meta{text-align:right;display:flex;flex-direction:column;gap:3px}.dance-course-row-meta span{font-size:12px;color:var(--dz-muted)}.dance-date-row{grid-template-columns:95px minmax(0,1fr) auto}.dance-date-row time{display:flex;flex-direction:column}.dance-date-row time strong{font-size:16px}.dance-date-row time span{font-size:12px;color:var(--dz-muted);margin-top:2px}.dance-date-row>div strong,.dance-date-row>div small{display:block}.dance-date-row>div small{color:var(--dz-muted);margin-top:3px}.dance-course-filter{grid-template-columns:minmax(220px,320px) auto;justify-content:start}.dance-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.dance-course-card{border:1px solid var(--dz-line);border-radius:15px;background:#fff;padding:15px}.dance-course-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dance-course-card-head h3{margin:3px 0 0;font-size:19px}.dance-course-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:12px 0;font-size:12px;color:var(--dz-muted)}.dance-course-facts b{color:var(--dz-ink)}.dance-course-notes{font-size:12px;line-height:1.45;background:#fafafa;border:1px solid var(--dz-line);border-radius:10px;padding:9px 10px}.dance-participant-list{padding-top:10px}.dance-teacher-nav{justify-content:flex-start}@media(max-width:1180px){.dance-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.dance-course-grid{grid-template-columns:1fr}.dance-course-facts{grid-template-columns:1fr}.teacher-area-switch{width:100%}.teacher-area-switch .btn{flex:1}}@media(max-width:700px){.dance-dashboard-grid{grid-template-columns:1fr 1fr}.dance-date-row{grid-template-columns:72px minmax(0,1fr)}.dance-date-row>.status-badge{grid-column:2;justify-self:start}.dance-course-row{grid-template-columns:1fr}.dance-course-row-meta{text-align:left}.dance-course-filter{grid-template-columns:1fr}}@media(max-width:480px){.dance-dashboard-grid{grid-template-columns:1fr}}

/* Core 0.12.1 – Admin Tanzschule */
.dance-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.dance-admin-stats>.editor-card{margin:0;padding:15px}.dance-admin-stats span,.dance-admin-stats small,.dance-admin-stats strong{display:block}.dance-admin-stats span{font-size:24px}.dance-admin-stats small{color:var(--dz-muted);margin:5px 0 2px}.dance-admin-stats strong{font-size:24px}.dance-admin-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.72fr);gap:18px;align-items:start}.dance-admin-main{display:flex;flex-direction:column;gap:18px}.dance-admin-editor{display:flex;flex-direction:column;gap:14px;position:sticky;top:116px}.dance-admin-editor>.editor-card{margin:0}.dance-admin-filter{grid-template-columns:minmax(230px,320px) auto auto;justify-content:start}.dance-admin-course-list,.dance-teacher-list,.dance-admin-date-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}.dance-admin-course-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;border:1px solid var(--dz-line);border-radius:14px;padding:12px 14px;background:#fafafa}.dance-admin-course-main strong,.dance-admin-course-main small{display:block}.dance-admin-course-main small{color:var(--dz-muted);margin-top:3px}.dance-admin-course-facts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--dz-muted)}.dance-admin-course-actions{display:flex;align-items:center;gap:8px}.dance-teacher-card{border:1px solid var(--dz-line);border-radius:14px;padding:13px 14px;background:#fff}.dance-teacher-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dance-teacher-head strong,.dance-teacher-head small{display:block}.dance-teacher-head small{color:var(--dz-muted);margin-top:3px}.dance-role-checks{display:flex;flex-wrap:wrap;gap:5px 14px;margin:10px 0}.dance-role-checks .check-row{margin:0}.dance-teacher-create{margin-top:14px}.dance-admin-date-list .simple-data-row.is-muted{opacity:.55}.dance-admin-editor code{font-size:11px}@media(max-width:1100px){.dance-admin-layout{grid-template-columns:1fr}.dance-admin-editor{position:static}.dance-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.dance-admin-course-row{grid-template-columns:1fr}.dance-admin-course-facts{align-items:flex-start}.dance-admin-course-actions{justify-content:space-between}.dance-admin-filter{grid-template-columns:1fr}.dance-admin-stats{grid-template-columns:1fr 1fr}}@media(max-width:480px){.dance-admin-stats{grid-template-columns:1fr}}

/* Core 0.12.2 – Tanz-Bestandsübernahme */
.dance-migration-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 14px}.dance-migration-stats>div{border:1px solid var(--dz-line);border-radius:13px;background:#fafafa;padding:12px}.dance-migration-stats strong,.dance-migration-stats span{display:block}.dance-migration-stats strong{font-size:24px;color:var(--dz-red)}.dance-migration-stats span{font-size:11px;color:var(--dz-muted);margin-top:3px}.dance-teacher-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.dance-migration-list{padding:10px 12px}.dance-migration-list .simple-data-row{border-bottom:1px solid var(--dz-line);padding:9px 0}.dance-migration-list .simple-data-row:last-child{border-bottom:0}@media(max-width:700px){.dance-migration-stats{grid-template-columns:1fr 1fr}.dance-teacher-map-grid{grid-template-columns:1fr}}@media(max-width:480px){.dance-migration-stats{grid-template-columns:1fr}}

/* Dance bookings, RSVP and attendance */
.dance-migration-stats-secondary{grid-template-columns:repeat(4,minmax(0,1fr))}.dance-student-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.dance-student-map-grid label>small{display:block;color:var(--dz-muted);margin:3px 0 6px}.dance-session-work-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.dance-session-work-card{border:1px solid var(--dz-line);border-radius:15px;background:#fff;padding:14px}.dance-session-work-head{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:14px;align-items:start}.dance-session-work-head time{display:flex;flex-direction:column}.dance-session-work-head time strong{font-size:17px}.dance-session-work-head time span{font-size:12px;color:var(--dz-muted);margin-top:2px}.dance-session-work-head h3{margin:3px 0 2px;font-size:18px}.dance-session-work-head small{color:var(--dz-muted)}.dance-session-counts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.dance-attendance-grid{display:flex;flex-direction:column;gap:7px;padding-top:10px}.dance-attendance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--dz-line);border-radius:11px;padding:9px 10px;background:#fafafa}.dance-attendance-row strong,.dance-attendance-row small{display:block}.dance-attendance-row small{color:var(--dz-muted);margin-top:2px}.dance-admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));flex-wrap:wrap}@media(max-width:900px){.dance-migration-stats-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}.dance-session-work-head{grid-template-columns:75px minmax(0,1fr)}.dance-session-counts{grid-column:2;justify-content:flex-start}.dance-student-map-grid{grid-template-columns:1fr}}@media(max-width:560px){.dance-session-work-head{grid-template-columns:1fr}.dance-session-counts{grid-column:auto}.dance-attendance-row{align-items:stretch;flex-direction:column}.dance-attendance-row .btn{width:100%}}
.dance-admin-date-card{border:1px solid var(--dz-line);border-radius:13px;background:#fff;padding:8px 10px}.dance-admin-date-card.is-muted{opacity:.58}.dance-admin-date-card>.choice-dropdown{margin-top:7px}

/* 0.12.7 – Tanzschule: kompakter Adminbereich, unabhängiger Editor, Buchungsparteien */
.dance-admin-editor{max-height:calc(100vh - 132px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}.dance-admin-collapsible{padding:0;overflow:hidden}.dance-admin-collapsible>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:17px 18px}.dance-admin-collapsible>summary::-webkit-details-marker{display:none}.dance-admin-collapsible>summary span:first-child{display:flex;flex-direction:column;gap:3px}.dance-admin-collapsible>summary strong{font-size:18px}.dance-admin-collapsible>summary small{color:var(--dz-muted)}.dance-admin-collapsible>summary:after{content:'⌄';color:var(--dz-red);font-size:18px;margin-left:4px}.dance-admin-collapsible[open]>summary{border-bottom:1px solid var(--dz-line)}.dance-admin-collapsible[open]>summary:after{transform:rotate(180deg)}.dance-admin-collapsible-body{padding:16px 18px 18px}.dance-admin-course-row{grid-template-columns:minmax(0,1fr) auto;padding:0;overflow:hidden}.dance-admin-course-open{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;color:inherit;text-decoration:none;padding:12px 14px;min-width:0}.dance-admin-course-open:hover{background:#fff6f7}.dance-admin-course-row.is-selected{border-color:#d59aa7;background:#fff8f9;box-shadow:0 0 0 2px rgba(187,12,44,.08)}.dance-admin-course-row.is-past{opacity:.72}.dance-admin-course-actions{padding:0 12px 0 0;position:relative;z-index:2}.dance-admin-course-facts b{color:var(--dz-ink)}.dance-course-date{color:var(--dz-red)!important;font-weight:800}.dance-past-courses{margin-top:12px}.dance-past-courses .dance-admin-course-list{margin:8px 0}.dance-course-detail{border:1px solid #e3b6bf;background:#fffafb}.dance-course-detail h2{margin:4px 0 12px}.dance-course-detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;font-size:12px;margin-bottom:14px}.dance-course-detail-facts span{border:1px solid var(--dz-line);background:#fff;border-radius:10px;padding:8px 9px}.dance-detail-heading{font-size:16px;margin:15px 0 8px}.dance-booking-party-list{display:flex;flex-direction:column;gap:9px}.dance-booking-party{border:1px solid var(--dz-line);border-radius:12px;background:#fff;padding:10px 11px}.dance-booking-party-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.dance-booking-party-head strong,.dance-booking-party-head small{display:block}.dance-booking-party-head small{margin-top:2px;color:var(--dz-muted)}.dance-booking-members{margin:8px 0 0;padding-left:22px}.dance-booking-members li{padding:5px 0}.dance-booking-members strong,.dance-booking-members small{display:block}.dance-booking-members small{font-size:11px;color:var(--dz-muted);margin-top:2px}.dance-booking-model-note{font-size:11px;margin:10px 0 0}.dance-past-dates{margin-top:12px}.dance-past-dates .dance-admin-date-list{margin:7px 0}.dance-admin-date-list .simple-data-row.is-muted{opacity:.62}.dance-admin-main>.editor-card,.dance-admin-main>details.editor-card{margin:0}
@media(max-width:1100px){.dance-admin-editor{max-height:none;overflow:visible;padding-right:0}.dance-admin-course-open{grid-template-columns:1fr}.dance-admin-course-facts{align-items:flex-start}.dance-course-detail-facts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.dance-course-detail-facts{grid-template-columns:1fr}.dance-booking-party-head{flex-direction:column}.dance-admin-course-actions{padding:0 12px 12px;justify-content:flex-start}.dance-admin-course-open{padding-bottom:8px}}

/* Dance cards & credit */
.dance-admin-top-actions{margin:-8px 0 14px}.dance-card-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.dance-card-admin-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:18px;align-items:start}.dance-card-editor-col{display:flex;flex-direction:column;gap:16px;position:sticky;top:116px}.dance-card-customer-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:68vh;overflow:auto;padding-right:3px}.dance-card-customer-row{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;color:var(--dz-ink);border:1px solid var(--dz-line);border-radius:12px;padding:10px 12px;background:#fafafa}.dance-card-customer-row:hover,.dance-card-customer-row.is-selected{border-color:#d79aa7;background:#fff7f8}.dance-card-customer-row strong,.dance-card-customer-row small{display:block}.dance-card-customer-row small{color:var(--dz-muted);margin-top:2px}.dance-card-mini-balances{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.dance-card-mini-balances span{font-size:10px;border:1px solid var(--dz-line);border-radius:999px;padding:3px 6px;background:#fff}.dance-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dance-product-grid form{margin:0}.dance-product-card{width:100%;height:100%;text-align:left;border:1px solid var(--dz-line);border-radius:12px;padding:11px 12px;background:#fafafa;cursor:pointer}.dance-product-card:hover{border-color:#d79aa7;background:#fff7f8}.dance-product-card strong,.dance-product-card span{display:block}.dance-product-card span{font-size:11px;color:var(--dz-muted);margin-top:3px}.dance-card-balance-preview{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.dance-card-balance-preview span{border:1px solid var(--dz-line);background:#fafafa;border-radius:999px;padding:6px 9px;font-size:12px}.dance-card-lookup{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end}.dance-teacher-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.dance-teacher-balance-card{border:1px solid var(--dz-line);border-radius:14px;background:#fafafa;padding:12px;display:flex;flex-direction:column;gap:4px}.dance-teacher-balance-card strong{font-size:28px;color:var(--dz-red)}.dance-teacher-balance-card small{color:var(--dz-muted);margin-bottom:6px}
@media(max-width:1050px){.dance-card-admin-layout{grid-template-columns:1fr}.dance-card-editor-col{position:static}.dance-card-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.dance-card-stats{grid-template-columns:1fr 1fr}.dance-product-grid,.dance-teacher-balance-grid{grid-template-columns:1fr}.dance-card-lookup{grid-template-columns:1fr}}

/* Dance attendance + restored participant directory */
.dance-card-teacher-layout{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(420px,1.15fr);gap:18px;align-items:start}.dance-card-teacher-layout .dance-card-editor-col{display:flex;flex-direction:column;gap:14px}.dance-attendance-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:18px;align-items:start}.dance-attendance-offerings{display:flex;gap:8px;flex-wrap:wrap}.dance-attendance-qr-wrap{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);gap:22px;align-items:center;margin:12px 0 18px}.dance-attendance-qr-wrap img{width:100%;height:auto;display:block;border:1px solid var(--dz-line);border-radius:18px;background:#fff;padding:14px}.dance-attendance-countdown{display:inline-flex;margin-top:10px;border-radius:12px;padding:8px 12px;background:#f7f7f8;font-size:24px;font-weight:900;font-variant-numeric:tabular-nums}.dance-attendance-customer-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.dance-attendance-customer-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--dz-line);border-radius:12px;padding:10px 12px;background:#fafafa}.dance-attendance-customer-row strong,.dance-attendance-customer-row small{display:block}.dance-attendance-customer-row small{color:var(--dz-muted);margin-top:2px}.dance-attendance-customer-row form{margin:0}.dance-attendance-steps{padding-left:20px;margin:0}.dance-attendance-steps li{margin:7px 0}.dance-attendance-scan-card video,#danceCardScanBox video{display:block;width:100%;max-height:380px;object-fit:cover;background:#111;border-radius:14px;margin:12px 0}.dance-attendance-portal-balances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dance-attendance-portal-balances>div{border:1px solid var(--dz-line);border-radius:14px;padding:12px;background:#fafafa}.dance-attendance-portal-balances span,.dance-attendance-portal-balances strong,.dance-attendance-portal-balances small{display:block}.dance-attendance-portal-balances strong{font-size:26px;margin:4px 0}.dance-attendance-portal-balances small{color:var(--dz-muted)}
@media(max-width:980px){.dance-card-teacher-layout,.dance-attendance-layout{grid-template-columns:1fr}.dance-attendance-qr-wrap{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:650px){.dance-attendance-qr-wrap{grid-template-columns:1fr}.dance-attendance-qr-wrap img{max-width:330px;margin:auto}.dance-attendance-portal-balances{grid-template-columns:1fr 1fr}.dance-attendance-customer-row{align-items:stretch;flex-direction:column}.dance-attendance-customer-row .btn{width:100%}}
@media(max-width:430px){.dance-attendance-portal-balances{grid-template-columns:1fr}}

/* 0.12.12: Lehrerbereich-Umschalter im Admin-Header auch auf kleinen Displays sichtbar halten. */
.switch-label-mobile{display:none}.admin-top-actions .admin-teacher-switch{white-space:nowrap}@media(max-width:580px){.admin-top-actions .admin-teacher-switch{display:inline-flex!important}.admin-teacher-switch .switch-label-desktop{display:none}.admin-teacher-switch .switch-label-mobile{display:inline}.admin-top-actions{gap:6px}.admin-top-actions .admin-teacher-switch{padding-left:10px;padding-right:10px}}

/* Mobile overflow + QR scanner */
html,body{max-width:100%;overflow-x:hidden}.admin-nav{max-width:100vw;box-sizing:border-box;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.admin-nav a{flex:0 0 auto}.dz-qr-scanner{position:relative;width:100%;max-width:560px;margin:10px 0;border-radius:16px;overflow:hidden;background:#111;aspect-ratio:4/3}.dz-qr-video{display:block;width:100%;height:100%;object-fit:cover;background:#111}.dz-qr-guide{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.92);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.22);pointer-events:none}.dz-qr-status.is-success{color:#1f6840;font-weight:800}@media(max-width:700px){.admin-nav{width:100%;padding-left:10px!important;padding-right:10px!important;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-shell,.teacher-shell{max-width:100%;box-sizing:border-box}.admin-top{max-width:100vw;box-sizing:border-box}.admin-top-actions{min-width:0;flex-wrap:nowrap}.dz-qr-scanner{max-width:100%;aspect-ratio:3/4}}
.dz-qr-video-simple{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;background:#000;border-radius:14px;margin:10px 0}.dz-qr-video-simple+.dz-qr-status{margin-top:8px}

/* 0.12.17: Tanzlehrer-Stempeluhr und Honorar */
.teacher-clock-card{max-width:760px}.teacher-clock-manual{margin-top:16px;padding-top:14px;border-top:1px solid var(--dz-line)}.teacher-clock-print{max-width:620px;text-align:center;margin:24px auto}.teacher-clock-print img{display:block;width:min(360px,80vw);height:auto;margin:22px auto;border:12px solid #fff;box-shadow:0 0 0 1px var(--dz-line)}.teacher-clock-print code{display:block;margin-top:18px;font-size:11px;color:var(--dz-muted)}.dance-payroll-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.dance-payroll-summary>div{border:1px solid var(--dz-line);border-radius:14px;padding:12px;background:#fafafa}.dance-payroll-summary span,.dance-payroll-summary strong{display:block}.dance-payroll-summary span{font-size:11px;color:var(--dz-muted)}.dance-payroll-summary strong{font-size:20px;margin-top:3px}.dance-payroll-row{align-items:center}@media(max-width:700px){.dance-payroll-summary{grid-template-columns:1fr}.dance-payroll-row{align-items:stretch;flex-direction:column}.dance-payroll-row form,.dance-payroll-row button{width:100%}}@media print{.no-print,.admin-top,.admin-nav{display:none!important}.teacher-clock-print{box-shadow:none;border:0}.teacher-clock-print img{width:320px}.admin-shell{width:100%;margin:0;padding:0}}
.dance-teacher-rate-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--dz-line)}
