/* MRSM IMPACT ECOSYSTEM - responsive presentation-grade interactive application */
:root {
  --navy: #11233e; --deep: #0d1b31; --navy-2: #1e3658; --gold: #c69649; --gold-light: #f3deb4;
  --ink: #16253b; --muted: #6d7a8c; --soft: #f4f6fa; --surface: #fff; --border: #e8edf3;
  --green: #16866d; --teal: #17a085; --red: #cb565c; --blue: #386cbc; --purple: #8067b6;
  --shadow: 0 12px 40px rgba(21,39,69,.055); --radius: 18px; --sidebar-width: 264px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--soft);color:var(--ink);font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.035em}h1{font-size:clamp(32px,4vw,52px);line-height:1.08}h2{font-size:25px;line-height:1.19}h3{font-size:17px;line-height:1.35}p{line-height:1.65}input,textarea,select{outline:none}input:focus,textarea:focus,select:focus{border-color:#819fc7!important;box-shadow:0 0 0 3px rgba(67,112,174,.11)}.svg-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;stroke-width:1.9}.svg-icon.sm{width:16px;height:16px}.svg-icon.lg{width:26px;height:26px}.svg-icon.xl{width:33px;height:33px}.muted{color:var(--muted)}.tiny{font-size:11px}.small{font-size:12.5px}.strong{font-weight:750}.text-gold{color:var(--gold)}.text-green{color:var(--green)}.align-center{text-align:center}.no-margin{margin:0}.hidden{display:none!important}.nowrap{white-space:nowrap}.flex{display:flex}.between{justify-content:space-between}.items-center{align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mb-6{margin-bottom:6px}.mb-12{margin-bottom:12px}.mb-18{margin-bottom:18px}.mb-24{margin-bottom:24px}.mt-16{margin-top:16px}.w-full{width:100%}.grid{display:grid;gap:18px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:15px}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#a67935}.divider{height:1px;background:var(--border);margin:17px 0}.sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
/* Buttons / controls */
.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:41px;padding:10px 16px;border-radius:11px;font-weight:700;font-size:12.5px;transition:transform .17s,background .17s,box-shadow .17s;white-space:nowrap}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn.primary{background:var(--navy);color:#fff}.btn.primary:hover{background:#1a365c;box-shadow:0 8px 20px rgba(17,35,62,.18)}.btn.gold{background:#e4bb74;color:#1b2a3e}.btn.gold:hover{background:#f1d49f}.btn.outline{border-color:#d9e0e9;background:white;color:#233751}.btn.outline:hover{border-color:#96a9bd;background:#f8faff}.btn.soft{background:#edf3f8;color:#2d567e}.btn.danger{background:#fff0f0;color:#b63749;border-color:#fad8db}.btn.icon-btn{width:40px;height:40px;padding:0}.btn.sm{padding:7px 11px;min-height:32px;font-size:11.5px;border-radius:9px}.btn.block{width:100%}.inline-link{border:0;background:transparent;color:#2c5d92;font-size:12px;font-weight:750;padding:5px 0;display:inline-flex;align-items:center;gap:6px}.inline-link:hover{text-decoration:underline}.pill,.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:10.5px;font-weight:750;line-height:1;white-space:nowrap}.pill.gold,.status.gold{background:#fff2da;color:#9c6e22}.pill.green,.status.green{background:#e5f6ef;color:#14775c}.pill.blue,.status.blue{background:#e8effe;color:#3664ad}.pill.gray,.status.gray{background:#eef1f5;color:#66768a}.pill.red,.status.red{background:#ffebef;color:#a63d50}.pill.purple,.status.purple{background:#f1ecfd;color:#7258a9}.form-field{display:flex;flex-direction:column;gap:7px}.form-field label{font-size:11.5px;font-weight:750;color:#40516a}.form-field input,.form-field select,.form-field textarea{padding:11px 12px;border:1px solid #dce3ec;border-radius:11px;background:#fff;color:var(--ink);width:100%;min-height:42px}.form-field textarea{resize:vertical;min-height:90px}.form-field small{font-size:11px;color:var(--muted)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}.filter-input{height:39px;border:1px solid #dce5ee;border-radius:10px;padding:9px 12px;width:min(240px,100%);background:#fff}.filter-select{height:39px;border:1px solid #dce5ee;border-radius:10px;padding:8px 11px;background:#fff;color:#495971}.toggle{border:1px solid #e3e8ef;color:#607089;background:#fff;border-radius:9px;padding:6px 9px;font-size:11px;font-weight:650;min-height:31px}.toggle.active{background:#e1f5ee;color:#16866d;border-color:#b3e4d4}.toggle:focus-visible,.btn:focus-visible,.nav-item:focus-visible,.profile-card:focus-visible{outline:3px solid #76a5e5;outline-offset:2px}
/* Landing */
.public-wrap{min-height:100vh;background:#fbfcfd}.public-header{height:90px;display:flex;align-items:center;justify-content:space-between;max-width:1220px;margin:auto;padding:0 30px}.public-nav{display:flex;gap:27px;align-items:center}.public-nav a{font-weight:650;font-size:13px;color:#627185}.public-nav a:hover{color:#1b3655}.landing-hero{max-width:1220px;margin:25px auto 55px;min-height:550px;border-radius:30px;overflow:hidden;background:linear-gradient(117deg,#10213b 3%,#172e4d 58%,#264365 100%);position:relative;display:grid;grid-template-columns:1.05fr .95fr;color:#fff}.landing-hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.055);border-radius:50%;width:670px;height:670px;top:-300px;right:-230px;pointer-events:none}.hero-main{padding:75px 42px 65px 62px;position:relative;z-index:2}.hero-main h1{font-size:clamp(39px,4.2vw,61px);line-height:1.075;max-width:610px}.hero-main h1 span{color:#efcc8a}.hero-main p{max-width:535px;color:#c7d5e5;font-size:15px;margin-top:20px}.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-proof{display:flex;flex-wrap:wrap;gap:25px;margin-top:45px;color:#c2d0e1;font-size:12px}.hero-proof span{display:inline-flex;align-items:center;gap:8px}.hero-proof .svg-icon{color:#ebca84}.landing-preview{padding:40px 28px 50px 0;align-self:center;z-index:2;position:relative}.mock-panel{background:rgba(255,255,255,.96);color:#172844;border-radius:18px;box-shadow:0 28px 75px rgba(1,8,23,.28);padding:23px;max-width:450px;transform:rotate(-2deg);border:1px solid rgba(255,255,255,.62)}.mock-panel .brand-row{display:flex;justify-content:space-between;align-items:center}.mock-panel .brand-row strong{font-size:14px}.mock-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.mock-stat{background:#f3f6fa;padding:13px;border-radius:10px}.mock-stat strong{font-size:22px;display:block;margin-bottom:3px}.mock-stat span{font-size:10px;color:#7a8799}.mock-bars{display:flex;align-items:flex-end;gap:14px;height:118px;padding:0 4px 9px;border-bottom:1px solid #e8edf3}.mock-bars>div{flex:1;background:linear-gradient(180deg,#d7b577,#b6873b);border-radius:7px 7px 2px 2px}.mock-caption{font-size:10px;color:#71819a;margin-top:12px}.floating-note{position:absolute;bottom:25px;right:-5px;background:#fdfbf4;color:#1b304d;border-radius:14px;box-shadow:0 15px 45px #09162857;display:flex;align-items:center;gap:10px;padding:15px;max-width:200px;transform:rotate(4deg)}.floating-note strong{display:block;font-size:12px}.floating-note span{font-size:10px;color:#63758c}.landing-section{max-width:1220px;margin:0 auto;padding:44px 30px 68px}.landing-section h2{font-size:clamp(26px,3vw,37px);margin:9px 0 11px}.landing-section>p{color:var(--muted);max-width:680px}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:30px}.feature-card{border:1px solid #e8ebf1;border-radius:20px;background:white;padding:28px 26px;min-height:210px;box-shadow:var(--shadow)}.feature-symbol{height:42px;width:42px;border-radius:12px;background:#edf3fa;color:#274a73;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.feature-card h3{margin-bottom:10px}.feature-card p{font-size:12.5px;color:#6f7c8e}.public-bottom{max-width:1155px;margin:0 auto 70px;padding:35px;background:#f0f3f7;border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.public-bottom h2{font-size:25px;margin-bottom:7px}.public-bottom p{color:var(--muted);font-size:12.5px}.public-footer{max-width:1220px;margin:0 auto;padding:25px 30px 37px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;color:#7a8799;font-size:11px}.public-disclaimer{background:#fff8e9;border:1px solid #f0dfb9;border-radius:12px;padding:13px 16px;color:#8b642e;font-size:12px;line-height:1.55;max-width:1220px;margin:0 auto 25px}
/* Persona selection */
.login-stage{min-height:100vh;background:radial-gradient(circle at 0 0,#263e5c 0,#10213b 45%,#0c1b2e 100%);display:grid;place-items:center;padding:30px;position:relative}.login-stage:before{content:"";position:absolute;width:400px;height:400px;top:-130px;right:-50px;border:1px solid #ffffff15;border-radius:50%}.login-card{width:100%;max-width:990px;background:white;border-radius:28px;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.22);display:grid;grid-template-columns: .86fr 1.14fr;position:relative;z-index:2}.login-dark{background:#132744;color:#fff;padding:48px 40px 40px;display:flex;flex-direction:column;min-height:585px}.login-dark h1{font-size:38px;margin:46px 0 16px}.login-dark p{color:#bdccdc;font-size:14px}.login-design{height:160px;margin-top:auto;border:1px solid #ffffff22;border-radius:17px;padding:20px;background:linear-gradient(135deg,#233f61 0,#1b3454 100%);position:relative;overflow:hidden}.login-design .orb{width:180px;height:180px;position:absolute;border:1px solid #f0c8837a;border-radius:50%;right:-30px;bottom:-100px;box-shadow:0 0 0 30px #ffffff08,0 0 0 60px #ffffff05}.login-design .impact-arrow{position:absolute;right:30px;top:15px;font-size:75px;color:#e6c17a}.login-form{padding:44px 43px;min-width:0}.login-form h2{font-size:27px;margin:12px 0}.login-form>p{color:var(--muted);font-size:13px}.profile-list{display:flex;flex-direction:column;gap:10px;margin:22px 0}.profile-card{border:1px solid #e5eaf1;border-radius:13px;background:#fff;width:100%;padding:12px 14px;display:flex;align-items:center;gap:13px;text-align:left;transition:border-color .15s,background .15s}.profile-card:hover{border-color:#bdcbdc;background:#f8fafc}.persona-icon{width:41px;height:41px;display:flex;justify-content:center;align-items:center;background:#edf2f8;color:#2a4d76;border-radius:11px}.profile-card .persona-text{flex:1}.profile-card strong{display:block;font-size:12.5px;margin-bottom:4px}.profile-card small{font-size:10.5px;color:#8590a0}.profile-card .arrow{color:#9aa7b6}.login-bottom{font-size:11px;color:#8a97a7;border-top:1px solid #e9eef4;padding-top:18px;line-height:1.65}
/* App shell */
.shell{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:linear-gradient(176deg,#11223b,#10203a 69%,#132b4a);color:#fff;z-index:40;display:flex;flex-direction:column;padding:26px 14px 19px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3c516c transparent}.side-logo{padding:0 12px 21px;border-bottom:1px solid #ffffff17}.side-logo img{max-width:100%;height:54px}.side-caption{margin:22px 16px 11px;color:#7288a4;font-size:9.5px;letter-spacing:.17em;text-transform:uppercase;font-weight:800}.nav-menu{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:10px;background:transparent;color:#b5c3d5;text-align:left;padding:11px 14px;font-size:12px;font-weight:650;transition:background .16s,color .16s}.nav-item:hover{color:#fff;background:#ffffff10}.nav-item.active{background:#2b4363;color:#fff}.nav-item.active::before{content:"";display:block;width:3px;height:21px;background:#e4ba70;border-radius:8px;margin-left:-10px}.nav-item.active .svg-icon{color:#e3bd79}.nav-item .nav-spacer{margin-left:auto;font-size:9px;color:#d1d8e6}.sidebar-bottom{margin-top:auto;padding:20px 10px 0}.demo-chip{border:1px solid #ffffff24;border-radius:12px;background:#ffffff08;padding:12px;color:#cbdaea}.demo-chip strong{display:flex;gap:8px;align-items:center;color:#efcc8c;font-size:11px;margin-bottom:5px}.demo-chip p{font-size:10.5px;line-height:1.48}.side-switch{border:none;background:transparent;color:#b8c8d9;margin-top:14px;padding:6px 3px;font-size:11px;display:flex;gap:8px;align-items:center}.app-main{margin-left:var(--sidebar-width);min-width:0;flex:1}.topbar{height:78px;background:#fff;border-bottom:1px solid #e8edf3;display:flex;align-items:center;justify-content:space-between;padding:0 35px;gap:20px;position:sticky;top:0;z-index:25}.breadcrumb{color:#96a2b1;font-size:12px}.breadcrumb strong{color:#283d59}.topbar-right{display:flex;align-items:center;gap:13px}.head-pill{display:flex;align-items:center;gap:7px;border-radius:999px;border:1px solid #ecdec4;background:#fff9ee;color:#a4762f;padding:7px 12px;font-size:10px;font-weight:800;letter-spacing:.055em}.avatar{height:38px;width:38px;display:flex;align-items:center;justify-content:center;background:#e8eff6;border-radius:12px;color:#284b75;font-size:12px;font-weight:850}.who{display:flex;align-items:center;gap:10px}.who-info strong{display:block;font-size:12px}.who-info small{color:#8593a6;font-size:10px}.mobile-menu{display:none}.main-container{max-width:1500px;margin:0 auto;padding:32px 34px 66px}.page-head{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:25px}.page-head h1{font-size:clamp(27px,3vw,34px);font-weight:820;margin-top:6px}.page-head p{color:#798698;font-size:12.5px;margin-top:8px}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.demo-banner{display:flex;align-items:center;gap:11px;background:#fff9ec;color:#7c632f;border:1px solid #f1e2c3;border-radius:11px;padding:12px 15px;margin-bottom:24px;font-size:11.5px;line-height:1.5}.demo-banner .svg-icon{color:#b98530}.demo-banner strong{color:#7e581f}.demo-banner span{flex:1}.demo-banner button{background:transparent;border:0;color:#805c24;font-weight:750;font-size:10.5px;text-decoration:underline}.sidebar-scrim{display:none}
/* Dashboard */
.hero-card{background:linear-gradient(112deg,#12243e,#213f65);color:#fff;border-radius:19px;padding:28px 31px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:171px}.hero-card:before{content:"";position:absolute;width:410px;height:410px;border:1px solid #ffffff16;border-radius:50%;right:-140px;top:-285px}.hero-card:after{content:"";position:absolute;width:240px;height:240px;border:1px solid #ffffff14;border-radius:50%;right:70px;bottom:-210px}.hero-card .eyebrow{color:#eed092}.hero-card h2{font-size:25px;margin:10px 0;line-height:1.25;max-width:630px;position:relative;z-index:1}.hero-card p{font-size:12px;color:#c3d2e1;max-width:620px;position:relative;z-index:1}.hero-card .btn{position:relative;z-index:2}.hero-mark{min-width:120px;font-size:90px;color:#d8ae68;opacity:.36;font-weight:900;line-height:1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:19px 0 20px}.stat-card{border:1px solid var(--border);background:#fff;padding:22px;border-radius:16px;box-shadow:var(--shadow);min-height:136px}.stat-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:19px}.stat-top span:first-child{color:#758298;font-weight:700;font-size:11px}.stat-icon{display:flex;align-items:center;justify-content:center;background:#edf3fa;color:#3f6b9c;width:34px;height:34px;border-radius:10px}.stat-value{display:flex;align-items:baseline;gap:6px}.stat-value strong{font-size:29px;letter-spacing:-.05em;line-height:1.15}.stat-value small{font-size:12px;color:#75859a}.stat-meta{font-size:10.5px;color:#8d9aa8;margin-top:8px}.stat-meta .up{color:#168467;font-weight:750}.panel{background:#fff;border:1px solid var(--border);border-radius:17px;box-shadow:var(--shadow);padding:23px;min-width:0}.panel-title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:19px}.panel-title h3{font-size:16px}.panel-title p{color:var(--muted);font-size:11px;margin-top:4px}.panel-accent{border-left:3px solid #e2b66d;padding-left:13px}.split{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(300px,.95fr);gap:18px}.split.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-row{display:grid;grid-template-columns:145px 1fr 47px;align-items:center;gap:13px;margin:19px 0;font-size:11.5px}.progress-label{color:#5d6d82;font-weight:620}.track{height:9px;background:#edf1f6;border-radius:20px;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,#c99a50,#e5bf78);border-radius:20px;transition:width .3s}.progress-num{text-align:right;color:#3c506b;font-weight:790}.milestone-list{display:flex;flex-direction:column;gap:18px}.milestone{display:flex;align-items:start;gap:12px}.milestone-dot{height:34px;width:34px;flex-shrink:0;border-radius:11px;background:#eff5f9;display:flex;align-items:center;justify-content:center;color:#537399}.milestone strong{font-size:12px}.milestone p{font-size:11px;color:#8a96a6;line-height:1.55;margin-top:4px}.activity-list{display:flex;flex-direction:column;gap:0}.activity{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #eff2f6}.activity:last-child{border:0}.activity-icon{width:34px;height:34px;border-radius:11px;background:#f0f4f9;color:#456a93;display:grid;place-items:center}.activity strong{display:block;font-size:11.5px;margin-bottom:3px}.activity small{color:#91a0af;font-size:10px}.ring{height:132px;width:132px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.ring-inner{width:98px;height:98px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-inner strong{font-size:28px;letter-spacing:-.05em}.ring-inner small{font-size:9.5px;color:#8b96a5}.callout-soft{background:#f4f8fc;border:1px solid #e4edf5;border-radius:13px;padding:17px;font-size:12px;line-height:1.65;color:#62748d}.action-list{display:flex;gap:8px;flex-wrap:wrap}.data-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.mini-note{font-size:11px;color:#78879a;line-height:1.65}
/* Cards and tables */
.table-scroll{width:100%;overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;min-width:650px}table.data-table thead th{color:#8a96a5;text-transform:uppercase;font-size:9px;letter-spacing:.085em;font-weight:820;border-bottom:1px solid #e9eef3;padding:12px 12px}table.data-table tbody td{border-bottom:1px solid #eff2f6;padding:14px 12px;vertical-align:middle;color:#3c4d64}table.data-table tr:last-child td{border:0}table.data-table tbody tr:hover{background:#fbfcfe}.table-name{font-weight:780;color:#263a55}.table-sub{font-size:10px;color:#9aa6b5;margin-top:5px}.student-initial{height:35px;width:35px;border-radius:10px;background:#e8eff7;display:grid;place-items:center;color:#2f537d;font-weight:850;font-size:10px}.table-person{display:flex;gap:11px;align-items:center}.progress-mini{height:6px;background:#edf1f5;border-radius:20px;overflow:hidden;width:85px}.progress-mini>span{display:block;height:100%;background:#d1a25a}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{border:1px solid var(--border);background:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;min-height:260px;box-shadow:var(--shadow);transition:transform .17s,box-shadow .17s}.project-card:hover{transform:translateY(-3px);box-shadow:0 15px 35px #14274312}.project-card-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.project-logo{height:44px;width:44px;background:linear-gradient(145deg,#eaf1f8,#dae7f4);color:#2c5680;display:grid;place-items:center;font-weight:900;border-radius:13px;font-size:14px}.project-card h3{font-size:15px;margin-top:13px}.project-card p{font-size:11.5px;color:#7a8798;line-height:1.6;margin-top:7px;flex:1}.project-meta{display:flex;gap:9px;align-items:center;justify-content:space-between;border-top:1px solid #edf1f5;padding-top:13px;margin-top:18px;font-size:11px;color:#7a879a}.project-metrics{display:flex;gap:13px;margin-top:13px;color:#64758a;font-size:10.5px}.project-metrics strong{color:#233c5a}.module-card{border:1px solid #e8edf3;border-radius:15px;background:#fff;padding:21px;display:flex;flex-direction:column;gap:11px}.module-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}.module-ico{height:43px;width:43px;border-radius:12px;background:#edf3fa;color:#3c618a;display:grid;place-items:center}.module-card h3{font-size:14px}.module-card p{font-size:11.5px;color:#77869a;line-height:1.65;min-height:42px}.module-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:auto;padding-top:7px}.empty{padding:35px 12px;text-align:center;color:#8792a3}.empty .svg-icon{color:#b9c6d5}.empty h3{margin:10px 0 5px;color:#3c5676}.empty p{font-size:12px}
/* Detailed views */
.student-welcome{display:flex;align-items:center;gap:21px}.student-avatar{height:65px;width:65px;border-radius:19px;background:#deebf8;color:#345982;display:grid;place-items:center;font-weight:900;font-size:22px}.competency-bars{display:grid;grid-template-columns:repeat(4,1fr);align-items:end;gap:13px;height:210px;padding:12px 12px 3px;border-bottom:1px solid #ebeff5}.competency-group{height:100%;display:flex;align-items:flex-end;gap:4px;justify-content:center;position:relative}.competency-bar{width:26px;max-height:100%;border-radius:7px 7px 2px 2px;align-self:flex-end;transition:height .2s}.competency-bar.pre{background:#d7e2ef}.competency-bar.post{background:#4a78a9}.competency-labels{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:13px;text-align:center;font-size:10px;color:#718199}.chart-legend{display:flex;justify-content:end;gap:16px;font-size:10.5px;color:#8795a6}.legend-square{height:8px;width:8px;border-radius:2px;display:inline-block;margin-right:5px}.detail-stack{display:flex;flex-direction:column;gap:15px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field-display{background:#f7f9fb;border:1px solid #edf0f4;border-radius:12px;padding:14px}.field-display span{font-size:10px;font-weight:750;color:#8a97a7;text-transform:uppercase;letter-spacing:.04em}.field-display p{color:#28405e;font-size:12px;font-weight:600;line-height:1.5;margin-top:7px}.timeline-small{display:flex;flex-direction:column;gap:15px}.timeline-item{padding-left:23px;position:relative;border-left:1px solid #dce5ef;margin-left:9px}.timeline-item:before{content:"";width:11px;height:11px;background:#ddb46e;border:3px solid #fff;box-shadow:0 0 0 1px #dce5ef;border-radius:50%;position:absolute;left:-8px;top:0}.timeline-item strong{font-size:12px}.timeline-item p{color:#7c8b9d;font-size:11px;margin-top:4px}.report-metric{background:#f8fafc;padding:16px;border-radius:13px}.report-metric span{font-size:10.5px;color:#8694a5}.report-metric strong{display:block;font-size:22px;margin-top:8px}.metric-line{display:flex;gap:10px;align-items:center}.metric-line .svg-icon{color:#b98e49}.report-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf2f6;font-size:12px}.report-line:last-child{border:0}.report-line strong{color:#3e526d}.stage-flow{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:18px 0}.stage-step{padding:9px 11px;border-radius:9px;background:#eff2f6;color:#8190a3;font-weight:700;font-size:10px}.stage-step.current{background:#f9edd8;color:#9a6e2d}.stage-step.done{background:#e5f4ef;color:#227b68}.stage-flow .svg-icon{color:#a7b1be}.notice-list{display:flex;flex-direction:column;gap:10px}.notice-item{border:1px solid #e6ecf2;border-radius:12px;padding:13px;display:flex;align-items:start;gap:11px;background:#fff}.notice-item .svg-icon{color:#b98844;margin-top:1px}.notice-item strong{font-size:11.5px}.notice-item p{font-size:10.5px;color:#8795a6;margin-top:6px}.assessment-block{background:#f7f9fc;padding:17px;border-radius:13px;display:flex;gap:15px;align-items:center}.assessment-block strong{font-size:15px}.assessment-block p{font-size:11px;color:#788a9d;margin-top:6px}.score-big{font-size:30px;font-weight:900;letter-spacing:-.04em}.kbd-note{font-size:10.5px;color:#90a0af}
/* Modals and alerts */
.modal-backdrop{position:fixed;inset:0;background:rgba(9,24,44,.57);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .16s ease-out}.modal{width:min(700px,100%);max-height:min(92vh,820px);background:#fff;border-radius:19px;overflow:hidden;box-shadow:0 28px 100px #030b1b6b;display:flex;flex-direction:column}.modal.wide{width:min(910px,100%)}.modal-head{padding:22px 26px;display:flex;align-items:start;justify-content:space-between;border-bottom:1px solid #e9edf3;gap:12px}.modal-head h2{font-size:20px;margin-top:5px}.modal-body{padding:22px 26px 28px;overflow:auto}.modal-footer{padding:16px 26px;border-top:1px solid #e9edf3;display:flex;justify-content:flex-end;gap:9px}.toast-zone{position:fixed;bottom:24px;right:23px;z-index:300;pointer-events:none;max-width:calc(100vw - 46px)}.toast{display:flex;gap:10px;align-items:center;padding:14px 18px;border-radius:12px;background:#132b46;color:#fff;box-shadow:0 15px 32px rgba(0,0,0,.17);font-size:12px;animation:slide-toast .23s ease-out}.toast .svg-icon{color:#efc783}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes slide-toast{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/* Responsive */

.photo-hero{background:radial-gradient(circle at top right,rgba(233,202,137,.16),transparent 40%),linear-gradient(117deg,#10213b 3%,#172e4d 58%,#264365 100%)}
.photo-preview{padding:34px 28px 42px 0;display:flex;align-items:center;justify-content:center}.photo-stage{position:relative;max-width:470px;width:100%;min-height:430px;border-radius:24px;overflow:hidden;box-shadow:0 28px 75px rgba(1,8,23,.32);border:1px solid rgba(255,255,255,.15);background:#0f1d33}.hero-photo{width:100%;height:100%;min-height:430px;display:block;object-fit:cover;object-position:center 42%}.photo-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,16,31,.08) 0%,rgba(7,16,31,.2) 28%,rgba(7,16,31,.76) 100%)}.photo-overlay{position:absolute;left:0;right:0;bottom:0;padding:22px 24px 24px;z-index:2}.photo-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:rgba(239,204,138,.14);border:1px solid rgba(239,204,138,.35);backdrop-filter:blur(6px);font-size:11px;font-weight:700;color:#f7e2b3;margin-bottom:12px}.photo-title{font-size:28px;line-height:1.08;font-weight:800;letter-spacing:-.02em;max-width:320px}.photo-sub{font-size:12px;line-height:1.55;color:#d8e4ef;max-width:330px;margin-top:8px}.metric-float{position:absolute;z-index:3;background:rgba(255,255,255,.98);border-radius:18px;box-shadow:0 18px 48px rgba(7,16,31,.22);padding:15px 17px;display:flex;flex-direction:column;gap:4px;min-width:118px;border:1px solid rgba(255,255,255,.7)}.metric-float strong{font-size:28px;line-height:1;color:#142a45}.metric-float span{font-size:11px;color:#6f7c8e}.metric-top{left:-18px;top:28px}.metric-mid{right:-14px;top:116px}.metric-bottom{left:10px;bottom:108px}.photo-preview .floating-note{right:-8px;bottom:-8px;transform:rotate(0deg)}
@media(max-width:1220px){.photo-stage{max-width:430px}.metric-top{left:-6px}.metric-mid{right:0}.metric-bottom{left:6px}}
@media(max-width:1000px){.photo-stage{max-width:390px;min-height:390px}.hero-photo{min-height:390px}.photo-title{font-size:24px}.metric-float strong{font-size:24px}}
@media(max-width:780px){.photo-preview{padding:15px 34px 45px}.photo-stage{max-width:100%;min-height:380px}.hero-photo{min-height:380px}.metric-top{left:10px;top:10px}.metric-mid{right:10px;top:74px}.metric-bottom{left:14px;bottom:94px}.photo-preview .floating-note{right:8px;bottom:8px}}
@media(max-width:550px){.photo-preview{padding:16px 18px 40px}.photo-stage{min-height:335px;border-radius:20px}.hero-photo{min-height:335px}.photo-overlay{padding:18px}.photo-title{font-size:21px;max-width:250px}.photo-sub{font-size:11px;max-width:250px}.photo-chip{font-size:10px}.metric-float{padding:12px 13px;min-width:92px;border-radius:14px}.metric-float strong{font-size:22px}.metric-float span{font-size:10px}.metric-top{left:8px;top:8px}.metric-mid{right:8px;top:56px}.metric-bottom{left:8px;bottom:74px}.photo-preview .floating-note{position:relative;right:auto;bottom:auto;margin-top:12px;max-width:none;transform:none}}
@media(max-width:1220px){.stat-grid{grid-template-columns:repeat(2,1fr)}.card-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 23px}.main-container{padding:28px 24px 60px}.landing-hero{margin-left:20px;margin-right:20px}.landing-preview{padding-right:20px}.mock-panel{transform:rotate(-1deg)}}
@media(max-width:1000px){:root{--sidebar-width:240px}.split,.split.equal{grid-template-columns:1fr}.hero-main{padding-left:38px}.landing-hero{grid-template-columns:1fr 1fr}.landing-hero h1{font-size:42px}.landing-features{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.sidebar{transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.sidebar-scrim.show{display:block;position:fixed;inset:0;background:#09182cb3;z-index:35}.app-main{margin-left:0}.mobile-menu{display:flex}.topbar{height:67px;padding:0 18px}.main-container{padding:24px 16px 58px}.head-pill{display:none}.who-info{display:none}.page-head{flex-wrap:wrap}.page-actions{width:100%}.landing-hero{display:block;margin-top:8px}.hero-main{padding:60px 32px 22px}.landing-preview{padding:20px 50px 45px}.mock-panel{max-width:460px;margin:0 auto}.public-nav a{display:none}.public-nav .btn{display:flex}.public-header{height:80px;padding:0 20px}.landing-features{grid-template-columns:1fr 1fr}.login-card{grid-template-columns:1fr;max-width:530px}.login-dark{min-height:initial;padding:28px 30px}.login-dark h1{margin:17px 0 8px;font-size:26px}.login-dark p{font-size:12px}.login-design{display:none}.login-form{padding:30px}.public-bottom{margin-left:20px;margin-right:20px}.public-disclaimer{margin-left:20px;margin-right:20px}}
@media(max-width:550px){body{font-size:13px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:15px;min-height:123px}.stat-value strong{font-size:25px}.stat-top{margin-bottom:16px}.stat-top span:first-child{font-size:10px}.stat-icon{width:30px;height:30px}.card-grid,.cols-2,.cols-3,.cols-4,.landing-features,.form-row,.detail-grid{grid-template-columns:1fr}.page-head h1{font-size:28px}.page-head{gap:14px}.panel{padding:17px}.hero-card{padding:24px;align-items:flex-start}.hero-card h2{font-size:22px}.hero-card .hero-mark{display:none}.public-header img{width:230px}.landing-hero{margin:0 10px 30px;border-radius:20px}.hero-main{padding:45px 22px 17px}.hero-main h1{font-size:38px}.hero-main p{font-size:13px}.hero-proof{gap:13px;margin-top:26px}.landing-preview{padding:21px 28px 43px}.floating-note{right:5px;bottom:15px;max-width:180px}.landing-section{padding:31px 18px 50px}.public-bottom{flex-direction:column;align-items:start;padding:26px;margin-left:10px;margin-right:10px}.public-footer{flex-direction:column;align-items:start;gap:8px;padding-left:20px}.login-stage{padding:12px}.login-card{border-radius:19px}.login-dark{padding:24px}.login-form{padding:24px}.profile-card{padding:10px}.progress-row{grid-template-columns:98px 1fr 39px;gap:8px}.modal-backdrop{padding:9px;align-items:flex-end}.modal{max-height:94vh;border-radius:18px 18px 10px 10px}.modal-head,.modal-body,.modal-footer{padding-left:18px;padding-right:18px}.demo-banner{align-items:start}.topbar .breadcrumb{font-size:10px}.competency-bars{gap:8px}.competency-bar{width:20px}.student-welcome{gap:12px}.student-avatar{width:53px;height:53px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.sidebar,.topbar,.demo-banner,.page-actions,.btn,.modal-backdrop,.toast-zone,.sidebar-scrim{display:none!important}.app-main{margin-left:0!important}.main-container{padding:0!important}.panel,.stat-card{box-shadow:none!important;break-inside:avoid}.report-print-only{display:block!important}body{background:white}.page-head{margin-bottom:10px}}
