.badge.department_head{background:#e0f2fe;color:#075985}
.booking.substitution{border-left-color:#b45309!important;background:#fef3c7!important}
.sub-subtitle{font-size:.75rem}
.department-head-mapping{margin-top:18px;border:1px solid var(--line);border-radius:12px;padding:14px}
.department-head-mapping legend{font-weight:750}
.department-head-mapping .department-options{max-height:160px}
.department-admin-box{margin-bottom:24px}
.department-admin-box>.card-top{margin-bottom:18px}
.department-admin-box h3{margin:0}
.department-admin-box p{max-width:78ch}
.department-admin-box .card{background:var(--soft)}
.sub-wide-dialog{width:min(900px,100%)}
.department-mapping{margin-top:22px}
.department-mapping fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.department-mapping legend{font-weight:750;padding:0 5px}
.department-options{max-height:350px;overflow:auto;margin-top:12px}
.department-choice{display:flex;gap:10px;align-items:center;padding:9px 5px;border-bottom:1px solid var(--line);cursor:pointer;margin:0;font-weight:500}
.department-choice input,.sub-check input{width:18px;height:18px;min-height:0;flex-shrink:0;accent-color:var(--blue)}
.department-choice strong,.department-choice small{display:block}
.department-choice small{color:var(--muted);font-size:.78rem}
.sub-check{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;margin:0}

/* Keep the weekly plan close to the top; editing controls open on demand. */
#page-substitution>.page-head{align-items:center;gap:12px;margin-bottom:10px}
#page-substitution>.page-head h2{font-size:1.55rem;margin-bottom:0}
#page-substitution .actions{gap:6px;justify-content:flex-end}
#page-substitution>.page-head .btn,.sub-controls .btn{min-height:34px;padding:6px 10px;font-size:.8rem;border-radius:8px}
#page-substitution .btn-icon{width:32px;padding:0}
.sub-controls{gap:8px;padding:9px 10px;border-radius:11px;margin-bottom:9px}
.sub-controls .field{min-width:0;flex:0 1 185px}
.sub-controls .field:nth-child(2){flex-basis:145px}
.sub-controls label{font-size:.72rem;margin-bottom:3px}
.sub-controls .input,.sub-controls select{min-height:34px;padding:6px 8px;border-radius:7px;font-size:.81rem}
.sub-controls .week-nav{gap:4px}
.sub-controls #subStatus{margin-left:auto;max-width:190px;font-size:.72rem;line-height:1.3;color:var(--muted)}
.sub-planning-details{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}
.sub-planning-details>summary{display:flex;align-items:center;gap:14px;padding:9px 11px;cursor:pointer;list-style:none;font-size:.82rem}
.sub-planning-details>summary::-webkit-details-marker{display:none}
.sub-planning-details>summary>strong{white-space:nowrap}
.sub-details-toggle{margin-left:auto;color:var(--muted);flex-shrink:0}
.sub-details-toggle::before{content:"Öffnen ＋";font-size:.74rem}
.sub-planning-details[open] .sub-details-toggle::before{content:"Schließen −"}
.sub-planning-details[open]>summary{border-bottom:1px solid var(--line);background:var(--soft)}
.sub-metrics{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin:0}
.sub-metric{white-space:nowrap;color:var(--muted);font-size:.75rem}
.sub-metric b{font-size:.82rem;color:var(--ink)}
.sub-metric-open,.sub-metric-open b{color:#885607}
.sub-editor-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:12px;padding:11px}
.sub-editor-grid .card{padding:12px;border-radius:10px;min-width:0}
.sub-editor-grid h3{margin:0 0 9px;font-size:.94rem}
.sub-editor-grid .grid-2{gap:8px}
.sub-editor-grid .field{margin-bottom:9px}
.sub-editor-grid label{font-size:.76rem;margin-bottom:4px}
.sub-editor-grid .input,.sub-editor-grid select,.sub-editor-grid textarea{min-height:34px;padding:6px 8px;border-radius:7px;font-size:.8rem}
.sub-editor-grid .btn{min-height:32px;padding:6px 9px;font-size:.8rem}
.sub-editor-grid .hint{font-size:.75rem;margin:0 0 8px}
.sub-absence-list{margin-top:10px;display:grid;gap:6px;max-height:135px;overflow:auto}
.sub-absence-item{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--soft)}
.sub-absence-item strong,.sub-absence-item small{display:block}
.sub-absence-item strong{font-size:.8rem}
.sub-absence-item small{color:var(--muted);font-size:.72rem;margin-top:3px}
.sub-affected{max-height:145px;overflow:auto;display:grid;gap:5px}
.sub-affected-item{display:flex;gap:8px;align-items:center;justify-content:space-between;width:100%;text-align:left;border:1px solid #edd8a1;border-left:3px solid #d19524;border-radius:7px;padding:7px 8px;background:#fffcf4;color:var(--ink);font-size:.8rem}
.sub-affected-item.resolved{border-color:#b5d9cd;border-left-color:var(--teal);background:#f0fdf8}
.sub-affected-item:hover{box-shadow:0 2px 9px #10223514}
.sub-affected-item strong,.sub-affected-item small{display:block}
.sub-affected-item small{font-size:.72rem;color:var(--muted);margin-top:2px}
.sub-affected-item .badge{white-space:nowrap;font-size:.68rem;padding:3px 6px}
.sub-editor-grid .sub-notes-field{margin:10px 0 0}
.sub-editor-grid #subNotes{height:54px;min-height:54px}
.sub-plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:0}
.sub-plan-head>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sub-plan-head h3{font-size:1.03rem;margin:0}
.sub-plan-head p{margin:0;color:var(--muted);font-size:.79rem}
.sub-plan-options{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;justify-content:flex-end}
.sub-layout-choice{display:flex;align-items:center;gap:6px;margin:0;font-size:.75rem;font-weight:600}
.sub-layout-choice select{min-height:30px;padding:4px 7px;border-radius:6px;font-size:.75rem;max-width:220px}
.sub-legend{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0;font-size:.67rem}
.sub-legend>span{padding:2px 6px;border:1px solid #cbd5e1;border-radius:4px}
.sub-week-card{margin-bottom:12px;border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;min-width:0}
.sub-week-card h4{display:flex;align-items:center;gap:10px;margin:0;padding:6px 10px;background:#e2e8f0;color:var(--ink);font-size:.89rem;overflow-wrap:anywhere}
.sub-week-card h4>span{font-size:.69rem;font-weight:500;color:var(--muted)}
.sub-table-wrap{overflow:auto;max-width:100%;scrollbar-width:thin}
.sub-table{border-collapse:collapse;width:100%;table-layout:fixed;min-width:680px;font-size:.79rem;background:#f3f6fa}
.sub-table th,.sub-table td{border:1px solid #d5dfea;padding:3px;text-align:center;vertical-align:middle}
.sub-table th{background:#e2e8f0;font-weight:750;padding:5px;overflow-wrap:anywhere}
.sub-table thead th{padding:6px;font-size:.82rem}
.sub-table thead th.sub-period-heading{white-space:nowrap;padding-left:2px;padding-right:2px}
.sub-table th:first-child{width:36px}
.sub-table tbody>tr>th{height:28px;font-size:.75rem}
.sub-table tbody>tr>th.sub-period-label{background:#edf2f7;font-size:.77rem;font-weight:550;height:27px;padding:3px}
.sub-weekday small{display:inline-block;font-size:.67rem;color:var(--muted);font-weight:500;margin-left:5px}
.sub-table thead{display:table-header-group}
.sub-lesson-cell{padding:2px 4px!important}
/* Shared cell layout: changing orientation must not change lesson styling. */
.sub-entries{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:1px 4px}
.sub-entries>.sub-entry{flex:0 1 auto;min-width:0;max-width:100%}
.sub-cell{display:block;width:auto;max-width:100%;margin:0;text-align:center;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--ink);padding:2px 3px;line-height:1.3;overflow-wrap:anywhere;font-size:inherit;cursor:pointer}
.sub-cell .sub-teaching-line{display:inline}
.sub-cell .sub-teacher{display:inline;font-size:inherit;font-weight:750}
.sub-cell .sub-lesson-detail{display:inline;font-size:.93em;font-weight:450;color:#52647a}
.sub-cell .sub-original-teacher{display:inline;font-size:.9em;color:#65758a;text-decoration:line-through}
.sub-cell .sub-teacher-arrow{color:#65758a;font-size:.9em}
.sub-cell .sub-state-label{display:block;font-size:.65rem;font-weight:650;margin-top:2px}
.sub-cell small{display:block;font-size:.66rem;margin-top:2px;white-space:pre-line}
.sub-cell:hover,.sub-cell:focus-visible{outline:2px solid var(--blue);outline-offset:0;background:#e4edf7}
.sub-empty{color:#bdc9d4}
.sub-class-overview{border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:10px;min-width:0}
.sub-class-table col.sub-day-col{width:88px}
.sub-class-table col.sub-period-col{width:36px}
.sub-class-table th:first-child{width:auto}
.sub-class-table tbody>tr>th.sub-day-label{background:#edf2f7;font-size:.8rem;font-weight:750;padding:6px}
.sub-day-label small{display:block;font-size:.7rem;font-weight:450;margin-top:3px;color:var(--muted)}
.sub-class-table tbody+tbody{border-top:8px solid #fff}
.sub-parallel-plus{color:#718096;font-size:.85em;line-height:1.3;padding-top:3px;flex-shrink:0}
.sub-print-notes{display:none}
.sub-layout-hint{margin:5px 0 0;font-size:.73rem}
.sub-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sub-cell[draggable=true]{cursor:grab}
.sub-cell[draggable=true]:active{cursor:grabbing}
.sub-cell.sub-picked{outline:3px solid #0284c7;background:#e0f2fe}
.sub-lesson-cell.sub-drop-target{outline:3px solid #0284c7;outline-offset:-3px;background:#dff4ff}
.sub-lesson-cell[tabindex]:focus-visible{outline:3px solid #0284c7;outline-offset:-3px}
.sub-vacated{background:#eef2f6;color:#65758a;font-size:.72rem}
.sub-vacated small{font-size:.64rem}
.sub-plan-options>.btn{min-height:30px;padding:4px 7px;font-size:.75rem}
.sub-drag-context{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.sub-drag-context>div{border:1px solid var(--line);border-radius:8px;padding:10px;min-width:0;background:var(--soft)}
.sub-drag-context p{margin:5px 0 0;font-size:.83rem;overflow-wrap:anywhere}
.sub-extra-teaching{margin:0 0 12px}
.sub-action-item{padding:10px 0;border-bottom:1px solid var(--line)}
.sub-action-item h3{font-size:1rem;margin:0 0 7px}
.sub-action-item p{font-size:.85rem;overflow-wrap:anywhere}
.sub-mail-recipients,.sub-mail-changes{font-size:.82rem;max-height:190px;overflow:auto;overflow-wrap:anywhere;margin-bottom:14px}
.sub-mail-changes>summary{cursor:pointer;font-weight:700;padding:8px 0}
#subMailText{font-size:.8rem;min-height:170px}
.sub-mail-links{display:flex;flex-wrap:wrap;gap:8px}
.sub-mail-links>p{flex-basis:100%}
@media(max-width:600px){.sub-drag-context{grid-template-columns:1fr}#page-substitution>.page-head .actions{flex-wrap:wrap}}
.sub-legend .aenderung,.sub-cell.aenderung{background:#cffafe;border-color:#7dd3fc;color:#155e75}
.sub-legend .open,.sub-cell.open{background:#fff1cb;border-color:#e4ba57;color:#774a05}
.sub-legend .vertretung,.sub-cell.vertretung{background:#fef9c3;border-color:#ddcd6f;color:#624d04}
.sub-legend .ausfall,.sub-cell.ausfall{background:#fee2e2;border-color:#efb2ae;color:#991b1b}
.sub-cell.ausfall .sub-teacher{text-decoration:line-through}
.sub-legend .vorziehen,.sub-cell.vorziehen{background:#dbeafe;border-color:#a9c6ef;color:#1e40af}
.sub-legend .mitfuehrung,.sub-cell.mitfuehrung{background:#ffedd5;border-color:#ecc18a;color:#9a3412}
.sub-legend .tausch,.sub-cell.tausch{background:#f3e8ff;border-color:#d2b8ee;color:#6b21a8}
.sub-legend .stattfinden,.sub-cell.stattfinden{background:#dcfce7;border-color:#a0d9b2;color:#166534}
.sub-legend .sonstiges,.sub-cell.sonstiges{background:#e2e8f0;border-color:#bac8d9;color:#334155}
.month-event.department,.event-day-item.department{border-left-color:#0284c7;background:#e0f2fe}
/* The shared 90rem width in styles.css also applies to the substitution plan. */
@media(max-width:1050px){
 .sub-controls #subStatus{margin-left:0;max-width:none}
 .sub-editor-grid{grid-template-columns:1fr}
 .department-admin-box>.card-top{flex-wrap:wrap}
}
@media(max-width:900px){
 #page-substitution>.page-head{flex-direction:row;flex-wrap:wrap;align-items:center}
 .sub-plan-head{flex-wrap:wrap;gap:6px}
 .sub-plan-options{justify-content:flex-start}
}
@media(max-width:600px){
 #page-substitution>.page-head h2{font-size:1.35rem}
 #page-substitution .actions{justify-content:flex-start;flex-wrap:wrap}
 .sub-controls{display:flex;flex-wrap:wrap}
 .sub-controls .field{flex:1 1 135px}
 .sub-controls .week-nav{justify-content:flex-start}
 .sub-controls #subStatus{flex-basis:100%}
 .sub-planning-details>summary{flex-wrap:wrap;gap:6px 9px}
 .sub-metrics{order:3;flex-basis:100%;gap:5px 12px}
 .sub-details-toggle{margin-left:auto}
 .sub-weekday small{display:block;margin:2px 0 0}
}
@media print{
 body.substitution-print{background:#fff!important;page:substitutionPlan}
 body.substitution-print>.site-header,body.substitution-print>.login,body.substitution-print .sidebar,body.substitution-print .menu-backdrop,body.substitution-print>.modal,body.substitution-print .toast-stack{display:none!important}
 body.substitution-print .app,body.substitution-print .main,body.substitution-print .content{display:block!important;width:100%!important;margin:0!important;padding:0!important;max-width:none!important;min-height:0!important;overflow:visible!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
 body.substitution-print .app::before,body.substitution-print .app::after{display:none!important}
 body.substitution-print .page{display:none!important}
 body.substitution-print #page-substitution{display:block!important}
 body.substitution-print #page-substitution>.page-head,body.substitution-print .sub-controls,body.substitution-print #subMessage,body.substitution-print .sub-planning-details,body.substitution-print .sub-plan-head>.sub-check,body.substitution-print .sub-no-print{display:none!important}
 body.substitution-print .sub-plan-head{margin:0 0 5px;display:block}
 body.substitution-print .sub-plan-head>div{display:flex;align-items:baseline;justify-content:space-between}
 body.substitution-print .sub-plan-head h3{font-size:12pt}
 body.substitution-print .sub-plan-head p{font-size:8pt}
 body.substitution-print .sub-legend{font-size:6.3pt;margin:5px 0}
 body.substitution-print .sub-week-card{border:0;border-radius:0;margin:0 0 7px;break-inside:avoid-page}
 body.substitution-print .sub-week-card h4{background:#e7edf3!important;color:#102235!important;padding:4px 6px;font-size:8pt;border:1px solid #aab9c7}
 body.substitution-print .sub-week-card h4>span{color:#334155;font-size:6.3pt}
 body.substitution-print .sub-table-wrap{overflow:visible}
 body.substitution-print .sub-table{min-width:0!important;width:100%;font-size:7pt}
 body.substitution-print .sub-table th,body.substitution-print .sub-table td{padding:2px;border-color:#aab9c7}
 body.substitution-print .sub-table tbody>tr>th{height:4.2mm;font-size:7pt}
 body.substitution-print .sub-table th:first-child{width:6mm}
 body.substitution-print .sub-weekday small{display:inline-block;margin-left:4px;font-size:6pt}
 body.substitution-print .sub-cell{padding:2px 3px;border-radius:2px;box-shadow:none;min-height:0;font-size:7pt;cursor:default;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body.substitution-print .sub-cell .sub-teacher{font-size:7pt}
 body.substitution-print .sub-cell .sub-lesson-detail{font-size:6.7pt}
 body.substitution-print .sub-cell .sub-state-label,body.substitution-print .sub-cell small{font-size:6pt;margin-top:1px}
 body.substitution-print .sub-class-overview{border:0;border-radius:0;margin:0 0 6px}
 body.substitution-print .sub-class-table{print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body.substitution-print .sub-class-table col.sub-day-col{width:16mm}
 body.substitution-print .sub-class-table col.sub-period-col{width:6mm}
 body.substitution-print .sub-class-table th:first-child{width:auto}
 body.substitution-print .sub-table thead th{font-size:7pt;padding:3px}
 body.substitution-print .sub-class-table tbody{break-inside:avoid-page}
 body.substitution-print .sub-class-table tr{break-inside:avoid-page}
 body.substitution-print .sub-class-table tbody>tr>th.sub-day-label{font-size:7pt;padding:3px}
 body.substitution-print .sub-day-label small{font-size:6pt;margin-top:2px}
 body.substitution-print .sub-table tbody>tr>th.sub-period-label{height:3.5mm;font-size:7pt;padding:1px}
 body.substitution-print .sub-class-table tbody+tbody{border-top:2mm solid #fff}
 body.substitution-print .sub-lesson-cell{padding:1px 2px!important}
 body.substitution-print .sub-entries{gap:0 2px}
 body.substitution-print .sub-entries .sub-cell{padding:1px 2px}
 body.substitution-print .sub-parallel-plus{padding-top:1px}
 body.substitution-print .sub-print-notes{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:3px 8px;font-size:8pt;line-height:1.25;break-inside:avoid}
 body.substitution-print .sub-print-notes h4{margin:0}
 body.substitution-print .sub-print-notes p{margin:0}
 @page substitutionPlan{size:A4 landscape;margin:10mm}
}
