@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font-family:Be Vietnam Pro,Arial,sans-serif;font-size:13px}button,input,select{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button,a{transition:background .16s,transform .16s}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}button svg,a svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:30px;font-weight:700;line-height:1.4}h2{letter-spacing:-.35px;font-size:17px;font-weight:600}h3{font-size:16px}p{color:var(--muted);line-height:1.8}.shell{min-height:100vh;display:flex}.sidebar{color:#d1e2d9;z-index:20;background:#083e33;flex-direction:column;width:246px;padding:31px 18px 0;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:2px;color:#fff;align-items:center;gap:12px;padding:0 10px;font-size:25px;font-weight:800;display:flex}.brand span:not(.brand-icon){letter-spacing:1.6px;margin-top:3px;font-size:7px;font-weight:500;display:block}.brand-icon{color:#174e3c;background:#d8e9b3;border-radius:11px;place-items:center;width:42px;height:44px;display:grid}.workspace{color:#eef5ef;border-top:1px solid #ffffff13;border-bottom:1px solid #ffffff13;margin:27px 0;padding:22px 10px;font-size:12px}.workspace small{color:#91aca0;margin:7px 0 0 16px;font-size:10px;display:block}.live-dot{background:#d8e9b3;border-radius:50%;width:6px;height:6px;margin-right:9px;display:inline-block}.nav-label{letter-spacing:1.3px;color:#799e8f;margin:0 13px 15px;font-size:9px}.nav{color:#b8cfc3;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;margin-bottom:7px;padding:14px 15px;font-size:12px;display:flex}.nav svg:last-child:not(:first-child){margin-left:auto}.nav.active{color:#153c2f;background:#dceab6;font-weight:600;box-shadow:0 3px 10px #0000000a}.sidebar-note{background:#ffffff04;border:1px solid #ffffff14;border-radius:12px;margin:auto 9px 27px;padding:18px 14px}.sidebar-note svg{color:#caddab;margin-bottom:12px}.sidebar-note b{color:#e4efe6;font-size:11px;font-weight:500;display:block}.sidebar-note p{color:#95b4a4;margin-top:7px;font-size:10px;line-height:1.9}.profile{border-top:1px solid #ffffff16;align-items:center;gap:10px;padding:20px 0;display:flex}.avatar{color:#31533c;background:#e0eac9;border-radius:50%;place-items:center;width:35px;height:35px;font-size:11px;font-weight:600;display:grid}.profile b{font-size:10px}.profile small{color:#91ad9e;text-overflow:ellipsis;max-width:130px;margin-top:5px;font-size:8px;display:block;overflow:hidden}.profile a{color:#9cbbab;margin-left:auto}.main{width:calc(100% - 246px);margin-left:246px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:78px;padding:0 38px;display:flex}.breadcrumb{color:#94a199;align-items:center;gap:14px;font-size:11px;display:flex}.breadcrumb strong{color:#355647;font-weight:500}.top-date{color:#7c8d81;align-items:center;gap:9px;font-size:10px;display:flex}main{max-width:1700px;margin:auto;padding:35px 38px 0}.page-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;display:flex}.eyebrow{letter-spacing:1.7px;color:#6e917d;margin-bottom:10px;font-size:9px;font-weight:600}.page-head p{margin-top:8px;font-size:11px}.primary,.secondary,.icon-btn,.text-btn{white-space:nowrap;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary{background:var(--green);color:#fff;padding:13px 18px;font-size:11px;font-weight:500}.primary:hover{background:#084b3a}.secondary{color:#496653;cursor:pointer;background:#fff;border:1px solid #dce5dd;padding:10px 13px;font-size:10px}.secondary:hover{background:#f0f5ed}.text-btn{color:var(--green);background:0 0;padding:6px 0;font-size:10px}.icon-btn{color:#637f6a;background:#f3f6f2;width:35px;height:35px}.full{width:100%;margin-top:18px}.stats{grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:26px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:24px 21px;position:relative}.stat-icon{border-radius:11px;place-items:center;width:40px;height:40px;margin-bottom:20px;display:grid}.stat-label{color:#788c7f;margin-bottom:7px;font-size:11px;display:block}.stat strong{letter-spacing:-1px;font-size:28px;font-weight:600;display:block}.stat small{color:#9aaa9c;margin-top:13px;font-size:9px;display:block}.panel{border:1px solid var(--line);background:#fff;border-radius:13px;padding:24px}.overview-grid{grid-template-columns:minmax(0,1.95fr) minmax(250px,1fr);gap:22px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px;display:flex}.section-head p{margin-top:7px;font-size:10px}.class-row{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-top:1px solid #eef1ec;align-items:center;gap:13px;padding:21px 0;display:flex}.class-row b{font-size:12px;font-weight:600}.class-row small{color:#91a091;margin-top:7px;font-size:9px;display:block}.subject{border-radius:11px;flex-shrink:0;place-items:center;width:45px;height:45px;display:grid}.progress-wrap{color:#799183;min-width:100px;margin-left:auto;font-size:10px}.progress{background:#edf1e8;border-radius:5px;width:100px;height:5px;margin-top:10px;display:block;overflow:hidden}.progress i{background:#a2ba74;border-radius:5px;height:100%;display:block}.class-row>svg{color:#afbdad;margin-left:10px}.finance-card{background:#edf3e5;border:1px solid #e2e9d7;padding:28px}.finance-card h2{margin-top:13px;font-size:24px;line-height:1.5}.finance-card p{margin-top:10px;font-size:10px}.finance-total{border-bottom:1px solid #dce5d2;margin:25px 0 20px;padding-bottom:19px}.finance-total strong{letter-spacing:-1px;margin-top:9px;font-size:29px;display:block}.line{justify-content:space-between;align-items:center;gap:10px;display:flex}.finance-card .line{margin-top:12px;font-size:11px}.finance-card .line b{font-weight:500}.finance-card>button{color:#31583e;background:#dce8cd;border:0;border-radius:7px;justify-content:space-between;align-items:center;width:100%;margin-top:24px;padding:13px 15px;font-size:11px;display:flex}.quick-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px;display:grid}.quick{border:1px solid var(--line);text-align:left;color:#709277;background:#fff;border-radius:11px;align-items:center;gap:13px;padding:22px 18px;display:flex}.quick b{color:#3d5946;font-size:11px;font-weight:500;display:block}.quick small{color:#97a494;margin-top:8px;font-size:9px;display:block}.quick>svg:last-child{color:#91a482;margin-left:auto}footer{letter-spacing:1px;color:#9cab9c;border-top:1px solid #e3e9df;justify-content:space-between;margin-top:30px;padding:29px 0 20px;font-size:8px;display:flex}footer span{letter-spacing:0}.toolbar{color:#809180;flex-wrap:wrap;align-items:center;gap:15px;margin-bottom:22px;font-size:11px;display:flex}.toolbar>span:last-child{margin-left:auto}.search{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;min-width:290px;padding:0 12px;display:flex}.search input{background:0 0;border:0;outline:none;width:100%;padding:11px 0}input,select{color:#3c5848;background:#fff;border:1px solid #dfe6df;border-radius:7px;outline:none;min-width:0;padding:11px 12px;font-size:11px}input:focus,select:focus{border-color:#8db89c;box-shadow:0 0 0 3px #eff5e9}input::placeholder{color:#a4afa4}select{max-width:100%}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.course-card .section-head{margin-bottom:21px}.course-card h2{margin-top:7px;font-size:20px}.course-card p{margin-top:8px;font-size:11px}.course-meta{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:22px;padding-top:19px;font-size:11px;display:flex}.course-meta span{color:#8c9c8b;align-items:center;gap:6px;display:flex}.course-meta b small{color:#98a593;font-size:9px;font-weight:400}.policy{color:#8a986e;background:#f4f6ec;border-radius:6px;margin:19px 0;padding:9px;font-size:10px}.course-card .line{font-size:11px}.card-actions{gap:10px;margin-top:23px;display:flex}.card-actions .primary{flex:1}.badge{color:#64865c;white-space:nowrap;background:#eaf3e6;border-radius:5px;padding:6px 8px;font-size:9px;display:inline-block}.badge.neutral{color:#9a9e8e;background:#f1f2ed}.muted{color:var(--muted);font-size:10px}.actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.table-scroll{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:11px}th{color:#8c9b88;white-space:nowrap;background:#f6f8f3;padding:14px 13px;font-size:9px;font-weight:500}td{color:#6f836d;vertical-align:middle;border-bottom:1px solid #edf1e8;padding:18px 13px}td small{color:#9ca991;margin-top:6px;font-size:9px;display:block}.id-text{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.tag{color:#6f8b61;background:#eef4e8;border-radius:5px;margin:2px;padding:5px 7px;font-size:9px;display:inline-block}.count{color:#789165;background:#f0f4e9;border-radius:5px;margin-left:8px;padding:4px 7px;font-size:10px}.info-strip{color:#6b825b;background:#f3f6ec;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px;padding:15px 18px;font-size:11px;display:flex}.segmented{gap:5px;display:flex}.segmented button{color:#94a08b;white-space:nowrap;background:#fff;border:1px solid #e3e8dd;border-radius:6px;padding:9px 12px;font-size:10px}.segmented .chosen.present{color:#3c7447;background:#e5f2e6;border-color:#9dc8a1}.segmented .chosen.excused{color:#9b813d;background:#fff5d9;border-color:#e6cf8e}.segmented .chosen.absent{color:#b17467;background:#fbebe6;border-color:#e7bcb2}.form-footer{justify-content:space-between;align-items:center;gap:15px;margin-top:23px;display:flex}.subheading{margin-top:30px;margin-bottom:16px;font-size:13px}.session-list{flex-wrap:wrap;gap:9px;display:flex}.settlement{background:#f1f5e9;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin-top:23px;margin-bottom:15px;padding:22px;display:flex}.settlement small{color:#8c9a7c;font-size:10px;display:block}.settlement strong{margin-top:10px;font-size:22px;font-weight:600;display:block}.debt{color:#b67d61}.empty{text-align:center;color:#92a184;flex-direction:column;justify-content:center;align-items:center;gap:15px;min-height:265px;padding:25px;display:flex}.empty h3{color:#55704c;font-size:16px;font-weight:500}.empty p{max-width:330px;font-size:11px}.empty .primary{margin-top:3px}.alert{color:#a26c52;background:#fceee7;border:1px solid #eed7c9;border-radius:8px;justify-content:space-between;align-items:center;margin:0 0 18px;padding:13px 16px;font-size:11px;line-height:1.8;display:flex}.alert button{color:inherit;background:0 0;border:0}.toast{z-index:70;color:#fff;background:#174f3c;border-radius:9px;align-items:center;gap:10px;padding:17px 22px;display:flex;position:fixed;bottom:28px;right:30px;box-shadow:0 5px 30px #153c3225}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#153c3266;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:16px;width:560px;max-width:100%;max-height:92vh;padding:28px;overflow:auto;box-shadow:0 20px 80px #163b3233}.dialog.wide{width:1100px}.dialog>.section-head{margin-bottom:15px}.dialog p{margin-bottom:15px;font-size:11px}.dialog label{color:#73876c;flex-direction:column;gap:9px;margin-top:17px;font-size:10px;display:flex}.dialog label input,.dialog label select{width:100%}.two{grid-template-columns:1fr 1fr;gap:0 15px;display:grid}.range-box{background:#f6f8f1;border:1px solid #e7ecdf;border-radius:9px;margin-top:20px;padding:16px}.range-box label{margin:0}.range-box strong{color:#42663d;font-size:18px}.range-box input[type=range]{accent-color:#5e8550;width:100%;box-shadow:none;margin:18px 0 13px;padding:0}.range-box .muted{font-size:9px}.range-box .actions{gap:8px}.range-box .actions small{color:#8e9d81;margin-left:auto;font-size:10px}.import-table{max-height:48vh}.import-table select{padding:8px}.portal-landing{background:radial-gradient(at 0 0,#e9efdc 0%,#0000 45%),#f5f7f1;flex-direction:column;min-height:100vh;padding:30px 6vw;display:flex}.landing-brand{letter-spacing:2px;color:#1d5942;align-items:center;gap:12px;font-size:23px;font-weight:800;display:flex}.landing-brand small{letter-spacing:2px;border-left:1px solid #c9d5c3;padding-left:12px;font-size:9px;font-weight:500}.landing-content{text-align:center;width:100%;max-width:1100px;margin:auto;padding:55px 0}.landing-content h1{letter-spacing:-1.3px;margin-top:14px;font-size:36px}.landing-content>p{margin-top:15px;font-size:13px}.portal-cards{text-align:left;grid-template-columns:repeat(3,1fr);gap:23px;margin-top:52px;display:grid}.portal-card{background:#fffc;border:1px solid #e0e7d8;border-radius:18px;flex-direction:column;padding:32px 26px;display:flex}.portal-card:hover{background:#fff;transform:translateY(-5px);box-shadow:0 15px 45px #3853270c}.portal-symbol{color:#68854c;background:#e6eed9;border-radius:16px;place-items:center;width:63px;height:63px;margin-bottom:29px;display:grid}.portal-card h2{font-size:21px;font-weight:600}.portal-card p{min-height:70px;margin-top:16px;font-size:11px}.portal-enter{color:#315d3f;border-top:1px solid #e4eadd;justify-content:space-between;align-items:center;margin-top:25px;padding-top:25px;font-size:12px;font-weight:500;display:flex}.landing-note{color:#91a17f;margin-top:35px;font-size:10px}.login-card{text-align:center;background:#fff;border:1px solid #e1e8d9;border-radius:17px;flex-direction:column;align-items:center;gap:18px;max-width:440px;margin:35px auto;padding:35px;display:flex;box-shadow:0 15px 40px #31452608}.login-card>svg{color:#6c935a}.login-card p{font-size:11px}.login-card small{color:#92a083;font-size:9px;line-height:1.8}.login-card h1{font-size:25px}.role-header{background:#fff;border-bottom:1px solid #e3e9dd;justify-content:space-between;align-items:center;height:85px;padding:0 max(5vw,20px);display:flex}.role-header>div{color:#829577;align-items:center;gap:22px;font-size:11px;display:flex}.role-nav{background:#fff;border-bottom:1px solid #e5eadd;gap:15px;padding:12px max(5vw,20px);display:flex;overflow:auto}.role-nav button{color:#819574;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:12px 17px;font-size:11px;display:flex}.role-nav .active{color:#2c6140;background:#edf3e4;font-weight:600}.role-nav .refresh{margin-left:auto;font-size:10px}.role-main{max-width:1380px;padding:35px 30px 0}.upcoming-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px;display:grid}.upcoming-card h2{margin-top:23px}.upcoming-card>strong{letter-spacing:-1px;margin-top:12px;font-size:24px;display:block}.upcoming-card>p{margin-top:8px;font-size:11px}.catalog-times{color:#8b9c7e;min-height:75px;margin-top:15px;font-size:10px;line-height:2}.catalog-times>div{align-items:center;gap:6px;display:flex}.calendar-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.calendar-controls label{color:#819574;flex-direction:column;gap:8px;min-width:170px;font-size:10px;display:flex}.calendar-controls .secondary{margin-left:auto}.drag-chips{flex-wrap:wrap;gap:9px;margin-bottom:19px;display:flex}.drag-chip{color:#6c865c;cursor:grab;background:#f5f8ef;border:1px solid #dfe8d5;border-radius:7px;align-items:center;gap:6px;padding:10px 13px;font-size:11px;display:flex}.drag-chip small{color:#99aa8c;margin-left:5px;font-size:8px}.calendar-scroll{border:1px solid #e6ebdf;border-radius:9px;overflow:auto}.week-calendar{min-width:920px}.week-head{background:#f9fbf5;border-bottom:1px solid #e5ebdd;grid-template-columns:54px repeat(7,minmax(0,1fr));height:70px;display:grid}.week-head>div{border-right:1px solid #e9eee2;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex}.week-head strong{font-size:14px;font-weight:500}.week-head .today{color:#51753d;background:#eaf2dd}.week-body{grid-template-columns:54px repeat(7,minmax(0,1fr));display:grid}.time-column>div{text-align:center;color:#9bac8b;border-bottom:1px solid #edf1e7;height:52px;padding-top:8px;font-size:8px}.day-column{border-right:1px solid #e9eee3;position:relative}.hour-cell{text-align:center;background:#fff;border:0;border-bottom:1px solid #edf1e7;border-radius:0;width:100%;height:52px;display:block}.hour-cell:disabled{opacity:1;cursor:default}.lesson{color:#577247;z-index:3;cursor:pointer;background:#eaf2df;border:1px solid #c8d9b4;border-left:3px solid #91ae74;border-radius:6px;padding:9px 7px;position:absolute;left:4px;right:4px;overflow:hidden;box-shadow:0 2px 3px #6c844410}.lesson[draggable=true]{cursor:grab}.lesson>span{white-space:nowrap;font-size:8px;display:block}.lesson b{white-space:nowrap;text-overflow:ellipsis;margin-top:9px;font-size:10px;display:block;overflow:hidden}.lesson small{color:#8a9b78;white-space:nowrap;text-overflow:ellipsis;margin-top:7px;font-size:7px;display:block;overflow:hidden}.lesson.lesson-open{z-index:6;border-color:#5f8a43;box-shadow:0 4px 14px #789c3b33}.lesson-actions{background:#eaf2df;gap:4px;display:flex;position:absolute;bottom:5px;right:4px}.lesson-actions button{color:#718f5b;background:#f9fcf4;border:1px solid #c3d5ae;border-radius:4px;place-items:center;width:25px;height:24px;display:grid}.calendar-empty{padding:18px 0 0;font-size:11px}.schedule-mobile{border-top:1px solid #edf1e6;flex-wrap:wrap;align-items:center;gap:9px;margin-top:20px;padding-top:20px;display:flex}.schedule-mobile>b{color:#7f9570;margin-right:auto;font-size:10px}.sync-note{margin:13px 0}.role-shell .info-strip{margin-bottom:20px}.role-main .course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (min-width:1500px){main{padding-top:45px}.stat{padding:29px}.overview-grid{gap:26px}.sidebar{width:262px}.main{width:calc(100% - 262px);margin-left:262px}}@media (max-width:1150px){.sidebar{width:215px;padding-left:12px;padding-right:12px}.main{width:calc(100% - 215px);margin-left:215px}main{padding:28px 24px 0}.topbar{padding:0 24px}.course-grid{grid-template-columns:repeat(2,1fr)}.stat{padding:19px 15px}.stat strong{font-size:24px}.overview-grid{grid-template-columns:1.6fr 1fr}.quick-grid{grid-template-columns:1fr}.section-head{flex-wrap:wrap;align-items:flex-start}.settlement{flex-wrap:wrap}.page-head h1{font-size:26px}}@media (max-width:780px){.sidebar{z-index:30;width:100%;height:auto;padding:13px 16px;display:block;position:sticky;top:0}.shell{display:block}.brand{gap:8px;padding:0;font-size:20px}.brand-icon{width:33px;height:33px}.brand span:not(.brand-icon){font-size:6px}.workspace,.nav-label,.sidebar-note,.profile{display:none}.sidebar nav{scrollbar-width:none;gap:5px;margin-top:13px;display:flex;overflow-x:auto}.nav{white-space:nowrap;flex-shrink:0;gap:7px;width:auto;margin:0;padding:10px 12px;font-size:10px}.nav>svg:last-child:not(:first-child){display:none}.nav>svg{width:16px}.main{width:100%;margin:0}.topbar{height:49px;padding:0 19px}.top-date{font-size:8px}.breadcrumb{gap:6px;font-size:9px}main{padding:23px 17px 0}.page-head{align-items:flex-start;gap:10px;margin-bottom:22px}.page-head h1{letter-spacing:-.7px;font-size:23px}.page-head p{font-size:10px}.page-head .primary{padding:11px 12px;font-size:9px}.eyebrow{font-size:8px}.stats{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:17px}.stat{padding:18px}.stat-icon{width:32px;height:32px;margin-bottom:13px}.stat-label{font-size:10px}.stat strong{font-size:24px}.stat small{margin-top:9px;font-size:8px}.overview-grid{grid-template-columns:1fr;gap:17px}.panel{padding:20px 16px}.finance-card{padding:25px}.finance-card h2 br{display:none}.finance-card h2{font-size:21px}.quick-grid{gap:10px;margin-top:17px}.quick{padding:19px}.course-grid{grid-template-columns:1fr}.section-head{gap:16px}.section-head h2{font-size:16px}.section-head .actions{width:100%}.section-head .actions select{flex:1}.actions .secondary,.section-head .actions .primary{font-size:9px}.search{width:100%;min-width:0}.segmented button{padding:10px;font-size:9px}.class-row{gap:9px}.class-row b{font-size:11px}.class-row small{font-size:8px}.progress-wrap{min-width:67px;font-size:9px}.progress{width:67px}.subject{width:38px;height:38px}.class-row>svg{width:15px;margin:0}.settlement{gap:22px}.settlement strong{font-size:20px}.settlement .primary{width:100%}.toolbar{gap:10px}.toolbar>span:last-child{margin-left:0}.dialog{padding:22px 18px}.overlay{padding:12px}.dialog label{font-size:10px}.two{gap:0 10px}.toast{justify-content:center;bottom:16px;left:16px;right:16px}footer span{text-align:right;max-width:160px;font-size:7px}.info-strip{flex-wrap:wrap}td,th{padding:14px 10px}.table-scroll{margin:0 -3px}.form-footer{align-items:flex-start}.top-date svg{display:none}.portal-landing{padding:22px 20px}.landing-content{padding:35px 0}.landing-content h1{font-size:27px}.landing-content>p{font-size:11px}.portal-cards{grid-template-columns:1fr;gap:14px;margin-top:27px}.portal-card{padding:23px}.portal-symbol{width:46px;height:46px;margin-bottom:17px}.portal-card h2{font-size:19px}.portal-card p{min-height:0;margin-top:10px}.portal-enter{margin-top:18px;padding-top:17px}.landing-note{font-size:9px;line-height:1.9}.login-card{padding:27px 20px}.role-header{height:70px;padding:0 17px}.role-header>div{gap:12px}.role-header>div>span{display:none}.landing-brand{gap:8px;font-size:20px}.landing-brand small{padding-left:9px;font-size:7px}.role-nav{gap:2px;padding:9px 12px}.role-nav button{padding:10px;font-size:10px}.role-nav .refresh{padding:10px;font-size:0}.role-main{padding:24px 16px 0}.role-main .course-grid{grid-template-columns:1fr}.role-main .page-head{flex-wrap:wrap}.upcoming-grid{grid-template-columns:1fr;gap:12px}.upcoming-card{grid-template-columns:1fr 1fr;gap:6px 15px;display:grid}.upcoming-card .line{grid-column:1/-1}.upcoming-card h2{align-self:center;margin-top:12px}.upcoming-card>strong{text-align:right;align-self:center;font-size:22px}.upcoming-card>.full{grid-column:1/-1;margin-top:7px}.calendar-controls{align-items:stretch}.calendar-controls label{flex:1;min-width:120px}.calendar-controls .secondary{margin:0}.calendar-panel .section-head .actions{gap:6px}.calendar-panel .section-head input{flex:none;width:130px}.schedule-mobile>b{width:100%;margin-bottom:3px}.schedule-mobile input,.schedule-mobile select{flex:1;min-width:120px}.schedule-mobile .primary{width:100%}.calendar-scroll{margin:0 -4px}.role-nav .refresh svg{width:16px}}@media (min-width:781px){.sidebar>nav{scrollbar-width:thin;scrollbar-color:#56816b transparent;min-height:0;overflow-y:auto}.sidebar-note,.profile{flex-shrink:0}.sidebar>nav .nav{padding-top:12px;padding-bottom:12px}}@media (min-width:781px) and (max-height:900px){.sidebar-note{display:none}.sidebar>nav{flex:1;margin-bottom:18px}.sidebar .workspace{margin:23px 0;padding:18px 10px}}textarea{font:inherit;resize:vertical;color:#3c5848;background:#fff;border:1px solid #dfe6df;border-radius:7px;min-height:90px;padding:11px 12px}.login-card.registration-card{max-width:570px}.login-form{text-align:left;width:100%}.login-form label{color:#73876c;flex-direction:column;gap:8px;margin:15px 0;font-size:11px;display:flex}.login-form input,.login-form select{width:100%;font-size:12px}.login-tabs{background:#f7f9f2;border:1px solid #e0e8d7;border-radius:8px;width:100%;padding:4px;display:flex}.login-tabs button{color:#8b9b7d;background:0 0;border:0;border-radius:5px;flex:1;padding:11px;font-size:11px}.login-tabs .active{color:#3b6845;background:#fff;font-weight:600;box-shadow:0 2px 8px #526d3610}.forgot{color:#8d9c7c;align-items:flex-start;gap:7px;font-size:9px;line-height:1.8;display:flex}.forgot svg{flex-shrink:0;margin-top:2px}.school-picker{grid-column:1/-1;width:100%}.login-card .info-strip,.login-card .alert{text-align:left;width:100%}.catalog-request{background:#f8faf4;border:1px solid #e4eada;border-radius:9px;padding:13px}.password-dialog{margin:auto}.password-dialog p{margin-top:10px}.account-note{margin-top:20px;line-height:1.9}.school-block{border-top:1px solid #e7ecdf;padding:23px 0}.school-title{color:#6d8f59;align-items:center;gap:13px;display:flex}.school-title small{color:#98a689;margin-top:7px;font-size:10px;display:block}.catalog-grades{flex-wrap:wrap;gap:12px;display:flex}.catalog-grade{background:#fbfcf8;border:1px solid #e6ecdf;border-radius:9px;min-width:130px;padding:13px}.catalog-grade>b{color:#779761;margin-bottom:11px;font-size:10px;display:block}.catalog-grade>div{flex-wrap:wrap;gap:6px;display:flex}.inactive-class{opacity:.5}.catalog-requests{margin-top:20px}.catalog-request-row{border-top:1px solid #e7ecdf;justify-content:space-between;align-items:center;gap:18px;padding:17px 0;display:flex}.catalog-request-row b{font-size:11px;font-weight:500}.catalog-request-row p{white-space:pre-wrap;margin-top:7px;font-size:11px}.grade-overview{grid-template-columns:5fr 4fr 3fr;gap:15px;margin-bottom:22px;display:grid}.grade-overview>div>small{letter-spacing:.5px;color:#94a285;margin-bottom:10px;font-size:9px;display:block}.grade-overview>div>div{flex-wrap:wrap;gap:5px;display:flex}.grade-overview button{color:#7d956b;text-align:left;background:#f8faf3;border:1px solid #e5ebdc;border-radius:7px;flex:1;min-width:65px;padding:12px 8px}.grade-overview button b{font-size:10px;font-weight:600;display:block}.grade-overview button span{color:#a0ad91;white-space:nowrap;margin-top:8px;font-size:8px;display:block}.grade-overview button.active{color:#446b32;background:#e6f0d7;border-color:#b7d09a}.role-header .text-btn{font-size:9px}.school-picker .two{margin-top:0}@media (max-width:1100px){.grade-overview{grid-template-columns:1fr}.grade-overview>div>div{flex-wrap:nowrap}.grade-overview button{min-width:0}.grade-overview button span{font-size:8px}.grade-overview>div>small{margin-bottom:7px}.grade-overview{gap:12px}}@media (max-width:780px){.login-card.registration-card{padding:25px 17px}.role-header>div{gap:12px}.role-header .text-btn{font-size:0}.role-header .text-btn svg{width:17px}.school-block>.section-head,.catalog-requests .section-head{flex-wrap:nowrap}.catalog-request-row{flex-wrap:wrap}.grade-overview button{padding:11px 7px}.grade-overview button b{font-size:10px}.grade-overview button span{font-size:8px}.login-form .two{gap:0 10px}.login-card>.alert{font-size:10px}.school-title h3{font-size:13px}.school-title small{font-size:9px}}.sidebar .profile{margin-top:auto}.profile small,.login-card .forgot{font-size:11px}.stat{padding-top:21px;padding-bottom:21px}.stat-icon{margin-bottom:15px}.page-head{margin-bottom:25px}.page-head h1{font-size:27px}.quick{min-height:72px}.landing-content{padding-top:35px;padding-bottom:35px}.portal-card p:empty{display:none}.portal-enter{margin-top:25px}.grade-overview button span{font-size:10px}.grade-overview>div>small,.catalog-grade>b{font-size:11px}.role-header .landing-brand small{font-size:10px}.login-card small{font-size:11px}.brand{min-height:44px}:root{--green:#047857;--ink:#142e36;--muted:#536773;--line:#dbe5e9;--bg:#f2f6f8}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px}h1,h2,h3{color:#132f38}h1{font-weight:750}h2{font-weight:650}p,.muted{color:#536773}button,a,input,select,textarea{transition:background-color .15s,border-color .15s,box-shadow .15s}:is(button:focus-visible,a:focus-visible){outline-offset:3px;outline:3px solid #38bdf8}.sidebar{color:#e4f2ee;background:linear-gradient(165deg,#0d3933,#082b29);border-right:1px solid #163e38}.sidebar .brand{color:#fff}.brand-icon{color:#075b42;background:#c8f5e2;box-shadow:0 4px 14px #0002}.workspace{color:#e7f6ee;border-color:#ffffff26;font-size:13px}.live-dot{background:#6ee7b7}.nav-label{color:#b3d1c6;font-size:10px}.nav{color:#d3e7df;border:1px solid #0000;font-size:13px}.nav:hover{color:#fff;background:#ffffff12}.nav.active{color:#064e3b;background:#d1fae5;border-color:#9bdfbf;font-weight:700;box-shadow:0 4px 14px #0001}.profile{border-color:#ffffff28}.profile b{color:#effaf6;font-size:12px}.profile small{color:#c7dfd5}.sidebar .profile .text-btn{color:#d3e7df}.avatar{color:#14532d;background:#bbf7d0}.topbar{background:#ffffffec;border-bottom:1px solid #dbe5e9;height:70px}.top-date{color:#526873;font-size:11px}.page-head{padding-bottom:3px}.page-head h1{letter-spacing:-.9px;font-size:29px}.panel,.stat{background:#fff;border:1px solid #dce6ea;border-radius:15px;box-shadow:0 3px 14px #183e4b05}.panel{padding:25px}.section-head{margin-bottom:22px}.primary{color:#fff;background:#047857;border:1px solid #047857;min-height:41px;padding:11px 17px;font-size:12px;font-weight:600;box-shadow:0 3px 7px #04785718}.primary:hover{background:#065f46;border-color:#065f46;box-shadow:0 4px 12px #04785725}.secondary{color:#284955;background:#fff;border:1px solid #bdcfd6;min-height:37px;padding:9px 12px;font-size:12px;font-weight:500}.secondary:hover{background:#f0f6f8;border-color:#829fa9}.text-btn{color:#006b51;font-size:12px;font-weight:600}.text-btn:hover{color:#064e3b}.icon-btn{color:#385a66;background:#edf3f6;border:1px solid #d4e1e7}.icon-btn:hover{background:#dfeaf0}.danger,.text-btn.danger{color:#b42318;background:#fff8f7;border-color:#edb9b5}.danger:hover{background:#fee9e7;border-color:#db8078}.primary.destructive{color:#fff;background:#b42318;border-color:#b42318}.primary.destructive:hover{background:#912018}.secondary.warning{color:#8a4c08;background:#fffbeb;border-color:#e8ce8e}input,select,textarea{color:#213f4a;background:#fff;border:1px solid #bccdd5;border-radius:8px;min-height:41px;font-size:13px}input::placeholder,textarea::placeholder{color:#6b7f89}input:focus,select:focus,textarea:focus{border-color:#078265;box-shadow:0 0 0 3px #10b98116}input[readonly]{color:#45616c;background:#f0f5f7}.dialog label,.login-form label,.calendar-controls label{color:#2d4c59;font-size:12px;font-weight:550}.search{background:#fff;border-color:#c6d6dd}.search svg{color:#57727e}.search input{font-size:12px}.toolbar{color:#4e6773;font-size:12px}.stat{padding:22px}.stat-label{color:#536b76;font-size:12px;font-weight:500}.stat strong{color:#173e46;letter-spacing:-1px;font-size:30px;font-weight:700}.stat-icon{border-radius:12px;width:43px;height:43px}.stat:has(.mint){border-top:3px solid #059669}.stat:has(.blue){border-top:3px solid #3b82f6}.stat:has(.amber){border-top:3px solid #d79a26}.stat:has(.rose){border-top:3px solid #b96469}.mint{color:#076846;background:#e0f5e9}.blue{color:#255ba7;background:#e8f0fe}.amber{color:#925d10;background:#fff1d8}.rose{color:#9b3558;background:#fbe9ed}.subject-0{color:#116b4e;background:#e0f4e9}.subject-1{color:#2d5baa;background:#e7effd}.subject-2{color:#97651b;background:#fff1db}.class-row{border-color:#e0e8ed;gap:14px}.class-row b{color:#1c3f49;font-size:13px}.class-row small{color:#586f7b;font-size:11px}.class-row:hover{background:#f5f9fa}.class-row>svg{color:#607c89}.progress-wrap{color:#486672;font-size:11px}.progress{background:#e1ebed;height:6px}.progress i{background:#0d9974}.finance-card{background:linear-gradient(135deg,#e4f4ef,#edf8f3);border-color:#bdded0}.finance-card h2{color:#144a3c}.finance-total{border-color:#c3ded2}.finance-total small{color:#355f50;font-size:12px}.finance-total strong{color:#065f46;font-size:31px;font-weight:750}.finance-card .line{font-size:12px}.finance-card .line span{color:#365b50}.finance-card .line b{color:#164b3a;font-weight:650}.finance-card>button{color:#07563c;background:#c3ead8;border:1px solid #a6d8c1;font-size:12px;font-weight:650}.quick{color:#087e60;background:#fff;border-color:#d5e2e7;box-shadow:0 3px 12px #173a4704}.quick:hover{background:#f3faf7;border-color:#a8d5c3;transform:translateY(-1px)}.quick b{color:#284955;font-size:12px;font-weight:600}.quick>svg:last-child{color:#5a7682}.course-card h2{color:#173b43}.course-meta{border-color:#e0e9ed;font-size:12px}.course-meta span{color:#526d78}.course-meta b{color:#075f47}.course-meta b small{color:#536d78;font-size:11px}.policy{color:#3b5b67;background:#edf5f7;border:1px solid #dce8ec;padding:10px;font-size:11px;font-weight:500}.course-card .line{color:#365765;font-size:12px}.card-actions{flex-wrap:wrap}.card-actions .danger{color:#a53d35;background:#fff;border-color:#e5c5c2;flex-basis:100%;min-height:34px;font-size:11px}.badge{color:#17603c;background:#e0f3e8;border:1px solid #c1e3cf;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:600}.badge.neutral{color:#526571;background:#edf2f5;border-color:#d6e0e6}.badge-warning{color:#87520b;background:#fff0d4;border-color:#e8cd92}.badge-blue{color:#255ca7;background:#e5efff;border-color:#c0d4f5}.count,.tag{color:#1b6550;background:#e5f2ee;border:1px solid #cbe2d9;font-size:11px}table{font-size:12px}th{color:#365866;background:#f0f5f8;border-bottom:1px solid #d6e3e9;padding:15px 13px;font-size:11px;font-weight:650}td{color:#3b5966;border-color:#e1e9ee;padding:17px 13px;font-size:12px}td b{color:#1e414d;font-weight:600}td small{color:#58727f;font-size:11px}tbody tr:hover{background:#f8fbfc}.debt{color:#b13b26;font-weight:600}.info-strip{color:#285e4b;background:#edf7f3;border:1px solid #cce4da;border-radius:9px;font-size:12px}.alert{color:#923727;background:#fff1ed;border-color:#efc4b8;font-size:12px}.segmented{gap:7px}.segmented button{color:#455f6c;background:#fff;border-color:#bfced5;min-height:39px;padding:10px 13px;font-size:12px;font-weight:550}.segmented .chosen.present{color:#135b35;background:#d3f2df;border-color:#79c99b;box-shadow:inset 0 0 0 1px #79c99b}.segmented .chosen.excused{color:#784c04;background:#fff0c7;border-color:#dbb85c;box-shadow:inset 0 0 0 1px #dbb85c}.segmented .chosen.absent{color:#952e28;background:#ffe1de;border-color:#df9891;box-shadow:inset 0 0 0 1px #df9891}.settlement{background:#eef7f4;border:1px solid #d0e4dc}.settlement small{color:#426457;font-size:12px}.settlement strong{color:#075e46;font-weight:700}.form-footer .muted{font-size:11px}.empty{color:#6b8590}.empty h3{color:#345663}.empty>svg{box-sizing:content-box;background:#f0f5f7;border-radius:15px;padding:11px}.empty .primary{font-size:12px}.subheading{color:#3d5f6b;font-size:14px}.dialog{background:#fff;border:1px solid #d9e4ea;border-radius:17px;box-shadow:0 24px 90px #0c293b30}.overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#102f4566}.range-box{background:#f3f8f7;border-color:#d8e7e2}.range-box strong{color:#006b50}.range-box input[type=range]{accent-color:#047857}.range-box .muted,.range-box .actions small{color:#4f6c61;font-size:11px}.toast{background:#075d46;border:1px solid #318e70;font-size:12px}.confirm-overlay{z-index:80}.confirm-dialog{max-width:470px}.confirm-dialog p{color:#4b6471;margin:6px 0 22px;font-size:13px}.confirm-dialog .actions{justify-content:flex-end}.portal-landing{background:radial-gradient(at 15% 0,#e1f2ef 0,#0000 47%),radial-gradient(at 95% 90%,#e7eefb 0,#0000 48%),#f2f6f9}.landing-brand{color:#114b3d}.landing-content h1{color:#143b43;letter-spacing:-1px}.portal-card{background:#fff;border-color:#208c6c #d6e4e9 #d6e4e9;border-top-style:solid;border-top-width:4px;border-radius:18px;box-shadow:0 8px 30px #1e45500a}.portal-card-1{border-top-color:#2b76b6}.portal-card-2{border-top-color:#7b68b1}.portal-card:hover{border-color:#95c6b4;box-shadow:0 14px 35px #153f4c12}.portal-symbol{color:#147253;background:#e0f3e9}.portal-card-1 .portal-symbol{color:#2d65a7;background:#e6f0fc}.portal-card-2 .portal-symbol{color:#705498;background:#eee9f8}.portal-card h2{color:#193c47;font-size:21px}.portal-enter{color:#17674e;border-color:#dfe8ed;font-size:13px}.login-card{background:#fff;border-color:#d2e2e6;max-width:450px;box-shadow:0 12px 45px #214a5810}.login-card>svg{color:#087557;box-sizing:content-box;background:#e2f5eb;border-radius:13px;padding:10px}.login-card h2{color:#193c45;font-size:21px}.login-form input,.login-form select{min-height:45px;font-size:14px}.login-form .primary{min-height:45px;font-size:13px}.login-card .forgot{color:#526b77;font-size:11px}.login-tabs{background:#eef4f7;border-color:#d4e1e7}.login-tabs button{color:#526c79;font-size:12px}.login-tabs .active{color:#075e46;background:#fff;box-shadow:0 2px 8px #25445612}.catalog-request{background:#f3f7fa;border-color:#d5e3e9}.role-header{background:#fff;border-color:#d9e5eb}.role-header>div{color:#486775}.role-nav{background:#fff;border-color:#dbe6eb}.role-nav button{color:#4e6977;font-size:12px;font-weight:550}.role-nav .active{color:#075e46;background:#e2f4eb;border:1px solid #c0e2d1}.role-nav .refresh,.role-header .text-btn{font-size:11px}.upcoming-card{border-top:3px solid #1b9673}.upcoming-card h2{color:#204550}.upcoming-card>strong{color:#12654e}.upcoming-card>p,.catalog-times{color:#4c6877;font-size:12px}.catalog-times small{font-size:11px}.calendar-controls label{color:#365966}.drag-chip{color:#285f4c;background:#eff7f4;border-color:#c2ded2;font-size:12px}.drag-chip small{color:#4f7363;font-size:10px}.drag-chip.selected{color:#075b3f;background:#d1f1e0;border-color:#76bb99}.calendar-scroll{border-color:#d3e0e7}.week-head{background:#f0f5f8;border-color:#ccdce5}.week-head>div{border-color:#dbe6eb}.week-head small{color:#4b6b7b;font-size:11px}.week-head strong{color:#284e60;font-size:15px}.week-head .today{color:#0a6144;background:#d9f1e6;box-shadow:inset 0 3px #158260}.time-column{background:#f4f7f9}.time-column>div{color:#4d6c7c;border-color:#dfe8ed;font-size:10px}.day-column{border-color:#dfe8ed}.hour-cell{border-color:#e3ebf0}.hour-cell.can-drop:hover{background:#e9f5f0}.hour-cell.drag-over{background:#c8eddb;box-shadow:inset 0 0 0 2px #4fa77b}.lesson{color:#164c37;background:#ddf2e7;border-color:#9bcfb7 #9bcfb7 #9bcfb7 #21885e;border-left-style:solid;border-left-width:4px;border-radius:7px;padding:9px 7px;box-shadow:0 2px 5px #1c5d3e0e}.lesson>span{color:#255c43;font-size:10px}.lesson b{color:#12462f;font-size:12px}.lesson small{color:#38654f;font-size:9px}.lesson.lesson-open{border-color:#0c7551;box-shadow:0 0 0 2px #0c75512b}.lesson.lesson-postponed{background:repeating-linear-gradient(135deg,#fff4dd,#fff4dd 12px,#fcede0 12px 24px);border-color:#dfbf83 #dfbf83 #dfbf83 #be871d}.lesson-postponed>span,.lesson-postponed b{color:#7d4c08}.lesson-postponed small{color:#856238}.lesson.lesson-makeup{background:#e4eeff;border-color:#aac4ec #aac4ec #aac4ec #3b71b7}.lesson-makeup>span,.lesson-makeup b{color:#214e90}.lesson-makeup small{color:#496c9c}.calendar-legend{color:#526e7c;flex-wrap:wrap;gap:18px;margin:0 0 16px;font-size:11px;display:flex}.calendar-legend>span{align-items:center;gap:7px;display:flex}.calendar-legend i{border-radius:3px;width:11px;height:11px;display:inline-block}.legend-planned{background:#21885e}.legend-postponed{background:#c58e29}.legend-makeup{background:#3b71b7}.selected-lesson{background:#f5f9fb;border:1px solid #d4e4eb;border-radius:11px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px;padding:18px;display:flex}.selected-lesson h3{margin-top:9px;font-size:15px}.selected-lesson p{color:#4b6a79;margin-top:7px;font-size:12px}.selected-lesson>.actions{justify-content:flex-end}.pending-makeup{border-top:1px solid #dce6ed;margin-top:26px;padding-top:21px}.pending-makeup .section-head{margin-bottom:6px}.pending-makeup h3{font-size:15px}.makeup-row{border-bottom:1px solid #e4ecf1;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.makeup-row b{color:#284b5b;font-size:13px}.makeup-row span{color:#607989;margin-top:7px;font-size:12px;display:block}.schedule-mobile{border-color:#d9e5eb}.schedule-mobile>b{color:#3f6374;font-size:12px}.calendar-empty{color:#526f7e;font-size:12px}.school-title{color:#158164}.school-title h3{color:#244e5d;font-size:15px}.school-title small{color:#587785;font-size:11px}.school-block,.catalog-request-row{border-color:#dae5eb}.catalog-grade{background:#f4f8fa;border-color:#d6e3e9}.catalog-grade>b{color:#3b6374;font-size:12px}.catalog-request-row p{color:#506d7c;font-size:12px}.grade-overview>div>small{color:#4f6e7e;font-size:12px;font-weight:600}.grade-overview button{color:#3d6376;background:#f6f9fb;border-color:#d7e3ea;padding:13px 10px}.grade-overview button b{font-size:12px}.grade-overview button span{color:#5a7787;font-size:10px}.grade-overview button.active{color:#075d44;background:#e0f3eb;border-color:#74b89e;box-shadow:0 0 0 1px #74b89e}.grade-overview button.active span{color:#336c58}@media (max-width:780px){body{font-size:13px}.sidebar{box-shadow:0 3px 15px #092c291a}.nav{font-size:11px}.panel{border-radius:13px;padding:20px 16px}.page-head h1{font-size:25px}.primary{font-size:12px}.page-head .primary,.section-head .actions .primary,.secondary,.actions .secondary{font-size:11px}.stat{padding:18px 15px}.stat strong{font-size:26px}.stat-label{font-size:11px}.class-row b{font-size:12px}.class-row small,.top-date{font-size:10px}.course-card h2{font-size:20px}.segmented{gap:5px}.segmented button{min-height:40px;padding:10px;font-size:11px}.grade-overview button{padding:12px 8px}.grade-overview button b{font-size:11px}.grade-overview button span{font-size:9px}.dialog label{font-size:12px}.login-card.registration-card{padding:25px 18px}.role-header .text-btn{font-size:0}.role-nav button{padding:11px;font-size:11px}.role-nav .refresh{font-size:0}.upcoming-card>p{font-size:11px}.selected-lesson{flex-direction:column;align-items:stretch;gap:15px;padding:16px}.selected-lesson>.actions{justify-content:flex-start}.calendar-legend{gap:14px;font-size:10px}.makeup-row{align-items:flex-start}.makeup-row span{font-size:11px;line-height:1.7}.confirm-dialog .actions{flex-wrap:nowrap}.topbar>.text-btn{font-size:11px}.role-header .landing-brand small{font-size:9px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}td>.text-btn.danger{margin-left:12px}.badge{line-height:1.5}.course-card .card-actions{align-items:center}.role-nav button.active{min-height:41px}
