@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap");:root{--ink:#17342f;--muted:#667b76;--paper:#f5f7f1;--panel:#fff;--line:#dce6df;--mint:#cfe8d8;--teal:#087f73;--deep:#0d4e49;--coral:#e97961;--gold:#e6b85c;--shadow:0 18px 45px rgba(19,61,52,.09)}*{box-sizing:border-box}body,html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:DM Sans,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.site-nav{justify-content:space-between;max-width:1220px;margin:auto;padding:26px 28px}.logo,.site-nav{align-items:center;display:flex}.logo{gap:10px;font-size:19px;font-weight:700;letter-spacing:-.03em}.logo-mark{background:var(--teal);border-radius:10px 10px 10px 2px;color:#fff;font-size:13px;height:32px;justify-content:center;width:32px}.logo-mark,.nav-links{align-items:center;display:flex}.nav-links{gap:28px;color:var(--muted);font-size:14px}.nav-links a:hover{color:var(--ink)}.legal-trigger{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0}.legal-trigger:hover{color:var(--ink)}.legal-backdrop{align-items:center;background:rgba(13,48,43,.56);display:flex;inset:0;justify-content:center;padding:22px;position:fixed;z-index:20}.legal-modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 80px rgba(8,46,40,.28);max-height:min(720px,calc(100vh - 44px));max-width:650px;overflow-y:auto;padding:38px;position:relative;width:100%}.legal-modal h2{font-size:clamp(34px,5vw,50px);margin-top:12px}.legal-close{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:50%;color:var(--ink);display:flex;font-size:25px;height:36px;justify-content:center;line-height:1;position:absolute;right:20px;top:20px;width:36px}.legal-close:hover{background:var(--mint)}.legal-intro,.legal-section p{color:var(--muted);line-height:1.7}.legal-intro{font-size:16px;margin:22px 0 30px;max-width:540px}.legal-section{border-top:1px solid var(--line);padding-top:20px}.legal-section+.legal-section{margin-top:22px}.legal-section h3{font-size:16px}.legal-section p{font-size:14px;margin-bottom:0}.button{align-items:center;border:0;border-radius:7px;display:inline-flex;font-size:14px;font-weight:700;gap:8px;justify-content:center;padding:12px 17px;transition:transform .2s,box-shadow .2s}.button-spinner{animation:button-spin .75s linear infinite;border:2px solid;border-right:2px solid transparent;border-radius:50%;display:inline-block;height:14px;width:14px}@keyframes button-spin{to{transform:rotate(1turn)}}.button:hover{box-shadow:0 8px 18px rgba(13,78,73,.15);transform:translateY(-1px)}.button-primary{background:var(--teal);color:#fff}.button-dark{background:var(--ink);color:#fff}.button-quiet{background:transparent;color:var(--teal)}.button-outline{background:transparent;border:1px solid var(--line);color:var(--ink)}.hero{margin:auto;max-width:1220px;padding:76px 28px 100px;position:relative}.hero-grid{align-items:center;display:grid;grid-gap:72px;gap:72px;grid-template-columns:1.05fr .95fr}.eyebrow{color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}h1,h2,h3{letter-spacing:-.045em;margin:0}h1,h2{font-family:Fraunces,serif;font-weight:700}h1{font-size:clamp(46px,6vw,78px);line-height:.98;max-width:650px}h2{font-size:clamp(34px,4vw,52px);line-height:1.03}.hero-copy,h3{font-size:18px}.hero-copy{color:var(--muted);line-height:1.65;margin:27px 0 32px;max-width:520px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-visual{background:#d5eadb;border-radius:18px;min-height:430px;overflow:hidden;padding:22px;position:relative}.hero-visual:before{background:#f4d5af;border-radius:50%;content:"";height:260px;position:absolute;right:-70px;top:-70px;width:260px}.hero-card{background:hsla(0,0%,100%,.92);border:1px solid hsla(0,0%,100%,.9);border-radius:10px;box-shadow:var(--shadow);margin:70px auto 0;max-width:370px;padding:20px;position:relative}.card-top{align-items:flex-start;display:flex;justify-content:space-between}.student-name{font-size:17px;font-weight:700}.student-meta{color:var(--muted);font-size:12px;margin-top:4px}.risk-badge{background:#fff0d8;border-radius:20px;color:#8b6313;font-size:11px;font-weight:700;padding:7px 10px}.score-row{align-items:flex-end;display:flex;gap:12px;margin:28px 0 22px}.score{color:var(--deep);font-family:Fraunces,serif;font-size:48px;line-height:1}.score-label{color:var(--muted);font-size:12px;padding-bottom:4px}.mini-bars{align-items:flex-end;display:flex;gap:8px;height:72px}.mini-bars i{background:var(--teal);border-radius:4px 4px 1px 1px;display:block;flex:1 1;opacity:.85}.factor{border-top:1px solid var(--line);display:flex;font-size:12px;justify-content:space-between;padding:13px 0}.factor span:last-child{color:var(--coral);font-weight:700}.section{margin:auto;max-width:1220px;padding:84px 28px}.section-head{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:34px}.section-sub{color:var(--muted);line-height:1.6;max-width:470px}.feature-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(3,1fr)}.feature{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:26px}.feature-num{color:var(--coral);font-size:13px;font-weight:700;margin-bottom:42px}.feature p{color:var(--muted);font-size:14px;line-height:1.65}.band{background:var(--deep);color:#fff}.band .section-sub{color:#b9d4cc}.band .eyebrow{color:#91d9be}.quote{font-family:Fraunces,serif;font-size:clamp(28px,3.5vw,46px);line-height:1.1;max-width:800px}.footer{border-top:1px solid var(--line);color:var(--muted);font-size:13px;padding:28px}.footer-inner{display:flex;justify-content:space-between;margin:auto;max-width:1220px}.auth-page{align-items:center;display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-panel{min-height:100vh;padding:44px max(28px,8vw)}.auth-panel:first-child{background:var(--deep);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-panel:first-child .logo-mark{background:#8fcfb1;color:var(--deep)}.auth-kicker{color:#9fe0c4;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.auth-aside{font-family:Fraunces,serif;font-size:clamp(34px,4vw,58px);line-height:1.04;max-width:460px}.auth-note{color:#b9d4cc;font-size:14px;line-height:1.6;max-width:350px}.form-wrap{margin:auto;max-width:430px;width:100%}.form-wrap h1{font-size:42px;margin:12px 0}.form-intro{color:var(--muted);line-height:1.6;margin-bottom:30px}.form{display:grid;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:7px;gap:7px}.field label{font-size:13px;font-weight:700}.field input,.field select{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);outline:none;padding:13px 14px;width:100%}.field input:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,127,115,.12)}.form .button{margin-top:7px;width:100%}.form-foot{color:var(--muted);font-size:13px;margin-top:22px;text-align:center}.form-foot a{color:var(--teal);font-weight:700}.workspace{display:flex;min-height:100vh}.sidebar{background:var(--deep);color:#fff;display:flex;flex-direction:column;flex:0 0 240px;height:100vh;overflow:hidden;padding:25px 17px;position:-webkit-sticky;position:sticky;top:0}.sidebar .logo{padding:0 10px 42px}.sidebar .logo-mark{background:#8fcfb1;color:var(--deep)}.side-label{color:#80b4a6;font-size:10px;font-weight:700;letter-spacing:.14em;margin:18px 10px 8px;text-transform:uppercase}.side-link{align-items:center;border-radius:6px;color:#b9d4cc;display:flex;font-size:13px;gap:12px;padding:11px 10px}.side-link.active,.side-link:hover{background:#17665e;color:#fff}.side-icon{color:#9fe0c4;font-size:16px;text-align:center;width:18px}.sidebar-bottom{color:#b9d4cc;font-size:12px;line-height:1.5;margin-top:auto;padding:16px 10px 0}.main{flex:1 1;min-width:0;min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:18px 34px}.crumb{color:var(--muted);font-size:13px}.user-pill{font-size:13px;gap:10px}.avatar,.user-pill{align-items:center;display:flex}.avatar{background:#d5eadb;border-radius:50%;color:var(--deep);font-size:12px;font-weight:700;height:31px;justify-content:center;width:31px}.logout-button{background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:12px;padding:7px 10px}.logout-button:hover:not(:disabled){border-color:var(--coral);color:#ae5439}.content{margin:auto;max-width:1400px;padding:38px 34px 70px}.dashboard-content{padding:46px 42px 90px}.content-head{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:28px}.content-head h1{font-family:Fraunces,serif;font-size:38px}.content-head p{color:var(--muted);font-size:14px;margin:8px 0 0}.stat-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-family:Fraunces,serif;font-size:34px;margin:17px 0 4px}.stat-foot{color:var(--teal);font-size:11px;font-weight:700}.grid-2{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1.3fr .7fr}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px}.dashboard-content .stat-grid{gap:20px;margin-bottom:34px}.dashboard-content .grid-2{gap:20px}.dashboard-content .panel,.dashboard-content .skeleton-card,.dashboard-content .skeleton-panel,.dashboard-content .stat{border:0;border-radius:0}.dashboard-content .stat{padding:24px 22px}.dashboard-content .panel{padding:28px}.workspace .content{padding:30px 28px 56px}.workspace .content-head{margin-bottom:22px}.workspace .feature-grid,.workspace .grid-2,.workspace .stat-grid{gap:12px}.workspace .feature,.workspace .panel,.workspace .skeleton-card,.workspace .skeleton-panel,.workspace .stat{border-radius:4px}.workspace .stat{padding:16px}.workspace .panel{padding:18px}.workspace .dashboard-content .panel,.workspace .dashboard-content .stat{padding:20px}.loading-state{animation:loading-enter .25s ease-out}.skeleton-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.skeleton-card,.skeleton-panel{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px}.skeleton-panel{padding:22px}.skeleton-line,.skeleton-row{background:linear-gradient(90deg,#edf2ed 25%,#f8faf7 50%,#edf2ed 75%);background-size:200% 100%;display:block;animation:skeleton-wave 1.4s ease-in-out infinite;border-radius:4px}.skeleton-label{height:11px;width:42%}.skeleton-value{height:32px;margin:17px 0 7px;width:56%}.skeleton-short{height:10px;width:68%}.skeleton-heading{height:18px;margin-bottom:24px;width:34%}.skeleton-row{height:45px;margin-top:10px;width:100%}@keyframes skeleton-wave{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes loading-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.panel-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:23px}.panel-head h2{font-family:DM Sans,sans-serif;font-size:16px;letter-spacing:-.02em}.panel-link{color:var(--teal);font-size:12px;font-weight:700}.risk-list{display:grid;grid-gap:14px;gap:14px}.risk-line{align-items:center;display:grid;grid-gap:11px;gap:11px;grid-template-columns:74px 1fr 28px}.risk-line label{color:var(--muted);font-size:12px}.risk-track{background:#edf1ed;border-radius:4px;height:8px;overflow:hidden}.risk-fill{border-radius:4px;height:100%}.low{background:#4eaf82}.watch{background:#e2b149}.elevated{background:#e8875c}.high{background:#cf5d5b}.risk-count{font-size:12px;font-weight:700;text-align:right}.table-wrap{overflow:auto}table{border-collapse:collapse;min-width:600px;width:100%}th{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;padding:0 10px 12px;text-align:left;text-transform:uppercase}td{border-top:1px solid var(--line);font-size:13px;padding:15px 10px}.td-muted{color:var(--muted);font-size:12px}.badge{border-radius:12px;display:inline-block;font-size:10px;font-weight:700;padding:5px 8px}.badge-elevated{background:#fff0e9;color:#ae5439}.badge-high{background:#fde9e7;color:#a54240}.badge-low{background:#e8f6ee;color:#347a5c}.badge-watch{background:#fff5df;color:#8b6313}.task{align-items:flex-start;border-top:1px solid var(--line);display:flex;gap:12px;padding:15px 0}.task:first-child{border-top:0;padding-top:0}.task-dot{background:var(--coral);border-radius:50%;height:8px;margin-top:5px;width:8px}.task p{font-size:13px;margin:0}.task small{color:var(--muted);display:block;font-size:11px;margin-top:5px}.notice{background:#fff8e6;border:1px solid #f1dc9b;border-radius:7px;color:#735b20;font-size:12px;line-height:1.5;margin-bottom:24px;padding:13px 15px}.notice[role=alert],.notice[role=status]{animation:toast-enter .24s ease-out;box-shadow:0 14px 34px rgba(19,61,52,.18);left:50%;margin:0;max-width:min(560px,calc(100vw - 34px));position:fixed;top:22px;transform:translateX(-50%);width:max-content;z-index:50}@keyframes toast-enter{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.verify-success{background:#edf8f1;border-color:#bcdcc8;color:var(--deep)}.verify-error{background:#fff0ee;border-color:#efc2ba;color:#9f4039}.admin-hero{align-items:center;background:var(--deep);border-radius:12px;color:#fff;display:flex;justify-content:space-between;margin-bottom:18px;overflow:hidden;padding:27px 30px;position:relative}.admin-hero:after{border:1px solid rgba(159,224,196,.22);border-radius:50%;content:"";height:180px;position:absolute;right:30px;top:-90px;width:180px}.admin-hero .eyebrow{color:#9fe0c4}.admin-hero h2{font-family:Fraunces,serif;font-size:clamp(27px,4vw,40px);margin-top:9px}.admin-hero p{color:#b9d4cc;font-size:13px;margin:9px 0 0;max-width:500px}.admin-hero-mark{background:#8fcfb1;border-radius:50%;color:var(--deep);font-family:Fraunces,serif;font-size:35px;height:62px;justify-content:center;width:62px;z-index:1}.admin-hero-actions,.admin-hero-mark{align-items:center;display:flex;position:relative}.admin-hero-actions{gap:12px;z-index:2}.admin-identity{color:#b9d4cc;font-size:12px}.admin-signout{border-color:hsla(0,0%,100%,.28);color:#fff;padding:9px 12px}.admin-auth-page .auth-panel:first-child{background:var(--deep)}.admin-notice{background:#edf8f1;border-color:#bcdcc8;color:var(--deep)}.admin-form-panel{border-top:0}.admin-code-input{color:var(--deep);font-family:Fraunces,serif;font-size:21px;font-weight:700;letter-spacing:.04em}.admin-table-panel{border-top:0}.workspace .form{gap:12px}.workspace .page-card{margin-top:14px}.workspace .panel-head{margin-bottom:16px}.empty-state,.page-card{margin-top:20px}.empty-state{padding:48px 28px;text-align:center}.empty-state h2{font-size:32px;margin-top:10px}.empty-state h3{margin-bottom:8px}.empty-state p{color:var(--muted);line-height:1.6;margin:10px auto 22px;max-width:460px}.empty-state.compact{padding:32px 15px}.mobile-menu{display:none}@media (max-width:850px){.auth-page,.hero-grid{grid-template-columns:1fr}.hero{padding-top:35px}.hero-visual{min-height:360px}.auth-panel{min-height:auto;padding:30px}.auth-panel:first-child{gap:55px}.feature-grid,.skeleton-grid,.stat-grid{grid-template-columns:repeat(2,1fr)}.sidebar{flex-basis:74px;padding:20px 10px}.sidebar .logo{padding:0 10px 35px}.side-label,.side-link span:not(.side-icon),.sidebar .logo span,.sidebar-bottom{display:none}.side-link{justify-content:center}.content,.topbar{padding-left:20px;padding-right:20px}.grid-2{grid-template-columns:1fr}}@media (max-width:560px){.nav-links{display:none}.site-nav{padding:18px 20px}.hero{padding:42px 20px 70px}.section{padding:62px 20px}.hero-actions .button{flex:1 1}.feature-grid,.skeleton-grid,.stat-grid{grid-template-columns:1fr}.content-head,.section-head{align-items:flex-start;flex-direction:column;gap:18px}.topbar{padding:14px 17px}.crumb{display:none}.content{padding:25px 17px 50px}.content-head h1{font-size:32px}.auth-page{display:block}.auth-panel:first-child{min-height:300px}.auth-aside{font-size:38px}.form-wrap{padding:45px 4px}.legal-backdrop{align-items:flex-end;padding:0}.legal-modal{border-radius:14px 14px 0 0;max-height:88vh;padding:32px 22px 28px}.admin-hero{align-items:flex-start;padding:23px}.admin-hero-mark{height:45px;min-width:45px;width:45px}.admin-hero-actions{align-items:flex-end;flex-direction:column;gap:7px}.admin-identity{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}