:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#17202a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#182532;color:white;padding:24px 16px;display:flex;flex-direction:column}.brand{font-size:20px;margin-bottom:28px}.brand small{display:block;font-size:12px;opacity:.65;margin-top:5px}.sidebar nav{display:grid;gap:7px}.sidebar a,.linkbtn{color:#dce7ef;text-decoration:none;padding:11px 12px;border-radius:8px;background:none;border:0;text-align:left;width:100%;font:inherit}.sidebar a:hover,.linkbtn:hover{background:#27394a;color:white}.sidebar form{margin-top:auto}.content{margin-left:240px;padding:28px;min-height:100vh}.login-content{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card,.card{background:white;border:1px solid #dfe5ea;border-radius:12px;padding:22px;box-shadow:0 2px 8px #0000000b}.login-card{width:min(420px,100%)}h1{margin:0 0 6px}h2{margin-top:0}.muted,p{color:#66727d}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.pagehead p{margin:3px 0}.weekgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.daycard{display:grid;gap:9px;background:white;border:1px solid #dfe5ea;border-radius:12px;padding:20px;color:inherit;text-decoration:none;min-height:150px}.daycard strong{font-size:28px}.daycard.today{outline:2px solid #3278a8}.daycard small{color:#75818b}.button,button{display:inline-block;background:#286b98;color:white;border:0;border-radius:7px;padding:9px 13px;text-decoration:none;cursor:pointer;font-weight:600}.secondary{background:#e9eef2;color:#263746}.danger{background:#a93a3a}.small{padding:6px 9px;font-size:12px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #c8d1d8;border-radius:7px;background:white;font:inherit}textarea{resize:vertical}label{display:grid;gap:6px;font-weight:600}.stack{display:grid;gap:16px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:900px}.wide{grid-column:1/-1}.card{margin:18px 0}.table-search{max-width:360px;margin:8px 0 12px}.tablewrap{max-height:60vh;overflow:auto;border:1px solid #dfe5ea;border-radius:9px;background:white}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:10px;border-bottom:1px solid #e8ecef;text-align:left;vertical-align:middle}th{position:sticky;top:0;background:#eef2f5;z-index:2;cursor:pointer;white-space:nowrap}tbody tr:hover{background:#f8fafb}.actions,.inlineform{display:flex;gap:7px;align-items:center}.actions form{margin:0}.inlineform{flex-wrap:wrap;margin:10px 0}.inlineform input,.inlineform select{width:auto;min-width:150px}.useredit{padding:8px 0;border-top:1px solid #eee}.flash{padding:11px 14px;border-radius:8px;margin-bottom:14px}.flash.success{background:#e3f4e8;color:#245d32}.flash.error{background:#f9e4e4;color:#7c2828}.daytable{max-height:52vh}.daytable input,.daytable select{min-width:115px}@media(max-width:900px){.sidebar{width:190px}.content{margin-left:190px;padding:18px}.weekgrid{grid-template-columns:1fr 1fr}.pagehead{align-items:flex-start;flex-direction:column}}/* v1.2 Kalender & Tageserfassung */
:root{--surface:#fff;--line:#dfe5ea;--soft:#f7f9fb;--accent:#286b98;--accent-soft:#e8f1f7;--text:#17202a;--muted:#66727d}.content{max-width:1600px}.card,.daycard{box-shadow:0 5px 18px #2437460d}.sidebar{background:linear-gradient(180deg,#182532 0%,#13202b 100%)}.sidebar a{transition:background .15s ease,transform .15s ease}.sidebar a:hover{transform:translateX(2px)}.button,button{transition:transform .12s ease,box-shadow .12s ease}.button:hover,button:hover{box-shadow:0 3px 9px #0002}.calendar-nav{display:flex;gap:8px;flex-wrap:wrap}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));background:var(--line);gap:1px;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 5px 18px #2437460d}.weekday{background:#edf2f5;padding:11px;text-align:center;font-weight:700;color:#40515f}.month-day{position:relative;min-height:125px;padding:11px;background:white;color:inherit;text-decoration:none;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.month-day:hover{background:#f5f9fc}.month-day.outside{background:#f7f8f9;color:#a0a8ae}.month-day.weekend{background:#fafbfc}.month-day.today{box-shadow:inset 0 0 0 3px var(--accent)}.date-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:750}.month-day.today .date-number{background:var(--accent);color:white}.calendar-pill{font-size:12px;padding:4px 7px;border-radius:999px;background:var(--accent-soft);color:#205777}.doc-dot{position:absolute;right:12px;top:14px;width:8px;height:8px;border-radius:50%;background:#4d9563}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading h2,.section-heading p{margin-bottom:4px}.attendance-summary{display:flex;align-items:baseline;gap:8px;padding:16px 0 4px;color:var(--muted)}.attendance-summary strong{font-size:30px;color:var(--text)}.attendance-panel{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.attendance-panel.open{display:block}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px}.panel-toolbar .table-search{margin:0}.checkline{display:flex;grid-template-columns:none;align-items:center;gap:8px;font-weight:650}.checkline input,.student-present{width:18px;height:18px}.checkcol{width:56px;text-align:center}.attendance-table td:first-child{text-align:center}.attendance-tablewrap{max-height:54vh}.attendance-table .late-field:disabled{opacity:.45;background:#f1f3f4}.form-footer{display:flex;justify-content:flex-end;margin-top:14px}.date-jump{width:auto;min-width:155px}@media(max-width:1100px){.month-calendar{grid-template-columns:repeat(7,minmax(75px,1fr))}.month-day{min-height:100px}.calendar-pill{font-size:10px}}@media(max-width:760px){.month-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(100px,1fr))}.section-heading,.panel-toolbar{align-items:stretch;flex-direction:column}.content{overflow-x:hidden}}

/* v1.2.1 UI/UX polish */
:root{--blue:#286b98;--blue2:#347fae;--blue-soft:#eaf4fa;--green:#3f8b5b;--green-soft:#eaf6ee;--amber:#a66a18;--amber-soft:#fff5df;--shadow:0 5px 16px rgba(25,45,60,.08)}
.sidebar a{border-left:3px solid transparent;padding:9px 11px}.sidebar a:hover{background:#2b4052;border-left-color:#71b3dc}.card{padding:18px}.button,button{padding:8px 12px;border-radius:8px}.button:hover,button:hover{transform:translateY(-1px)}input,select,textarea{padding:8px 9px}.table-search{margin:6px 0 10px}th,td{padding:9px 10px}
.weekgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.daycard{min-height:185px;padding:15px;border-top:4px solid #b8cbd8;gap:8px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;background:linear-gradient(180deg,#fff,#fbfdfe)}.daycard:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(24,54,74,.14);border-color:var(--blue2)}.daycard.today{outline:0;border-top-color:var(--blue);box-shadow:inset 0 0 0 1px #8dc1df,var(--shadow)}.daycard-top,.month-day-head{display:flex;align-items:center;justify-content:space-between}.day-name{font-weight:750;color:#344b5b}.day-date{font-size:21px;font-weight:800;color:#173a51}.presence-head{display:flex;align-items:baseline;gap:6px;color:#587080}.presence-count{font-size:24px;font-weight:800;color:var(--blue)}.student-chips{display:flex;flex-wrap:wrap;gap:5px;align-content:flex-start}.student-chips span{font-size:12px;line-height:1.2;background:var(--blue-soft);color:#245a78;border:1px solid #d4e8f4;border-radius:999px;padding:4px 7px}.empty-state,.month-empty{font-size:12px;color:#9aa6ae}.doc-state{margin-top:auto;font-size:11px;color:#89949b}.doc-state.done{color:var(--green);font-weight:650}
.month-calendar{border-radius:11px;box-shadow:var(--shadow)}.weekday{padding:8px;background:#e8eef2;font-size:13px}.month-day{min-height:112px;padding:8px;gap:5px;transition:background .14s ease,box-shadow .14s ease,transform .14s ease}.month-day:hover{background:#eef7fc;box-shadow:inset 0 0 0 2px #75add0;z-index:2;transform:scale(1.012)}.month-day.weekend{background:#fbf8f2}.month-day.weekend:hover{background:#f7f1e7}.month-day.outside{opacity:.48}.month-day.today{box-shadow:inset 0 0 0 2px var(--blue);background:#f2f9fd}.date-number{width:27px;height:27px;font-size:13px}.mini-count{min-width:21px;height:21px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:800}.month-names{display:grid;gap:2px;width:100%;overflow:hidden}.month-names span{font-size:11px;color:#354b59;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:6px;border-left:2px solid #9bc8df}.month-names small{font-size:10px;color:#788790}.doc-dot{width:7px;height:7px;right:8px;bottom:8px;top:auto;box-shadow:0 0 0 2px #e8f5ec}
.attendance-card{border-top:3px solid #77aeca}.attendance-panel{background:#fafcfd;border-radius:9px;padding:13px;margin-top:12px}.attendance-panel.open{border:1px solid #e0e8ed}.attendance-table tbody tr:has(.student-present:checked){background:#f0f8f3}.attendance-table tbody tr:hover{background:#eef6fa}.section-heading p{margin-top:2px}.form-footer{margin-top:10px}
@media(max-width:1000px){.weekgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-day{min-height:105px}.month-names span{font-size:10px}}@media(max-width:700px){.weekgrid{grid-template-columns:1fr}.daycard{min-height:auto}.month-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(105px,1fr))}}
/* v1.2.2 Schülerverlauf & Tagesanwesenheit */
.student-link{font-weight:700;color:#245f83;text-decoration:none}.student-link:hover{text-decoration:underline}.attendance-open-button{margin-top:8px}.present-students{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 2px}.present-students a{font-size:12px;text-decoration:none;background:var(--green-soft);color:#2e7147;border:1px solid #cfe8d7;border-radius:999px;padding:4px 8px}.present-students a:hover{background:#dcefe2}.student-summary-grid{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(280px,1fr);gap:14px}.compact-card{margin:0}.detail-list{display:grid;grid-template-columns:120px 1fr;gap:7px 12px;margin:0}.detail-list dt{font-weight:700;color:#60717d}.detail-list dd{margin:0}.stat-row{display:flex;gap:10px}.stat-row>div{flex:1;background:#f4f8fa;border:1px solid #e1e9ee;border-radius:9px;padding:12px;display:grid;gap:2px}.stat-row strong{font-size:25px;color:var(--blue)}.stat-row span{font-size:12px;color:#687985}.status-badge{display:inline-block;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:700}.status-anwesend{background:var(--green-soft);color:#327349}.status-entschuldigt{background:var(--amber-soft);color:#895814}.status-unentschuldigt{background:#f9e5e5;color:#913b3b}@media(max-width:850px){.student-summary-grid{grid-template-columns:1fr}}


/* v1.2.3 – höherer Kontrast bei Bedienelementen, weiterhin kompakt */
:root{--control-border:#8d9da8;--control-border-hover:#657985;--focus:#176b9d;--primary:#155f8d;--primary-hover:#0e4d75;--secondary-bg:#dce5eb;--secondary-text:#203744}
.button,button{background:var(--primary);color:#fff;border:1px solid var(--primary);box-shadow:0 1px 2px rgba(15,48,68,.16)}
.button:hover,button:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 3px 8px rgba(15,48,68,.22)}
.button:focus-visible,button:focus-visible,.sidebar a:focus-visible,.student-link:focus-visible,.present-students a:focus-visible{outline:3px solid rgba(23,107,157,.28);outline-offset:2px}
.secondary{background:var(--secondary-bg);color:var(--secondary-text);border-color:#aebdc7}.secondary:hover{background:#cbd8e0;border-color:#879aa6;color:#142a37}
.danger{background:#9b3030;border-color:#9b3030;color:#fff}.danger:hover{background:#7d2424;border-color:#7d2424}
input,select,textarea{border:1px solid var(--control-border);color:#17202a;background:#fff;box-shadow:inset 0 1px 1px rgba(20,45,60,.04)}
input:hover,select:hover,textarea:hover{border-color:var(--control-border-hover)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(23,107,157,.22);outline-offset:0;border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
input::placeholder,textarea::placeholder{color:#6f7d86;opacity:1}
input:disabled,select:disabled,textarea:disabled{background:#e9edf0;color:#68747c;border-color:#bdc7cd;opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--primary);box-shadow:none}
.student-present,.checkline input{outline-offset:2px}
.tablewrap{border-color:#b8c4cb}th{background:#dce5ea;color:#20333f;border-bottom:1px solid #9eafb9}td{border-bottom-color:#d5dde2}tbody tr:nth-child(even){background:#fbfcfd}tbody tr:hover{background:#eaf3f8}
.card,.login-card{border-color:#c7d2d9}.attendance-panel.open{border-color:#b8c9d3;background:#f7fafc}.stat-row>div{border-color:#cbd8df;background:#f1f6f8}
.table-search{border-color:#7f929e}.date-jump{border-color:#7f929e}
.status-anwesend{background:#d9f0e1;color:#1f6138;border:1px solid #acd3b9}.status-entschuldigt{background:#ffefc8;color:#744908;border:1px solid #e8c978}.status-unentschuldigt{background:#f6d6d6;color:#7c2525;border:1px solid #dfaaaa}
.present-students a{background:#d9f0e1;color:#205f39;border-color:#acd3b9}.present-students a:hover{background:#c8e7d2;border-color:#82bc95}
.calendar-pill,.student-chips span{background:#dceef8;color:#174f70;border-color:#a9cee3}.mini-count{background:#d9f0e1;color:#205f39;border:1px solid #acd3b9}
.sidebar a{color:#eef5f8}.sidebar a:hover{background:#304b60;color:#fff}.linkbtn{color:#eef5f8}.linkbtn:hover{background:#304b60;color:#fff}

/* Version display */
.version-label{margin:.75rem 0 0;text-align:center;font-size:.78rem;font-weight:700;color:#526071}
.sidebar-version{margin-top:auto;padding:.7rem .9rem .2rem;font-size:.72rem;font-weight:700;color:#9fb0c3;letter-spacing:.02em}

/* v1.2.4 Kalenderstruktur & Schulthemen */
.weekgrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.daycard{min-height:205px;padding:13px}.day-date{font-size:18px}.presence-count{font-size:22px}
.month-day.weekend{background:#e9edf0;color:#7b858c}.month-day.weekend .month-names span,.month-day.weekend .month-empty{color:#89939a}.month-day.weekend:hover{background:#dfe5e9;box-shadow:inset 0 0 0 2px #aebbc3}.weekday.weekend{background:#d4dce1;color:#66747d}.month-day.outside.weekend{background:#e5e9ec}
.field-title{display:block;margin-bottom:7px;font-weight:700}.topic-checks{display:flex;flex-wrap:wrap;gap:7px}.topic-check{display:flex;grid-template-columns:none;align-items:center;gap:6px;padding:7px 10px;border:1px solid #9eafb9;border-radius:8px;background:#f5f8fa;font-weight:650;cursor:pointer;transition:.12s ease}.topic-check:hover{border-color:#4f7e99;background:#eaf3f8}.topic-check:has(input:checked),.topic-check.selected{background:#dceef8;border-color:#5792b4;color:#174f70}.topic-check input{width:16px;height:16px;margin:0}.topic-admin-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.topic-admin-item{display:flex;align-items:center;gap:8px;padding:6px 7px 6px 10px;border:1px solid #b8c4cb;border-radius:8px;background:#f7fafb;font-weight:650}.topic-admin-item form{margin:0}.topic-admin-item.inactive{opacity:.58;background:#eceff1;text-decoration:none}
@media(max-width:1250px){.weekgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.weekgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.weekgrid{grid-template-columns:1fr}}

/* v1.2.5 Maintenance-Status */
.update-status{margin:.55rem 0 .8rem;padding:.55rem .7rem;border:1px solid #b8c4cf;border-left-width:4px;border-radius:7px;background:#f5f7f9;font-size:.92rem}
.update-success{border-left-color:#238636;background:#eef8f0}.update-queued,.update-installing{border-left-color:#1f6feb;background:#eef5ff}.update-rollback,.update-rolled_back{border-left-color:#b7791f;background:#fff7e6}.update-error,.update-rollback_failed{border-left-color:#b42318;background:#fff0ef}


/* v1.2.6 ASZ-Jugendwerkstatt Corporate UI */
:root{--asz-red:#99191b;--asz-red-dark:#781214;--jw-blue:#07558b;--jw-blue-dark:#063f68;--jw-green:#4aa80f;--jw-green-dark:#367f09;--brand-soft:#f4f8fa;--primary:var(--jw-blue);--primary-hover:var(--jw-blue-dark);--focus:var(--jw-blue);--accent:var(--jw-blue);--blue:var(--jw-blue);--blue2:#1675aa;--green:var(--jw-green)}
body{background:#f3f6f7;color:#18252e}.sidebar{background:linear-gradient(180deg,#073f66 0%,#052f4c 58%,#08293d 100%);border-right:3px solid var(--jw-green)}
.brand{margin-bottom:20px;padding:2px 8px 15px;border-bottom:1px solid rgba(255,255,255,.16)}.brand b{font-size:17px;letter-spacing:.01em}.brand small{color:#d9e7ef;opacity:1}
.sidebar a{color:#edf7fb;border-left-color:transparent}.sidebar a:hover{background:#0b5c8d;border-left-color:#65bd2a}.linkbtn{color:#edf7fb}.linkbtn:hover{background:#8a1719}.sidebar-version{color:#bcd0dc}
.content{padding-top:18px}.app-header{height:104px;background:#fff;border:1px solid #cbd7dd;border-radius:11px;overflow:hidden;margin:0 0 18px;box-shadow:0 3px 12px rgba(12,52,75,.08);display:flex;align-items:center}.app-header img{width:100%;height:100%;object-fit:contain;object-position:left center;background:#fff}.login-content{align-content:center;gap:14px}.login-content .app-header{width:min(760px,100%);height:auto;aspect-ratio:1654/265;margin:0 auto}.login-card{border-top:4px solid var(--asz-red)}
h1{color:var(--jw-blue-dark)}h2{color:#173d52}.pagehead{border-bottom:1px solid #d5e0e5;padding-bottom:10px}.pagehead h1:after{content:"";display:block;width:42px;height:3px;background:var(--jw-green);border-radius:3px;margin-top:6px}
.button,button{background:var(--jw-blue);border-color:var(--jw-blue)}.button:hover,button:hover{background:var(--jw-blue-dark);border-color:var(--jw-blue-dark)}.danger{background:var(--asz-red);border-color:var(--asz-red)}.danger:hover{background:var(--asz-red-dark);border-color:var(--asz-red-dark)}
.secondary{background:#e4edf2;color:#123d56;border-color:#a9beca}.secondary:hover{background:#d4e3eb;color:#092f47;border-color:#789cad}
input:focus,select:focus,textarea:focus{border-color:var(--jw-blue);outline-color:rgba(7,85,139,.2);box-shadow:0 0 0 1px var(--jw-blue)}input[type=checkbox],input[type=radio]{accent-color:var(--jw-green)}
th{background:#dceaf1;color:#113d55}.tablewrap{border-top:3px solid var(--jw-blue)}tbody tr:hover{background:#eef8ec}
.card{border-color:#c8d7de}.daycard{border-top-color:#94b6c8}.daycard:hover{border-color:#55a81d}.daycard.today{border-top-color:var(--jw-green);box-shadow:inset 0 0 0 1px #8acb60,var(--shadow)}.presence-count,.stat-row strong{color:var(--jw-blue)}
.month-day.today{box-shadow:inset 0 0 0 2px var(--jw-green);background:#f3faef}.month-day.today .date-number{background:var(--jw-green)}.month-day:hover{background:#f1f8ed;box-shadow:inset 0 0 0 2px #76b94b}.doc-dot{background:var(--asz-red)}
.status-anwesend,.present-students a,.mini-count{background:#e4f4dc;color:#2d6810;border-color:#a9d68e}.status-entschuldigt{background:#fff0c9;color:#744908}.status-unentschuldigt{background:#f5dada;color:#7d2224;border-color:#d9a4a5}
.topic-check:has(input:checked),.topic-check.selected{background:#e5f4dc;border-color:#7bbb50;color:#2d6810}.student-link{color:var(--jw-blue)}
@media(max-width:900px){.app-header{height:82px}}@media(max-width:700px){.app-header{height:66px}.brand b{font-size:15px}}


/* v1.2.7 Zentrierung, Archivdetails */
.content{max-width:none}.content>*,.login-content>*{margin-left:auto;margin-right:auto}.content>.app-header{width:min(1480px,100%)}.app-header{justify-content:center}.app-header img{object-position:center center;display:block}.pagehead,.card,.table-search,.tablewrap,.weekgrid,.month-calendar,.calendar-nav,.inlineform,.update-status{width:min(1480px,100%)}.table-search{display:block}.tablewrap table{margin-inline:auto}.archive-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#e8edf0;color:#52636e;font-size:.78rem;font-weight:750}.student-summary-grid{width:min(1480px,100%);margin-left:auto;margin-right:auto}
@media(max-width:900px){.content>*,.login-content>*{max-width:100%}}

/* v1.2.9: compact period fields */
.form-section-title{display:flex;gap:.55rem;align-items:baseline;margin:.15rem 0 -.15rem;padding-top:.35rem;border-top:1px solid var(--border,#d6dde5)}
.form-section-title span{font-size:.82rem;color:var(--muted,#667085)}
.manual-badge{display:inline-block;font-size:.68rem;font-weight:700;padding:.08rem .3rem;border-radius:.35rem;background:#e8eef5;color:#334155;vertical-align:middle}


/* v1.2.10 Kalenderwochen + echte responsive Mobile-UI */
.eyebrow{display:inline-flex;align-items:center;padding:3px 8px;margin-bottom:5px;border-radius:999px;background:#e4f4dc;color:#2d6810;border:1px solid #a9d68e;font-size:.78rem;font-weight:800;letter-spacing:.03em}
.month-scroll{width:min(1480px,100%);margin-inline:auto;overflow-x:auto;border-radius:14px}.month-calendar{grid-template-columns:58px repeat(7,minmax(100px,1fr));min-width:790px}.kw-head{background:#d7e5ec;color:#164963}.kw-cell{background:#eaf1f5;color:#24546d;display:flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;border-right:1px solid #cbd8df}.mobile-menu-toggle,.sidebar-scrim{display:none}
@media(max-width:760px){
 body{background:#f3f6f7}.mobile-menu-toggle{display:flex;position:fixed;z-index:1100;left:10px;top:10px;width:42px;height:42px;padding:0;align-items:center;justify-content:center;border-radius:9px;background:#07558b;border:1px solid #06456f;color:#fff;font-size:22px;line-height:1;box-shadow:0 3px 12px #0003}.mobile-menu-toggle:hover{transform:none}
 .sidebar{z-index:1090;width:min(82vw,280px);transform:translateX(-105%);transition:transform .2s ease;padding:62px 14px 16px;box-shadow:8px 0 24px #0003}.nav-open .sidebar{transform:translateX(0)}.sidebar-scrim{position:fixed;z-index:1080;inset:0;background:#07192388}.nav-open .sidebar-scrim{display:block}.sidebar a,.linkbtn{padding:11px 10px}.sidebar a:hover{transform:none}
 .content{margin-left:0;padding:62px 10px 14px;min-width:0}.login-content{padding:12px}.content>.app-header{height:auto;min-height:0;aspect-ratio:1654/265;margin-bottom:12px}.app-header img{height:auto;max-height:100%;object-fit:contain}.pagehead{gap:9px;margin-bottom:12px;padding-bottom:8px}.pagehead h1{font-size:1.45rem}.pagehead p{font-size:.88rem}.calendar-nav{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.calendar-nav .button{text-align:center;padding:8px 5px;font-size:.78rem;white-space:nowrap}
 .weekgrid{grid-template-columns:1fr;gap:8px}.daycard{min-height:0;padding:11px;gap:6px}.daycard-top{align-items:center}.day-name{font-size:.95rem}.day-date{font-size:1rem}.presence-head{margin:0}.student-chips{gap:4px}.student-chips span{font-size:.76rem;padding:3px 6px}.doc-state{margin-top:2px}
 .month-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #cbd8df}.month-calendar{min-width:700px;border:0;border-radius:0;box-shadow:none}.month-day{min-height:94px;padding:7px}.month-names span{font-size:.68rem}.kw-cell{font-size:.7rem}
 .card,.login-card{padding:13px;border-radius:9px;margin:10px 0}.formgrid{grid-template-columns:1fr;gap:10px}.wide{grid-column:auto}.inlineform{align-items:stretch;gap:6px}.inlineform input,.inlineform select,.inlineform .button,.inlineform button{width:100%;min-width:0}.actions{flex-wrap:wrap;gap:5px}.actions .button,.actions button{flex:1 1 auto;text-align:center}
 .tablewrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.tablewrap table{min-width:680px}th,td{padding:8px;font-size:.82rem}.daytable table{min-width:860px}.table-search{max-width:none;width:100%}
 input,select,textarea{font-size:16px;padding:9px}button,.button{min-height:40px}.topic-check{padding:7px 8px}.present-students{gap:5px}.student-summary-grid{gap:8px}
}
@media(max-width:420px){.calendar-nav{grid-template-columns:1fr 1fr}.calendar-nav .button:nth-child(2){order:-1;grid-column:1/-1}.pagehead h1{font-size:1.3rem}.content{padding-inline:8px}.month-calendar{min-width:650px}}
