:root{--bg:#f6f8fa;--surface:#fff;--ink:#172b3b;--body:#4f6270;--muted:#7e8d98;--line:#e6ebef;--primary:#087f73;--primary-dark:#06655d;--teal-soft:#e9f6f2;--navy:#102f3b;--red:#c84040;--radius:16px;--shadow:0 4px 25px #163b4b05;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3faea866;outline-offset:3px}input,select,textarea{min-width:0;border:1px solid #dce4e9;border-radius:9px;padding:11px 12px;color:var(--ink);background:white;transition:border .15s,box-shadow .15s;width:100%;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #087f730d;outline:none}input::placeholder{color:#97a4ad}input[readonly]{background:#f3f6f7;color:var(--primary);font-weight:700}input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary);flex-shrink:0;margin:0}input[type=color]{padding:4px;height:43px}select{appearance:auto}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}h1{font-size:29px;line-height:1.3;font-weight:800;letter-spacing:-.9px}h2{font-size:17px;line-height:1.45;font-weight:750;letter-spacing:-.35px}h3{font-size:15px;font-weight:750}small{font-size:12px}p{line-height:1.65;color:var(--body)}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:9px;font-size:13px;font-weight:650;line-height:1.35;border:1px solid transparent;white-space:nowrap;transition:background .16s,box-shadow .16s,transform .16s}.btn .icon{width:17px;height:17px}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:white;box-shadow:0 3px 6px #087f7312}.btn.primary:hover{background:var(--primary-dark);box-shadow:0 4px 9px #087f7325}.btn.secondary{background:#fff;border-color:#dce5e9;color:#344d5c}.btn.secondary:hover{background:#f6faf9;border-color:#a8c6bf}.btn.ghost{background:transparent;color:var(--body)}.btn.ghost:hover{background:#edf3f5}.btn.white{background:#fff;color:#0c625c;border-color:#fff}.btn.small{min-height:34px;padding:7px 10px;font-size:12px}.btn.wide{width:100%}.icon-btn{width:33px;height:33px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:transparent;color:#728592;border:0;flex-shrink:0}.icon-btn .icon{width:17px;height:17px}.icon-btn:hover{background:var(--teal-soft);color:var(--primary)}.icon-btn.danger:hover{color:var(--red);background:#fff0ef}.text-link{display:inline-flex;gap:7px;align-items:center;border:0;background:none;padding:0;font-weight:650;font-size:13px;color:var(--primary)}.text-link .icon{width:16px}.muted{color:var(--muted)}.text-danger{color:var(--red)}.eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:1.65px;color:var(--primary);line-height:1.5;margin-bottom:9px}.eyebrow.light{color:#a4d6c6}.app-shell{display:flex;min-height:100vh}.sidebar{overflow-y:auto;width:242px;position:fixed;top:0;bottom:0;left:0;z-index:30;background:white;border-right:1px solid var(--line);padding:30px 18px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:9px;align-items:center;font-size:21px;font-weight:800;letter-spacing:-.7px;padding:0 10px;color:var(--navy);white-space:nowrap}.brand>.icon{width:33px;height:33px;background:var(--primary);color:white;padding:6px;border-radius:9px}.brand-light{font-weight:500;color:var(--primary)}.institution-tag{display:flex;align-items:center;gap:8px;border:1px solid #e9edef;border-radius:9px;padding:10px;margin:27px 4px 27px;font-size:10px;font-weight:650;color:#73848d;line-height:1.5;background:#fcfdfd}.institution-tag>.icon{width:16px;height:16px;color:#8d9ca5}.nav-label{font-size:9px;letter-spacing:1.45px;color:#9ba7ae;font-weight:700;padding:0 14px;margin-bottom:12px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.nav-link{display:flex;align-items:center;position:relative;gap:12px;border:0;background:none;text-align:left;border-radius:9px;padding:11px 13px;min-height:43px;width:100%;font-size:12.5px;color:#70808e;font-weight:550;transition:background .15s,color .15s}.nav-link .icon{width:18px;height:18px;color:#8798a3}.nav-link:hover{background:#f6f9fa;color:var(--primary)}.nav-link.active{background:#e9f5f1;color:var(--primary);font-weight:750}.nav-link.active .icon{color:var(--primary)}.nav-current{width:5px;height:5px;background:var(--primary);border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:25px}.security-note{display:flex;gap:9px;margin:15px 8px 22px;align-items:center;color:#73838e;font-size:10px}.security-note>.icon{width:24px;height:24px;color:#81a59d}.security-note small{display:block;font-size:9px;color:#a0acb3;margin-top:4px}.user-box{border:1px solid var(--line);border-radius:10px;background:white;display:flex;align-items:center;gap:9px;width:100%;padding:10px;text-align:left}.avatar,.topbar-avatar,.mini-avatar{display:inline-flex;align-items:center;justify-content:center;color:#33796d;background:#e6f0eb;border:1px solid #d9e8e0;font-size:12px;font-weight:750;width:34px;height:34px;border-radius:10px;flex-shrink:0}.user-box>span:nth-child(2){min-width:0}.user-box strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.user-box small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.user-box>.icon{margin-left:auto;width:15px;height:15px;color:#9aa7af}.logout{display:flex;gap:8px;align-items:center;justify-content:center;font-size:10px;color:#98a4ac;width:100%;border:0;background:none;padding:14px 0 0}.logout .icon{width:14px;height:14px}.logout:hover{color:var(--red)}.main-shell{margin-left:242px;flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:10px;color:#91a0a9;font-size:11px}.breadcrumb>.icon{width:12px;height:12px;color:#c0c8ce}.breadcrumb strong{font-weight:600;color:#657b87}.topbar-right{display:flex;align-items:center;gap:10px}.live-dot{background:#3d9d80;width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 4px #3d9d800b}.topbar-meta{font-size:10px;color:var(--muted)}.year-select{width:auto;min-width:85px;font-size:11px;border-radius:7px;background:#f9fbfc;border-color:#e9edf0;padding:7px 10px;font-weight:650}.topbar-avatar{border-radius:50%;margin-left:12px;width:29px;height:29px;font-size:11px}.mobile-menu{display:none}.sidebar-scrim{display:none}.main-content{padding:32px 36px;max-width:1680px;width:100%;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:2px 0 28px}.page-heading h1{margin-bottom:9px}.page-heading p{font-size:12px;color:#8a99a4;max-width:750px}.heading-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;flex-shrink:0;align-items:center}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:25px}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:20px 21px}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric-top>span:first-child{color:#7c8d98;font-weight:550;font-size:11px}.metric-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#eaf6f1;border-radius:9px;color:#2d8d79}.metric-icon .icon{width:17px;height:17px}.metric-icon.blue{background:#ecf2fd;color:#5c87c7}.metric-icon.amber{background:#fff6e7;color:#dba548}.metric-icon.purple{background:#f1edfc;color:#9c83d1}.metric-card>strong{display:block;font-family:Manrope,sans-serif;font-size:29px;font-weight:800;letter-spacing:-.7px;margin:7px 0 5px}.metric-card>small{font-size:10px;color:#a1adb4}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:25px;overflow:hidden}.panel-heading{padding:23px 25px 21px;display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-heading h2{font-size:15px}.panel-heading p{font-size:10px;color:#95a1a9;margin-top:6px}.panel-heading>.icon{color:#a1b2bc}.overview-grid{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(280px,1fr);gap:24px}.overview-side{display:grid;grid-template-rows:1.1fr 1fr;gap:20px;margin-bottom:25px}.overview-side .panel{margin:0}.step-count{font-size:10px;font-weight:650;padding:6px 9px;background:#f0f8f4;border-radius:6px;color:#6d9d85;white-space:nowrap}.progress-track{height:5px;overflow:hidden;border-radius:6px;background:#edf2f0}.progress-track>span{display:block;height:100%;background:#64ad97;min-width:0;transition:width .2s;border-radius:6px}.setup-panel>.progress-track{margin:0 25px 12px}.setup-list{padding:0 25px 10px}.setup-step{display:flex;align-items:center;gap:13px;padding:15px 0;width:100%;text-align:left;border:0;border-bottom:1px solid #f0f3f5;background:none}.setup-step:last-child{border-bottom:0}.setup-step>span:nth-child(2){flex:1}.setup-step strong{font-size:12px;font-weight:650;display:block}.setup-step small{color:#99a6ae;font-size:10px;display:block;margin-top:5px}.setup-step>.icon{color:#b2bec6;width:16px;height:16px}.step-number{display:flex;align-items:center;justify-content:center;width:31px;height:31px;border:1px solid #e4ebef;border-radius:9px;background:#f9fbfc;color:#9eabb4;font-weight:650;font-size:11px;flex-shrink:0}.setup-step.done .step-number{background:#e8f5ee;color:#3b9a7d;border-color:#d8eae0}.step-number .icon{width:16px;height:16px}.setup-step:hover strong{color:var(--primary)}.setup-step .badge{font-size:9px;padding:4px 7px}.feature-card{position:relative;overflow:hidden;background:#123e45;border-radius:var(--radius);padding:24px 25px;color:#fff;min-height:245px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.feature-card .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:9px;position:relative;z-index:1}.feature-card h2{font-size:24px;line-height:1.4;letter-spacing:-.4px;margin-bottom:10px;font-weight:750;position:relative;z-index:1}.feature-card p{color:#99b8ba;font-size:10px;max-width:240px;margin-bottom:18px;position:relative;z-index:1}.feature-card .btn{min-height:34px;font-size:10px;padding:7px 11px;position:relative;z-index:1}.feature-card .btn .icon{width:13px}.feature-symbol{position:absolute;right:20px;top:20px;background:#ffffff0d;color:#79ab9e;border:1px solid #ffffff0d;border-radius:11px;padding:9px}.feature-symbol .icon{width:20px;height:20px}.feature-decoration{position:absolute;width:260px;height:260px;border:1px solid #ffffff0a;border-radius:50%;right:-100px;bottom:-110px;box-shadow:0 0 0 35px #ffffff03,0 0 0 70px #ffffff02}.coverage-panel{padding-bottom:22px}.coverage-panel .panel-heading{padding-bottom:9px}.coverage-number{padding:0 25px;font-family:Manrope,sans-serif;font-size:31px;font-weight:800}.coverage-number span{font-size:17px;color:#bdc8cd;font-weight:500}.coverage-panel>p{padding:0 25px;color:#9aa8b0;font-size:10px;margin-top:4px}.coverage-panel>.progress-track{margin:18px 25px}.coverage-panel>.text-link{margin:0 25px;font-size:10px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:49px 25px 55px;gap:11px}.empty-icon{background:#edf6f2;color:#75a896;width:51px;height:51px;border-radius:15px;display:flex;align-items:center;justify-content:center;margin-bottom:3px}.empty-icon .icon{width:25px;height:25px}.empty-state h3{font-size:16px;color:#49616e;font-weight:700}.empty-state p{font-size:12px;max-width:530px;color:#98a5ae}.empty-state .btn{margin-top:7px}.table-wrap{width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}.data-table thead{background:#fbfcfd}.data-table th{font-size:9px;font-weight:650;letter-spacing:.45px;text-transform:uppercase;color:#96a3ad;padding:13px 25px;border-top:1px solid #edf1f3;border-bottom:1px solid #edf1f3;white-space:nowrap}.data-table td{padding:16px 25px;vertical-align:middle;border-bottom:1px solid #eff3f5;color:#5d7381;line-height:1.55;max-width:390px}.data-table td:first-child{color:#3b5261}.data-table td>strong{font-weight:650}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fcfefd}.data-table th:last-child,.data-table td:last-child{text-align:right}.data-table td .btn{font-size:10px;min-height:31px;padding:6px 9px}.data-table td .btn .icon{width:14px;height:14px}.cell-sub{display:block;color:#a0adb5;font-size:10px;margin-top:4px}.badge{display:inline-flex;gap:5px;align-items:center;vertical-align:middle;border-radius:6px;font-size:10px;padding:5px 8px;font-weight:550;line-height:1.3;white-space:nowrap}.badge>span{width:4px;height:4px;display:inline-block;border-radius:50%;background:currentColor}.badge.success{background:#ecf7ef;color:#6d9d7b}.badge.info{background:#eef3fc;color:#668bc0}.badge.warning{background:#fff7e9;color:#b49553}.badge.muted{background:#f0f3f5;color:#95a3ac}.table-toolbar{padding:20px 25px;display:flex;gap:16px;align-items:center;justify-content:space-between}.search-field{position:relative;max-width:360px;width:100%}.search-field>.icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;color:#a7b4bd}.search-field input{padding:10px 12px 10px 37px;font-size:11px;background:#fbfcfd;border-color:#e7edf0}.record-count{color:#9aa9b1;font-size:11px;white-space:nowrap}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:3px}.person-cell{display:flex;gap:11px;align-items:center}.person-cell strong{display:block;font-weight:650}.person-cell small{color:#a3aeb6;font-size:9px}.mini-avatar{width:31px;height:31px;font-size:10px;background:#edf4f7;border-color:#e1ebef;color:#7a9ba9}.tag{display:inline-block;white-space:nowrap;padding:3px 7px;border-radius:5px;background:#f2f6f7;color:#8a9da8;font-size:9px;margin:2px 3px 2px 0}.load-cell{min-width:120px;max-width:160px}.load-cell strong{font-size:13px;font-weight:700}.load-cell strong small{color:#9eafb8;font-size:10px;font-weight:500}.load-cell>small{font-size:9px;color:#a6b1b8;display:block}.load-track{display:block;height:4px;width:110px;background:#edf2f4;border-radius:4px;margin:5px 0}.load-track i{display:block;height:4px;background:#80b6a1;border-radius:4px}.load-track .over{background:#d48479}.subject-name{display:inline-flex;gap:9px;align-items:center}.subject-name>span{display:inline-block;height:9px;width:9px;background:var(--subject);border-radius:3px;flex-shrink:0}.notice{border:1px solid #f0e5cb;border-radius:10px;background:#fffbf1;color:#9d8551;padding:15px 18px;margin:0 0 23px;font-size:12px;line-height:1.65}.notice>.icon{width:17px;height:17px;vertical-align:middle;margin-right:6px}.notice summary{cursor:pointer;font-weight:550;list-style:none;display:flex;align-items:center;gap:9px}.notice summary::after{content:'+';margin-left:auto;font-size:17px;color:#b89c65}.notice[open] summary::after{content:'−'}.notice ul{padding-left:24px;margin:12px 0 0}.notice-body{display:flex;flex-wrap:wrap;gap:4px;margin-top:14px}.notice.warning .tag{background:#fff2cf;color:#a58a50}.notice.info{background:#f0f7fb;border-color:#dcebf3;color:#7794a4}.flow-banner{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border:1px solid #e4ece9;border-radius:12px;background:#f0f7f4;margin-bottom:25px;gap:8px;overflow:auto}.flow-banner>span{display:flex;align-items:center;gap:9px;color:#6b8f83;font-size:10px;white-space:nowrap}.flow-banner>span>b{width:21px;height:21px;border:1px solid #cce1d7;color:#679a86;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;font-size:9px}.flow-banner>span>.icon{width:15px;height:15px}.flow-banner>.icon{width:13px;color:#b1c5bd}.schedule-meta{display:flex;align-items:center;flex-wrap:wrap;gap:22px;font-size:10px;color:#91a3ad;margin-bottom:22px}.schedule-meta>span:not(.badge){display:flex;gap:6px;align-items:center}.schedule-meta .icon{width:14px;height:14px;color:#96b3a8}.schedule-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:13px;padding:19px 23px;border-bottom:1px solid var(--line);background:#fcfdfd}.segmented{display:inline-flex;align-items:center;background:#eff3f5;border:1px solid #e7edef;padding:4px;border-radius:9px}.segmented button{display:flex;gap:7px;align-items:center;border:0;border-radius:6px;background:transparent;font-size:11px;font-weight:600;color:#8ca0ad;padding:8px 10px;white-space:nowrap}.segmented button .icon{width:15px;height:15px}.segmented button.active{background:white;color:var(--primary);box-shadow:0 1px 4px #234c4b0a}.schedule-toolbar>select{width:auto;max-width:320px;min-width:170px;font-size:11px;padding:9px}.schedule-download{display:flex;gap:4px;margin-left:auto}.schedule-download .btn{font-size:10px;min-height:34px;padding:8px 10px}.schedule-download .icon{width:14px;height:14px}.print-heading{padding:26px 27px}.print-heading .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:5px}.print-heading h2{font-size:18px}.print-heading p{font-size:10px;color:#9eabb3;margin-top:6px}.weekly-wrap{overflow:auto;padding:0 24px 25px}.weekly-table{width:100%;border-collapse:separate;border-spacing:5px;table-layout:fixed;min-width:750px}.weekly-table th{text-align:center;font-size:10px;font-weight:600;color:#91a3ad;padding:9px 4px}.weekly-table thead th{background:#f5f8f9;border-radius:6px;padding:11px}.weekly-table th:first-child{width:68px}.weekly-table tbody th strong{display:block;font-size:11px;font-weight:600;color:#6f8997}.weekly-table tbody th small{display:block;margin-top:4px;font-size:9px;font-weight:400;color:#b1bcc4}.weekly-table td{vertical-align:top;border:1px solid #edf2f4;border-radius:7px;background:#fdfefe;height:102px;padding:0}.weekly-table .break-row td{background:#f7f8f9;height:auto;vertical-align:middle;text-align:center;border-color:#f0f3f5;padding:8px}.break-label{color:#acb9c1;font-size:9px;font-style:italic}.class-card{position:relative;display:flex;flex-direction:column;gap:7px;padding:13px 10px;text-align:left;border:0;border-left:3px solid var(--subject);border-radius:6px;background:color-mix(in srgb,var(--subject) 7%,#fff);width:100%;height:100%;min-height:101px;opacity:1!important;cursor:default!important;line-height:1.3}.class-card.editable{cursor:pointer!important}.class-card.editable:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--subject) 30%,#fff);filter:brightness(.98)}.class-card strong{color:color-mix(in srgb,var(--subject) 80%,#172b3b);font-size:11px;font-weight:650;padding-right:5px;overflow-wrap:anywhere}.class-card>span{font-size:9px;color:#7e96a3}.class-card>small{display:flex;gap:4px;align-items:center;color:#9aadb7;font-size:8px}.class-card>small .icon{width:11px;height:11px}.class-edit{position:absolute;width:12px;height:12px;right:6px;top:7px;color:#90aaa9;opacity:0}.class-card:hover .class-edit{opacity:1}.free-slot{height:100%;display:flex;align-items:center;justify-content:center;color:#d9e2e7;font-size:14px;min-height:100px}.break-row th strong,.break-row th small{font-size:9px!important}.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.report-card{padding:25px 23px}.report-card-icon{display:flex;width:43px;height:43px;border-radius:12px;background:#edf7f2;color:#7aa68f;justify-content:center;align-items:center;margin-bottom:20px}.report-card h2{font-size:17px}.report-card>p{font-size:11px;color:#9caab2;margin:10px 0 22px;min-height:50px}.report-form{display:grid;gap:15px}.report-form label{font-size:10px;color:#7f949f}.report-form select{font-size:11px}.report-buttons{display:flex;gap:9px;margin-top:4px}.report-buttons>.btn{flex:1}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.settings-grid>.panel{margin-bottom:0}.settings-grid{margin-bottom:25px}.settings-card{padding:23px 25px}.settings-card>.panel-heading{padding:0 0 22px}.settings-card h2 .icon{width:17px;height:17px;margin-right:6px;color:#7ba896}.settings-card form{display:grid;gap:17px}.settings-card form>.btn{justify-self:start}.settings-card>.muted{font-size:12px;margin-bottom:20px}.settings-card .table-wrap{margin:0 -25px;width:calc(100% + 50px)}.settings-card .data-table td,.settings-card .data-table th{padding-left:18px;padding-right:18px}.year-list{display:grid;gap:10px;margin:4px 0 21px}.year-list>div{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;background:#f8fafb;border-radius:8px}.year-list strong{font-size:12px;font-weight:600}.inline-actions{display:flex;gap:7px;flex-wrap:wrap}.backup-section{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.backup-section h3{font-size:13px}.backup-section p{font-size:11px;color:#95a4ad;margin:9px 0 11px}.audit-detail{display:block;white-space:normal;max-width:450px;font-size:10px;overflow-wrap:anywhere;color:#a0adb5}.app-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:7px 36px 25px;font-size:9px;color:#b1bcc3;max-width:1680px;width:100%;margin:0 auto}.app-footer>span:last-child{display:flex;align-items:center;gap:6px}.app-footer .icon{width:12px;height:12px}.editor-dialog{border:0;padding:0;border-radius:17px;background:#fff;color:var(--ink);width:min(640px,calc(100vw - 34px));max-height:calc(100vh - 50px);overflow:hidden;box-shadow:0 25px 90px #0d2b3b3b}.editor-dialog::backdrop{background:#152e3c70;backdrop-filter:blur(3px)}.editor-dialog.wide-dialog{width:min(820px,calc(100vw - 34px))}.editor-dialog>form{display:flex;flex-direction:column;max-height:calc(100vh - 50px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 28px 21px;border-bottom:1px solid var(--line);flex-shrink:0}.dialog-header h2{font-size:20px}.dialog-header p{font-size:11px;color:#98a7b0;margin-top:8px;max-width:620px}.dialog-body{padding:26px 28px;overflow:auto;min-height:0}.dialog-body>label{margin-bottom:18px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:18px 28px;background:#fbfcfd;border-top:1px solid var(--line);flex-shrink:0}.dialog-error,.form-error{background:#fff3f1;color:#b26058;border:1px solid #f6dbd7;border-radius:9px;padding:13px 15px;font-size:12px;line-height:1.6;margin-bottom:22px}.dialog-error[hidden]{display:none}.dialog-error strong{font-weight:650}.dialog-error ul{padding-left:18px;margin:9px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;margin-bottom:21px}label:not(.check-label){display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:550;color:#5e7685;line-height:1.4}label>input,label>select{font-size:12px;font-weight:400}.form-section{border-top:1px solid var(--line);padding-top:23px;margin-top:23px}.form-section>h3{margin-bottom:17px;font-size:14px}.section-label{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}.section-label h3{font-size:14px}.section-label p{font-size:10px;color:#a0adb6;margin-top:5px}.checkbox-field{border:0;padding:0;margin:20px 0}.checkbox-field legend{font-size:11px;font-weight:600;color:#5e7685;padding:0;margin-bottom:11px}.check-label{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5;color:#718997;margin:10px 0;cursor:pointer;font-weight:400}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.check-grid .check-label{margin:5px 0}.day-checks{display:flex;flex-wrap:wrap;gap:7px}.day-checks .check-label{position:relative;margin:0;padding:9px 11px;border:1px solid #e0e8eb;border-radius:8px;font-size:10px;gap:7px;min-width:64px;justify-content:center;background:#fcfdfd}.day-checks .check-label:has(:checked){border-color:#93c6b7;background:#f1faf5;color:var(--primary)}.day-checks input{width:13px;height:13px}.field-note{font-size:11px;color:#a0aeb7;line-height:1.7;margin:8px 0 15px}.repeat-row{display:flex;gap:10px;align-items:flex-end;background:#f9fbfc;border:1px solid #e8eef1;border-radius:9px;padding:12px;margin-bottom:10px}.repeat-row label{flex:1;min-width:0;font-size:9px}.repeat-row input,.repeat-row select{font-size:11px;padding:9px}.repeat-row>.icon-btn{margin-bottom:5px}.intensity-row label{max-width:260px}.session-row{gap:8px}.session-row label:last-of-type{flex:1.25}.block-row label:first-child{min-width:90px}.toasts{position:fixed;bottom:25px;right:25px;display:grid;gap:10px;z-index:1000;max-width:min(490px,calc(100vw - 30px));pointer-events:none}.toast{padding:15px 19px;border-radius:11px;background:#f0faf4;border:1px solid #bbd6c7;color:#45785e;box-shadow:0 7px 40px #163d4920;display:flex;align-items:center;gap:11px;font-size:12px;line-height:1.5;animation:toast-in .2s ease-out}.toast.error{background:#fff5f3;border-color:#efc9c1;color:#b16158}.toast .icon{width:19px;height:19px}.spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.startup{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#f7faf9;color:var(--primary)}.startup-symbol{display:flex;align-items:center;justify-content:center;width:70px;height:70px;background:var(--primary);color:white;border-radius:21px;box-shadow:0 12px 25px #087f7320}.startup-symbol .icon{width:42px;height:42px}.startup h1{font-size:28px}.startup p{font-size:12px;color:#98aaa5}.startup>.spinner{margin-top:10px}.login-page{display:grid;grid-template-columns:1.08fr 1fr;min-height:100vh;background:white}.login-story{position:relative;background:#123e45;overflow:hidden;padding:45px 9% 35px;display:flex;flex-direction:column;color:white;isolation:isolate}.login-story::before{content:'';position:absolute;width:750px;height:750px;border:1px solid #ffffff06;border-radius:50%;left:-350px;top:-450px;box-shadow:0 0 0 80px #ffffff02,0 0 0 160px #ffffff02;z-index:-1}.login-brand{font-size:23px;color:white;padding:0}.login-brand .brand-light{color:#8bbcae}.login-brand>.icon{background:#ffffff14;border:1px solid #ffffff10;color:#a0d0bf;width:35px;height:35px}.login-message{margin:75px 0 37px}.login-message .eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:18px}.login-message h1{font-size:37px;line-height:1.45;letter-spacing:-1px;font-weight:750;max-width:500px}.login-message h1>span{color:#9cccb9}.login-message>p{color:#a4bec0;max-width:390px;font-size:12px;line-height:1.9;margin-top:22px}.login-chips{display:flex;gap:17px;margin-top:26px;flex-wrap:wrap}.login-chips>span{display:flex;gap:7px;align-items:center;color:#a4c7ba;font-size:10px}.login-chips .icon{width:15px;height:15px;color:#7da999}.login-preview{border:1px solid #ffffff12;background:#ffffff04;border-radius:13px;padding:18px;max-width:460px;transform:rotate(-2deg);margin:0 5px 28px;box-shadow:0 10px 40px #071e261a}.preview-title{display:flex;align-items:center;gap:7px;font-size:9px;color:#aac2bf;margin-bottom:17px}.preview-title>span:last-child{margin-left:auto;color:#80a49e;font-size:8px}.preview-dot{width:5px;height:5px;background:#89b99e;border-radius:50%}.preview-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.preview-grid>div{height:37px;border:1px solid #ffffff08;border-radius:4px;background:#ffffff03}.preview-grid .preview-soft{background:#ffffff0a}.preview-grid .preview-accent{background:#7eb79f20;border-color:#8dbca52a;border-left:2px solid #80af96}.login-story>small{color:#6f9a97;font-size:9px;margin-top:auto;letter-spacing:.3px}.login-form-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px 10%;position:relative}.login-form{max-width:365px;width:100%}.login-symbol{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ecf6f0;color:#6eaa94;border-radius:13px;margin-bottom:30px}.login-symbol .icon{width:23px;height:23px}.login-form>.eyebrow{font-size:9px;letter-spacing:1.7px;margin-bottom:12px}.login-form h2{font-size:28px;letter-spacing:-.8px;font-weight:800}.login-form>p:first-of-type{font-size:12px;color:#9ba9b1;margin-top:11px}.login-form form{display:grid;gap:21px;margin-top:34px}.login-form label{font-size:11px;gap:9px}.login-form input{height:46px;font-size:12px}.password-field{position:relative;display:flex}.password-field input{padding-right:45px}.password-field>button{position:absolute;right:8px;top:6px;border:0;background:none;width:32px;height:34px;display:flex;align-items:center;justify-content:center;color:#b0bbc3}.password-field .icon{width:17px;height:17px}.login-form form>.btn{min-height:45px;justify-content:space-between;padding:12px 16px;margin-top:5px}.login-note{position:relative;font-size:9px!important;color:#aab6bd!important;text-align:center;margin-top:26px;line-height:1.8}.login-note .icon{width:13px;height:13px;color:#9fb6ac;vertical-align:middle;margin-right:4px}.login-footer{position:absolute;bottom:29px;font-size:9px;color:#b6c0c7}.login-form .form-error{margin-top:20px;margin-bottom:-15px;font-size:11px}.stale-banner{padding:16px 20px;border:1px solid #ecd7ba;border-radius:10px;background:#fff8ec;color:#a58b5e;font-size:12px;line-height:1.7;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:1500px){.main-content{padding-top:40px}.page-heading{margin-bottom:33px}.metric-card{padding:23px 25px}.feature-card{padding:28px 30px}.feature-card h2{font-size:27px}.setup-step{padding:17px 0}}@media(max-width:1200px){.sidebar{width:215px;padding-left:13px;padding-right:13px}.main-shell{margin-left:215px}.main-content{padding:28px 25px}.topbar{padding:0 25px}.page-heading h1{font-size:25px}.heading-actions .btn{font-size:11px;padding:9px 11px}.metric-card{padding:17px 16px}.metric-top>span:first-child{font-size:10px}.metric-icon{width:29px;height:29px}.overview-grid{gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr)}.setup-list{padding-left:19px;padding-right:19px}.panel-heading{padding-left:20px;padding-right:20px}.feature-card{padding:23px 22px}.feature-card h2{font-size:22px}.data-table th,.data-table td{padding-left:18px;padding-right:18px}.report-cards{gap:16px}.report-card{padding:22px 18px}.report-card h2{font-size:15px}.flow-banner{padding:18px}.flow-banner>span{gap:5px;font-size:9px}.flow-banner>span>.icon{display:none}.app-footer{padding-left:25px;padding-right:25px}.settings-grid{gap:18px}.settings-card{padding:21px}.login-message h1{font-size:32px}.login-story{padding-left:8%;padding-right:8%}}@media(max-width:1000px){.sidebar{width:200px;padding-left:10px;padding-right:10px}.brand{font-size:19px;padding:0 8px}.brand>.icon{width:30px;height:30px}.main-shell{margin-left:200px}.nav-link{font-size:11px;gap:9px;padding-left:11px}.metrics{gap:12px}.metric-card>strong{font-size:25px}.metric-icon{display:none}.metric-card>small{font-size:9px}.overview-grid{grid-template-columns:1fr}.overview-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.setup-panel{margin-bottom:0}.overview-grid{margin-bottom:25px}.overview-side{margin-bottom:0}.feature-card{min-height:245px}.feature-card h2{font-size:22px}.coverage-panel{align-self:stretch}.coverage-number{margin-top:20px}.report-cards{grid-template-columns:1fr}.report-card{display:grid;grid-template-columns:50px 1fr 1.3fr;column-gap:20px;align-items:start}.report-card-icon{grid-column:1;grid-row:1/3}.report-card>h2{grid-column:2;grid-row:1;padding-top:3px}.report-card>p{grid-column:2;grid-row:2;min-height:0;margin-top:5px}.report-card .report-form{grid-column:3;grid-row:1/4}.settings-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.page-heading .heading-actions{max-width:230px}.login-message{margin-top:60px}.login-message h1{font-size:29px}.login-chips{gap:10px}.login-chips>span{font-size:8px}.login-preview{padding:13px}.preview-grid>div{height:30px}.login-form-wrap{padding-left:9%;padding-right:9%}.login-form h2{font-size:25px}}@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:242px;z-index:50;padding:26px 18px 16px}.sidebar .brand{font-size:21px}.nav-link{font-size:12px;gap:12px;padding:11px 13px}.main-shell{margin-left:0}.mobile-menu{display:inline-flex;flex-shrink:0}.topbar{height:66px;padding:0 22px;gap:12px}.breadcrumb{margin-right:auto;font-size:10px}.topbar-right{gap:8px}.topbar-meta{display:none}.topbar-avatar{margin-left:3px}.live-dot{display:none}.main-content{padding:26px 22px}.menu-open .sidebar{transform:none}.menu-open .sidebar-scrim{display:block;position:fixed;inset:0;background:#102f3b66;border:0;z-index:45}.page-heading h1{font-size:25px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.flow-banner{gap:4px;justify-content:flex-start}.flow-banner>span{font-size:9px}.flow-banner>span>b{width:18px;height:18px;flex-shrink:0}.schedule-toolbar>select{min-width:160px;flex:1}.schedule-download{margin-left:0}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{padding:20px}.report-card{grid-template-columns:45px 1fr 1.2fr;gap:12px}.app-footer{padding-left:22px;padding-right:22px}.login-page{grid-template-columns:.9fr 1fr}.login-story{padding:36px 8% 30px}.login-brand{font-size:20px}.login-brand>.icon{width:29px;height:29px}.login-message{margin:70px 0 30px}.login-message h1{font-size:25px}.login-message>p{font-size:11px}.login-chips{flex-direction:column;gap:13px;margin-top:23px}.login-preview{transform:none;margin:0 0 25px}.preview-grid>div{height:25px}.preview-title{font-size:7px}.preview-title>span:last-child{display:none}.login-form-wrap{padding-left:10%;padding-right:10%}.login-form h2{font-size:24px}.login-symbol{margin-bottom:24px}.login-form form{margin-top:28px}.login-story>small{font-size:8px}}@media(max-width:600px){.topbar{padding:0 15px}.breadcrumb{font-size:9px;gap:6px}.breadcrumb>.icon{width:10px}.year-select{min-width:72px;padding:6px;font-size:10px}.topbar-avatar{width:26px;height:26px}.main-content{padding:23px 16px}.page-heading{flex-direction:column;gap:17px;margin-bottom:24px}.page-heading h1{font-size:25px;line-height:1.3}.page-heading p{font-size:11px}.page-heading .heading-actions{max-width:none;justify-content:flex-start;width:100%;gap:6px}.heading-actions .btn{font-size:11px;min-height:38px}.eyebrow{font-size:9px;letter-spacing:1.5px}.metrics,.metrics.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:21px}.metrics.three .metric-card:last-child{grid-column:1/-1}.metric-card{padding:17px 16px}.metric-icon{display:flex;width:28px;height:28px}.metric-icon>.icon{width:15px;height:15px}.metric-top>span:first-child{font-size:9px}.metric-card>strong{font-size:27px;margin-top:11px}.metric-card>small{font-size:8px}.overview-side{grid-template-columns:1fr;gap:19px}.feature-card{min-height:240px;padding:26px}.feature-card h2{font-size:26px}.feature-card p{max-width:270px}.feature-card .eyebrow{font-size:9px}.feature-card .btn{font-size:11px}.coverage-number{margin-top:0}.overview-grid{gap:19px}.panel{border-radius:13px;margin-bottom:21px}.panel-heading{padding:20px 18px}.panel-heading h2{font-size:14px}.panel-heading p{font-size:9px;line-height:1.6}.panel-heading>.btn{font-size:9px;min-height:30px;padding:6px}.panel-heading>.btn>.icon{width:13px}.setup-list{padding:0 18px 10px}.setup-panel>.progress-track{margin-left:18px;margin-right:18px}.setup-step{gap:11px;padding:16px 0}.setup-step strong{font-size:11px}.setup-step small{font-size:9px;max-width:230px;line-height:1.5}.step-number{width:28px;height:28px;border-radius:8px;font-size:10px}.setup-step .badge{font-size:8px;padding:4px 5px}.step-count{font-size:9px;padding:5px 7px}.table-toolbar{padding:17px 18px;gap:10px}.search-field input{font-size:10px;padding-left:33px}.search-field>.icon{left:10px;width:15px}.record-count{font-size:9px}.data-table th{font-size:8px;padding:12px 18px}.data-table td{font-size:11px;padding:14px 18px;white-space:nowrap}.empty-state{padding:36px 20px 41px}.empty-state h3{font-size:15px}.empty-state p{font-size:11px}.empty-state .btn{font-size:11px}.notice{font-size:10px;padding:13px 15px;margin-bottom:20px}.notice summary{gap:7px}.notice .icon{width:15px;height:15px}.flow-banner{padding:15px;gap:8px}.flow-banner>span{font-size:9px;gap:5px}.flow-banner>span>b{width:18px;height:18px}.flow-banner>.icon{width:11px;flex-shrink:0}.schedule-meta{gap:12px;font-size:9px}.schedule-meta>span:nth-child(4){flex-basis:100%;font-size:10px}.schedule-toolbar{padding:15px;gap:11px}.segmented{padding:3px;flex:1;min-width:250px}.segmented button{flex:1;font-size:10px;padding:8px;justify-content:center}.schedule-toolbar>select{max-width:none;width:100%;flex-basis:100%;font-size:12px}.schedule-download{margin:0;gap:5px}.schedule-download>.btn{font-size:10px}.print-heading{padding:23px 19px}.print-heading h2{font-size:16px}.print-heading p{font-size:9px;line-height:1.6}.weekly-wrap{padding:0 12px 18px}.weekly-table{min-width:740px;border-spacing:4px}.settings-grid{grid-template-columns:1fr;gap:18px;margin-bottom:20px}.settings-card{padding:21px 19px}.report-card{display:block;padding:24px 21px}.report-card h2{font-size:18px}.report-card-icon{width:43px;height:43px;margin-bottom:18px}.report-card>p{font-size:11px;max-width:300px;margin:10px 0 22px}.report-form{gap:17px}.report-form label{font-size:11px}.report-form select{font-size:12px}.app-footer{padding:3px 16px 22px;font-size:8px;gap:15px}.app-footer>span:last-child{max-width:170px;text-align:right;justify-content:flex-end;line-height:1.5}.editor-dialog,.editor-dialog.wide-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:13px}.editor-dialog>form{max-height:calc(100dvh - 24px)}.dialog-header{padding:21px 19px 18px;gap:10px}.dialog-header h2{font-size:18px}.dialog-header p{font-size:10px;line-height:1.7}.dialog-body{padding:22px 19px}.dialog-footer{padding:15px 19px;gap:8px}.dialog-footer .btn{font-size:11px;min-height:39px}.form-grid{gap:17px 12px}.form-grid label{font-size:10px}.form-grid input,.form-grid select{font-size:11px}.check-grid{grid-template-columns:1fr}.day-checks{gap:5px}.day-checks .check-label{padding:8px;min-width:55px;font-size:9px;gap:5px}.day-checks input{width:12px;height:12px}.form-section{margin-top:21px;padding-top:21px}.section-label{gap:10px;align-items:flex-start}.section-label h3{font-size:13px}.section-label p{font-size:9px}.section-label .btn{font-size:9px;padding:6px 8px;min-height:31px}.section-label .btn .icon{width:13px;height:13px}.repeat-row{flex-wrap:wrap;gap:9px;padding:11px}.repeat-row label{min-width:75px;flex-basis:25%;font-size:9px}.repeat-row input,.repeat-row select{font-size:10px;padding:8px}.repeat-row>.icon-btn{align-self:flex-end;margin-bottom:3px}.session-row label{flex-basis:32%}.session-row label:last-of-type{flex-basis:45%;flex-grow:1}.block-row label:first-child{min-width:100px}.block-row label:last-of-type{flex-grow:1}.intensity-row label{flex-basis:32%}.toasts{bottom:16px;right:15px}.toast{font-size:11px;padding:13px 15px}.login-page{display:block}.login-story{min-height:285px;padding:29px 28px 28px}.login-brand{font-size:19px}.login-brand>.icon{width:29px;height:29px;border-radius:8px}.login-message{margin:35px 0 0;max-width:370px}.login-message .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:9px}.login-message h1{font-size:25px;line-height:1.4;letter-spacing:-.6px}.login-message>p{font-size:10px;line-height:1.8;margin-top:13px;max-width:290px}.login-chips,.login-preview,.login-story>small{display:none}.login-form-wrap{padding:38px 30px 70px}.login-form{max-width:370px}.login-symbol{display:none}.login-form>.eyebrow{font-size:8px}.login-form h2{font-size:25px}.login-form>p:first-of-type{font-size:11px}.login-form form{gap:20px;margin-top:27px}.login-form label{font-size:10px}.login-form input{height:44px;font-size:11px}.login-footer{font-size:8px;bottom:22px}.login-note{font-size:8px!important;margin-top:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition:none!important}}@media print{body{background:white;color:#172b3b}.sidebar,.topbar,.page-heading,.schedule-meta,.schedule-toolbar,.app-footer,.notice,.toasts,dialog,.sidebar-scrim{display:none!important}.main-shell{margin:0}.main-content{padding:0;max-width:none}.panel.schedule-panel{border:0;box-shadow:none;margin:0;overflow:visible}.print-heading{padding:0 0 18px}.weekly-wrap{padding:0;overflow:visible}.weekly-table{min-width:0;font-size:9px;width:100%;table-layout:fixed;border-spacing:3px}.weekly-table th{font-size:9px}.weekly-table th:first-child{width:50px}.weekly-table td{height:78px;border:1px solid #dce4e9}.class-card{min-height:76px;padding:8px 6px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.class-card strong{font-size:9px}.class-card>span{font-size:8px}.class-card>small{font-size:7px}.class-edit{display:none}.weekly-table tbody th strong{font-size:9px}.weekly-table tbody th small{font-size:8px}.free-slot{min-height:75px}.weekly-table tr{break-inside:avoid}@page{size:A4 landscape;margin:12mm}}
/* Imported institutional information and explicit verification state. */
.teacher-status{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.pending-value{color:#ad925a;font-size:11px;font-weight:500}.source-note{display:block;max-width:370px;color:#8597a2;font-size:10px;line-height:1.65;white-space:normal;margin-top:7px}.source-note-field{margin-bottom:23px}.source-note-field textarea{background:#f6f9fa;color:#728995;font-size:11px;resize:vertical;line-height:1.7}.source-note-field>small{font-size:9px;color:#a0aeb6;font-weight:400}.import-notice>strong{font-weight:650}.import-notice>p{font-size:11px;color:inherit;line-height:1.8;margin-top:6px}.confirmation-field{border:1px solid #d9e9df;background:#f3faf5;border-radius:10px;padding:14px 16px;margin-top:24px}.confirmation-field>.check-label{margin:0;color:#5a8470;font-size:12px;font-weight:550}.confirmation-field>.field-note{margin:7px 0 0 26px;font-size:10px;color:#91a89a}@media(max-width:600px){.teacher-status{gap:5px}.source-note{max-width:290px}.pending-value{font-size:10px}.import-notice>p{font-size:10px}.confirmation-field{padding:13px}.confirmation-field>.check-label{font-size:11px}.source-note-field textarea{font-size:10px}}
/* Visual weekly availability editor. */
.editor-dialog.availability-dialog{width:min(1080px,calc(100vw - 34px))}.teacher-tabs{display:flex;gap:5px;padding:4px;background:#f2f6f7;border:1px solid #e6edef;border-radius:11px;margin-bottom:26px}.teacher-tabs>button{flex:1;display:flex;gap:8px;align-items:center;justify-content:center;padding:11px 15px;border:0;background:none;border-radius:8px;font-size:12px;font-weight:650;color:#8b9eaa}.teacher-tabs>button .icon{width:17px;height:17px}.teacher-tabs>button[aria-selected=true]{color:#087f73;background:white;box-shadow:0 2px 8px #173f4010}.teacher-tabs>button:hover{color:#087f73}.teacher-tabs+[data-teacher-panel]{padding-top:1px}[data-teacher-panel][hidden]{display:none!important}.availability-intro{display:flex;align-items:center;gap:12px;margin-bottom:21px}.availability-symbol{display:flex;align-items:center;justify-content:center;width:43px;height:43px;background:#eaf5f0;color:#4b9e86;border-radius:12px;flex-shrink:0}.availability-symbol .icon{width:22px;height:22px}.availability-intro h3{font-size:16px;color:#31535e}.availability-intro p{font-size:11px;color:#91a5b0;margin-top:4px;line-height:1.7}.availability-window{display:flex;align-items:flex-start;justify-content:space-between;gap:17px;flex-wrap:wrap;padding:19px 20px;background:#f8fbfa;border:1px solid #e2ece6;border-radius:12px;margin-bottom:20px}.availability-window .checkbox-field{margin:0;flex:1}.availability-window .checkbox-field legend{font-size:10px;font-weight:650;color:#6a8b80;margin-bottom:11px}.availability-window .day-checks{gap:5px}.availability-window .day-checks .check-label{padding:9px 10px;font-size:10px;min-width:59px;background:white;white-space:nowrap}.availability-window .day-checks .check-label:has(:checked){background:#e9f6ee;border-color:#a3ccbb;color:#3b846b}.availability-time-fields{display:grid;grid-template-columns:repeat(2,122px);gap:11px;flex-shrink:0}.availability-time-fields label{font-size:10px;color:#6a8b80;gap:9px}.availability-time-fields input{font-size:12px;background:white;padding:9px 11px;border-color:#d8e5dd}.availability-inline-error{font-size:11px;color:#ba7269;flex-basis:100%;line-height:1.7;background:#fff5f1;border-radius:7px;padding:9px 11px;border:1px solid #f5dfd6}.availability-inline-error[hidden]{display:none}.availability-reference{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:19px}.availability-reference>div:first-child{display:flex;gap:15px;align-items:flex-end;flex:1;min-width:0}.availability-reference label{min-width:175px;font-size:10px;gap:7px}.availability-reference select{font-size:12px;padding:9px 11px}.availability-reference p{font-size:10px;color:#9baab2;max-width:255px;line-height:1.6;padding-bottom:3px}.availability-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:9px;color:#91a4ae}.availability-legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.availability-legend i{width:8px;height:8px;border-radius:3px;border:1px solid transparent;display:block}.availability-legend i.available{background:#b6d8c6;border-color:#a0cbb6}.availability-legend i.blocked{background:#e8bcb2;border-color:#e0aaa0}.availability-legend i.campus{background:#f5dba3;border-color:#e8cd94}.availability-grid-region{border:1px solid #e2eaee;border-radius:12px;overflow:hidden}.availability-grid-scroll{overflow:auto;max-height:480px;scrollbar-color:#c3d6cd #f8faf9;scrollbar-width:thin}.availability-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:830px;text-align:center}.availability-table thead th{position:sticky;top:0;z-index:2;background:#f5f9f7;color:#51826e;font-weight:650;font-size:11px;padding:13px 5px;border-bottom:1px solid #dce8e1;border-right:1px solid #e6efea}.availability-table thead th:first-child{width:132px;text-align:left;padding-left:16px;background:#f5f8fa;color:#7d96a3}.availability-table thead th.day-off{color:#a6b5be;background:#f8fafb}.availability-table thead small{display:block;font-size:8px;font-weight:400;letter-spacing:.1px;color:#9bb1a5;margin-top:4px}.availability-table thead th.day-off small{color:#bbc6cc}.availability-table tbody th{position:sticky;left:0;z-index:1;background:white;padding:10px 12px 10px 15px;text-align:left;border-bottom:1px solid #eaf0f2;border-right:1px solid #e3ebef;font-weight:500}.availability-table tbody th>strong{font-size:10px;color:#688595;display:block;white-space:nowrap;font-weight:600}.availability-table tbody th>small{display:block;font-size:9px;color:#a5b4bc;margin-top:5px;white-space:normal}.availability-table td{padding:5px;border-right:1px solid #edf2f3;border-bottom:1px solid #eaf0f2;vertical-align:middle;height:63px;background:#fff}.availability-table tr:last-child td,.availability-table tr:last-child th{border-bottom:0}.availability-table th:last-child,.availability-table td:last-child{border-right:0}.availability-cell{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:49px;border-radius:7px;font-size:9px;font-weight:550;border:1px solid transparent;transition:background .15s,border .15s;line-height:1.4;white-space:nowrap}.availability-cell .icon{width:14px;height:14px}.availability-cell.available{background:#ecf7f0;color:#5d9c7a;border-color:#e1efe6}.availability-cell.available:hover{background:#dff1e6;border-color:#adcdb9}.availability-cell.unavailable{background:#fff1ee;color:#c68c80;border-color:#f7e2db}.availability-cell.unavailable:hover{background:#fce7e1;border-color:#e5bfb4}.availability-cell.outside{background:#f7f9fa;color:#c7d1d7;border-color:#f1f4f5;opacity:1}.availability-cell.outside>.icon{display:none}.availability-cell.outside>span{font-size:12px}.campus-indicator{display:flex;align-items:center;justify-content:center;position:absolute;right:3px;top:3px;width:15px;height:15px;background:#f9e6bc;color:#c29b46;border:1px solid #edd49e;border-radius:4px;box-shadow:0 1px 2px #8666250a}.campus-indicator .icon{width:10px;height:10px}.availability-cell:has(.campus-indicator){padding-right:8px}.availability-break-row td,.availability-break-row th{background:#f8fafb!important}.availability-break-row td{height:40px}.availability-break{font-size:8px;color:#b0bec7;display:block;overflow-wrap:anywhere}.availability-break-row th>strong{font-size:9px;color:#9cabb5}.availability-break-row th>small{font-size:8px;color:#b4c0c8}.availability-summary{display:flex;align-items:center;justify-content:space-between;gap:11px;flex-wrap:wrap;padding:14px 2px 0;color:#91a5b1;font-size:10px}.availability-summary>span{display:flex;gap:6px;align-items:center}.availability-summary .icon{width:14px;height:14px;color:#80ad97}.availability-summary strong{color:#5a8d74;font-weight:650}.availability-summary .availability-campus-summary{color:#b2a07b;font-size:9px}.availability-summary .availability-campus-summary .icon{color:#c6af75}.availability-shortcuts{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid #e8eef0;padding:19px 0 20px;margin-bottom:21px}.availability-shortcuts>span{font-size:10px;color:#88a095}.availability-shortcuts>div{display:flex;gap:6px;flex-wrap:wrap}.availability-shortcuts .btn{font-size:10px;min-height:33px;padding:7px 10px}.availability-shortcuts .btn .icon{width:13px;height:13px}.availability-shortcuts>p{flex-basis:100%;font-size:9px;color:#a3b2b9;line-height:1.7}.availability-specific{border:1px solid #e3ebee;border-radius:10px;background:#fcfdfd;overflow:hidden}.availability-specific>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:15px 16px;cursor:pointer;font-size:11px;font-weight:600;color:#7d95a3}.availability-specific>summary::-webkit-details-marker{display:none}.availability-specific>summary>.icon{width:15px;height:15px;color:#99aeb8}.availability-specific>summary>.icon:last-child{margin-left:auto;width:13px;height:13px;transition:transform .15s}.availability-specific[open]>summary>.icon:last-child{transform:rotate(90deg)}.availability-specific>summary>span{display:flex;align-items:center;justify-content:center;min-width:19px;height:18px;padding:0 5px;border:1px solid #e3eaee;background:white;border-radius:5px;font-size:9px;color:#a6b6bf}.availability-specific-body{padding:4px 16px 18px}.availability-specific-body>p{font-size:10px;line-height:1.8;color:#a0b0ba;max-width:760px}.availability-specific-body .form-section{margin-top:17px;padding-top:17px}.availability-specific-body .section-label h3{font-size:12px}.availability-specific-body .section-label p{font-size:9px}.availability-specific-body [data-blocker-list]:empty::after{content:'Sin restricciones específicas. Agrega una franja o selecciona una clase en la cuadrícula.';display:block;padding:16px 12px;border:1px dashed #dce7e2;border-radius:8px;color:#9fb2aa;font-size:10px;line-height:1.8;text-align:center;background:white}.availability-save-note{display:flex;align-items:center;gap:6px;font-size:9px;color:#a1b4ab;line-height:1.7;padding:17px 1px 0}.availability-save-note .icon{width:14px;height:14px;flex-shrink:0;color:#a1bdad}.availability-no-session{padding:30px 22px;display:flex;align-items:center;flex-direction:column;text-align:center;gap:11px;background:#fbfdfc}.availability-no-session>.icon{width:27px;height:27px;color:#9bbdae}.availability-no-session>strong{font-size:13px;color:#76958b}.availability-no-session>p{font-size:11px;color:#a2b4ac;max-width:600px}.availability-quick-action{color:#5a9a82}.availability-quick-action:hover{background:#eaf7ef;color:#3b846b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.availability-window{padding:17px;gap:18px}.availability-time-fields{grid-template-columns:repeat(2,110px)}.availability-window .day-checks .check-label{min-width:54px;padding:9px 8px;font-size:9px}.availability-reference{align-items:flex-start}.availability-reference>div:first-child{gap:12px;align-items:flex-start}.availability-reference p{max-width:200px;padding-top:22px}.availability-legend{max-width:185px;gap:8px 12px;padding-top:25px}.availability-shortcuts>span{flex-basis:100%}.availability-shortcuts{gap:10px}}@media(max-width:700px){.editor-dialog.availability-dialog{width:calc(100vw - 20px)}.availability-window{display:block;padding:16px}.availability-time-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px;gap:12px}.availability-window .day-checks{gap:6px}.availability-window .day-checks .check-label{min-width:calc((100% - 24px)/5);font-size:9px;padding:9px 8px;flex:1}.availability-inline-error{margin-top:14px}.availability-reference{display:block;margin-bottom:17px}.availability-reference>div:first-child{align-items:flex-start;gap:13px}.availability-reference label{min-width:155px}.availability-reference p{font-size:9px;max-width:250px;flex:1;padding-top:23px}.availability-legend{max-width:none;justify-content:flex-start;padding-top:15px;gap:10px 16px}.availability-grid-scroll{max-height:410px}.availability-table{min-width:790px}.availability-table thead th:first-child{width:120px}.availability-table tbody th{padding-left:12px}.availability-table tbody th>strong{font-size:9px}.availability-summary{font-size:9px;line-height:1.7;gap:7px}.availability-summary>span{align-items:flex-start}.availability-summary .icon{margin-top:1px}.teacher-tabs{margin-bottom:23px}.teacher-tabs>button{font-size:11px;padding:10px 12px;gap:7px}.teacher-tabs>button .icon{width:16px;height:16px}.availability-intro{align-items:flex-start;gap:10px;margin-bottom:18px}.availability-symbol{width:38px;height:38px;border-radius:10px}.availability-intro h3{font-size:14px}.availability-intro p{font-size:10px;line-height:1.8}.availability-specific>summary{font-size:10px;padding:14px}.availability-specific-body{padding:3px 13px 15px}.availability-shortcuts>div{gap:5px}.availability-shortcuts .btn{font-size:9px;min-height:32px;padding:7px 9px}.availability-shortcuts>p{font-size:8px;line-height:1.8}.availability-save-note{font-size:8px}.availability-specific-body>p{font-size:9px}.availability-specific-body .section-label{align-items:center}.availability-specific-body .section-label p{font-size:8px}}
/* Readable availability controls at desktop and tablet sizes. */
.availability-dialog .teacher-tabs>button{font-size:13px;color:#526b78}
.availability-dialog .availability-intro p,.availability-dialog .availability-reference p,.availability-dialog .availability-specific-body>p{font-size:12px;color:#526b78}
.availability-dialog .availability-window .checkbox-field legend,.availability-dialog .availability-time-fields label,.availability-dialog .availability-reference label{font-size:12px;color:#38594d}
.availability-dialog .availability-window .day-checks .check-label{font-size:12px;color:#38594d;min-height:42px}
.availability-dialog .availability-window .day-checks .check-label:has(:checked){color:#146044;background:#e4f4eb}
.availability-dialog .availability-time-fields input,.availability-dialog .availability-reference select{font-size:13px;min-height:42px}
.availability-dialog .availability-legend{font-size:11px;color:#526b78}
.availability-dialog .availability-table thead th{font-size:13px;color:#285d47}
.availability-dialog .availability-table thead small{font-size:10px;color:#526b78}
.availability-dialog .availability-table thead th.day-off,.availability-dialog .availability-table thead th.day-off small{color:#64748b}
.availability-dialog .availability-table tbody th>strong{font-size:12px;color:#385665}
.availability-dialog .availability-table tbody th>small{font-size:11px;color:#64748b}
.availability-dialog .availability-cell{font-size:11px;min-height:44px;white-space:normal;padding:5px;line-height:1.35}
.availability-dialog .availability-cell.available{color:#216344;background:#e7f5ec;border-color:#b8d8c5}
.availability-dialog .availability-cell.unavailable{color:#9d3d35;background:#fff0ed;border-color:#ecc3bb}
.availability-dialog .availability-cell.outside{color:#64748b;background:#f1f5f9;border-color:#e2e8f0}
.availability-dialog .availability-break{font-size:10px;color:#64748b}
.availability-dialog .availability-summary,.availability-dialog .availability-summary .availability-campus-summary{font-size:12px;color:#526b78;line-height:1.6}
.availability-dialog .availability-summary strong{color:#216344}
.availability-dialog .availability-shortcuts>span,.availability-dialog .availability-shortcuts>p,.availability-dialog .availability-save-note{font-size:12px;color:#526b78}
.availability-dialog .availability-shortcuts .btn{font-size:12px;min-height:40px}
.availability-dialog .availability-specific>summary{font-size:13px;color:#385665}
.availability-dialog .availability-specific-body .section-label h3{font-size:14px;color:#385665}
.availability-dialog .availability-specific-body .section-label p,.availability-dialog .availability-specific-body [data-blocker-list]:empty::after{font-size:12px;color:#526b78}

/* Keep the weekly grid close to the form controls. */
.availability-dialog .dialog-header{padding:18px 24px}
.availability-dialog .dialog-header h2{font-size:20px}
.availability-dialog .dialog-header p{font-size:12px;margin-top:5px}
.availability-dialog .dialog-body{padding:18px 24px}
.availability-dialog .teacher-tabs{margin-bottom:16px}
.availability-dialog .teacher-tabs>button{padding:9px 12px}
.availability-dialog .availability-intro{display:none}
.availability-dialog .availability-window{padding:12px 14px;margin-bottom:14px;gap:12px}
.availability-dialog .availability-window .checkbox-field legend{margin-bottom:7px}
.availability-dialog .availability-window .day-checks .check-label{padding:8px;min-width:53px}
.availability-dialog .availability-time-fields{grid-template-columns:repeat(2,114px);gap:10px}
.availability-dialog .availability-time-fields label{gap:7px}
.availability-dialog .availability-reference{margin-bottom:12px;gap:14px}
.availability-dialog .availability-reference p{font-size:11px;max-width:220px}
.availability-dialog .availability-reference label{min-width:160px}
.availability-dialog .availability-grid-scroll{max-height:420px}
.availability-dialog .dialog-footer{padding:14px 24px}
@media(max-width:700px){.availability-dialog .dialog-header,.availability-dialog .dialog-body{padding:16px}.availability-dialog .dialog-footer{padding:12px 16px}.availability-dialog .availability-time-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.availability-dialog .availability-reference{display:block}.availability-dialog .availability-reference p{max-width:none}.availability-dialog .availability-legend{padding-top:10px}}
