@charset "UTF-8";
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#283044;background:#f6f7fa;font-synthesis:none;font-size:14px;--ink:#283044;--muted:#7b8192;--line:#e7e9ef;--indigo:#414d9a;--teal:#2e8479;--surface:#fff;--radius:15px}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8ca5e9}a{color:var(--indigo)}button{border:0}svg{width:19px;height:19px;flex:none;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted)}.brand-mark{display:flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:12px;background:#434e96;color:#fff;font-size:23px;font-weight:650;box-shadow:0 5px 12px #35418518}.brand{display:flex;align-items:center;gap:11px}.brand-copy strong{display:block;font-size:16px;letter-spacing:-.3px}.brand-copy small{display:block;font-size:10px;margin-top:4px;color:var(--muted);letter-spacing:1.1px;text-transform:uppercase}.sidebar{position:fixed;left:0;top:0;bottom:0;width:228px;background:#fff;border-right:1px solid var(--line);padding:32px 20px 22px;display:flex;flex-direction:column;z-index:10}.sidebar .brand{padding:0 9px}.nav-label{font-size:10px;font-weight:650;letter-spacing:1.5px;color:#9a9fac;margin:41px 14px 14px}.nav{display:flex;flex-direction:column;gap:6px}.nav-btn{padding:13px 14px;text-align:left;display:flex;align-items:center;gap:12px;border-radius:10px;color:#747b8c;background:transparent;font-weight:500;line-height:1.3}.nav-btn:hover{background:#f5f6fa}.nav-btn.active{background:#eef0fb;color:#45509c}.nav-btn.active:after{content:"";width:5px;height:5px;border-radius:50%;background:#45509c;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:26px}.role-note{padding:17px 14px;background:#f8f9fb;border:1px solid #eff0f4;border-radius:12px;color:#7c8392;line-height:1.6;font-size:11px}.role-note strong{display:block;color:#50596a;font-weight:600;font-size:12px;margin-bottom:4px}.sidebar-footer{margin:20px 13px 0;font-size:10px;color:#a2a7b3;letter-spacing:.3px}.shell{margin-left:228px;min-height:100vh}.topbar{height:84px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffffb3;gap:16px}.breadcrumb{color:#8a90a0;font-size:12px;display:flex;align-items:center;gap:12px}.breadcrumb strong{font-weight:500;color:#596274}.top-right{display:flex;align-items:center;gap:22px}.status-dot{display:inline-block;width:6px;height:6px;background:#5e9f87;border-radius:50%;margin-right:6px}.server-label{font-size:11px;color:#8a90a0}.user-block{display:flex;gap:10px;align-items:center}.avatar{height:34px;width:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f0e8df;color:#8f7968;font-size:12px;font-weight:650}.user-copy strong{display:block;font-size:12px;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-copy small{display:block;font-size:10px;color:#969cab;margin-top:3px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:transparent;color:#8a90a0;border-radius:8px;flex:none}.icon-btn:hover{background:#eef0f5;color:#414d9a}.content{padding:34px 38px 28px;max-width:1700px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.eyebrow{color:#9299aa;font-size:10px;font-weight:650;letter-spacing:1.7px;text-transform:uppercase;margin:0 0 10px}h1{font-size:29px;font-weight:650;letter-spacing:-1.1px;margin:0 0 9px;line-height:1.2}h2{font-size:16px;font-weight:600;letter-spacing:-.25px;margin:0}h3{font-size:14px;font-weight:600;margin:0}p{line-height:1.6}.subtitle{font-size:12px;line-height:1.6;color:#8a90a0;margin:0}.heading-actions,.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{padding:11px 15px;background:#fff;border:1px solid #dfe3ec;color:#566074;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:550;font-size:12px;line-height:1.3;white-space:nowrap}.btn:hover{background:#f6f7fb}.btn.primary{background:var(--indigo);color:#fff;border-color:var(--indigo);box-shadow:0 3px 5px #3541850a}.btn.primary:hover{background:#354185}.btn.teal{background:#edf6f2;color:#337a67;border-color:#e0eee7}.btn.danger{background:#fff1f0;border-color:#f3d8d4;color:#ba5145}.btn.small{padding:8px 11px;font-size:11px}.btn.ghost{border-color:transparent;background:transparent}.btn svg{width:16px;height:16px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:19px 20px;position:relative;min-height:106px}.stat-label{color:#9197a6;font-size:11px;margin-bottom:12px}.stat-number{font-size:27px;font-weight:600;letter-spacing:-.8px;line-height:1.1}.stat-number small{font-size:14px;color:#a4a9b6;font-weight:400;letter-spacing:0}.stat-note{font-size:10px;color:#999eac;margin-left:8px}.stat-icon{position:absolute;right:18px;top:18px;padding:9px;border-radius:11px;display:flex;background:#f0f2fc;color:#727bb3}.stat:nth-child(2) .stat-icon{background:#edf6f2;color:#62978c}.stat:nth-child(3) .stat-icon{background:#fff5e8;color:#c39c5b}.stat:nth-child(4) .stat-icon{background:#f4effa;color:#a18abf}.stat-date{font-size:18px;letter-spacing:-.5px;padding-top:5px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-top{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-title{display:flex;align-items:center;gap:10px}.panel-body{padding:23px}.badge{padding:4px 8px;background:#f0f2f7;border-radius:6px;font-size:10px;font-weight:550;color:#9098a9;white-space:nowrap}.badge.green{background:#eaf5ef;color:#488875}.badge.orange{background:#fff5e5;color:#b28a48}.badge.indigo{background:#eef0fb;color:#6876b5}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 23px;border-bottom:1px solid var(--line);background:#fdfdfe}.toolbar-filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter-label{color:#9aa0ac;font-size:11px;margin-right:3px}.select{padding:9px 30px 9px 11px;color:#626c80;background:#fff;border:1px solid #e1e5ed;border-radius:8px;font-size:11px;min-width:135px;max-width:240px}.schedule-scroll{overflow:auto;max-height:calc(100vh - 410px);min-height:300px}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:870px}.schedule-table th{font-size:11px;font-weight:550;color:#7a8395;background:#fcfcfe;padding:16px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;text-align:left}.schedule-table th:first-child{width:81px;padding-left:19px}.schedule-table td{border-bottom:1px solid #eef0f5;border-right:1px solid #eef0f5;vertical-align:top;padding:7px;height:112px}.schedule-table tr:last-child td{border-bottom:0}.schedule-table td:last-child{border-right:0}.schedule-table td.period-cell{width:81px;padding:17px 10px 10px 18px;background:#fdfdfe}.period-number{font-size:13px;font-weight:600}.period-time{font-size:10px;line-height:1.6;color:#a0a6b4;margin-top:9px;white-space:nowrap}.day-name{display:block;font-weight:550;color:#6d778b}.day-short{display:none}.day-count{display:block;font-size:9px;font-weight:400;color:#abb0bc;margin-top:5px}.lesson{width:100%;padding:10px 11px 9px;border-radius:8px;border:1px solid transparent;border-left:3px solid #9ba4d4;text-align:left;background:#eef1fc;color:#596799;display:block;margin-bottom:5px;min-height:91px;position:relative;font-size:11px}.lesson:last-child{margin-bottom:0}.lesson:hover{filter:brightness(.98);box-shadow:0 0 0 1px #7381bd33}.lesson-title{display:block;font-size:11px;font-weight:600;line-height:1.4;padding-right:12px;overflow-wrap:anywhere}.lesson-teacher{display:block;font-size:9px;line-height:1.5;opacity:.75;margin-top:6px;overflow-wrap:anywhere}.lesson-meta{display:flex;gap:5px;align-items:center;justify-content:space-between;margin-top:9px;font-size:9px;opacity:.8}.lesson-room{padding:3px 5px;border-radius:4px;background:#ffffff70;white-space:nowrap}.lesson-lock{position:absolute;right:8px;top:11px;opacity:.55;display:flex}.lesson-lock svg{width:11px;height:11px}.tone-teal{background:#eaf5f1;color:#4e8376;border-left-color:#91beb0}.tone-peach{background:#fcf1e8;color:#a47e5c;border-left-color:#d9b98d}.tone-lilac{background:#f4eefb;color:#8b74ab;border-left-color:#baa4d2}.tone-blue{background:#edf3fb;color:#6584ab;border-left-color:#a4bada}.tone-rose{background:#fcf0f1;color:#ab7b88;border-left-color:#d6a6b5}.tone-indigo{background:#eef1fc;color:#6372a5;border-left-color:#a2acd8}.empty-slot{height:94px;width:100%;display:flex;align-items:center;justify-content:center;color:#d8dce6;background:transparent;border-radius:8px;opacity:.65}.empty-slot:hover{background:#f6f7fb;color:#7f8bb9;opacity:1}.empty-slot svg{width:16px}.empty-dash{display:flex;min-height:90px;justify-content:center;align-items:center;color:#e1e5ed}.panel-footer{padding:14px 23px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:10px;color:#9ca3b1;line-height:1.5}.legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:6px;height:6px;background:#a2acd8;border-radius:50%}.legend-dot.teal{background:#91beb0}.legend-dot.peach{background:#d9b98d}.page-footer{display:flex;justify-content:space-between;color:#a9aeba;font-size:10px;margin-top:22px;gap:15px}.empty-state{padding:56px 28px;text-align:center;max-width:600px;margin:auto}.empty-icon{width:62px;height:62px;margin:0 auto 20px;background:#f0f2fc;color:#7d88bb;border-radius:18px;display:flex;align-items:center;justify-content:center}.empty-icon svg{width:29px;height:29px}.empty-state h2{font-size:20px;margin-bottom:12px}.empty-state p{font-size:12px;color:#9299a8;margin:0 auto 22px;max-width:410px;line-height:1.8}.empty-state .actions{justify-content:center}.onboarding{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:23px}.step{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;gap:12px;align-items:flex-start}.step-num{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;border-radius:8px;background:#f0f2f8;color:#8e99b1;font-size:11px}.step strong{font-size:11px;font-weight:600}.step p{font-size:10px;color:#9ba2b0;margin:6px 0 0;line-height:1.6}.notice{border:1px solid #e1e8f3;background:#f0f5fc;border-radius:10px;padding:13px 16px;color:#677d9e;font-size:12px;line-height:1.6;margin-bottom:20px}.notice.warning{background:#fffbf1;border-color:#eee4cb;color:#9b824f}.notice.success{background:#eff8f3;border-color:#dceee3;color:#538570}.notice strong{font-weight:600}.report{margin-bottom:20px}.report ul{margin:9px 0 0;padding-left:18px}.report .icon-btn{float:right;padding:0;color:inherit}.data-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px;min-width:610px}.data-table th{text-align:left;color:#929baa;background:#fcfcfe;font-size:10px;font-weight:550;padding:13px 21px;border-bottom:1px solid var(--line)}.data-table td{padding:17px 21px;border-bottom:1px solid #eff1f5;color:#697589;line-height:1.5}.data-table td strong{color:#49556a;font-weight:550}.data-table tr:last-child td{border-bottom:0}.data-table .row-actions{display:flex;justify-content:flex-end;gap:3px}.data-table .row-actions .icon-btn{padding:6px}.data-table .icon-btn svg{height:15px;width:15px}.muted{color:#a1a8b5;font-size:11px}.tabs{display:flex;gap:7px;margin-bottom:22px;flex-wrap:wrap}.tab-btn{padding:10px 17px;border-radius:9px;color:#9299aa;background:transparent;font-size:12px}.tab-btn.active{background:#fff;border:1px solid var(--line);box-shadow:0 2px 4px #26324903;color:#5969a2}.tab-btn span{margin-left:6px;opacity:.55;font-size:10px}.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.directory-card{border:1px solid var(--line);border-radius:13px;padding:19px 20px;background:#fff}.directory-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.directory-card h3{line-height:1.5;overflow-wrap:anywhere}.directory-card p{color:#9aa3b3;font-size:11px;margin:9px 0 13px}.directory-card .actions{justify-content:space-between;border-top:1px solid #f0f1f5;padding-top:12px}.directory-card .icon-btn{padding:5px}.directory-card .icon-btn svg{width:16px;height:16px}.color-marker{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.color-marker.tone-indigo{background:#a2acd8}.color-marker.tone-teal{background:#91beb0}.color-marker.tone-peach{background:#d9b98d}.color-marker.tone-lilac{background:#baa4d2}.color-marker.tone-blue{background:#a4bada}.color-marker.tone-rose{background:#d6a6b5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:550;color:#6e788a}.field input,.field select{padding:12px;border:1px solid #dfe3ed;background:#fff;border-radius:8px;width:100%;color:#4b586e;min-width:0}.field input::placeholder{color:#afb5c2}.field small{font-size:10px;line-height:1.6;color:#a0a7b4}.field input[type=checkbox]{width:17px;height:17px;accent-color:#414d9a}.check-label{display:flex;align-items:center;gap:8px;color:#748096;font-size:12px}.field input[type=color]{height:42px;padding:5px}.settings-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}.settings-layout .panel-top p{margin:6px 0 0}.settings-save{margin-top:22px}.bell-rows{display:flex;flex-direction:column;gap:12px}.bell-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:center;color:#909aab;font-size:11px}.bell-row input{width:100%;padding:9px;border:1px solid #e0e5ee;border-radius:7px;color:#6c788d;font-size:12px}.bell-row span{color:#8e98a9;font-size:11px}.auth{min-height:100vh;display:grid;grid-template-columns:1.03fr 1fr;background:#fff}.auth-story{background:#eef0f8;padding:48px 11%;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.auth-story .brand{z-index:1}.auth-story-content{max-width:430px;padding:60px 0}.auth-story h1{font-size:43px;font-weight:600;line-height:1.2;letter-spacing:-1.6px;color:#3e497c;margin-bottom:23px}.auth-story p{font-size:14px;color:#939bb4;line-height:1.9}.auth-story-footer{color:#9ca5bd;font-size:10px}.auth-main{padding:60px 11%;display:flex;justify-content:center;align-items:center}.auth-card{max-width:360px;width:100%}.auth-card h2{font-size:26px;color:#3c4760;margin-bottom:11px;letter-spacing:-.7px}.auth-card .subtitle{margin-bottom:28px}.auth-card .form-grid{grid-template-columns:1fr;gap:20px}.auth-card .btn{width:100%;padding:13px;margin-top:5px}.auth-footer{font-size:10px;color:#a7aebb;text-align:center;line-height:1.8;margin-top:25px}.auth-art{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:34px;transform:rotate(-3deg);background:#ffffff85;border:1px solid #ffffff;border-radius:18px;padding:17px;box-shadow:0 20px 35px #717caa0b}.auth-art-column{display:flex;flex-direction:column;gap:10px}.auth-art-label{font-size:9px;color:#969eb8;text-align:center;margin-bottom:4px}.auth-art-block{height:58px;border-radius:8px;background:#dce3f3;border-left:3px solid #bdc8e4;padding:13px 10px}.auth-art-block:before,.auth-art-block:after{content:"";display:block;width:70%;height:5px;background:#aab8d84d;border-radius:3px}.auth-art-block:after{margin-top:9px;width:45%;height:4px}.auth-art-block.teal{background:#e2eeea;border-color:#c0d8d0}.auth-art-block.peach{background:#f2e9dd;border-color:#e2ccb0}.auth-art-block.lilac{background:#e9e3f3;border-color:#cfc2e4}.auth-art-block.empty{background:#f0f2f8;border-color:#e2e6ef}dialog{padding:0;border:1px solid #e1e5ed;border-radius:17px;width:530px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 50px);color:var(--ink);box-shadow:0 30px 100px #1f2e5c30}dialog::backdrop{background:#26304c55;backdrop-filter:blur(3px)}.dialog-head{padding:23px 25px 18px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #eff1f5;gap:15px}.dialog-head h2{font-size:18px;line-height:1.4}.dialog-head .subtitle{margin-top:7px;font-size:11px}.dialog-head .icon-btn{padding:2px}.dialog-body{padding:23px 25px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:17px 25px;border-top:1px solid #eff1f5;background:#fcfcfe}.dialog-footer .left{margin-right:auto}.form-error{background:#fff2ef;color:#b26a5f;padding:12px 14px;border:1px solid #f5ddd8;border-radius:8px;line-height:1.6;font-size:11px;margin:0 0 18px;white-space:pre-line}.form-error:empty{display:none}.confirm-text{font-size:13px;color:#7b869b;line-height:1.8;margin:0}.availability{border-collapse:collapse;width:100%;font-size:10px;table-layout:fixed;margin-top:18px}.availability th{color:#8f98a9;font-size:10px;font-weight:500;padding:8px 3px}.availability td{text-align:center;padding:4px}.availability td:first-child{color:#a1aabb;font-size:10px;width:50px}.availability input{appearance:none;width:29px;height:29px;border-radius:6px;background:#eff5f1;border:1px solid #dfeae3;cursor:pointer;margin:0}.availability input:checked{background:#eadcdb;border-color:#d9bcba}.availability input:checked:after{content:"×";color:#ac807b;font-size:19px;display:flex;justify-content:center;line-height:26px}.toasts{position:fixed;right:26px;bottom:25px;z-index:100;display:flex;flex-direction:column;gap:9px;max-width:410px}.toast{padding:14px 19px;background:#3d4b64;color:white;border-radius:10px;box-shadow:0 10px 25px #1f2d4826;font-size:12px;line-height:1.6;animation:toast-in .2s ease}.toast.error{background:#a36560}.toast.success{background:#518778}.loading-line{height:3px;background:linear-gradient(90deg,#a6b4e3,#d7e0f8,#a6b4e3);background-size:200%;animation:loading 1s linear infinite}.no-print{}.print-title{display:none}.teacher-summary{margin-bottom:23px}.help-text{font-size:11px;color:#9aa3b4;line-height:1.7;margin:0}.detail-list{display:grid;grid-template-columns:100px 1fr;gap:15px;font-size:12px;margin:0}.detail-list dt{color:#9da5b5}.detail-list dd{margin:0;color:#5b6880;overflow-wrap:anywhere}.mobile-brand{display:none}.busy-overlay{pointer-events:none;opacity:.65}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes loading{to{background-position:200%}}
@media(min-width:1600px){.content{padding-left:48px;padding-right:48px}.schedule-table td{height:127px}.lesson{min-height:106px;padding:13px}.lesson-title{font-size:12px}.lesson-teacher,.lesson-meta{font-size:10px}}
@media(max-width:1200px){.sidebar{width:200px;padding-left:14px;padding-right:14px}.shell{margin-left:200px}.content{padding:28px 24px}.topbar{padding:0 24px}.server-label{display:none}.stats{gap:11px}.stat{padding:16px}.stat-icon{right:13px;top:14px}.stat-number{font-size:24px}.stat-date{font-size:16px}.heading-actions{gap:7px}.heading-actions .btn{padding:10px 12px}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:flex-start}.settings-layout{grid-template-columns:1fr 1fr}.stat-note{display:block;margin:5px 0 0}}
@media(max-width:950px){.sidebar{width:77px;padding:24px 12px}.sidebar .brand{padding:0;justify-content:center}.sidebar .brand-copy,.nav-label,.nav-btn span,.sidebar-bottom,.nav-btn.active:after{display:none}.nav{margin-top:37px;gap:12px}.nav-btn{padding:13px;justify-content:center}.shell{margin-left:77px}.page-heading{flex-direction:column;gap:17px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-icon{display:none}.stat-label{font-size:10px}.stat-number{font-size:23px}.stat-date{font-size:14px}.schedule-scroll{max-height:65vh}.onboarding{gap:10px}.step{padding:15px 10px}.step-num{display:none}.auth-story{padding:40px 10%}.auth-story h1{font-size:36px}.auth-main{padding:40px 10%}}
@media(max-width:640px){.sidebar{position:static;width:100%;padding:15px 15px 0;border-right:0;border-bottom:1px solid var(--line);display:block}.sidebar .brand{justify-content:flex-start;padding:0 3px}.sidebar .brand-copy{display:block}.sidebar .brand-mark{width:32px;height:32px;font-size:19px;border-radius:10px}.sidebar .brand-copy strong{font-size:14px}.sidebar .brand-copy small{font-size:8px;margin-top:3px}.nav{margin-top:16px;flex-direction:row;gap:2px;overflow-x:auto}.nav-btn{padding:12px 10px;flex-direction:column;gap:7px;border-radius:9px 9px 0 0;min-width:62px;flex:1}.nav-btn span{display:block;font-size:9px}.nav-btn svg{width:17px;height:17px}.shell{margin-left:0}.topbar{height:58px;padding:0 18px}.breadcrumb{display:none}.top-right{width:100%;justify-content:space-between;gap:8px}.user-block{gap:7px}.user-copy strong{font-size:11px;max-width:190px}.user-copy small{font-size:9px}.avatar{width:29px;height:29px;font-size:11px}.content{padding:23px 15px}.page-heading{gap:17px;margin-bottom:21px}h1{font-size:25px}.eyebrow{font-size:8px;letter-spacing:1.3px}.subtitle{font-size:11px}.heading-actions{width:100%;gap:7px}.heading-actions .btn{font-size:10px;padding:10px}.heading-actions .btn svg{width:14px;height:14px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:19px}.stat{min-height:89px;padding:14px 16px;border-radius:12px}.stat-icon{display:flex;padding:6px;right:12px;top:12px}.stat-icon svg{width:15px;height:15px}.stat-label{font-size:10px;margin-bottom:12px}.stat-number{font-size:24px}.stat-note{display:inline;font-size:9px;margin-left:5px}.stat-date{font-size:15px;padding-top:3px}.panel-top{padding:17px 15px;gap:10px}.panel-top h2{font-size:13px}.toolbar{padding:13px 15px;align-items:flex-start;flex-direction:column;gap:11px}.toolbar-filters{width:100%;gap:7px}.select{max-width:100%;min-width:110px;flex:1;padding:9px;font-size:11px}.filter-label{display:none}.toolbar>.btn{width:100%}.schedule-scroll{max-height:65vh;min-height:200px}.schedule-table{min-width:830px}.schedule-table th:first-child{width:67px;padding-left:13px}.schedule-table td.period-cell{padding-left:13px}.panel-footer{padding:13px 15px;flex-direction:column;align-items:flex-start;gap:8px}.legend{gap:10px}.page-footer{font-size:8px}.empty-state{padding:38px 20px}.empty-state h2{font-size:18px}.empty-state p{font-size:11px}.empty-state .actions{flex-direction:column}.onboarding{grid-template-columns:1fr;gap:9px;margin-top:17px}.step{padding:15px;gap:12px}.step-num{display:flex}.step p{margin-top:3px}.directory-grid{grid-template-columns:1fr}.tabs{gap:4px;flex-wrap:nowrap;overflow:auto}.tab-btn{padding:9px 11px;font-size:10px;white-space:nowrap}.settings-layout{grid-template-columns:1fr}.form-grid{gap:15px}.panel-body{padding:18px}.auth{display:flex;min-height:100vh;flex-direction:column}.auth-story{padding:24px;min-height:auto}.auth-story-content,.auth-story-footer{display:none}.auth-main{padding:45px 24px;flex:1;align-items:flex-start}.auth-card h2{font-size:25px}.auth-card .subtitle{margin-bottom:25px}.dialog-head{padding:19px 19px 16px}.dialog-body{padding:20px 19px}.dialog-footer{padding:15px 19px}.dialog-footer .btn{font-size:11px;padding:10px 12px}.toasts{left:15px;right:15px;bottom:18px;max-width:none}.notice{font-size:11px;padding:12px 14px}.detail-list{grid-template-columns:85px 1fr;gap:13px}}
/* Readable type at every viewport; the timetable scrolls instead of shrinking text. */
:root{--muted:#687387}
.subtitle,.breadcrumb,.server-label,.user-copy small,.stat-label,.stat-note,.filter-label,.muted,.help-text,.page-footer,.sidebar-footer,.role-note,.directory-card p,.step p,.field small,.auth-footer,.auth-story-footer,.dialog-head .subtitle,.detail-list dt{color:#687387}
.brand-copy small,.sidebar .brand-copy small,.nav-label,.eyebrow,.user-copy small,.server-label,.stat-label,.stat-note,.badge,.filter-label,.day-count,.period-time,.panel-footer,.page-footer,.sidebar-footer,.role-note,.step strong,.step p,.field label,.field small,.bell-row span,.directory-card p,.muted,.help-text,.auth-footer,.auth-story-footer,.dialog-head .subtitle,.form-error,.availability,.availability th,.availability td:first-child,.tab-btn span,.auth-art-label{font-size:12px}
.subtitle,.empty-state p,.notice,.confirm-text,.detail-list,.data-table{font-size:14px}
.field input,.field select,.select,.bell-row input{font-size:14px;min-height:44px}
.btn,.btn.small,.heading-actions .btn,.dialog-footer .btn,.tab-btn{font-size:13px;min-height:38px}
.user-copy strong,.nav-btn span{font-size:14px}
.schedule-table{min-width:1100px}
.schedule-table th{font-size:13px}
.schedule-table td{height:134px}
.lesson{min-height:114px;padding:12px 11px 10px}
.lesson-title{font-size:13px;line-height:1.5}
.lesson-teacher,.lesson-meta{font-size:12px;opacity:1;line-height:1.5}
.lesson-meta{gap:5px;align-items:flex-end}
.lesson-room{white-space:normal;text-align:right;overflow-wrap:anywhere}
.lesson-meta>span:first-child{overflow-wrap:anywhere}
.tone-indigo{color:#485b91}.tone-teal{color:#356b5f}.tone-peach{color:#86613e}.tone-lilac{color:#71558f}.tone-blue{color:#476b97}.tone-rose{color:#925d6d}
.period-time,.day-count{color:#69758b}
.period-number .muted{font-size:11px}
.empty-slot,.empty-dash{min-height:114px}
.data-table th{font-size:12px;color:#687387}
.field input::placeholder{color:#788398}
.badge{color:#66748c}.badge.orange{color:#916a26}.badge.green{color:#35745f}.badge.indigo{color:#506198}
.stat-label{padding-right:34px}.stat-note{display:block;margin:6px 0 0}.stat-date{font-size:18px}
.stat{min-height:120px}.stat-number small{color:#758095}
.panel-footer,.auth-story p,.auth-story-footer,.step p,.directory-card p{color:#687387}
.auth-story .eyebrow{font-size:12px;color:#687387}
.schedule-help{margin-top:15px;justify-content:space-between}.schedule-help p{flex:1;min-width:240px}
.auth-back{text-align:center;font-size:13px;margin:24px 0 0}.auth-back a{color:#53639a;text-decoration:none}.auth-back a:hover{text-decoration:underline}
.legend svg{width:13px;height:13px}
.form-error{color:#97473b}.notice.warning{color:#81642e}.notice.success{color:#397156}
.availability input{width:32px;height:32px}.availability input:checked:after{line-height:29px}
@media(max-width:950px){.stat-label{padding-right:0}.stat-date{font-size:16px}.stat-note{font-size:12px}}
@media(max-width:640px){.nav-btn{min-width:74px;flex:none}.nav-btn span{font-size:12px}.nav{justify-content:space-between}.sidebar .brand-copy small{font-size:10px;letter-spacing:.6px}.brand-copy small{font-size:11px}.eyebrow{font-size:11px;letter-spacing:1px}.stat-label{padding-right:25px}.stat-date{font-size:16px}.stat-note{display:block;margin:5px 0 0}.user-copy strong{font-size:13px}.user-copy small{font-size:12px}.page-footer{font-size:12px;flex-direction:column;gap:7px}.page-heading .subtitle{font-size:14px}.panel-top h2{font-size:15px}.directory-card .actions .btn{padding-left:0}.schedule-help{gap:6px}.form-grid{grid-template-columns:1fr}.heading-actions .btn{flex:1}.auth-art-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
@media print{@page{size:landscape;margin:12mm}body{background:#fff;color:#111;font-size:10px}.sidebar,.topbar,.page-heading,.stats,.toolbar,.panel-footer,.page-footer,.heading-actions,.no-print,.toasts,dialog,.report,.teacher-summary{display:none!important}.shell{margin:0}.content{padding:0;max-width:none}.print-title{display:block!important;margin:0 0 15px}.print-title h1{font-size:20px;margin-bottom:8px}.print-title p{font-size:10px;margin:0;color:#555}.panel{border:0;border-radius:0;overflow:visible}.panel-top{padding:0 0 13px;border:0}.panel-top .actions,.panel-top .badge{display:none}.schedule-scroll{max-height:none;overflow:visible;min-height:0}.schedule-table{min-width:0;table-layout:fixed}.schedule-table th{position:static;padding:9px 5px;font-size:10px;border:1px solid #d5d9e2}.schedule-table th:first-child{width:57px;padding-left:8px}.schedule-table td{height:75px;padding:4px;border:1px solid #d5d9e2}.schedule-table td.period-cell{width:57px;padding:10px 6px}.period-number{font-size:10px}.period-time{font-size:8px}.lesson{min-height:0;padding:8px 6px;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.lesson-title{font-size:9px}.lesson-teacher,.lesson-meta{font-size:8px}.lesson-lock{display:none}.lesson-room{padding:2px}.empty-slot,.empty-dash{height:65px;min-height:0}.empty-slot svg{display:none}.day-count{font-size:8px}.data-table{min-width:0}.data-table .row-actions{display:none}.onboarding{display:none}}
