@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#233b35;--muted:#86908c;--green:#205b47;--line:#e9ede9;--bg:#f6f8f5;--mint:#e4f1e9;--peach:#fae9dc;--lavender:#eee8f7;--yellow:#f8efd3}*{box-sizing:border-box}body{margin:0;font:14px 'DM Sans',sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82b59c;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:Manrope,sans-serif}.brand{display:flex;align-items:center;font-size:23px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand-icon{display:inline-flex;position:relative;align-items:center;justify-content:center;width:36px;height:38px;background:var(--green);color:#fff;border-radius:11px;margin-right:10px;font-size:25px}.brand-icon span{position:absolute;font-size:13px;right:4px;top:1px;color:#d5eaba}.brand-dot{color:#84a875}.primary{background:var(--green);color:white;padding:13px 19px;border-radius:8px;font-weight:600;transition:.2s}.primary:hover{background:#153e30;transform:translateY(-1px)}.muted{color:var(--muted)}.tiny-label,.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700}.tiny-label{color:#6c897b}.mint{background:var(--mint)}.peach{background:var(--peach)}.lavender{background:var(--lavender)}.yellow{background:var(--yellow)}.blue{background:#e2edf4}.mint-text{color:#477f61}.purple-text{color:#8b70aa}.orange-text{color:#c48b56}.login-page{background:#fff}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding:20px;gap:20px}.login-story{background:#eaf0e5;border-radius:16px;padding:36px 44px 24px;position:relative;overflow:hidden;display:flex;flex-direction:column}.story-copy{max-width:480px;margin:auto;padding-top:70px}.eyebrow{color:#65816b;font-size:9px}.story-copy h1{font-size:clamp(42px,4.4vw,70px);line-height:1.12;letter-spacing:-3px;margin:23px 0;color:#234d39}.story-copy>p{font-size:15px;color:#768475;line-height:1.9;max-width:365px}.story-footer{display:flex;justify-content:space-between;font-size:10px;color:#7f8e7b;padding-top:20px}.story-footer span:last-child{letter-spacing:1px}.school-art{height:290px;position:relative;margin:25px auto 0;max-width:420px}.art-orbit{position:absolute;border:1px solid #cfddc8;width:290px;height:260px;border-radius:50%;left:55px;top:12px;transform:rotate(-30deg)}.art-building{width:212px;height:155px;position:absolute;top:78px;left:95px;background:#f9faed;border:1px solid #d4ddc7;box-shadow:12px 15px 0 #dbe5d0;transform:rotate(-4deg);text-align:center}.school-roof{position:absolute;top:-56px;left:-15px;width:240px;height:61px;background:#48715b;clip-path:polygon(50% 0,100% 82%,100% 100%,0 100%,0 82%);color:#e5ecb4;padding-top:24px;font-size:25px}.school-label{font-size:9px;letter-spacing:3px;margin-top:19px;font-weight:bold;color:#617958}.windows{font-size:42px;color:#a2b49a;letter-spacing:9px;line-height:1.6}.school-door{background:#52745a;width:30px;height:39px;margin:auto;border-radius:15px 15px 0 0}.art-card{position:absolute;z-index:2;background:white;padding:13px 17px;border-radius:10px;box-shadow:0 8px 25px #3b5c3510;font-size:10px}.card-back{right:0;top:28px;transform:rotate(7deg)}.card-back>span{color:#ad8d45;margin-right:7px}.card-front{left:1px;bottom:11px;display:flex;align-items:center;gap:10px;transform:rotate(-5deg);font-weight:bold}.card-front small{display:block;font-size:9px;color:#89917e;font-weight:400;margin-top:5px}.check-icon{background:#e2edda;color:#4b7051;padding:7px;border-radius:50%}.art-spark{position:absolute;right:10px;bottom:50px;font-size:50px;color:#8ca17b}.login-form-side{display:flex;flex-direction:column;padding:25px 8%;position:relative}.access-label{font-size:9px;letter-spacing:1.7px;text-align:right;color:#7b887e}.access-label i,.term-label i,.online-dot,.dashboard-footer i{display:inline-block;width:6px;height:6px;background:#719b74;border-radius:50%;margin-right:7px}.login-form-wrap{width:100%;max-width:390px;margin:auto;padding:65px 0}.login-form-wrap h2{font-size:28px;letter-spacing:-1.1px;margin:14px 0 12px}.login-form-wrap>.muted{font-size:13px;margin-bottom:33px}form label{display:block;font-size:12px;font-weight:600;margin:22px 0 9px}.login-form-wrap input{width:100%;border:1px solid #dde3dd;border-radius:7px;padding:14px;background:#fcfdfb;font-size:12px;color:var(--ink)}input::placeholder{color:#a0a8a1}.password-field{position:relative}.password-field input{padding-right:55px}.password-field button{position:absolute;right:12px;top:15px;background:none;color:#869487;font-size:10px}.secure-line{font-size:10px;color:#8d978d;margin:16px 0 25px}.secure-line span{margin-right:5px}.login-submit{width:100%;display:flex;justify-content:space-between;padding:16px 19px;font-size:12px}.demo-box{display:flex;gap:10px;margin-top:28px;padding:16px 12px;background:#f5f7f1;border:1px solid #e8ede1;border-radius:8px;align-items:flex-start}.demo-icon{border:1px solid #91a281;border-radius:50%;padding:0 5px;font-size:10px;color:#7e9574}.demo-box strong{font-size:10px}.demo-box p{font-size:10px;color:#86907d;line-height:1.8;margin-top:5px}.demo-box button{background:none;font-size:9px;color:#597750;white-space:nowrap;padding:2px 0}.help-text{text-align:center;color:#9aa296;font-size:10px;margin-top:26px}.login-footer{font-size:9px;color:#9aa396;display:flex;justify-content:space-between}.error{background:#fff0ea;color:#a94d33;padding:12px;border-radius:6px;font-size:12px;margin-bottom:20px}.sidebar{width:244px;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:30px 22px 0;display:flex;flex-direction:column;z-index:20}.sidebar .brand{font-size:21px}.sidebar .brand-icon{width:32px;height:34px;font-size:23px}.school-switch{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:12px 9px;margin:31px 0 30px}.school-avatar{font-size:20px;background:#f2f4ed;border-radius:6px;padding:5px}.school-switch strong{font-size:10px}.school-switch small,.sidebar-profile small{display:block;font-size:9px;color:#959d95;margin-top:5px}.nav-label{font-size:8px;letter-spacing:1.5px;color:#a0a69f;margin:0 12px 12px}nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:12px;padding:12px;font-size:11px;color:#7b867e;border-radius:7px}nav a>span{font-size:17px;width:18px;text-align:center}nav a.active{background:#eaf2e9;color:#2c5b42;font-weight:700}nav a:hover{background:#f4f7f1}nav a small{margin-left:auto;background:#fff;border-radius:4px;padding:3px 5px;font-size:8px}.sidebar-bottom{margin-top:auto;padding-top:35px}.support-card{background:#f5f7f0;border:1px solid #e9ede1;border-radius:9px;padding:16px 13px}.support-card>span{display:block;font-size:22px;color:#839b6e;margin-bottom:9px}.support-card strong{font-size:11px}.support-card p{font-size:9px;color:#919b87;margin:7px 0 14px}.support-card button{background:white;border:1px solid #e1e7d8;width:100%;border-radius:5px;padding:8px;color:#66775a;font-size:9px}.logout{display:flex;gap:15px;padding:21px 10px;color:#859080;background:none;font-size:14px}.logout span{font-size:11px}.sidebar-profile{border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;margin:0 -22px;padding:18px 22px}.avatar{width:32px;height:32px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;background:#e8eddf;color:#6c8056;font-size:10px;font-weight:700}.sidebar-profile strong{font-size:10px}.online-dot{margin-left:auto;width:5px;height:5px}.main-shell{margin-left:244px}.topbar{height:77px;background:#fff;border-bottom:1px solid var(--line);padding:0 37px;display:flex;justify-content:space-between;align-items:center}.breadcrumb{font-size:10px;color:#919b92}.breadcrumb span{margin:0 13px;color:#c6cdc3}.breadcrumb strong{color:#516453;font-weight:500}.top-actions{display:flex;align-items:center;gap:22px}.term-label{font-size:9px;color:#889481}.term-label i{width:5px;height:5px}.notification-button{position:relative;background:transparent;font-size:22px;color:#7d8c7d;border-left:1px solid var(--line);padding-left:22px}.notification-button i{position:absolute;background:#d6a165;width:4px;height:4px;right:6px;top:4px;border-radius:50%}.dashboard-main{max-width:1560px;margin:auto;padding:34px 36px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.page-heading .tiny-label{font-size:8px;letter-spacing:1.5px}.page-heading h1{font-size:30px;letter-spacing:-1px;margin:7px 0 9px;font-weight:800}.page-heading h1>span{color:#8aab79}.page-heading p{font-size:11px;color:#899287}.wave{color:#c0a675;margin:0 4px}.heading-actions{display:flex;align-items:center;gap:11px}.date-chip{font-size:10px;border:1px solid #dfe6da;background:#fff;padding:11px;border-radius:6px;color:#7f897c}.heading-actions .primary{font-size:10px;padding:12px 14px}.demo-banner{display:flex;align-items:center;gap:12px;background:#eef2e6;border:1px solid #e4eadb;border-radius:8px;padding:13px 17px;margin-bottom:24px;color:#748369}.demo-banner>span:first-child{font-size:22px;color:#8e9f72}.demo-banner p{font-size:10px}.demo-banner strong{color:#526e47;font-weight:600;margin-right:6px}.live-tag{font-size:7px;letter-spacing:1px;margin-left:auto;white-space:nowrap;background:#e5ebd9;padding:5px 7px;border-radius:4px;color:#80916d}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 19px;min-height:172px}.stat-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#899285}.stat-icon{padding:7px 9px;border-radius:7px;font-size:17px;color:#5d795c}.stat-value{font-family:Manrope,sans-serif;font-size:29px;font-weight:800;letter-spacing:-1px;margin:12px 0 8px;white-space:nowrap}.trend{font:8px 'DM Sans',sans-serif;color:#70986c;background:#eef5e9;padding:4px 5px;border-radius:4px;letter-spacing:0;margin-left:8px;vertical-align:middle}.sub-stat{font:9px 'DM Sans',sans-serif;letter-spacing:0;color:#939c8c;margin-left:6px}.stat-footer{display:flex;justify-content:space-between;font-size:8px;color:#939b8c;gap:5px}.stat-footer>span{color:#a8afa2}.stat-footer .trend-text{color:#8e9a69}.spark-bars{display:flex;gap:5px;align-items:flex-end;height:25px;margin-top:13px}.spark-bars i{flex:1;border-radius:2px 2px 0 0;background:#dcebd9;height:55%}.spark-bars i:nth-child(3n){height:80%;background:#b5d2ab}.spark-bars i:nth-child(2n){height:65%;background:#c6ddbf}.spark-bars i:last-child{height:100%;background:#789e6c}.teacher-avatars{display:flex;align-items:center;margin-top:15px;padding-left:4px}.teacher-avatars>span{width:23px;height:23px;border:2px solid white;border-radius:50%;background:#e7e9df;color:#839079;font-size:6px;display:grid;place-items:center;margin-left:-4px}.teacher-avatars>span:nth-child(2){background:#eee1d8}.teacher-avatars>span:nth-child(3){background:#e1dbea}.teacher-avatars small{font-size:8px;margin-left:8px;color:#9ba18f}.percent{font-size:20px}.progress-track{height:6px;border-radius:9px;background:#eef1e9;margin-top:23px;overflow:hidden}.progress-track span{display:block;width:94.2%;height:100%;background:#a8c69a;border-radius:9px}.progress-track.gold span{width:78%;background:#d7c28a}.middle-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-bottom:23px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;scroll-margin-top:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:21px 22px 0;gap:10px}.panel h2{font-size:13px;font-weight:750;letter-spacing:-.2px}.panel-heading p{font-size:9px;color:#9aa191;margin-top:7px}select{background:#fff;color:#83907c;border:1px solid #e5e9df;border-radius:5px;font-size:9px;padding:7px 9px}.chart-legend{display:flex;justify-content:flex-end;padding:16px 22px 5px;gap:14px;font-size:8px;color:#969e8d}.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;background:#a9c59c;margin-right:5px}.chart-legend span:last-child i{background:#e7eddc}.chart{display:flex;height:178px;padding:10px 24px 23px 22px;gap:15px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:7px;color:#a0a791;width:26px;padding-bottom:5px}.chart-plot{display:flex;flex:1;justify-content:space-around;background:repeating-linear-gradient(to top,#e9ede4 0px,#e9ede4 1px,transparent 1px,transparent 25%)}.chart-column{height:100%;width:12%;position:relative}.bar-pair{height:100%;display:flex;align-items:flex-end;gap:5px}.bar{width:50%;border-radius:4px 4px 0 0;transition:height .4s}.bar.present{background:#adc6a0}.bar.absent{background:#e5ebda}.bar.present:hover{background:#6d9a61}.bar.present:hover:after{content:attr(data-value);position:absolute;top:-15px;font-size:9px;color:#527646}.chart-column>span{position:absolute;font-size:8px;color:#969f8b;bottom:-19px;left:50%;transform:translateX(-50%)}.chart-note{border-top:1px solid #f0f2eb;margin:14px 22px 0;padding:12px 0;font-size:8px;color:#959e8b}.chart-note span{color:#83a170;margin-right:5px}.count-chip{font-size:8px;background:#f3f5ef;padding:5px 8px;border-radius:4px;color:#9ba38e}.schedule-item{display:flex;margin:0 22px;padding:20px 0 17px;border-bottom:1px solid #eff1e9;gap:16px;align-items:center}.schedule-item:last-child{border-bottom:0}.schedule-time{font-size:13px;font-weight:600;color:#6a7b5e;min-width:50px}.schedule-time small{display:block;font-size:7px;font-weight:400;margin-top:5px;color:#abb19f}.schedule-detail{border-left:2px solid #cbddc0;padding-left:12px}.schedule-item:nth-child(3) .schedule-detail{border-color:#d5c5e5}.schedule-item:nth-child(4) .schedule-detail{border-color:#efd4b7}.subject-label{font-size:6px;font-weight:700;letter-spacing:1px}.schedule-detail h3{font-size:10px;margin:5px 0 6px;font-weight:650}.schedule-detail p{font-size:8px;color:#969e8e}.schedule-detail p span{margin-left:12px;color:#a6ad9d}.schedule-dot{width:7px;height:7px;border-radius:50%;margin-left:auto}.bottom-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:22px}.search-box{display:flex;align-items:center;border:1px solid #e7ebdf;border-radius:5px;padding:5px 9px;color:#9aa48e;gap:7px}.search-box input{border:0;outline:0;font-size:8px;width:112px;padding:4px 0;background:none;color:var(--ink)}.table-scroll{overflow:auto;margin-top:20px}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}th{font-size:7px;letter-spacing:.7px;color:#a2aa97;font-weight:500;background:#fafbf7;padding:11px 16px}th:first-child{padding-left:22px}td{border-bottom:1px solid #f0f2eb;padding:13px 16px;font-size:8px;color:#959f89}td:first-child{display:flex;align-items:center;gap:9px;padding-left:22px}td strong{font-weight:500;font-size:9px;color:#5d7053}.student-avatar{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:8px;color:#768767}.status{display:inline-flex;align-items:center;gap:4px;background:#eef5e9;color:#7f9a6b;padding:4px 7px;border-radius:4px;font-size:7px}.status i{height:4px;width:4px;border-radius:50%;background:currentColor}.status.absent{background:#fcf0e7;color:#c79d79}.table-footer{display:flex;justify-content:space-between;padding:15px 22px;font-size:8px;color:#a2aa95}.notice{margin:0 22px;padding:22px 0;border-bottom:1px solid #edf0e6}.notice-type{font-size:6px;letter-spacing:.8px;font-weight:600}.notice-date{float:right;color:#a7ae9d;font-size:7px}.notice h3{font-size:11px;line-height:1.6;margin:10px 0 7px;font-weight:650}.notice p{font-size:9px;line-height:1.9;color:#9ba38f}.notice-icon{color:#9daa8a;font-size:20px}.notice-bottom{padding:18px 22px;color:#a0a990;font-size:8px;display:flex;justify-content:space-between}.notice-bottom span{color:#b6be9b}.dashboard-footer{display:flex;justify-content:space-between;padding:25px 0 22px;font-size:8px;color:#a6ae9a}.dashboard-footer i{width:4px;height:4px}.menu-toggle{display:none;background:none;color:var(--green);font-size:20px}dialog{border:1px solid var(--line);border-radius:14px;padding:32px;max-width:460px;color:var(--ink);box-shadow:0 20px 90px #203e3922}dialog::backdrop{background:#19342b66}dialog h2{font-size:23px;margin:14px 0}dialog p{font-size:13px;line-height:1.8;color:#7e8b7b;margin:14px 0}#close-help{float:right;background:none;font-size:24px;color:#7d8d78}#no-results{padding:25px;color:#88957b;font-size:12px}[hidden]{display:none!important}
@media(min-width:1550px){.dashboard-main{padding-top:40px}.stat-card{min-height:185px}.chart{height:210px}.schedule-item{padding:24px 0}td{padding-top:16px;padding-bottom:16px}}
@media(max-width:1200px){.sidebar{width:210px;padding-left:16px;padding-right:16px}.sidebar .brand{font-size:18px}.sidebar-profile{margin:0 -16px;padding-left:16px;padding-right:16px}.main-shell{margin-left:210px}.dashboard-main{padding:27px 24px 0}.topbar{padding:0 24px}.stat-card{padding:15px 13px}.stat-value{font-size:24px}.sub-stat{font-size:7px}.heading-actions{flex-direction:column;align-items:flex-end}.page-heading h1{font-size:27px}.stats-grid{gap:12px}.middle-grid,.bottom-grid{gap:16px}.panel-heading{padding-left:17px;padding-right:17px}.schedule-item{margin:0 17px;gap:10px}.notice{margin:0 17px}.bottom-grid{grid-template-columns:1.6fr 1fr}.table-footer span{display:none}.search-box input{width:90px}.login-story{padding:30px}.login-form-side{padding:25px 5%}.story-copy h1{letter-spacing:-2px}}
@media(max-width:980px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.middle-grid,.bottom-grid{grid-template-columns:1fr}.schedule-item{padding:18px 0}.page-heading p{max-width:280px;line-height:1.7}.term-label{display:none}.demo-banner p{line-height:1.7}.live-tag{display:none}.login-story{padding:25px}.login-form-side{padding:25px 4%}.story-copy h1{font-size:43px}.login-form-wrap h2{font-size:23px}.school-art{transform:scale(.85);transform-origin:left center}.demo-box{flex-wrap:wrap}.demo-box button{margin-left:25px}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:230px;box-shadow:10px 0 30px #233b3510}.sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.menu-toggle{display:inline-block;margin-right:12px}.topbar{height:65px;padding:0 18px}.top-actions{gap:12px}.dashboard-main{padding:24px 17px 0}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.page-heading .tiny-label{font-size:7px}.page-heading p{font-size:10px;max-width:230px}.heading-actions .date-chip{display:none}.heading-actions .primary{font-size:8px;padding:10px;white-space:nowrap;margin-top:23px}.demo-banner{padding:10px 13px;gap:8px}.demo-banner p{font-size:9px}.demo-banner strong{display:block}.stat-value{font-size:25px}.stats-grid{gap:11px;margin-bottom:17px}.stat-card{padding:14px;min-height:158px}.stat-footer{font-size:7px}.trend{font-size:7px;margin-left:4px}.stat-top{font-size:9px}.middle-grid{margin-bottom:17px}.chart{height:180px}.dashboard-footer{font-size:7px;gap:15px;line-height:1.7}.dashboard-footer>span:last-child{white-space:nowrap}.login-layout{display:block;padding:12px}.login-story{padding:23px;border-radius:12px;min-height:260px}.story-copy{padding-top:40px;margin:0}.story-copy h1{font-size:38px;margin:14px 0;letter-spacing:-1.5px}.story-copy>p{font-size:12px;max-width:290px}.eyebrow{font-size:7px}.school-art,.story-footer{display:none}.login-form-side{padding:22px 15px}.access-label{font-size:8px}.login-form-wrap{padding:35px 0}.login-form-wrap h2{font-size:27px}.login-form-wrap>.muted{font-size:12px}.demo-box{flex-wrap:nowrap}.demo-box button{margin-left:0}.login-footer{font-size:8px}.brand{font-size:21px}}

.registration-wrap{max-width:760px;margin:40px auto;padding:32px;background:white;border:1px solid var(--line);border-radius:14px}.registration-wrap h1{font-size:28px;margin:28px 0 12px}.registration-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}.registration-form label{display:block;margin-bottom:8px}.registration-form input,.registration-form select,.registration-form textarea{width:100%;padding:12px;border:1px solid #dce4dc;border-radius:7px;background:white;font:inherit;color:var(--ink)}.full-width{grid-column:1/-1}.success{padding:14px;background:#e4f1e9;border-radius:7px;margin:16px 0}.registration-wrap .help-text{margin-top:24px}@media(max-width:700px){.registration-wrap{margin:12px;padding:22px}.registration-form{grid-template-columns:1fr}}

/* Student navigation includes additional links on the dashboard. */
.sidebar{overflow-y:auto}
