@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{font-family:Be Vietnam Pro,Arial,sans-serif;color:#1c2842;background:#f5f7fb;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.4px}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #6ab4ff;outline-offset:2px}.brand{display:flex;align-items:center;gap:12px;color:#142546}.brand-mark{width:44px;height:44px;border-radius:13px;background:#e4f0ff;color:#1c68d3;display:grid;place-items:center}.brand b{font-size:20px;letter-spacing:-.6px;display:block}.brand b span{color:#2e78e4}.brand small{display:block;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#8292aa;margin-top:4px}.badge{display:inline-flex;align-items:center;border-radius:24px;padding:6px 12px;background:#eef2f8;color:#53617a;font-size:11px;font-weight:700;white-space:nowrap}.badge-green{background:#e6f8f0;color:#187c54}.badge-amber{background:#fff5e0;color:#a16d1b}.badge-red{background:#ffebeb;color:#bd4646}.preview-wrap{min-height:100vh}.topbar{background:#fff;border-bottom:1px solid #e9edf4;height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 max(30px,calc((100vw - 1190px)/2))}.layout-width{max-width:1190px;margin:auto;padding:36px 20px}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#102746,#132e55 56%,#155185);color:#fff;border-radius:24px;min-height:290px;display:flex;justify-content:space-between;align-items:center;padding:45px 62px;box-shadow:0 16px 35px #18395914}.hero-content{position:relative;z-index:1;max-width:740px}.eyebrow{color:#3e8be3;font-size:10px;letter-spacing:1.4px;font-weight:800;display:flex;gap:7px;align-items:center;margin-bottom:13px}.hero .eyebrow{color:#8dd9f0}.hero h1{font-size:39px;line-height:1.25;margin-bottom:14px}.hero h1 em,.login-panel h1 em{color:#7bcef5;font-style:normal}.hero p{font-size:13px;line-height:1.95;color:#c3d2e4;max-width:610px}.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.hero-tags span{display:flex;align-items:center;gap:7px;border:1px solid #ffffff33;padding:9px 12px;border-radius:9px;font-size:11px}.hero-symbol{position:relative;color:#7cd1ef;padding-right:45px;opacity:.7}.orb{position:absolute;border-radius:50%;border:1px solid #a5d0f049}.orb-one{width:190px;height:190px;top:-44px;left:-42px}.orb-two{width:270px;height:270px;top:-84px;left:-82px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:39px 0 20px}.section-head h2{font-size:24px;margin-bottom:8px}.section-head p,.page-heading p{color:#8592a6;font-size:12px;margin:0;line-height:1.7}.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.type-card{position:relative;text-align:left;background:#fff;border:2px solid #ebeff5;border-radius:15px;padding:22px;display:flex;flex-direction:column;min-height:158px;transition:transform .15s,border-color .15s,box-shadow .15s;color:#202c44}.type-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #2139550a}.type-card.type-active{border-color:#2c79e5;box-shadow:0 6px 24px #2c79e513}.type-icon{width:42px;height:42px;display:grid;place-items:center;background:#eef4fe;color:#367bd4;border-radius:11px;margin-bottom:18px}.type-title{font-size:13px;font-weight:700;margin-bottom:7px;line-height:1.4}.type-levels{font-size:11px;color:#95a0b0}.type-check{position:absolute;top:19px;right:19px;border:1px solid #d3dde8;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;color:#fff}.type-active .type-check{background:#2a79e5;border-color:#2a79e5}.config-preview,.panel{background:#fff;border:1px solid #e9eef5;border-radius:16px;box-shadow:0 4px 22px #26405c06}.config-preview{margin-top:24px;padding:27px 30px}.config-title,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.config-title h3{font-size:19px;margin:0}.config-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:30px;margin-top:27px}.config-grid label,.obs-form label{display:block;font-weight:600;color:#53617a;font-size:11px;margin-bottom:14px}.level-chips,.grade-chips{display:flex;flex-wrap:wrap;gap:8px}.level-chips span{color:#296bb8;background:#eaf4ff;border-radius:6px;padding:9px 12px;font-size:11px;font-weight:600}.grade-chips span{display:grid;place-items:center;width:31px;height:31px;background:#f2f5f9;border:1px solid #e8edf4;border-radius:7px;font-weight:700;font-size:11px}.notice{display:flex;gap:10px;align-items:flex-start;background:#f0f8ff;border:1px solid #e0f0ff;color:#496b8c;padding:14px 17px;border-radius:10px;font-size:11px;margin-top:25px;line-height:1.8}.notice svg{flex-shrink:0}.preview-footer{display:flex;justify-content:space-between;gap:20px;color:#8b99ad;font-size:11px;margin-top:30px;padding-bottom:28px}.preview-footer strong{color:#4f6d87}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,53%) 1fr;background:#fff}.login-panel{width:min(440px,80%);margin:0 auto;padding:58px 0;display:flex;flex-direction:column;justify-content:center}.login-panel .brand{margin-bottom:82px}.login-eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1px;color:#217acb;font-weight:700;margin-bottom:16px}.login-panel h1{font-size:37px;line-height:1.28;margin-bottom:16px}.login-panel h1 em{color:#287bce}.login-panel p{color:#8b99ab;line-height:1.9;font-size:12px;margin-bottom:32px}.login-panel form label{display:block;font-size:12px;font-weight:700;margin-bottom:11px}.input-icon{display:flex;align-items:center;border:1px solid #e2e9f2;border-radius:11px;margin-bottom:22px;padding:0 14px;color:#91a4b9}.input-icon:focus-within{border-color:#5497df}.input-icon input{border:0;background:transparent;outline:0;width:100%;padding:15px;color:#233650}.button{border:0;padding:12px 17px;border-radius:9px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:8px;justify-content:center}.button-primary{color:#fff;background:#2276d6}.button-primary:hover:not(:disabled){background:#145cba}.button-outline{border:1px solid #c9dbef;background:#fff;color:#2472b9}.login-submit{width:100%;padding:16px}.login-foot{display:flex;align-items:center;gap:8px;margin-top:30px;color:#8fa1b5;font-size:11px}.login-side{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(150deg,#092241,#153d71);padding:80px;color:#fff;position:relative;overflow:hidden}.login-side:after{content:"";position:absolute;border:1px solid #ffffff20;width:600px;height:600px;border-radius:50%;top:15%;left:30%;box-shadow:0 0 0 85px #ffffff05,0 0 0 170px #ffffff05}.login-side>*{position:relative;z-index:1}.login-side>span{color:#8ed5f1;font-size:12px;font-weight:800;letter-spacing:2px}.login-side h2{font-size:38px;line-height:1.4;margin-top:30px}.login-side p{color:#b0c9e6;line-height:1.8}.login-side-grid{display:flex;gap:35px;margin-top:65px}.login-side-grid div{display:flex;flex-direction:column}.login-side-grid strong{font-size:33px;color:#8fdcf9}.login-side-grid small{color:#cad8ea;font-size:10px;margin-top:7px}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;gap:18px;flex-direction:column}.loading-screen p{color:#8795a9}.no-school{text-align:center;max-width:530px;background:#fff;border:1px solid #e8edf4;border-radius:16px;padding:35px}.no-school svg{color:#2482d4}.no-school h2{margin-top:16px}.no-school p{line-height:1.9}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;display:flex;flex-direction:column;padding:31px 19px;border-right:1px solid #e6ebf2;position:sticky;top:0;height:100vh}.sidebar .brand{margin-left:7px}.sidebar-school{margin-top:45px;background:#f4f8fd;border:1px solid #e9f0fa;border-radius:12px;padding:16px 13px}.sidebar-school>small{display:block;color:#8799ae;font-size:9px;font-weight:700;letter-spacing:.8px;margin-bottom:10px}.sidebar-school label{display:flex;align-items:center;gap:8px;color:#477caf}.sidebar-school select{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;outline:0;background:transparent;font-weight:700;font-size:11px;overflow:hidden;color:#263952;cursor:pointer}.sidebar nav{display:flex;flex-direction:column;gap:7px;margin-top:26px}.sidebar nav button{display:flex;align-items:center;text-align:left;gap:13px;background:transparent;color:#74849a;border:0;padding:14px 13px;border-radius:10px;font-weight:600;font-size:12px}.sidebar nav button.nav-active{background:#eaf3ff;color:#216fcc}.sidebar nav button:hover{background:#f1f6fb}.side-bottom{margin-top:auto}.user-box{display:flex;align-items:center;gap:10px;padding:13px 4px;border-top:1px solid #edf1f6}.user-avatar,.avatar-mini{display:grid;place-items:center;color:#fff;background:#2477d4;border-radius:50%;font-weight:800;font-size:11px;flex-shrink:0}.user-avatar{height:38px;width:38px}.user-box strong,.user-box small{display:block}.user-box strong{font-size:10px;max-width:148px;line-height:1.5}.user-box small{color:#9aa8bb;margin-top:3px;font-size:10px}.logout{border:0;background:#f7f9fc;border-radius:8px;width:100%;text-align:left;padding:11px;display:flex;align-items:center;gap:10px;font-size:12px;color:#73849a}.app-main{min-width:0}.app-header{height:75px;background:#fff;border-bottom:1px solid #e9edf4;padding:0 35px;display:flex;justify-content:space-between;align-items:center}.crumbs{display:flex;gap:10px;align-items:center;color:#9aa8bb;font-size:11px}.crumbs b{color:#42516a}.crumb-divider{margin:0 5px}.app-header-right{display:flex;align-items:center;gap:13px}.avatar-mini{height:33px;width:33px}.app-content{max-width:1300px;margin:auto;padding:34px 35px}.page-heading{margin-bottom:27px}.page-heading h1{font-size:29px;margin:5px 0 11px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.stat-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e8edf4;border-radius:15px;padding:23px;min-height:172px}.stat-icon{display:grid;place-items:center;border-radius:11px;width:44px;height:44px;margin-bottom:16px}.stat-icon.blue{color:#397edb;background:#eaf3ff}.stat-icon.violet{color:#876cd8;background:#f1edff}.stat-icon.teal{color:#2ba999;background:#e8f8f5}.stat-card>span{color:#95a2b4;font-size:11px;margin-bottom:9px}.stat-card strong{font-size:27px;color:#293d58}.stat-card .stat-text{font-size:14px;line-height:1.5}.dashboard-panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:21px}.panel{padding:24px;min-width:0}.panel-head{padding-bottom:19px;border-bottom:1px solid #edf1f6;margin-bottom:16px}.panel-head h3{margin:0;font-size:14px}.panel-head svg{color:#4179bc}.levels-list{display:flex;flex-direction:column}.level-line{display:flex;align-items:center;gap:11px;border-bottom:1px solid #f1f4f7;padding:14px 0}.level-line:last-child{border-bottom:0}.level-line .dot{width:7px;height:7px;border-radius:50%;background:#31b68b}.level-line b{font-size:12px;min-width:100px}.level-line>span:not(.dot){margin-left:auto;color:#97a3b3;font-size:10px}.level-line>svg{color:#40b58b}.principle{display:flex;align-items:flex-start;gap:12px;padding:10px 0}.principle>svg{color:#2bb491;flex-shrink:0}.principle strong{font-size:11px}.principle p{font-size:10px;line-height:1.8;color:#9aa5b3;margin:5px 0 0}.app-footer{display:flex;justify-content:space-between;gap:15px;color:#9aa7b8;font-size:10px;padding:26px 1px}.app-footer span{display:flex;align-items:center;gap:5px}.type-grid.compact{grid-template-columns:repeat(3,1fr)}.compact .type-card{min-height:132px;padding:17px}.compact .type-icon{width:34px;height:34px;margin-bottom:12px}.compact .type-title{font-size:11px}.settings-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #eef2f6;margin-top:25px;padding-top:23px;color:#63748c;font-size:11px}.class-tabs{display:flex;gap:9px;flex-wrap:wrap}.class-tabs button{background:#f6f8fb;border:1px solid #e5ecf4;border-radius:9px;padding:12px 17px;font-weight:700;color:#495972}.class-tabs button small{display:block;font-weight:400;color:#91a2b6;margin-top:6px}.class-tabs button.class-tab-active{color:#246dca;border-color:#90beef;background:#eaf4ff}.roster{max-height:500px;overflow-y:auto}.roster-row{display:flex;gap:13px;align-items:center;border-bottom:1px solid #f0f3f8;padding:11px 0;font-size:11px}.roster-row>span:nth-child(2){font-weight:600;flex:1}.roster-row small{color:#9aa8b8}.roster-num{width:25px;height:25px;background:#f3f7fb;color:#7d91a8;border-radius:7px;display:grid;place-items:center}.obs-form{display:flex;flex-direction:column}.obs-form select,.obs-form textarea{width:100%;padding:11px 12px;border:1px solid #e2eaf2;border-radius:9px;background:#fff;margin-bottom:16px;color:#2b3d56;resize:vertical;font-size:12px}.obs-form label{margin-bottom:8px}.obs-form .button{align-self:flex-start}.review-item{padding:15px 0;border-bottom:1px solid #f0f2f5}.review-item-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.review-item-top strong{font-size:12px}.review-item>small{font-size:10px;color:#93a1b3}.review-item p{font-size:11px;line-height:1.8;margin:8px 0 12px}.review-actions{display:flex;gap:9px}.review-actions button{display:flex;align-items:center;gap:6px;border:1px solid #bbe7d4;background:#eafaf2;color:#168552;border-radius:8px;padding:9px;font-size:11px}.review-actions .reject{background:#fff0f0;color:#b55f5f;border-color:#f8d7d7}.empty{padding:35px 15px;display:flex;align-items:center;flex-direction:column;text-align:center;color:#96a6b8;font-size:11px;line-height:1.8}.empty svg{color:#97b2d1}.muted{color:#9aa7b7;font-size:11px}.error-alert,.success-alert{display:flex;align-items:center;gap:9px;padding:14px 15px;border:1px solid #ffcecc;border-radius:11px;background:#fff1f1;color:#a94646;font-size:11px;margin-bottom:20px;line-height:1.6}.success-alert{border-color:#bdebd4;background:#eafbf3;color:#227c56}.error-alert button,.success-alert button{margin-left:auto;border:0;background:transparent;color:inherit;font-size:17px}@media(max-width:1100px){.hero{padding:35px}.hero-symbol{display:none}.type-grid{grid-template-columns:repeat(2,1fr)}.login-side{padding:40px}.app-shell{grid-template-columns:210px minmax(0,1fr)}.app-content{padding:24px}.app-header{padding:0 24px}}@media(max-width:750px){.topbar{height:70px;padding:0 18px}.topbar .brand b{font-size:17px}.layout-width{padding:20px 14px}.hero{padding:30px 24px;min-height:auto}.hero h1{font-size:29px}.hero p{font-size:11px}.hero-tags span{font-size:10px}.section-head{margin:27px 0 15px}.section-head h2{font-size:21px}.type-grid,.type-grid.compact{grid-template-columns:repeat(2,1fr);gap:10px}.type-card{min-height:142px;padding:15px}.type-title{font-size:11px}.type-icon{margin-bottom:12px}.config-preview{padding:20px}.config-grid{grid-template-columns:1fr;gap:18px}.preview-footer{flex-direction:column}.login-page{display:block}.login-panel{width:min(430px,88%);min-height:100vh;padding:30px 0}.login-panel .brand{margin-bottom:60px}.login-side{display:none}.app-shell{display:block}.sidebar{position:static;height:auto;padding:15px;display:block}.sidebar .brand{margin-left:0}.sidebar-school{margin:18px 0 0}.sidebar nav{flex-direction:row;overflow-x:auto;margin-top:12px}.sidebar nav button{white-space:nowrap;padding:9px 11px}.side-bottom{margin:12px 0 0;display:flex;align-items:center;justify-content:space-between}.user-box{border:0;padding:0}.logout{width:auto}.app-header{height:58px;padding:0 15px}.app-header-right .badge{display:none}.app-content{padding:20px 14px}.page-heading h1{font-size:23px}.stats-grid{grid-template-columns:1fr;gap:10px}.stat-card{min-height:auto;padding:16px}.stat-icon{margin-bottom:10px}.dashboard-panels{grid-template-columns:1fr;gap:13px;margin-top:13px}.panel{padding:17px}.settings-bottom{flex-direction:column;align-items:stretch}.app-footer{flex-direction:column}.crumbs span:first-of-type{display:none}}@media(max-width:420px){.type-grid,.type-grid.compact{grid-template-columns:1fr}.type-card{min-height:120px}.grade-chips span{width:28px;height:28px}.hero-tags{display:none}}.academic-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.academic-metric{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e6ecf5;border-radius:14px;padding:19px}.academic-metric>svg{flex-shrink:0;color:#2e78e4}.academic-metric strong{display:block;font-size:23px}.academic-metric span{color:#687d9b;font-size:12px}.academic-section{margin-bottom:18px}.academic-section .panel-head h3{display:flex;align-items:center;gap:10px}.academic-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.academic-controls>label{min-width:240px;flex:1}.academic-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;border-radius:11px;background:#f7faff;padding:15px;margin-top:15px}.academic-form>label:not(.academic-check){flex:1;min-width:160px}.academic-controls label,.academic-form label{display:flex;flex-direction:column;gap:8px;color:#4e6280;font-weight:700;font-size:12px}.academic-controls select,.academic-form select,.academic-form input{min-height:44px;width:100%;border:1px solid #d7e3f4;background:#fff;border-radius:9px;padding:9px 12px;color:#1c2842}.academic-form .academic-check{display:flex;align-items:center;flex-direction:row;gap:8px;flex:1;min-width:200px;font-weight:500;line-height:1.5}.academic-form .academic-check input{width:18px;height:18px;min-height:auto;flex:none}.academic-controls .button,.academic-form .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.academic-select{position:relative;display:block}.academic-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:33px}.academic-select svg{position:absolute;right:12px;top:13px;pointer-events:none;color:#6c8eb5}.academic-helper{color:#63768e;line-height:1.75;font-size:12px;margin:6px 0}.academic-class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-top:17px}.academic-class-item{display:flex;align-items:center;gap:9px;border:1px solid #e0eaf5;background:#fff;border-radius:10px;padding:13px;text-align:left;min-height:60px;color:#29405e}.academic-class-item>span{display:flex;flex-direction:column;gap:3px}.academic-class-item small{font-size:11px;color:#7c8da2}.academic-class-item svg{color:#3d80ca;flex:none}.academic-class-selected{border-color:#3788e7;background:#eaf4ff}.academic-group-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:9px;margin-top:15px}.academic-group-row{display:flex;align-items:center;gap:9px;padding:13px;border-radius:9px;background:#f7faff;border:1px solid #e4edf7}.academic-group-row svg{color:#238ec4}.academic-group-row span{font-weight:600}.academic-group-row small{margin-left:auto;color:#7890a7}.academic-empty{font-size:12px;color:#7488a1;padding:20px;text-align:center}.academic-bottom-note{display:flex;gap:9px;line-height:1.8;color:#667c95;font-size:12px;padding:5px 3px 20px}.academic-bottom-note svg{flex:none}.mobile-bottom-nav{display:none}@media(max-width:750px){.sidebar nav{display:none}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;gap:0;background:#fff;border-top:1px solid #dae4f2;padding:5px max(6px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom));z-index:50;box-shadow:0 -3px 14px #152a4312}.mobile-bottom-nav button{min-width:0;flex:1;min-height:53px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 3px;border:0;border-radius:8px;background:transparent;color:#6c7f9a;font-weight:700;font-size:11px}.mobile-bottom-nav button.mobile-active{color:#176ccf;background:#eaf4ff}.app-shell{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.sidebar{padding:14px}.sidebar-school{margin:10px 0 0}.side-bottom{margin-top:10px}.academic-summary{grid-template-columns:1fr;gap:9px}.academic-metric{padding:12px;gap:13px}.academic-metric strong{font-size:19px}.academic-form{flex-direction:column;align-items:stretch;padding:12px}.academic-form>label:not(.academic-check),.academic-form>.button{width:100%;min-width:0;flex:auto}.academic-controls{flex-direction:column;align-items:stretch}.academic-controls>label{min-width:0}.academic-class-list{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-section .panel-head{flex-wrap:wrap;gap:7px}.academic-group-list{grid-template-columns:1fr}.app-content{overflow-x:hidden}.page-heading p,.academic-helper,.academic-empty,.academic-form label{font-size:12px}.academic-section .panel-head h3{font-size:14px}}@media(max-width:370px){.mobile-bottom-nav button{font-size:10px}.academic-class-list{grid-template-columns:1fr}}.academic-edit-block{margin-top:13px;padding:13px;border:1px solid #dbe8f9;background:#f6faff;border-radius:10px}.academic-edit-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}.academic-edit-header .button{min-height:38px}.academic-inline-editor{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:14px;background:#f5f9ff;border:1px solid #dce8f7;border-radius:10px;margin-top:12px}.academic-inline-editor>label{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#405b77}.academic-inline-editor input{min-height:44px;width:100%;padding:10px;border:1px solid #cfdaeb;border-radius:8px;background:#fff;color:#173b5c}.academic-inline-editor>.button{min-height:44px}.academic-link-button{padding:7px 9px;border-radius:8px;background:#eff6ff;color:#1266bc;border:1px solid #b6d8fa;font-weight:700;font-size:11px;cursor:pointer}.academic-group-row{flex-wrap:wrap}.academic-group-row small{margin-left:auto}.academic-group-row button{min-height:36px}.people-manager .academic-controls select,.people-manager .leader-row select{min-height:44px;width:100%;border:1px solid #d7e3f4;background:#fff;border-radius:9px;padding:9px 12px;color:#1c2842}.people-manager .panel-head h3{display:flex;align-items:center;gap:9px}.person-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap;border-bottom:1px solid #e5eef7;padding:13px 3px}.person-row:last-child{border-bottom:0}.person-identity{display:flex;align-items:center;gap:10px;flex:2;min-width:170px}.person-identity .roster-num{flex:none}.person-identity strong{display:block;font-size:13px;color:#213b59}.person-identity small{display:block;color:#7990a7;font-size:11px;margin-top:4px}.person-assign{flex:1;min-width:165px;display:flex;flex-direction:column;gap:5px;color:#49637b;font-weight:700;font-size:12px}.person-edit{min-height:44px}.leader-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,2fr) auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e8eef5}.leader-row strong{font-size:13px;color:#25415a;display:block}.leader-row small{font-size:11px;color:#7b8ea2;display:block;margin-top:4px}.leader-row .button{min-height:44px}.soft-notice{margin-top:15px;border:1px solid #bbd9f5;background:#eef7ff;border-radius:11px;padding:13px;color:#2e5c82;line-height:1.8;font-size:12px}.soft-notice code{word-break:break-all}@media(max-width:750px){.mobile-bottom-nav button{font-size:10px}.person-row{display:grid;grid-template-columns:1fr 1fr}.person-identity{grid-column:1/-1}.person-assign{min-width:0}.person-edit{align-self:end}.leader-row{grid-template-columns:1fr}.leader-row>.button{width:100%}.academic-inline-editor{align-items:stretch;flex-direction:column}.academic-inline-editor>label,.academic-inline-editor>.button{width:100%}}@media(max-width:370px){.person-row{grid-template-columns:1fr}.person-identity{grid-column:1}.person-edit{width:100%}}.obs-history-panel{margin-top:18px}.obs-history-list{display:grid;gap:12px}.obs-history-item{padding:16px;background:#f9fbff;border:1px solid #e5edf7;border-radius:12px;min-width:0}.obs-history-item p{font-size:12px;line-height:1.7;margin:11px 0;white-space:pre-wrap;overflow-wrap:anywhere}.obs-history-item small{font-size:10px;color:#788ba4;line-height:1.7}.obs-review-note{margin-top:12px;padding:12px 14px;border-radius:9px;border:1px solid #f3d8c4;background:#fff8f1;color:#965327;font-size:11px;line-height:1.7;overflow-wrap:anywhere}.obs-review-note b{display:block;margin-bottom:5px}.reject-reason-form{background:#fff8f5;border:1px solid #f5d8d2;padding:13px;border-radius:10px;margin-top:12px}.reject-reason-form label{display:block;font-size:11px;font-weight:700;color:#8d3c34;margin-bottom:9px}.reject-reason-form textarea{width:100%;border:1px solid #ebc7c1;border-radius:8px;padding:11px;font-size:12px;resize:vertical}.reject-reason-form small{display:block;color:#9c6f63;margin:6px 0 12px}.review-actions{flex-wrap:wrap}.review-actions button.neutral{border-color:#cfd8e5;background:#f7f9fc;color:#526780}.field-hint{display:block;font-size:10px;color:#768ca5;line-height:1.6;margin:0 0 14px}.duplicate-notice{font-size:11px;border:1px solid #edcd88;background:#fff9e9;color:#8c6219;padding:12px;border-radius:9px;line-height:1.6;margin:0 0 12px}@media(max-width:750px){.obs-history-panel{margin-top:13px}.obs-history-item{padding:13px}.review-actions button{min-height:38px}}.obs-workspace{display:flex;flex-direction:column;min-height:220px}.obs-workspace-student{margin-top:18px}.obs-workspace-head{margin-bottom:13px}.obs-workspace-tools{display:flex;align-items:center;gap:8px}.obs-icon-button,.obs-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#f2f7fc;color:#275d9c;border:1px solid #dce8f7;border-radius:9px;min-height:36px;padding:8px 11px;font-size:11px;font-weight:700}.obs-icon-button{width:36px;padding:8px}.obs-toggle svg{transition:transform .18s}.obs-toggle .is-open{transform:rotate(180deg)}.obs-main-tabs{display:flex;gap:6px;border-bottom:1px solid #e6edf5;margin-bottom:14px}.obs-main-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;font-size:12px;font-weight:700;color:#6d7f97;padding:12px 9px;min-height:44px;display:inline-flex;gap:7px;align-items:center}.obs-main-tabs button.obs-tab-active{border-bottom-color:#2877da;color:#1f66bb}.obs-main-tabs span,.obs-filter-row span{background:#eef3fa;border-radius:15px;font-size:10px;padding:2px 6px;color:#61738c}.obs-history-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 11px}.obs-filter-row{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 210px}.obs-filter-row button{background:#f8faff;border:1px solid #e4eaf4;border-radius:9px;min-height:34px;padding:7px 9px;font-size:10px;color:#5b6b83;display:inline-flex;align-items:center;gap:6px}.obs-filter-row button.obs-filter-active{color:#236fca;background:#e9f3ff;border-color:#9cc5f5;font-weight:700}.obs-search{flex:1 1 175px;min-width:135px;max-width:280px;display:flex;align-items:center;gap:7px;border:1px solid #e2eaf2;border-radius:9px;padding:0 10px;color:#7992b4;background:#fff;min-height:36px}.obs-search input{min-width:0;width:100%;border:0;outline:0;font-size:11px;background:transparent;color:#2b3c56}.obs-scroll-region{max-height:345px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:5px}.obs-compact-item{border:1px solid #e5ecf5;border-radius:10px;background:#fcfdff;margin-bottom:7px;min-width:0}.obs-compact-item summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;cursor:pointer;list-style:none;min-height:63px}.obs-compact-item summary::-webkit-details-marker{display:none}.obs-compact-item summary:hover{background:#f5f9ff}.obs-compact-item[open] summary{border-bottom:1px solid #e7edf6;background:#f5f9ff}.obs-compact-summary{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.obs-compact-name{font-size:12px;color:#213d5a}.obs-compact-meta{font-size:10px;color:#8292a8;line-height:1.5}.obs-compact-preview{font-size:11px;color:#57677d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}.obs-compact-trailing{display:flex;align-items:center;gap:7px;flex-shrink:0}.obs-detail-chevron{color:#7b95b8;transition:transform .18s}.obs-compact-item[open] .obs-detail-chevron{transform:rotate(180deg)}.obs-compact-body{padding:12px 13px 14px;overflow-wrap:anywhere}.obs-compact-body p{font-size:12px;color:#374b67;line-height:1.75;white-space:pre-wrap;margin:0 0 10px}.obs-compact-body small{color:#8393aa;font-size:10px}.obs-empty-state{padding:17px 2px;margin:0}.obs-show-more{display:flex;justify-content:center;align-items:center;gap:7px;width:100%;border:1px solid #d7e7f7;background:#f1f7ff;color:#276fbe;font-size:11px;font-weight:700;border-radius:9px;min-height:39px;margin-top:9px}.obs-list-note{margin:10px 0 0}.obs-collapsed-hint{display:flex;gap:8px;align-items:center;font-size:11px;color:#788ba5;margin:2px 0 0}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:750px){.obs-workspace-student{margin-top:12px}.obs-workspace{min-height:0}.obs-scroll-region{max-height:none;overflow:visible;scrollbar-gutter:auto;padding-right:0}.obs-main-tabs{position:relative}.obs-main-tabs button{flex:1;justify-content:center;min-height:45px}.obs-history-toolbar{gap:8px}.obs-filter-row{flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.obs-filter-row button{flex-shrink:0;min-height:40px;font-size:11px}.obs-search{max-width:none;min-height:43px;flex-basis:100%}.obs-compact-item summary{padding:12px 10px;min-height:70px}.obs-compact-preview{max-width:100%}.obs-compact-trailing .badge{font-size:9px;padding:5px 7px}.obs-icon-button,.obs-toggle{min-height:43px}.obs-icon-button{width:43px}.obs-compact-body .review-actions button{min-height:44px}}@media(prefers-reduced-motion:reduce){.obs-toggle svg,.obs-detail-chevron{transition:none}}.obs-chain-note{border:1px solid #d6e7fa;border-radius:9px;background:#f2f8ff;color:#39648d;padding:10px 12px;font-size:11px;line-height:1.7;margin:10px 0}.obs-chain-note p{font-size:11px;margin:8px 0 0}.obs-previous-detail{margin-top:7px}.obs-previous-detail summary{cursor:pointer;color:#246ab0;font-weight:700;font-size:11px;padding:7px 0;min-height:32px}.obs-previous-detail p{white-space:pre-wrap;line-height:1.7}.obs-resubmitted-notice{background:#eff8f1;color:#287443;padding:10px;border-radius:8px;font-size:11px}.obs-resubmit-button{margin-top:13px;border:1px solid #b7d6fb;background:#edf5ff;color:#1768b9;border-radius:9px;font-weight:700;padding:11px 13px;min-height:44px}.obs-resubmit-form{margin-top:12px;padding:12px;border:1px solid #d5e4f4;background:#f8fbff;border-radius:10px}.obs-resubmit-form label{font-size:11px;font-weight:700;color:#365778;display:block;margin-bottom:8px}.obs-resubmit-form textarea{min-height:88px;width:100%;border:1px solid #cedeee;border-radius:8px;padding:11px;color:#203b59;resize:vertical;font-size:12px}.obs-resubmit-form small{display:block;font-size:10px;color:#6b8198;margin:7px 0 12px}@media(max-width:750px){.obs-resubmit-button,.obs-resubmit-form .review-actions button{min-height:44px}.obs-compact-trailing{max-width:45%;align-items:flex-end}}.attendance-section{display:grid;gap:18px}.attendance-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:18px 22px}.attendance-controls label{display:grid;gap:6px;font-size:13px;font-weight:650;min-width:165px}.attendance-controls input,.attendance-controls select,.attendance-report-form select,.attendance-report-form textarea,.attendance-row-fields select,.attendance-detail input,.attendance-detail textarea{border:1px solid #d9e3f0;background:#fff;border-radius:10px;padding:10px 12px;color:#223451;font:inherit;min-height:42px;width:100%;box-sizing:border-box}.attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.attendance-summary>div{background:#fff;border:1px solid #e2e9f5;padding:15px;border-radius:13px;display:grid;gap:8px}.attendance-summary span{font-size:12px;color:#66758c}.attendance-summary strong{font-size:26px;color:#193d80}.attendance-roster{max-height:365px;overflow:auto;overscroll-behavior:contain;display:grid;gap:8px;padding:4px 0 8px}.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e4eafa;border-radius:12px;background:#fff}.attendance-row>div:first-child{display:grid;gap:4px}.attendance-row small{font-size:11px;color:#76849b}.attendance-row-heading{display:flex!important;align-items:center;gap:9px;flex-wrap:wrap;min-width:160px}.attendance-row-fields{display:flex;gap:12px;align-items:center;flex:1;justify-content:flex-end}.attendance-row-fields>select{max-width:235px}.attendance-row-fields details{min-width:95px}.attendance-row-fields summary{cursor:pointer;color:#2751ab;padding:10px 6px}.attendance-detail{display:grid;gap:9px;padding:12px;border:1px solid #e4eafa;border-radius:10px;margin-top:6px;background:#f8faff;min-width:220px}.attendance-detail label{display:grid;gap:5px;font-size:12px}.attendance-detail label:has(input[type=checkbox]){display:flex;align-items:center}.attendance-detail input[type=checkbox]{width:auto;min-height:auto}.attendance-report-form{border:1px solid #dbe6f4;background:#f8fbff;padding:17px;border-radius:14px;display:grid;gap:12px;margin-top:14px}.attendance-report-form label{display:grid;gap:6px;font-size:13px}.attendance-report-form .button{justify-self:start}.attendance-tip{display:flex;align-items:flex-start;gap:8px;line-height:1.55;color:#64748b;font-size:12px;margin:12px 0}.attendance-tip svg{flex-shrink:0}.attendance-empty,.attendance-loading,.attendance-caption{padding:12px;color:#66758c;font-size:13px}.attendance-caption{display:flex;align-items:center;gap:8px}.attendance-alerts{border:1px solid #f0dfb2;border-radius:12px;padding:12px;margin:14px 0;background:#fffdfa}.attendance-toggle{display:flex;align-items:center;gap:8px;color:#8b600f;background:none;border:0;cursor:pointer;font-weight:700}.attendance-alert{border-top:1px solid #efe0bf;padding:10px 0}.attendance-alert strong{margin-right:10px}.attendance-alert span{font-size:12px;color:#746344}.attendance-alert p{margin:6px 0;font-size:13px}.attendance-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:14px}.attendance-actions button{min-height:44px}@media(max-width:900px){.attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.attendance-section{gap:12px}.attendance-controls{padding:14px;display:grid;grid-template-columns:1fr 1fr}.attendance-controls label{min-width:0}.attendance-controls button{grid-column:span 2}.attendance-roster{max-height:none;overflow:visible}.attendance-row{align-items:stretch;flex-direction:column;padding:12px}.attendance-row-fields{justify-content:stretch;flex-direction:column;align-items:stretch}.attendance-row-fields>select{max-width:none}.attendance-detail{min-width:0}.attendance-summary>div{padding:11px}.attendance-summary strong{font-size:22px}.attendance-actions{flex-direction:column}.attendance-actions button,.attendance-report-form .button{width:100%;justify-content:center}}.attendance-ack{margin:14px 0;display:flex;align-items:center;gap:10px;color:#7b5208;background:#fff8e7;padding:10px;border-radius:9px;font-size:13px}.attendance-ack input{width:20px;height:20px;flex-shrink:0}.attendance-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.attendance-summary>div{padding:12px;min-width:0}.attendance-summary strong{font-size:23px}.attendance-state{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:700;border-radius:20px;padding:6px 10px}.attendance-state.is-done{color:#087451;background:#dcf8ed}.attendance-state.is-waiting{color:#8a5505;background:#fff2d3}.attendance-state.is-partial{color:#1e54a3;background:#eaf2ff}.attendance-row.teacher{display:block;padding:7px 11px}.attendance-row-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,210px) 140px;gap:10px;align-items:center;min-height:40px}.attendance-row-main>.attendance-row-heading{min-width:0}.attendance-row-main>select{border:1px solid #d9e3f0;background:#fff;border-radius:9px;padding:8px 10px;min-height:40px;color:#223451;font:inherit;min-width:0;width:100%}.attendance-row-details{min-width:0}.attendance-row-details>summary{cursor:pointer;color:#2751ab;font-size:13px;padding:8px;white-space:nowrap}.attendance-row-details[open]{grid-column:1/-1;grid-row:2;border-top:1px solid #e9edf8;padding-top:3px}.attendance-row-details[open]>.attendance-detail{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;background:#f8faff;border:0;margin-top:0;padding:8px}.attendance-row-details .attendance-detail input[type=checkbox]{width:19px;height:19px}.attendance-early{align-self:center}.attendance-correction-reason{margin:14px 0;padding:13px;background:#fff8e9;border:1px solid #f2dda5;border-radius:11px}.attendance-correction-reason label{display:grid;gap:7px;font-size:13px}.attendance-correction-reason textarea{width:100%;box-sizing:border-box;min-height:70px;border-radius:10px;border:1px solid #d9e3f0;padding:10px;font:inherit;resize:vertical}.attendance-correction-reason small{color:#805c23}.attendance-saved-caption{margin:12px 0 0;color:#64748b;font-size:12px}.attendance-audit{margin-top:16px;border-top:1px solid #e6ebf5;padding-top:12px}.attendance-audit-list{max-height:260px;overflow:auto;overscroll-behavior:contain;margin-top:7px}.attendance-audit-item{display:flex;flex-wrap:wrap;gap:6px 12px;border-bottom:1px solid #e6ebf5;padding:10px 4px;font-size:12px}.attendance-audit-item small{color:#64748b}.attendance-audit-item p{flex-basis:100%;margin:0}@media(max-width:1100px){.attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.attendance-row-main{grid-template-columns:minmax(0,1fr) minmax(130px,190px) 115px}}@media(max-width:640px){.attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-summary>div{padding:9px;gap:4px}.attendance-summary strong{font-size:19px}.attendance-row-main{grid-template-columns:minmax(0,1fr) 135px;gap:7px}.attendance-row-main>.attendance-row-heading{grid-column:1/-1}.attendance-row-details{grid-column:1/-1}.attendance-row-details[open]{grid-row:auto}.attendance-row-details[open]>.attendance-detail{grid-template-columns:1fr}.attendance-roster.teacher,.attendance-audit-list{max-height:none;overflow:visible}.attendance-state{font-size:11px}}.attendance-correction-inline{display:grid;gap:6px;background:#fff9ee;border:1px solid #f1dba7;border-radius:10px;padding:9px 12px;margin-top:8px;font-size:12px}.attendance-correction-inline textarea{box-sizing:border-box;width:100%;min-height:58px;border:1px solid #d9e3f0;padding:8px;border-radius:8px;font:inherit;resize:vertical}.attendance-correction-inline small,.attendance-correction-hint{color:#805c23;font-size:12px}@media(max-width:640px){.attendance-row-details{grid-column:2}.attendance-row-details[open]{grid-column:1/-1;grid-row:3}}.report-section{min-width:0}.report-filter-panel{padding:17px 20px;margin-bottom:15px}.report-mode-buttons{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.report-mode-buttons button{border:1px solid #dce8f5;background:#f8fbff;color:#566c85;font-size:12px;font-weight:700;padding:10px 14px;border-radius:9px;min-height:44px}.report-mode-buttons button.report-mode-active{border-color:#81b2ed;background:#eaf4ff;color:#176dcc}.report-filter-bottom{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.report-filter-bottom>label,.report-config-fields>label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:#516982}.report-filter-bottom input,.report-config-fields input,.report-config-fields select{min-height:43px;min-width:160px;border:1px solid #d7e3f4;background:#fff;border-radius:9px;color:#23415f;padding:9px 12px}.report-range{display:flex;align-items:center;gap:8px;color:#496683;font-size:12px;min-height:43px;flex:1;min-width:190px}.report-actions{display:flex;gap:9px;flex-wrap:wrap;margin-left:auto}.report-actions .button{min-height:43px}.report-config{border-top:1px solid #eaf0f8;margin-top:16px;padding-top:10px}.report-config-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:9px 2px;color:#3f6e9d;font-weight:700;font-size:12px}.report-config-fields{display:flex;flex-wrap:wrap;gap:11px;align-items:flex-end;margin-top:8px;padding:14px;background:#f7faff;border:1px solid #e4eef9;border-radius:11px}.report-config-fields>small{flex-basis:100%;font-size:11px;line-height:1.5;color:#647990}.report-config-fields .button{min-height:43px}.report-config-note{font-size:11px;color:#325e86;align-self:center}.report-info{padding:20px;font-size:12px;color:#667c93;line-height:1.8;margin-bottom:16px}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 14px}.report-metric{background:#fff;border:1px solid #dce8f6;border-radius:13px;padding:15px 14px;min-width:0}.report-metric span{font-size:11px;color:#627991;display:block;line-height:1.6}.report-metric strong{font-size:24px;display:block;color:#1b568f;margin-top:6px}.report-percentage{background:#ebf7f5;border-color:#c5ebe2}.report-percentage strong{color:#117a68}.report-notice{display:flex;gap:11px;background:#fff9ee;border:1px solid #f3ddaf;border-radius:12px;padding:13px 16px;color:#926528;margin-bottom:16px;font-size:12px;line-height:1.8}.report-notice svg{flex:none;margin-top:3px}.report-notice p{margin:4px 0 0;color:#785c37}.report-student-panel{padding:19px 20px}.report-student-head,.report-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:13px}.report-student-head h3,.report-detail-head h3{margin:0;font-size:15px}.report-student-head h3 span{color:#8799ad;font-size:11px}.report-student-controls{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.report-student-controls input[type=text],.report-student-controls input:not([type]){border:1px solid #dee8f4;border-radius:9px;min-height:42px;padding:9px 11px;width:200px;max-width:100%;font-size:12px}.report-check{display:flex;align-items:center;gap:8px;font-size:11px;color:#526f88;white-space:nowrap;min-height:42px}.report-check input{width:17px;height:17px}.report-table-wrap{max-height:465px;overflow-y:auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.report-table{width:100%;border-collapse:separate;border-spacing:0;min-width:810px;font-size:11px;text-align:center}.report-table thead th{position:sticky;top:0;background:#f2f7fd;color:#3d5a78;font-size:10px;padding:13px 9px;border-bottom:1px solid #dce8f5;z-index:2}.report-table thead th:first-child,.report-table tbody td:first-child{text-align:left}.report-table tbody td{border-bottom:1px solid #eaf0f7;padding:11px 9px;color:#435b73}.report-table tbody tr:hover{background:#fafcff}.report-name-link{border:none;background:transparent;color:#1b598f;text-align:left;font-size:12px;font-weight:700;cursor:pointer;padding:6px 1px}.report-inactive{display:block;font-size:10px;color:#9b7852;margin-top:3px}.report-footnote{color:#7b8da1;font-size:11px;margin:12px 0 0;line-height:1.7}.report-mobile-cards{display:none}.report-detail-panel{margin-top:14px;padding:16px 20px;scroll-margin-top:20px}.report-detail-head button{background:#eef6ff;border:1px solid #d8e9fb;color:#236db7;display:flex;align-items:center;gap:4px;border-radius:8px;padding:8px 11px}.report-detail-scroll{max-height:380px;overflow-y:auto;overscroll-behavior:contain}.report-detail-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:12px 4px;border-bottom:1px solid #ecf0f5;font-size:11px;line-height:1.6}.report-detail-row b{margin-right:10px;color:#344e67}.report-detail-row span{padding:3px 7px;background:#eef4fb;border-radius:6px;color:#426181}.report-detail-row small{flex-basis:100%;color:#68809a;overflow-wrap:anywhere}.report-footer-note{color:#73869b;font-size:11px;line-height:1.7;margin:16px 3px 25px}@media(max-width:1100px){.report-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:750px){.report-filter-panel{padding:12px;margin-bottom:11px}.report-mode-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.report-mode-buttons button{font-size:11px;padding:8px 5px;min-width:0}.report-filter-bottom{flex-direction:column;align-items:stretch;gap:9px}.report-filter-bottom>label,.report-filter-bottom input{width:100%}.report-range{min-height:0;min-width:0;font-size:11px}.report-actions{margin:0;width:100%}.report-actions .button{flex:1;min-width:0;padding:10px 8px}.report-config-fields{display:flex;flex-direction:column;align-items:stretch;padding:11px}.report-config-fields>label,.report-config-fields input,.report-config-fields select{width:100%;min-width:0}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.report-metric{padding:11px}.report-metric strong{font-size:19px}.report-metric span{font-size:10px}.report-notice{padding:11px;font-size:11px}.report-student-panel{padding:12px}.report-student-head{align-items:stretch}.report-student-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;width:100%}.report-student-controls input[type=text],.report-student-controls input:not([type]){width:100%;min-width:0}.report-table-wrap{display:none}.report-mobile-cards{display:grid;gap:9px}.report-mobile-card{border:1px solid #e2ebf6;border-radius:11px;padding:12px;background:#fbfdff;min-width:0}.report-mobile-name{border:0;background:transparent;color:#235e99;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;padding:0 0 9px}.report-mobile-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:9px}.report-mobile-numbers span{font-size:9px;color:#7890aa;background:#f1f6fc;border-radius:7px;padding:7px 5px;text-align:center}.report-mobile-numbers b{display:block;color:#2d5c8c;font-size:13px;margin-top:3px}.report-mobile-card small{font-size:10px;color:#6c8097;line-height:1.7}.report-detail-panel{padding:12px}.report-detail-scroll{max-height:none;overflow:visible}}@media(max-width:385px){.report-mobile-numbers,.report-mode-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}.mobile-admin-menu{display:none}@media(max-width:750px){.mobile-admin-menu{display:flex;position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));right:8px;z-index:60;flex-direction:column;gap:5px;padding:9px;min-width:190px;background:#fff;border-radius:11px;border:1px solid #d7e5f6;box-shadow:0 8px 25px #1c3e6330}.mobile-admin-menu button{text-align:left;border:0;background:#f3f7fe;color:#255e9c;padding:12px;border-radius:8px;font-weight:700}}.scope-module-settings{display:grid;gap:18px;margin-top:18px}.scope-module-settings .panel-head h3{display:flex;align-items:center;gap:8px}.scope-help{font-size:.91rem;line-height:1.6;color:var(--text-muted,#607088);margin:8px 0 16px}.scope-level{padding:12px 0;border-top:1px solid #e5ebf1}.scope-level h4{margin:0 0 10px;font-size:1rem}.scope-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}.scope-option{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e2e8f0;border-radius:12px;padding:12px;min-height:70px}.scope-option strong,.scope-option small{display:block}.scope-option small{margin-top:4px;color:#64748b;line-height:1.35}.scope-soon{background:#f8fafc;opacity:.75}.scope-status{display:flex;flex-direction:column;gap:5px;align-items:center;min-width:80px;font-size:.76rem;white-space:nowrap;color:#475569}.scope-status input,.scope-pht-levels input{width:19px;height:19px;accent-color:#2563eb;cursor:pointer}.scope-status input:disabled,.scope-pht-levels input:disabled{cursor:not-allowed}.scope-pht{padding:13px 0;border-top:1px solid #e5ebf1}.scope-pht>strong{display:block;margin-bottom:10px;overflow-wrap:anywhere}.scope-pht-levels{display:flex;flex-wrap:wrap;gap:12px}.scope-pht-levels label{display:flex;gap:6px;align-items:center;padding:6px 10px;background:#f8fafc;border-radius:8px;font-size:.9rem}@media(max-width:600px){.scope-list{grid-template-columns:1fr}.scope-option{min-height:72px}.scope-module-settings{gap:12px}}.roster-preview{margin-top:1rem;padding:1rem;border:1px solid var(--border, #dce2ea);border-radius:12px}.roster-preview h4{margin:0 0 .6rem}.roster-preview-scroller{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.roster-preview-table{width:100%;min-width:460px;border-collapse:collapse;font-size:.94rem}.roster-preview-table th,.roster-preview-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid #e4e9f1}.roster-import-consent{display:flex;align-items:flex-start;gap:.6rem;margin:1rem 0;line-height:1.5}.roster-import-consent input{margin-top:.27rem;min-width:17px;min-height:17px}@media(max-width:640px){.roster-preview{padding:.65rem}.roster-preview-table{font-size:.86rem}}.competition-workspace .panel-head h3{display:flex;align-items:center;gap:9px}.rubric-table-wrap{overflow-x:auto;max-width:100%;margin:14px 0;border:1px solid #e2ebf6;border-radius:10px}.rubric-table{width:100%;min-width:560px;border-collapse:collapse;text-align:left;font-size:12px}.rubric-table th{background:#f2f6fc;color:#46617c;padding:11px 12px}.rubric-table td{padding:11px 12px;border-bottom:1px solid #edf2f8;line-height:1.65;vertical-align:top}.rubric-table td .button{padding:8px 12px;min-height:34px}.rubric-plus{color:#187c54;font-weight:800}.rubric-minus{color:#c14a43;font-weight:800}.rubric-editor{margin-top:15px;border:1px solid #cdddff;background:#f7faff;border-radius:13px;padding:16px}.rubric-fields{display:grid;grid-template-columns:1fr 1.3fr 2.2fr 1fr;gap:12px;align-items:end}.rubric-fields label,.rubric-activate label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#425b78;font-weight:700}.rubric-fields input:not([type=checkbox]),.rubric-fields select,.rubric-activate textarea,.rubric-input{min-height:44px;border:1px solid #d7e3f4;background:#fff;color:#1c2842;border-radius:9px;padding:9px 12px;width:100%}.rubric-fields .rubric-check{grid-column:1/-1}.rubric-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;line-height:1.6;font-size:12px;font-weight:600}.rubric-check input{width:18px;height:18px;flex:none}.rubric-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.rubric-activate{margin-top:22px;border-top:1px solid #e0e8f3;padding-top:20px;display:flex;flex-direction:column;gap:14px}.rubric-activate h4{margin:0}.rubric-activate .button{align-self:flex-start}.competition-workspace .academic-controls input.rubric-input{min-width:min(400px,100%)}@media(max-width:1050px){.rubric-fields{grid-template-columns:1fr 1fr}}@media(max-width:600px){.rubric-fields{grid-template-columns:1fr}.rubric-activate .button{align-self:stretch;justify-content:center;min-height:44px}}.competition-workspace .academic-controls input[type=date],.competition-workspace .academic-controls input[type=number],.competition-workspace .academic-controls textarea,.competition-workspace .academic-section>label select{width:100%;min-height:44px;border:1px solid #d7e3f4;border-radius:9px;padding:9px 12px;background:#fff;color:#1c2842}.competition-workspace .academic-controls textarea{min-height:80px;resize:vertical}.competition-workspace .academic-section>label{display:block;margin:14px 0;font-weight:700;color:#425b78}.competition-workspace .academic-section>label select{margin-top:8px}.weekly-plan .weekly-controls{margin-bottom:16px}.weekly-controls label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#3d5978;margin-bottom:12px}.weekly-controls input,.weekly-controls select,.weekly-controls textarea,.weekly-task-editor input,.weekly-task-editor select,.weekly-task-editor textarea{width:100%;border:1px solid #cfdaeb;border-radius:10px;padding:10px 12px;color:#1c2842;background:#fff;min-height:43px}.weekly-controls textarea,.weekly-task-editor textarea{resize:vertical;line-height:1.6}.weekly-control-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.weekly-control-row label{min-width:180px}.weekly-control-row strong{color:#325273;font-size:12px}.weekly-link{border:1px solid #cbdff3;background:#f1f7ff;border-radius:8px;padding:6px 9px;margin:3px;color:#2469b6}.weekly-tasks{display:grid;gap:10px;margin:15px 0}.weekly-task{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid #e1eaf3;border-radius:12px;background:#f9fbfe}.weekly-task>div:first-child{min-width:0;overflow-wrap:anywhere}.weekly-task b{color:#284b70}.weekly-task p{color:#61748d;font-size:12px;margin:5px 0;line-height:1.6}.weekly-task-actions{display:flex;gap:8px;align-items:start;flex-wrap:wrap;justify-content:flex-end;min-width:140px}.weekly-task-editor{margin-top:14px;padding:15px;background:#f3f8ff;border:1px solid #c9def4;border-radius:12px}.weekly-task-editor h4{margin:0 0 12px}.weekly-task-editor label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#385674;font-weight:700;margin:10px 0}.weekly-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px}.weekly-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.weekly-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.weekly-indicators>div{background:#f6faff;border:1px solid #e0ebf8;padding:15px;border-radius:10px}.weekly-indicators p{margin:8px 0 0;line-height:1.7;font-size:12px;color:#506b89}@media(max-width:750px){.weekly-form-grid,.weekly-indicators{grid-template-columns:1fr}.weekly-task{flex-direction:column}.weekly-task-actions{justify-content:flex-start}.weekly-control-row{align-items:flex-start;flex-direction:column;gap:5px}.weekly-controls .button{min-height:43px}.mobile-bottom-nav button{font-size:9px;padding-inline:2px}}.class-meeting .meeting-print-heading{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:.5rem 0 1rem}.class-meeting .meeting-print-heading span{font-weight:500}.class-meeting .meeting-no-print .weekly-task{justify-content:space-between}.class-meeting textarea:disabled{opacity:1;color:inherit;-webkit-text-fill-color:currentColor;background:#f9fafc}@media print{@page{size:A4;margin:18mm 16mm}body{background:#fff!important;font:12pt/1.4 Times New Roman,serif;color:#111}.sidebar,.app-header,.app-footer,.mobile-bottom-nav,.page-heading,.class-meeting>.panel,.class-meeting>.notice,.class-meeting>.error-alert,.class-meeting>.success-alert,.class-meeting .meeting-no-print,.class-meeting .weekly-control-row,.class-meeting .button,.app-content>.panel.academic-section{display:none!important}.app-shell,.app-main,.app-content{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important}.class-meeting .meeting-print-report{display:block}.class-meeting .meeting-print-report .panel{border:0;box-shadow:none;padding:0;margin:0 0 10mm;break-inside:avoid}.class-meeting textarea{border:0!important;padding:0!important;resize:none;overflow:visible;background:#fff!important;color:#000!important;min-height:0;font:12pt Times New Roman,serif;width:100%}.class-meeting .weekly-indicators{display:block}.class-meeting .weekly-indicators>div{margin:0 0 8px;padding:5px 0}.class-meeting h3,.class-meeting b,.class-meeting strong{color:#111!important}}.class-meeting .meeting-print-value{display:none}@media print{.class-meeting textarea{display:none!important}.class-meeting .meeting-print-value{display:block!important;white-space:pre-wrap;overflow-wrap:anywhere;min-height:1.4em;margin:8px 0 14px}.class-meeting label{display:block;break-inside:avoid}}.class-meeting .weekly-controls .meeting-confirmation{display:flex;flex-direction:row;align-items:flex-start;gap:10px;width:100%;min-width:0;max-width:100%;margin:0 0 16px;line-height:1.6;font-size:12px;font-weight:600;color:#385674;cursor:pointer;overflow-wrap:break-word}.class-meeting .weekly-controls .meeting-confirmation input[type=checkbox]{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:1px 0 0;padding:0;border-radius:4px;accent-color:#2276d6;cursor:pointer}.class-meeting .meeting-confirmation span{min-width:0;flex:1 1 auto}.class-meeting .meeting-action-buttons{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.class-meeting .meeting-action-buttons .button{min-height:43px;white-space:normal;text-align:center}@media(max-width:640px){.class-meeting .meeting-action-buttons .button{width:100%;justify-content:center}}.leadership-weekly{margin-top:16px;overflow-wrap:anywhere}.leadership-weekly-date{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:15px 0}.leadership-weekly-date label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:12px;color:#385674}.leadership-weekly-date input{min-height:44px;padding:10px;border:1px solid #cbd8e8;border-radius:9px;background:#fff;color:#1c2842}.leadership-weekly-date span{font-size:12px;color:#60758e;max-width:480px}.leadership-weekly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:12px 0}.leadership-weekly-grid label{display:flex;flex-direction:column;gap:8px;font-weight:700;color:#385674;font-size:12px;min-width:0}.leadership-weekly-grid textarea{width:100%;max-width:100%;min-height:92px;resize:vertical;border:1px solid #cfdaeb;border-radius:10px;padding:12px;line-height:1.6;background:#fff;color:#1c2842}.leadership-weekly-reports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:15px 0}.leadership-weekly-card{min-width:0;border:1px solid #dce7f5;background:#f7faff;border-radius:12px;padding:13px}.leadership-weekly-card h4{margin:0 0 10px;color:#204b78}.leadership-weekly-card h4 small{font-weight:500;color:#637c96}.leadership-weekly-card p,.leadership-weekly-final p{white-space:pre-wrap;line-height:1.65;font-size:13px}.leadership-weekly-final{border:1px solid #bcdccd;border-radius:12px;background:#f5fcf8;padding:15px;margin-top:15px}.leadership-weekly-final h4{margin:0 0 10px}.leadership-weekly-actions{margin-top:15px}@media(max-width:700px){.leadership-weekly-grid,.leadership-weekly-reports{grid-template-columns:1fr}.leadership-weekly .button-primary{min-height:45px;white-space:normal}.leadership-weekly-date input{width:100%}}.leadership-weekly-partial{margin:14px 0;padding:14px;border-left:3px solid #b4741b}.leadership-weekly-partial p{margin:0 0 12px;line-height:1.6}.leadership-weekly-check{display:flex;align-items:flex-start;gap:10px;line-height:1.6;font-weight:600;cursor:pointer}.leadership-weekly-check input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin-top:3px;accent-color:#236dc2}.leadership-weekly-revision-label{display:flex;flex-direction:column;gap:7px;max-width:760px;font-size:13px;font-weight:700;margin:12px 0}.leadership-weekly-revision-label textarea{width:100%;min-height:70px;border:1px solid #cfdaeb;border-radius:10px;padding:12px;resize:vertical}.action-blocked{display:inline-flex;position:relative;align-items:center;vertical-align:middle;flex:0 0 auto;margin:2px 4px;max-width:100%}.action-blocked-trigger{display:inline-flex;justify-content:center;align-items:center;width:27px;height:27px;min-width:27px;padding:0;border:1px solid #9db5d6;border-radius:50%;background:#eff5fc;color:#245c99;font-size:15px;font-weight:700;line-height:1;cursor:help;transition:background .15s,box-shadow .15s}.action-blocked-trigger:hover,.action-blocked-trigger:focus-visible{background:#dcebf9;outline:2px solid #2563a9;outline-offset:2px}.action-blocked-popover{position:fixed;z-index:9999;box-sizing:border-box;width:min(380px,calc(100vw - 16px));max-height:60vh;overflow-y:auto;padding:12px 14px;border:1px solid #deb871;border-left:3px solid #a66a13;border-radius:10px;background:#fff9ee;color:#593b12;box-shadow:0 12px 30px #16294235;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.action-blocked-popover strong{display:block;margin:0 0 5px}.action-blocked-popover ul{margin:4px 0 0;padding-left:1.4em}.action-blocked-popover li+li{margin-top:5px}.leader-row>.action-blocked{grid-column:auto;width:auto}.academic-controls>.action-blocked,.academic-inline-editor>.action-blocked{flex-basis:auto;width:auto}@media(pointer:coarse){.action-blocked-trigger{width:36px;height:36px;min-width:36px;font-size:16px}}:root{font-size:15px}.button{font-size:13px;line-height:1.4}.sidebar nav button{font-size:13px;line-height:1.4}.sidebar-school select{font-size:12px}.sidebar-school>small{font-size:10px}.user-box strong{font-size:11px}.crumbs{font-size:12px}.page-heading p,.section-head p{font-size:13px;line-height:1.65}.panel-head h3{font-size:15px;line-height:1.4}.muted,.academic-helper,.attendance-tip{color:#526882;font-size:12px;line-height:1.65}.badge{font-size:12px}.rubric-table{font-size:13px}.rubric-table td{overflow-wrap:anywhere}.rubric-table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.rubric-table-wrap:focus-visible{outline:2px solid #2477d4;outline-offset:2px}.mobile-table-hint{display:none}.panel-head h3,.page-heading h1,.page-heading h2{min-width:0;overflow-wrap:break-word}@media(max-width:750px){html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.app-main,.app-content,.app-content .panel,.app-content section{min-width:0}.app-content{padding:16px 12px}.app-header{padding:0 12px;gap:8px}.crumbs{min-width:0;flex:1 1 auto;gap:6px;font-size:12px}.crumbs .crumb-divider{display:none}.crumbs b{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-header-right{flex:0 0 auto;gap:7px}.panel{padding:16px}.panel-head{flex-wrap:wrap;gap:8px;align-items:center}.panel-head h3{font-size:16px;line-height:1.4}.page-heading{margin-bottom:18px}.page-heading h1{font-size:clamp(21px,5.8vw,26px);line-height:1.3;letter-spacing:-.35px}.page-heading h2{font-size:clamp(19px,5.2vw,23px);line-height:1.35}.page-heading p,.section-head p,.app-content .muted,.app-content .academic-helper,.app-content .attendance-tip,.app-content .empty,.app-content .error-alert,.app-content .success-alert,.app-content .notice{font-size:13px;line-height:1.65}.app-content :is(.panel-head,.rubric-activate,.weekly-task,.leadership-weekly-card) h4{font-size:15px;line-height:1.45}.app-content :is(.badge,.attendance-row small,.academic-empty,.roster-row small,.review-item>small,.obs-compact-meta,.obs-compact-body small){font-size:12px;line-height:1.5}.app-content .badge{white-space:normal}.app-content :is(.button,.review-actions button,.rubric-actions button,.class-tabs button,.weekly-actions button,.attendance-actions button,.leadership-weekly-actions button){min-height:44px;font-size:14px;line-height:1.35;white-space:normal;text-align:center;overflow-wrap:anywhere}.app-content :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;line-height:1.5;max-width:100%;min-width:0;min-height:44px}.app-content :is(.rubric-fields label,.rubric-activate label,.weekly-controls label,.weekly-task-editor label,.leadership-weekly-grid label,.leadership-weekly-date label,.attendance-report-form label,.obs-form label){font-size:13px;line-height:1.5}.app-content :is(.rubric-fields,.rubric-actions,.weekly-actions,.meeting-action-buttons,.leadership-weekly-actions,.review-actions){min-width:0;flex-wrap:wrap}.rubric-table{font-size:13px}.rubric-table th,.rubric-table td{padding:12px 11px}.mobile-table-hint{display:block;color:#526882;font-size:12px;line-height:1.5;margin:-4px 0 12px}.app-content .stat-card>span,.app-content .principle strong,.app-content .principle p,.app-content .review-item p,.app-content .level-line>span:not(.dot),.app-content .roster-row{font-size:13px;line-height:1.55}.mobile-bottom-nav{justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.mobile-bottom-nav::-webkit-scrollbar{display:none}.mobile-bottom-nav button{flex:1 0 64px;min-height:56px;font-size:11px;line-height:1.25;padding:5px 3px}.mobile-admin-menu button{min-height:44px;font-size:14px}.app-footer{font-size:11px;line-height:1.6}.action-blocked-popover{font-size:14px;line-height:1.55}}@media(max-width:390px){.app-content{padding:14px 10px}.panel{padding:14px}.mobile-bottom-nav button{flex-basis:62px;font-size:11px}.sidebar .brand b{font-size:18px}.section-head h2{font-size:20px}}.brand b{white-space:nowrap}.brand small{line-height:1.45}@media(max-width:750px){.topbar .brand small,.sidebar .brand small{font-size:10px;letter-spacing:.7px}.preview-footer,.app-footer{overflow-wrap:anywhere}.app-footer{flex-wrap:wrap}}
