:root{--ui-scale:1.3}
:root{--bg:#f5f5f2;--surface:#fff;--surface-soft:#f8f9f6;--ink:#202827;--muted:#77807b;--line:#e4e8e3;--line-strong:#d4dbd5;--accent:#526962;--deep:#202827;--green:#4f7565;--danger:#a34a45;--shadow:0 8px 36px rgba(19,38,31,.045);--radius:15px;--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:calc(14px * var(--ui-scale));line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit}svg{display:block}.hidden{display:none!important}
.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;gap:16px;color:#68736d}.logo-mark{width:45px;height:45px;border-radius:13px;background:var(--deep);color:#e5eee7;display:grid;place-items:center}.logo-mark svg{width:36px;height:36px}
.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#202928;color:#e8ebe7;padding:30px 16px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;margin:0 8px 47px}.brand .logo-mark{background:#34433e;color:#f1f3ed}.brand-title{font-weight:740;letter-spacing:-.45px;font-size:calc(17px * var(--ui-scale));line-height:1.15}.brand-subtitle{font-size:calc(10px * var(--ui-scale));text-transform:uppercase;letter-spacing:1.5px;color:#9faea6;margin-top:5px}.nav-group-title{color:#83938c;font-size:calc(10px * var(--ui-scale));font-weight:700;letter-spacing:1.8px;text-transform:uppercase;padding:0 16px;margin:0 0 13px}.nav-list{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;width:100%;border:1px solid transparent;background:transparent;color:#aebbb4;text-align:left;border-radius:10px;padding:12px 14px;font-size:calc(13px * var(--ui-scale));transition:background .2s,color .2s}.nav-link svg{width:18px;height:18px;flex-shrink:0;stroke-width:1.65}.nav-link:hover{background:#2d3835;color:#fff}.nav-link.active{background:#394741;border-color:#4a5a50;color:#fff;font-weight:620}.sidebar-bottom{margin-top:auto;padding:15px 13px 0;border-top:1px solid #3a4740}.sidebar-bottom .small-label{color:#92a49b}.sidebar-course{color:#e8ece7;font-weight:620;margin-top:5px;word-break:break-word}.sidebar-course small{color:#a1ada6;font-weight:400}.sidebar-logout{background:none;border:0;color:#b4c2b8;padding:14px 0 0;font-size:calc(12px * var(--ui-scale));display:flex;align-items:center;gap:8px}.sidebar-logout:hover{color:white}
.main-area{min-width:0}.topbar{min-height:90px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.74);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px clamp(22px,3.5vw,58px)}.topbar-overline{font-size:calc(10px * var(--ui-scale));font-weight:720;letter-spacing:1.6px;color:#919a94;text-transform:uppercase}.topbar-subtitle{font-size:calc(13px * var(--ui-scale));font-weight:580;color:#4e5f56;margin-top:5px}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-action{background:white;color:var(--ink);border:1px solid var(--line-strong);border-radius:9px;min-height:38px;padding:0 13px;font-size:calc(12px * var(--ui-scale));font-weight:630;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.topbar-action:hover{background:#f3f5f1}.topbar-action svg{width:15px;height:15px}.primary-action{color:#fff;background:var(--deep);border-color:var(--deep)}.primary-action:hover{background:#405047;color:white}.topbar-date{display:flex;align-items:center;gap:6px}.icon-button{width:37px;height:37px;border:1px solid var(--line-strong);border-radius:9px;background:white;display:grid;place-items:center;color:#4a5751}.icon-button:hover{background:#eef1ec}.icon-button svg{width:16px;height:16px}.date-picker{border:1px solid var(--line-strong);border-radius:9px;height:38px;padding:0 9px;background:white;color:#25332d;font-weight:620;max-width:160px}
.content{max-width:1450px;margin:0 auto;padding:39px clamp(20px,3.5vw,58px) 85px}.section-eyebrow{font-weight:740;font-size:calc(10px * var(--ui-scale));letter-spacing:1.9px;text-transform:uppercase;color:#87958c;margin-bottom:9px}.page-heading{font-size:calc(clamp(25px,2.5vw,35px) * var(--ui-scale));font-weight:740;letter-spacing:-1.45px;line-height:1.2;margin:0 0 12px;overflow-wrap:break-word;hyphens:auto}.page-description{margin:0;color:#758179;font-size:calc(13px * var(--ui-scale));line-height:1.75}.heading-row{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:29px}.save-indicator{display:flex;align-items:center;gap:8px;color:#68766d;font-size:calc(12px * var(--ui-scale));white-space:nowrap;padding-top:6px}.save-indicator .dot{width:7px;height:7px;background:#779989;border-radius:50%}.save-indicator.pending .dot{background:#b39a69}.save-indicator.error .dot{background:#ba6a5b}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.card-header{display:flex;justify-content:space-between;align-items:center;gap:13px;padding:23px 25px 19px;border-bottom:1px solid #edf0eb}.card-body{padding:22px 25px 25px}.card-title{font-size:calc(15px * var(--ui-scale));font-weight:720;letter-spacing:-.3px;margin:0}.card-sub{font-size:calc(12px * var(--ui-scale));color:#88958b;margin:4px 0 0}.card-icon{width:39px;height:39px;border:1px solid #e8ebe6;border-radius:11px;display:grid;place-items:center;color:#4e695d;background:#f7f9f6}.card-icon svg{width:20px;height:20px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.metric{padding:24px 23px 20px}.metric-label{text-transform:uppercase;font-size:calc(10px * var(--ui-scale));font-weight:730;color:#89978e;letter-spacing:1.2px}.metric-value{font-size:calc(31px * var(--ui-scale));letter-spacing:-1px;line-height:1.25;font-weight:750;margin:10px 0 6px}.metric-foot{font-size:calc(12px * var(--ui-scale));color:#929e96}.overview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.9fr);gap:18px}.overview-list{padding:7px 11px}.overview-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:none;border:none;padding:18px 14px;border-bottom:1px solid #edf0ec}.overview-item:last-child{border-bottom:0}.overview-item:hover{background:#fafbf9;border-radius:10px}.overview-item-left{display:flex;align-items:center;gap:16px}.overview-item-text strong{display:block;font-weight:700;margin-bottom:3px}.overview-item-text span{display:block;color:#87928a;font-size:calc(12px * var(--ui-scale))}.overview-item .arrow{color:#a6b0aa;font-size:calc(23px * var(--ui-scale));font-weight:300}.detail-rows{padding:17px 25px}.detail-row{display:flex;align-items:baseline;justify-content:space-between;gap:13px;padding:11px 0;border-bottom:1px solid #eff1ee}.detail-row:last-child{border:0}.detail-row span{font-size:calc(12px * var(--ui-scale));color:#78867d}.detail-row strong{font-size:calc(12px * var(--ui-scale));color:#3a4a40;font-weight:670;text-align:right;overflow-wrap:anywhere}.history-card{margin-top:18px}.history-list{padding:2px 24px 16px}.history-item{display:flex;width:100%;align-items:center;gap:12px;padding:14px 2px;background:none;border:0;text-align:left;border-bottom:1px solid #edf0eb}.history-item:last-child{border:0}.history-item:hover .history-date{color:#354e41}.history-date{font-weight:680;display:block}.history-sub{font-size:calc(11px * var(--ui-scale));color:#929f95;display:block}.history-right{margin-left:auto;font-size:calc(11px * var(--ui-scale));color:#8e9b90;white-space:nowrap}.empty-message{padding:24px 4px;color:#89948d;font-size:calc(13px * var(--ui-scale))}.quick-caption{font-size:calc(12px * var(--ui-scale));color:#9aa49d;margin-top:18px}
.form-stack{display:flex;flex-direction:column;gap:18px}.form-section-intro{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-num{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid #dbe2dc;border-radius:50%;color:#5d7166;font-weight:710;font-size:calc(12px * var(--ui-scale));margin-right:12px}.section-headline{display:flex;align-items:center;font-size:calc(14px * var(--ui-scale));font-weight:740}.section-info{color:#97a29a;font-size:calc(11px * var(--ui-scale));white-space:normal;text-align:right;overflow-wrap:anywhere}.field-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px 16px}.field{grid-column:span 6;min-width:0}.field.span-3{grid-column:span 3}.field.span-4{grid-column:span 4}.field.span-6{grid-column:span 6}.field.span-8{grid-column:span 8}.field.span-9{grid-column:span 9}.field.span-12{grid-column:span 12}.field label{display:block;color:#65736b;font-size:calc(11px * var(--ui-scale));letter-spacing:.15px;font-weight:700;margin-bottom:7px}.input,.textarea{border:1px solid #dce3dc;background:#fff;border-radius:9px;width:100%;outline:none;color:var(--ink);transition:border-color .2s,box-shadow .2s;font-weight:500}.input{height:44px;padding:0 13px}.textarea{padding:12px 13px;resize:vertical;line-height:1.7;min-height:95px}.textarea.tall{min-height:150px}.input:focus,.textarea:focus{border-color:#82988b;box-shadow:0 0 0 3px #82988b26}.input::placeholder,.textarea::placeholder{color:#a9b2aa;font-weight:400}.hint{color:#9aa69e;font-size:calc(11px * var(--ui-scale));margin-top:6px}.divider{height:1px;background:#edf0ec;margin:24px 0}.period-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.period-head h3{font-weight:720;font-size:calc(13px * var(--ui-scale));margin:0}.period-sub{font-size:calc(11px * var(--ui-scale));color:#a0aca2}.period-card{padding:21px 22px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.period-card+.period-card{margin-top:14px}.period-layout{display:grid;grid-template-columns:minmax(0,1fr) 135px 135px;gap:14px;align-items:start}.period-layout .textarea{min-height:144px}.period-card:nth-child(2) .textarea{min-height:125px}.times-slim{display:flex;gap:14px}
.course-strip{display:flex;gap:15px;align-items:center;padding:17px 20px;margin-bottom:17px;background:#edf1ec;border:1px solid #e0e7de;border-radius:11px}.course-strip svg{width:21px;height:21px;color:#657c6c;flex:none}.course-strip span{font-size:calc(12px * var(--ui-scale));color:#66776a}.course-strip strong{color:#25372b}.notice{background:#f7f7f2;border:1px solid #e9e8dc;border-left:3px solid #a29f83;padding:13px 17px;color:#6d7065;font-size:calc(12px * var(--ui-scale));border-radius:9px}.table-wrap{overflow-x:auto}.hours-table,.absence-table{width:100%;border-collapse:separate;border-spacing:0;text-align:left}.hours-table th,.absence-table th{font-size:calc(10px * var(--ui-scale));color:#87958b;text-transform:uppercase;letter-spacing:.7px;font-weight:720;text-align:left;padding:13px 11px;border-bottom:1px solid var(--line)}.hours-table td,.absence-table td{padding:11px 9px;border-bottom:1px solid #eef1ee;vertical-align:middle}.hours-table tr:last-child td,.absence-table tr:last-child td{border-bottom:0}.hours-table td:first-child{padding-left:0;width:47px}.hours-index{background:#eff3ee;border:1px solid #e3e8e2;border-radius:9px;width:39px;height:42px;display:grid;place-items:center;color:#51675a;font-weight:730}.hours-table .input{min-width:120px}.hours-table .subject-input{min-width:155px}.hours-table .inst-input{min-width:125px}.absence-table .input{min-width:135px}.absence-table .reason-input{min-width:160px}.absence-table th.h-checkbox{text-align:center}.absence-table td.check-cell{text-align:center;min-width:31px;padding:4px}.check-cell input{accent-color:#536f62;width:16px;height:16px;cursor:pointer}.absence-table .delete-button{border:0;background:transparent;color:#a8b3aa;font-size:calc(20px * var(--ui-scale))}.absence-table .delete-button:hover{color:#a34a45}.btn-text{border:0;color:#52695e;background:transparent;padding:8px 0;font-size:calc(12px * var(--ui-scale));font-weight:700}.btn-text:hover{text-decoration:underline}.action-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0 0}.muted-footnote{font-size:calc(11px * var(--ui-scale));color:#97a198}.muted-footnote a{text-decoration:underline}.status-pill{display:inline-flex;gap:5px;align-items:center;font-size:calc(10px * var(--ui-scale));font-weight:760;letter-spacing:.6px;text-transform:uppercase;color:#667f70;background:#edf2ed;border-radius:30px;padding:6px 10px}.status-pill.empty{color:#929c94;background:#f0f2ef}.status-pill svg{height:12px;width:12px}
.mobile-nav{display:none}.mobile-only{display:none}.login-layout{min-height:100dvh;display:grid;grid-template-columns:48% 52%}.login-pane{background:#202928;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:48px clamp(34px,5vw,90px)}.login-pane .brand{margin:0}.login-hero{max-width:530px}.login-eyebrow{font-size:calc(11px * var(--ui-scale));letter-spacing:2px;text-transform:uppercase;color:#a7b5ab;font-weight:670;margin-bottom:25px}.login-hero h1{font-size:clamp(42px,5vw,72px);letter-spacing:-3.5px;line-height:1.08;font-weight:730;margin:0 0 23px}.login-hero h1 i{color:#b4c5b9;font-weight:450;font-style:normal}.login-hero p{font-size:calc(16px * var(--ui-scale));line-height:1.7;color:#bbc8be;max-width:400px}.login-copy{font-size:calc(11px * var(--ui-scale));color:#8fa097;letter-spacing:1px}.login-right{background:#f6f7f3;display:grid;place-items:center;padding:35px}.login-box{max-width:390px;width:100%}.login-box h2{font-size:calc(29px * var(--ui-scale));letter-spacing:-1px;font-weight:760;margin:0 0 9px}.login-box p{color:#849087;margin:0 0 33px}.login-box .field{margin-bottom:19px}.login-box .input{height:50px}.login-btn{width:100%;background:#28332e;color:#fff;border:0;border-radius:10px;height:50px;font-weight:720;margin-top:10px}.login-btn:hover{background:#3b4d43}.login-error{background:#fbefed;color:#9d4542;padding:11px;border-radius:7px;font-size:calc(12px * var(--ui-scale));margin-top:15px}.login-footer{font-size:calc(11px * var(--ui-scale));color:#9eaaa1;margin-top:30px;text-align:center}
.modal-overlay{position:fixed;inset:0;z-index:200;background:#13231bdd;display:grid;place-items:center;padding:20px}.modal{background:#fff;border:1px solid var(--line);border-radius:15px;padding:28px;max-width:470px;width:100%;box-shadow:0 25px 110px #0003}.modal h3{font-size:calc(20px * var(--ui-scale));letter-spacing:-.6px;margin:0 0 10px}.modal p{color:#728278;font-size:calc(13px * var(--ui-scale));line-height:1.7}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px;flex-wrap:wrap}.modal-actions button{font-size:calc(12px * var(--ui-scale));border:1px solid var(--line-strong);border-radius:9px;background:#fff;padding:11px 15px;font-weight:670}.modal-actions .dark{background:#2d3832;color:#fff;border-color:#2d3832}#toast{position:fixed;bottom:26px;right:26px;z-index:300;background:#25352b;color:#fff;box-shadow:0 10px 45px #0002;padding:12px 18px;border-radius:9px;font-size:calc(12px * var(--ui-scale));opacity:0;transition:opacity .3s;pointer-events:none}#toast.visible{opacity:1}
#print-sheet{display:none}.print-heading{font-size:calc(19px * var(--ui-scale));font-weight:730;border-bottom:2px solid #1d2923;padding-bottom:10px;margin-bottom:18px;letter-spacing:-.4px}.print-muted{font-size:calc(10px * var(--ui-scale));color:#667168}.print-label{font-size:calc(10px * var(--ui-scale));text-transform:uppercase;letter-spacing:.5px;color:#6e7770;font-weight:700;margin-bottom:4px}.print-entry{font-size:calc(12px * var(--ui-scale));white-space:pre-wrap;min-height:21px;overflow-wrap:anywhere}.print-rule{border-bottom:1px solid #d1d8d1;margin:11px 0}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.print-row{margin-bottom:15px}.print-section-title{font-size:calc(14px * var(--ui-scale));font-weight:720;margin:21px 0 13px}.print-page{page-break-after:always}.print-page:last-child{page-break-after:auto}.print-table{width:100%;border-collapse:collapse;font-size:calc(11px * var(--ui-scale))}.print-table th,.print-table td{border:1px solid #bcc5bc;text-align:left;padding:6px;white-space:pre-wrap;vertical-align:top}.print-table th{background:#eee;font-size:calc(10px * var(--ui-scale))}
@media(max-width:1100px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.content{padding-left:28px;padding-right:28px}.topbar{padding-left:28px;padding-right:28px}.overview-grid{grid-template-columns:minmax(0,1fr)}.hours-table td{padding-left:5px;padding-right:5px}.hours-table .input{padding-left:9px;padding-right:9px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.mobile-nav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:100;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #e3e9e3;padding:8px 10px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #23342a0d}.mobile-nav button{border:0;background:transparent;color:#9ca7a0;display:flex;align-items:center;flex-direction:column;gap:3px;font-size:calc(10px * var(--ui-scale));font-weight:650;padding:5px 0}.mobile-nav button.active{color:#263b2e}.mobile-nav svg{height:20px;width:20px}.topbar{min-height:75px;padding:13px 18px;background:#fff;flex-wrap:wrap}.topbar-overline{font-size:calc(9px * var(--ui-scale))}.topbar-subtitle{font-size:calc(12px * var(--ui-scale))}.topbar-actions{gap:6px}.topbar-action{padding:0 9px}.topbar-action .label-hide{display:none}.date-picker{width:136px;height:35px;font-size:calc(12px * var(--ui-scale))}.icon-button{width:34px;height:35px}.content{padding:25px 16px calc(105px + env(safe-area-inset-bottom))}.heading-row{display:block;margin-bottom:21px}.page-heading{font-size:calc(28px * var(--ui-scale));letter-spacing:-.9px}.save-indicator{padding-top:14px}.metric-grid{gap:8px}.metric{padding:18px 13px}.metric-value{font-size:calc(25px * var(--ui-scale));margin:6px 0}.metric-label{font-size:calc(9px * var(--ui-scale));letter-spacing:.6px}.metric-foot{font-size:calc(10px * var(--ui-scale))}.card-header{padding:18px}.card-body{padding:18px}.detail-rows{padding:14px 18px}.history-list{padding:0 18px 12px}.field-grid{gap:15px 12px}.field.span-3,.field.span-4{grid-column:span 6}.field.span-8,.field.span-9{grid-column:span 12}.period-layout{display:grid;grid-template-columns:1fr 1fr}.period-layout .notes-field{grid-column:span 2;order:3}.period-card{padding:18px}.course-strip{padding:13px 16px}.login-layout{display:block;min-height:100dvh;background:#f6f7f3}.login-pane{padding:24px 25px 28px;min-height:250px}.login-pane .brand{margin:0 0 40px}.login-hero h1{font-size:calc(38px * var(--ui-scale));letter-spacing:-1.8px}.login-hero p,.login-copy,.login-eyebrow{display:none}.login-right{padding:42px 26px}.login-box h2{font-size:calc(24px * var(--ui-scale))}.mobile-only{display:block}.hours-table{min-width:580px}.absence-table{min-width:820px}.topbar-logout{display:flex}.topbar-actions .primary-action{min-width:35px}.topbar-logout{display:none}}
@media(max-width:390px){.topbar{padding-left:12px;padding-right:12px}.date-picker{width:125px}.topbar-actions{gap:4px}.topbar-action{min-height:35px}.field.span-3{grid-column:span 6}.metric-value{font-size:calc(23px * var(--ui-scale))}.page-heading{font-size:calc(25px * var(--ui-scale))}}
@media print{*{box-shadow:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}html,body{background:white;color:#111;font-family:Arial,sans-serif;font-size:calc(11px * var(--ui-scale))}.app-shell,.login-layout,.modal-overlay,#toast,.mobile-nav{display:none!important}#print-sheet{display:block!important}.print-page{page-break-after:always;break-after:page;padding:1mm 0}.print-page:last-child{page-break-after:auto;break-after:auto}.print-section-title{break-after:avoid}.print-row{break-inside:avoid}.print-table tr{break-inside:avoid}@page{size:A4 portrait;margin:15mm}}
/* Nested daily-period fields use their own three-column layout, not the 12-column form grid. */
.period-layout .field{grid-column:auto}
.period-layout .field:first-child{grid-column:1/-1;order:3}
@media(max-width:760px){.period-layout .field:first-child{grid-column:1/-1;order:3}}

.absence-hour-input{width:39px;height:39px;border:1px solid #dce3dc;border-radius:7px;text-align:center;color:var(--ink);outline:none;background:#fff;font-size:calc(12px * var(--ui-scale));font-weight:650}
.absence-hour-input:focus{border-color:#82988b;box-shadow:0 0 0 3px #82988b26}
.absence-hour-input::placeholder{color:#b9c1bb}

@media(min-width:761px){.mobile-logout{display:none!important}}
@media(max-width:760px){.topbar-actions .mobile-logout{display:flex;width:35px;padding:0}}

.signature-line{border-bottom:1px solid #6c746c;max-width:230px;height:24px;margin-bottom:4px}

.no-top-padding{padding-top:0}
.hint.spaced{margin-top:15px}
.print-table .col-num{width:7%}
.print-table .col-subject{width:22%}
.print-table .col-instructor{width:15%}
.print-table .col-time{width:17%}

/* Konto / Profil */
.sidebar-profile{display:flex;align-items:center;gap:10px;width:100%;background:#2b3733;border:1px solid #3c4943;border-radius:11px;padding:9px 10px;margin-top:14px;color:#e8ece7;text-align:left;transition:background .2s,border-color .2s}
.sidebar-profile:hover{background:#34423d;border-color:#4a5a50}
.avatar{display:grid;place-items:center;border-radius:50%;background:#e8efe8;color:#3c5446;font-weight:740;letter-spacing:-.3px;flex:none}
.avatar-sm{width:34px;height:34px;font-size:calc(11px * var(--ui-scale));background:#4a5c51;color:#eef3ed}
.avatar-lg{width:78px;height:78px;font-size:calc(26px * var(--ui-scale));background:#e9efe7;color:#38513f;margin:0 auto 15px;border:1px solid #dbe4da}
.sidebar-user-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.sidebar-user-text strong{font-size:calc(12px * var(--ui-scale));font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user-text small{font-size:calc(10px * var(--ui-scale));color:#9faea6}
.sidebar-user-arrow{margin-left:auto;color:#93a29a;font-size:calc(18px * var(--ui-scale));line-height:1}
.profile-heading{margin-bottom:24px}
.profile-grid{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.6fr);gap:18px;align-items:start}
.profile-stack{display:flex;flex-direction:column;gap:18px;min-width:0}
.profile-summary{padding:28px 24px 22px;text-align:center}
.profile-summary h2{font-size:calc(19px * var(--ui-scale));letter-spacing:-.45px;margin:0 0 7px;overflow-wrap:anywhere}
.profile-role{display:inline-block;font-size:calc(10px * var(--ui-scale));font-weight:720;letter-spacing:1.1px;text-transform:uppercase;color:#5f7467;background:#eef3ec;border:1px solid #e1e8df;border-radius:999px;padding:4px 10px}
.profile-facts{margin:22px 0 20px;border-top:1px solid #edf0ec;border-bottom:1px solid #edf0ec;padding:6px 0}
.profile-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;text-align:left}
.profile-facts span{font-size:calc(11px * var(--ui-scale));color:#7f8d84}
.profile-facts strong{font-size:calc(12px * var(--ui-scale));color:#3a4a40;font-weight:670;text-align:right}
.profile-logout{width:100%;justify-content:center;color:var(--danger);border-color:#e5d7d4}
.profile-logout:hover{background:#fbf1ef}
.profile-note{font-size:calc(10px * var(--ui-scale));color:#9ba79e;margin:14px 0 0;letter-spacing:.2px}
.profile-intro{margin:0 0 18px;line-height:1.7}
.profile-form .action-row{padding-top:18px}
.profile-form .field-grid{gap:16px}
.profile-session-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.profile-session-row strong{display:block;font-size:calc(13px * var(--ui-scale));margin-bottom:4px}
.profile-session-row .card-sub{margin:0;max-width:520px;line-height:1.7}
.profile-loading{color:#7d8b82;font-size:calc(13px * var(--ui-scale))}
@media(max-width:1100px){.profile-grid{grid-template-columns:1fr}.profile-summary{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"avatar name" "avatar role" "facts facts" "logout logout" "note note";text-align:left;column-gap:18px;align-items:center}.profile-summary .avatar-lg{grid-area:avatar;margin:0}.profile-summary h2{grid-area:name;margin:0}.profile-summary .profile-role{grid-area:role;justify-self:start;margin-top:5px}.profile-summary .profile-facts{grid-area:facts}.profile-summary .profile-logout{grid-area:logout}.profile-summary .profile-note{grid-area:note;text-align:center}}
@media(max-width:760px){.profile-session-row{align-items:flex-start}.profile-session-row .topbar-action{width:100%;justify-content:center}.profile-form .field.span-6{grid-column:span 12}.profile-form .action-row{flex-direction:column;align-items:stretch;gap:12px}.profile-form .action-row .topbar-action{width:100%;justify-content:center}}


/* Flexible lesson records: readable cards, independent of table width. */
.lesson-cards{display:grid;gap:14px;margin-bottom:18px}
.lesson-card{min-width:0;background:#fafbf9;border:1px solid var(--line);border-radius:12px;padding:17px 18px 19px}
.lesson-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.lesson-card-title{display:flex;align-items:center;gap:11px;font-size:calc(13px * var(--ui-scale))}
.lesson-card-title .hours-index{width:34px;height:34px;flex:none}
.lesson-card-actions{display:flex;gap:7px;flex-wrap:wrap}
.lesson-mini{min-height:40px;padding:0 11px;background:#fff;color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:calc(12px * var(--ui-scale));font-weight:650}
.lesson-mini:hover{background:#edf1ec}
.lesson-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lesson-card-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:13px}
.lesson-card-fields .field{grid-column:auto}
.lesson-card-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px}
.lesson-time{min-width:0}
.lesson-time label{display:block;font-size:calc(11px * var(--ui-scale));font-weight:700;color:#65736b;margin-bottom:7px}
.lesson-time-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lesson-time-row .input{min-width:118px;flex:1 1 130px;max-width:180px}
.lesson-time-row .lesson-mini{padding:0 9px}
.lesson-add-row{border-top:1px solid var(--line);padding-top:15px}
@media(max-width:1100px){
 .lesson-card-fields{grid-template-columns:1fr 1fr}
 .lesson-card-fields .field:last-child{grid-column:1/-1}
 .lesson-card-times{grid-template-columns:1fr}
}
@media(max-width:760px){
 .lesson-card{padding:14px 13px 16px}
 .lesson-card-fields{grid-template-columns:1fr;gap:11px}
 .lesson-card-fields .field:last-child{grid-column:auto}
 .lesson-card-times{gap:12px}
 .lesson-card-actions{width:100%;justify-content:flex-end}
 .lesson-mini{min-height:42px}
 .lesson-time-row .input{flex:1 1 115px;max-width:none}
 .lesson-time-row .lesson-mini{flex:0 0 auto}
}
@media print{
 .lesson-cards,.lesson-time-row{display:none!important}
 .print-table{break-inside:auto}
 .print-table thead{display:table-header-group}
}

.class-select{width:clamp(130px,18vw,220px);height:38px;background:#fff;border:1px solid var(--line-strong);border-radius:9px;padding:0 9px;font-size:calc(12px * var(--ui-scale));color:var(--ink);font-weight:620}
@media(max-width:760px){.class-select{width:145px;height:35px;flex:1 1 145px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}}
