@charset "UTF-8";
:root{--purple:#3d15b0;--deep:#271264;--yellow:#fec341;--ink:#211b36;--muted:#777186;--line:#e9e5ef;--bg:#f6f5f9;--green:#25835f;--red:#c15161;--radius:18px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ac91fa;outline-offset:3px}button{color:inherit}button:disabled{cursor:default;opacity:.4}a{color:var(--purple)}.skip-link{position:fixed;top:-100px;z-index:100;background:white;padding:12px}.skip-link:focus{top:0}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--deep);color:#d2c9eb;position:fixed;width:236px;height:100dvh;padding:34px 18px 20px;display:flex;flex-direction:column;z-index:30}.brand{padding:0 14px;margin-bottom:42px}.brand img{width:182px;height:24px;object-fit:contain;object-position:left}.brand small{display:block;color:#ad9fd2;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-top:12px}.nav-label{font-size:12px;letter-spacing:.12em;color:#a496c9;text-transform:uppercase;margin:0 14px 12px}.nav{display:grid;gap:6px}.nav a{text-decoration:none;color:#d2c9eb;padding:13px 14px;border-radius:10px;display:flex;gap:12px;align-items:center;font-size:14px;font-weight:500}.nav a.active{background:var(--yellow);color:#302045;font-weight:650}.nav a:hover:not(.active){background:#ffffff0c}.icon{width:19px;height:19px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav .badge{margin-left:auto;min-width:22px;text-align:center;background:#ffffff15;border-radius:6px;font-size:12px}.nav a.active .badge{background:#00000012}.sidebar-bottom{margin-top:auto;padding:24px 14px 0}.demo-card{border:1px solid #ffffff24;border-radius:12px;padding:15px;font-size:13px;color:#bfb3dc}.demo-card strong{display:block;font-size:14px;color:white;margin-bottom:5px}.demo-card button{padding:0;border:0;background:transparent;color:var(--yellow);margin-top:10px;font-size:13px}.side-user{display:flex;gap:10px;align-items:center;margin-top:24px}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:#eee8fc;color:var(--purple);font-size:13px;font-weight:600}.side-user .avatar{background:#5a4389;color:white}.side-user strong{display:block;color:#f4efff;font-size:13px}.side-user small{font-size:12px;color:#ad9fd2}.main{grid-column:2;min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:16px;font-size:14px}.breadcrumb{color:var(--muted);display:flex;gap:12px;align-items:center}.breadcrumb b{color:var(--ink);font-weight:500}.top-right{display:flex;align-items:center;gap:18px}.pill{display:inline-flex;align-items:center;gap:7px;border-radius:7px;padding:5px 9px;font-size:12px;font-weight:550;background:#f0ecfa;color:#684aac}.pill.yellow{background:#fff6de;color:#8a6420}.pill.green{background:#edf8f2;color:var(--green)}.pill.red{background:#fceff1;color:var(--red)}.pill.gray{background:#f0eef3;color:#777186}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--yellow)}.content{padding:31px 38px 48px;max-width:1740px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.eyebrow{font-size:12px;font-weight:600;color:var(--purple);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;margin:0 0 8px;font-weight:650}h2{font-size:18px;letter-spacing:-.3px;margin:0;font-weight:650}h3{font-size:16px;margin:0 0 7px}p{margin:0}.subtext{font-size:14px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:white;padding:10px 15px;font-size:14px;font-weight:550;text-decoration:none;white-space:nowrap}.btn.primary{background:var(--purple);color:white;border-color:var(--purple)}.btn:hover{filter:brightness(.98);border-color:#c8bfdd}.btn.ghost{border-color:transparent;background:transparent;color:var(--purple)}.btn.small{padding:7px 11px;font-size:13px}.filters{display:flex;align-items:flex-end;gap:12px;margin-bottom:24px;flex-wrap:wrap}.filter label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.filter select{background:white;border:1px solid var(--line);border-radius:9px;padding:10px 36px 10px 12px;min-width:170px;color:var(--ink);font-size:14px;max-width:100%}.filter-meta{margin-left:auto;align-self:center;font-size:12px;color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:24px}.kpi{border:1px solid var(--line);background:white;border-radius:14px;padding:18px 17px;text-align:left;position:relative;transition:transform .15s,border .15s}.kpi:hover{transform:translateY(-2px);border-color:#ab96df}.kpi.featured{background:var(--purple);border-color:var(--purple);color:white}.kpi-label{font-size:13px;color:var(--muted);min-height:38px;display:block;line-height:1.4}.kpi.featured .kpi-label{color:#d8caf8}.kpi-value{display:block;font-size:29px;letter-spacing:-1px;line-height:1.4;font-weight:620;margin:6px 0}.kpi-unit{font-size:14px;font-weight:400;letter-spacing:0}.delta{font-size:12px;color:var(--green)}.delta.down{color:var(--red)}.kpi.featured .delta{color:#e8d694}.kpi-help{font-size:12px;color:#aaa3b5;display:block;margin-top:4px}.kpi.featured .kpi-help{color:#b3a2dd}.grid-main{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(285px,1fr);gap:22px;margin-bottom:22px}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:22px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px;min-width:0}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:20px}.panel-head .subtext{margin-top:5px;font-size:12px}.segments{display:inline-flex;padding:3px;border-radius:8px;background:#f4f1f8;gap:3px;flex-wrap:wrap}.segments button{border:0;background:transparent;padding:6px 10px;border-radius:6px;font-size:12px;color:var(--muted)}.segments button.active{color:var(--purple);background:white;box-shadow:0 1px 4px #2211380d}.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--purple);margin-right:6px}.legend i.light{background:#c2adf4}.chart-wrap{position:relative;margin-top:8px}.line-chart{width:100%;height:auto;overflow:visible;display:block}.chart-grid{stroke:#eeeaf4;stroke-dasharray:4 5;stroke-width:1}.chart-label{fill:#9991a6;font-size:11px}.chart-area{fill:url(#chartfill)}.chart-line{fill:none;stroke:var(--purple);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:white;stroke:var(--purple);stroke-width:2}.chart-foot{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:12px;color:var(--muted)}.insight{display:flex;align-items:center;gap:15px;background:#eee9fb;padding:17px 21px;border:1px solid #e3d8fb;border-radius:12px;margin-bottom:24px}.insight-icon{display:flex;align-items:center;justify-content:center;width:37px;height:37px;background:white;border-radius:11px;color:var(--purple);flex:none}.insight p{font-size:14px}.insight small{display:block;color:#827397;font-size:12px;margin-top:3px}.insight .btn{margin-left:auto;flex:none}.dist-total{display:flex;justify-content:space-between;align-items:baseline;margin:5px 0 16px}.dist-total strong{font-size:32px;line-height:1;letter-spacing:-1px}.dist-stack{height:23px;border-radius:6px;overflow:hidden;display:flex;gap:3px;margin-bottom:23px}.dist-stack span{min-width:2px}.dist-row{display:grid;grid-template-columns:9px 1fr 42px 44px;gap:10px;align-items:center;margin:13px 0;font-size:13px}.dist-row i{width:8px;height:8px;border-radius:2px}.dist-row strong{text-align:right;font-weight:600}.dist-row small{color:var(--muted);text-align:right;font-size:12px}.text-link{border:0;padding:0;background:none;text-align:left;color:var(--purple);font-size:13px;font-weight:550;text-decoration:none}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-weight:500;color:var(--muted);font-size:12px;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 10px;border-bottom:1px solid #f1eef5}tr:last-child td{border-bottom:0}.compact td{padding:11px 8px}.heat-table{text-align:center;min-width:520px;border-collapse:separate;border-spacing:5px}.heat-table th{border:0;padding:7px 6px}.heat-table th:first-child{text-align:left}.heat-table td{padding:0;border:0}.heat-table td:first-child{text-align:left;white-space:nowrap;font-size:13px}.heat-cell{display:block;width:100%;border:0;border-radius:6px;padding:13px 5px;font-size:13px;font-weight:550}.risk-item{padding:14px 0;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.risk-item:last-of-type{border:0}.risk-item .risk-text{flex:1;min-width:0}.risk-item strong{display:block;font-size:14px;font-weight:550}.risk-item small{font-size:12px;color:var(--muted)}.risk-num{font-size:24px;letter-spacing:-.8px;font-weight:600}.footer{font-size:12px;color:#9c95a7;display:flex;justify-content:space-between;margin-top:28px;gap:14px}.mobile-toggle{display:none}.empty{text-align:center;padding:70px 20px;color:var(--muted)}.empty h2{color:var(--ink);margin-bottom:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:var(--deep);color:white;border-radius:10px;padding:13px 22px;max-width:90vw;z-index:100;pointer-events:none;transition:.2s;font-size:14px}#toast.show{transform:translate(-50%,0);opacity:1}dialog{border:0;border-radius:20px;padding:0;color:var(--ink);max-height:90dvh;max-width:95vw;width:640px;box-shadow:0 30px 130px #1a103b55}dialog::backdrop{background:#17112a66;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:28px;border-bottom:1px solid var(--line)}.dialog-body{padding:28px}.dialog-body p{margin-bottom:15px}.dialog-close{border:0;background:#f2eef8;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.note{font-size:13px;color:var(--muted);line-height:1.6}.text-purple{color:var(--purple)}
.interactive-row{border:0;background:transparent;width:100%;padding:3px 0;text-align:left}.interactive-row:hover{background:#f7f4fc;border-radius:5px}.tiny{font-size:12px;margin-top:17px}.full{width:100%;margin-top:17px}.four{grid-template-columns:repeat(4,minmax(0,1fr))}.spaced{margin-top:22px}.space-top{margin-top:14px}.cohort-controls{display:flex;align-items:center;gap:18px;margin-bottom:20px;flex-wrap:wrap}.cohort-controls .note{font-size:12px;flex:1;min-width:200px}.heat-legend{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-top:22px;flex-wrap:wrap}.heat-gradient{width:100px;height:10px;border-radius:3px;background:linear-gradient(90deg,#f0eafb,#6435c1)}.heat-legend .note{margin-left:auto;font-size:12px}.future-cell{color:#c3bccf;background:#faf9fc;border-radius:6px}.big-inline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0}.big-inline>strong{font-size:42px;letter-spacing:-1.5px;font-weight:600}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:10px;overflow-x:auto}.tabs button{font-size:13px;border:0;border-bottom:2px solid transparent;background:transparent;padding:0 0 13px;white-space:nowrap;color:var(--muted)}.tabs button.active{border-color:var(--purple);color:var(--purple);font-weight:600}.program-name{display:flex;align-items:center;gap:13px}.program-name strong{font-size:14px;font-weight:600}.program-mark{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:650;background:#fff0c9;color:#8a6012}.program-mark.middle{background:#ece4ff;color:var(--purple)}.program-mark.high{background:#dff5ef;color:#277c66}.cell-sub{display:block;color:var(--muted);font-size:12px;margin-top:4px}.cross-table{min-width:580px}.cross-table th{white-space:normal}.cross-table td{padding:10px}.cross-cell{border:1px solid #eae2f8;background:#f6f1ff;border-radius:10px;width:100%;padding:20px 12px;color:var(--purple);text-align:left}.cross-cell:hover{background:#eee3ff}.cross-cell strong{display:block;font-size:24px;line-height:1.4;font-weight:600}.cross-cell small{font-size:12px;color:#8e79af}.purple-panel{background:var(--purple);color:white;border-color:var(--purple)}.purple-panel .eyebrow{display:block;color:#d9c6fd;font-size:12px;margin-bottom:10px}.hero-number{display:block;font-size:65px;line-height:1.2;letter-spacing:-3px;font-weight:600;margin:20px 0;color:var(--yellow)}.purple-panel>p{font-size:14px;color:#e6ddf7}.purple-panel .note{font-size:13px;color:#c3b1e8}.rule{height:1px;background:#ffffff25;margin:23px 0}.yellow-btn{background:var(--yellow);color:var(--deep);border-color:var(--yellow)}.table-tools{display:flex;align-items:center;gap:12px;margin:20px 0}.search{display:flex;gap:10px;align-items:center;background:#faf9fc;border:1px solid var(--line);border-radius:8px;padding:9px 12px;flex:1;color:var(--muted);min-width:180px}.search input{background:none;border:0;outline:none;min-width:0;width:100%;font-size:14px;color:var(--ink)}.table-tools select{border:1px solid var(--line);border-radius:8px;padding:10px;font-size:13px;background:white;max-width:100%}.student-table{min-width:900px}.student-name{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-align:left;min-width:205px}.student-name:hover strong{color:var(--purple)}.student-name strong{display:block;font-size:14px;font-weight:550}.student-name small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.student-table td{font-size:13px}.student-table .pill{white-space:nowrap}.student-table .btn{white-space:nowrap}.planned{color:var(--green);background:#eff8f3;border-color:#d7ede1}.pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:20px;color:var(--muted);font-size:12px}.pagination>div{display:flex;align-items:center;gap:13px}.empty-symbol{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;background:#f1ebfc;color:var(--purple);border-radius:14px;margin-bottom:18px}.profile-summary{display:flex;gap:8px;flex-wrap:wrap}.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#f7f5fa;border-radius:12px;padding:20px;margin:22px 0}.mini-stats small{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.mini-stats strong{font-size:28px;letter-spacing:-.7px;font-weight:600}.mini-stats .date-value{font-size:17px;letter-spacing:0}.history-bars{display:flex;align-items:flex-end;gap:10px;margin:20px 0 26px}.history-col{flex:1;text-align:center;min-width:0}.history-col>strong{font-size:12px;font-weight:500}.history-col>small{font-size:11px;color:var(--muted)}.bar-track{height:72px;display:flex;align-items:flex-end;justify-content:center;margin:5px 0}.bar-track i{width:65%;border-radius:4px 4px 0 0}.profile-detail{padding:5px 0;border-top:1px solid var(--line);margin-bottom:23px}.profile-detail p{display:flex;justify-content:space-between;gap:18px;font-size:13px;margin:14px 0}.profile-detail strong{font-weight:500;color:var(--muted)}.profile-detail span{text-align:right}.note-label{display:block;font-size:14px;margin-bottom:8px}.note-label span{color:var(--muted);font-size:12px}textarea{width:100%;border:1px solid var(--line);border-radius:8px;resize:vertical;padding:13px;font-size:14px;color:var(--ink);background:#fff;max-height:250px}.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.dialog-body .note{font-size:14px}.dialog-body .tiny{font-size:12px}.tour{padding-left:22px;margin:0}.tour li{padding-left:5px;margin-bottom:22px;font-size:14px}.tour li::marker{color:var(--purple);font-weight:600}.tour li p{color:var(--muted);margin:5px 0 0;font-size:14px}.method-intro{background:#eee8fc;border:1px solid #e5dcf7;border-radius:18px;padding:27px;display:flex;align-items:center;gap:30px;margin:24px 0}.method-intro h2{font-size:24px;margin:14px 0 10px}.method-intro p{font-size:14px;color:#7a6996;max-width:690px}.method-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px}.method-list{margin-top:15px}.method-list details{border-bottom:1px solid var(--line);padding:17px 0}.method-list details:last-child{border:0}.method-list summary{cursor:pointer;font-size:15px;font-weight:550;line-height:1.5}.method-list details p{font-size:14px;color:var(--muted);line-height:1.75;margin:13px 0 0}.role-item{display:flex;gap:12px;margin:24px 0}.role-item h3{font-size:14px}.role-item .note{font-size:13px}.check-list{list-style:none;margin:18px 0;padding:0}.check-list li{font-size:14px;margin:11px 0;padding-left:23px;position:relative}.check-list li::before{content:'✓';position:absolute;left:0;color:var(--green)}.metric-formula{font-size:26px;color:var(--purple);font-weight:600;letter-spacing:-.5px}.kpi-label{font-size:14px}.nav a{font-size:14px}.filter label{font-size:13px}.dist-row{font-size:14px}.chart-label{font-size:12px}.history-col>small{font-size:12px}.heat-cell{font-size:14px}.brand img{height:20px}.side-user small{line-height:1.5}.sidebar{overflow-y:auto}
@media(min-width:1700px){.content{padding:38px 48px}.kpi-value{font-size:34px}}@media(max-width:1250px){.shell{grid-template-columns:208px 1fr}.sidebar{width:208px;padding-left:13px;padding-right:13px}.brand img{width:156px}.content{padding:26px}.topbar{padding:0 26px}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-label{min-height:20px}.four{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(265px,1fr)}.grid-two{grid-template-columns:1fr}.panel{padding:20px}.insight small{max-width:390px}.method-intro{align-items:flex-start;flex-wrap:wrap}.method-grid{grid-template-columns:1fr}.table-tools{flex-wrap:wrap}}@media(max-width:950px){.grid-main{grid-template-columns:1fr}.top-right>.subtext{display:none}.filter-meta{width:100%;margin:0}.page-heading{align-items:flex-start}.page-heading>.btn{font-size:12px}.insight{align-items:flex-start;flex-wrap:wrap}.insight .btn{margin-left:52px}.h1{font-size:26px}.hero-number{font-size:50px}.purple-panel .full{width:auto}}@media(max-width:700px){.shell{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:236px}.sidebar.open{transform:none;box-shadow:10px 0 50px #0004}.mobile-toggle{display:flex;border:0;background:none;padding:0}.breadcrumb{display:none}.topbar{height:64px;padding:0 20px}.content{padding:24px 18px}.page-heading{flex-wrap:wrap}h1{font-size:27px}.kpi-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:15px}.kpi-value{font-size:28px}.filters{gap:10px}.filter{flex:1;min-width:140px}.filter select{min-width:0;width:100%}.grid-main,.grid-two{gap:16px}.panel{padding:18px;border-radius:14px}.panel-head{flex-wrap:wrap}.footer{display:block}.footer>*{margin-bottom:8px}.insight{padding:15px}.insight p{flex:1}.insight .btn{margin-left:0}.top-right{gap:10px}.mini-stats{padding:14px;gap:7px}.mini-stats strong{font-size:24px}.mini-stats .date-value{font-size:14px}.dialog-head,.dialog-body{padding:20px}.history-bars{gap:5px}.profile-detail p{flex-wrap:wrap;gap:3px}.profile-detail span{text-align:left}.method-intro{padding:22px;gap:18px}.pagination{flex-wrap:wrap}.search{width:100%}.table-tools>.btn{margin-left:auto}.heat-legend .note{margin-left:0}.sidebar-bottom{padding-top:28px}.sidebar .brand{margin-bottom:28px}}

.sidebar-close{display:none}@media(max-width:700px){.insight{display:grid;grid-template-columns:37px minmax(0,1fr)}.insight p{min-width:0}.insight .btn{grid-column:2;margin:0;justify-self:start}.chart-wrap{overflow-x:auto}.line-chart{min-width:560px}.chart-label{font-size:14px}.sidebar-close{display:flex;position:absolute;top:8px;right:8px;border:0;background:transparent;color:#d2c9eb;padding:5px}.sidebar .brand{padding-top:12px}}
