:root{--navy:#0b1f3a;--navy2:#123a66;--blue:#2563eb;--blue2:#3b82f6;--cyan:#06b6d4;--green:#10b981;--amber:#f59e0b;--red:#ef4444;--purple:#8b5cf6;--ink:#14213d;--muted:#64748b;--line:#dfe7f1;--surface:#fff;--soft:#f5f8fc;--soft2:#eef4fb;--shadow:0 16px 40px #0e2a521a}*{box-sizing:border-box}html{background:#eef4fb}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:linear-gradient(#f7fbff 0,#f3f7fb 55%,#edf3f9 100%);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.auth-shell{background:#f7fbff;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.auth-visual{color:#fff;background:radial-gradient(circle at 15% 20%,#22d3ee59,#0000 32%),radial-gradient(circle at 85% 75%,#6366f161,#0000 35%),linear-gradient(135deg,#091c36 0%,#103c68 52%,#174f7f 100%);align-items:center;padding:64px;display:flex;position:relative;overflow:hidden}.auth-visual:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:420px;height:420px;position:absolute;top:-90px;right:-140px;box-shadow:0 0 0 70px #ffffff09,0 0 0 150px #ffffff06}.auth-copy{z-index:1;max-width:720px;position:relative}.brand-mark{align-items:center;gap:12px;margin-bottom:56px;display:inline-flex}.brand-orb{background:linear-gradient(145deg,#5eead4,#3b82f6);border-radius:16px;place-items:center;width:50px;height:50px;font-size:18px;font-weight:900;display:grid;box-shadow:0 12px 30px #0003}.auth-copy h1{letter-spacing:-.045em;margin:0 0 24px;font-size:clamp(42px,5vw,72px);line-height:1.02}.auth-copy p{color:#dbeafe;max-width:650px;font-size:18px;line-height:1.75}.flow-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:42px;display:flex}.flow-step{background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;padding:10px 14px;font-size:13px;font-weight:750}.flow-arrow{opacity:.6}.auth-panel{justify-content:center;align-items:center;padding:42px;display:flex}.auth-card{background:#fff;border:1px solid #e5edf6;border-radius:28px;width:min(100%,490px);padding:32px;box-shadow:0 30px 80px #0e2a521f}.auth-card h2{letter-spacing:-.025em;margin:6px 0 8px;font-size:30px}.auth-card>p{color:var(--muted);margin-top:0;line-height:1.6}.role-tabs{background:#f1f5f9;border-radius:14px;grid-template-columns:1fr 1fr;margin:24px 0;padding:5px;display:grid}.role-tab{color:#64748b;background:0 0;border:0;border-radius:10px;padding:11px;font-weight:800}.role-tab.active{color:#174c82;background:#fff;box-shadow:0 4px 12px #0f172a17}.field{gap:7px;margin:14px 0;display:grid}.field label{color:#42526b;font-size:13px;font-weight:800}.input,.select,.textarea{color:#13213c;background:#fff;border:1px solid #d8e2ee;border-radius:13px;outline:none;width:100%;padding:12px 13px;transition:all .18s}.textarea{resize:vertical;min-height:105px}.input:focus,.select:focus,.textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #3b82f61a}.btn{color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb);border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 15px;font-weight:850;transition:all .18s;display:inline-flex;box-shadow:0 7px 18px #2563eb33}.btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{color:#24466f;box-shadow:none;background:#fff;border:1px solid #d8e4f0}.btn.ghost{color:#36516f;box-shadow:none;background:0 0}.btn.success{background:linear-gradient(135deg,#059669,#10b981)}.btn.danger{background:linear-gradient(135deg,#dc2626,#ef4444)}.btn.amber{background:linear-gradient(135deg,#d97706,#f59e0b)}.btn.full{width:100%}.btn.small{border-radius:10px;padding:8px 11px;font-size:12px}.error-box,.info-box,.success-box{border-radius:12px;margin:12px 0;padding:11px 13px;font-size:13px;line-height:1.5}.error-box{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3}.info-box{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.success-box{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.app-shell{grid-template-columns:272px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;z-index:20;background:linear-gradient(#0a1f3a,#0e315a 56%,#0b2647);flex-direction:column;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0}.side-brand{border-bottom:1px solid #ffffff1c;align-items:center;gap:12px;margin-bottom:14px;padding:10px 10px 22px;display:flex}.side-logo{background:linear-gradient(145deg,#5eead4,#3b82f6);border-radius:14px;place-items:center;width:43px;height:43px;font-weight:950;display:grid}.side-brand b{font-size:15px;display:block}.side-brand small{color:#a9bdd7;margin-top:3px;font-size:11px;display:block}.side-nav{gap:6px;display:grid}.nav-item{color:#d9e7f7;border-radius:12px;grid-template-columns:32px 1fr;align-items:center;gap:7px;padding:10px;transition:all .17s;display:grid}.nav-item:hover{background:#ffffff14;transform:translate(2px)}.nav-item.active{color:#173e69;background:#fff;box-shadow:0 8px 22px #0000002b}.nav-icon{place-items:center;width:24px;height:24px;display:grid}.nav-copy b{font-size:13px;display:block}.nav-copy small{color:#a9bdd7;margin-top:2px;font-size:10px;display:block}.nav-item.active .nav-copy small{color:#71839a}.side-bottom{border-top:1px solid #ffffff1a;margin-top:auto;padding:15px 10px 4px}.online-row{align-items:flex-start;gap:9px;display:flex}.online-dot{background:#34d399;border-radius:50%;width:9px;height:9px;margin-top:5px;box-shadow:0 0 0 4px #34d3991a}.online-row b{font-size:12px}.online-row small{color:#abc0da;margin-top:2px;font-size:10px;display:block}.app-main{min-width:0}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:15;background:#ffffffdb;border-bottom:1px solid #e4ebf3;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-title b{font-size:14px;display:block}.topbar-title small{color:#7b8aa0}.user-chip{background:#f3f7fb;border:1px solid #e2e9f2;border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 6px;display:flex}.avatar{color:#1e4f8a;background:linear-gradient(145deg,#dbeafe,#c7d2fe);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.user-chip b{font-size:12px}.user-chip small{color:#7c8ba0;font-size:10px;display:block}.content{max-width:1600px;margin:auto;padding:28px}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px;display:flex}.eyebrow{letter-spacing:.13em;color:#2563eb;font-size:10px;font-weight:900}.page-heading h1{letter-spacing:-.035em;margin:4px 0 6px;font-size:32px}.page-heading p{color:var(--muted);max-width:780px;margin:0;line-height:1.6}.hero{color:#fff;box-shadow:var(--shadow);background:radial-gradient(circle at 92% 20%,#5eead43d,#0000 26%),linear-gradient(135deg,#0d2c50,#174c7c);border-radius:24px;margin-bottom:20px;padding:28px;position:relative;overflow:hidden}.hero:after{content:"";border:1px solid #ffffff21;border-radius:50%;width:230px;height:230px;position:absolute;bottom:-120px;right:-65px;box-shadow:0 0 0 48px #ffffff09}.hero-grid{z-index:1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;display:grid;position:relative}.hero h2{letter-spacing:-.03em;margin:7px 0;font-size:27px}.hero p{color:#d8e9fb;max-width:850px;margin:0;line-height:1.7}.hero-badge{text-align:center;background:#ffffff17;border:1px solid #ffffff26;border-radius:16px;padding:14px 16px;font-size:12px;font-weight:900}.hero-badge small{color:#bfe2f7;margin-top:4px;display:block}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:18px 0;display:grid}.stat-card{background:#fff;border:1px solid #e1e9f2;border-radius:18px;padding:18px;box-shadow:0 8px 25px #15395f0b}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-icon{color:#2563eb;background:#eff6ff;border-radius:12px;place-items:center;width:39px;height:39px;display:grid}.stat-card .value{letter-spacing:-.035em;margin:14px 0 3px;font-size:28px;font-weight:950}.stat-card .label{color:#43536b;font-size:12px;font-weight:800}.stat-card .sub{color:#8a99ad;margin-top:5px;font-size:11px}.trend-up{color:#059669;font-size:11px;font-weight:850}.panel-grid{grid-template-columns:1.35fr .65fr;gap:18px;display:grid}.card{background:#fff;border:1px solid #e0e8f1;border-radius:20px;padding:20px;box-shadow:0 8px 28px #12375c0d}.card h2,.card h3{letter-spacing:-.02em}.card h2{margin:0 0 4px;font-size:18px}.card h3{margin:0 0 4px;font-size:15px}.card-sub{color:var(--muted);margin:0 0 18px;font-size:12px;line-height:1.5}.section-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{gap:14px;display:grid}.two{grid-template-columns:1fr 1fr;gap:14px;display:grid}.three{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.four{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.table-wrap{border:1px solid #e5ecf3;border-radius:14px;overflow:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:720px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1f5;padding:12px 13px;font-size:12px}th{color:#5b6d83;text-transform:uppercase;letter-spacing:.055em;background:#f7f9fc;font-size:10px;position:sticky;top:0}tr:last-child td{border-bottom:0}.pill{color:#46617c;background:#eef4fa;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:10px;font-weight:850;display:inline-flex}.pill.blue{color:#1d4ed8;background:#eff6ff}.pill.green{color:#047857;background:#ecfdf5}.pill.amber{color:#b45309;background:#fffbeb}.pill.red{color:#be123c;background:#fff1f2}.pill.purple{color:#6d28d9;background:#f5f3ff}.badge{border-radius:999px;align-items:center;padding:5px 8px;font-size:10px;font-weight:900;display:inline-flex}.badge.DRAFT{color:#c2410c;background:#fff7ed}.badge.APPROVED,.badge.PUBLISHED,.badge.COMPLETED{color:#047857;background:#ecfdf5}.badge.REJECTED{color:#be123c;background:#fff1f2}.badge.ASSIGNED{color:#1d4ed8;background:#eff6ff}.mastery-cell{text-align:center;border-radius:10px;min-width:78px;padding:9px;font-weight:950}.mastery-cell.mastered{color:#166534;background:#dcfce7}.mastery-cell.developing{color:#92400e;background:#fef3c7}.mastery-cell.support{color:#991b1b;background:#fee2e2}.delta{font-size:10px;font-weight:900}.delta.pos{color:#059669}.delta.neg{color:#dc2626}.donut-wrap{grid-template-columns:150px 1fr;align-items:center;gap:18px;display:grid}.donut{--p1:45;--p2:35;background:conic-gradient(#10b981 0 calc(var(--p1)*1%),#f59e0b calc(var(--p1)*1%) calc((var(--p1) + var(--p2))*1%),#ef4444 calc((var(--p1) + var(--p2))*1%) 100%);border-radius:50%;width:138px;height:138px;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:24px}.legend{gap:10px;display:grid}.legend-row{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.legend-name{align-items:center;gap:8px;display:flex}.dot{border-radius:50%;width:8px;height:8px}.dot.green{background:#10b981}.dot.amber{background:#f59e0b}.dot.red{background:#ef4444}.bar-row{grid-template-columns:130px 1fr 45px;align-items:center;gap:10px;margin:11px 0;font-size:11px;display:grid}.bar-track{background:#edf2f7;border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#60a5fa,#2563eb);border-radius:999px;height:100%}.package-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.package-card{background:linear-gradient(#fff,#fbfdff);border:1px solid #e2e9f2;border-radius:16px;padding:16px;transition:all .18s}.package-card:hover{border-color:#bfdbfe;transform:translateY(-1px);box-shadow:0 10px 24px #2563eb12}.package-card h3{margin:8px 0 6px;font-size:15px}.package-meta{color:#6e7f94;font-size:11px;line-height:1.5}.objective-card{background:#fbfdff;border:1px solid #e3e9f1;border-radius:15px;padding:15px}.objective-card h3{font-size:14px}.objective-card p{color:#64748b;font-size:12px;line-height:1.5}.question-card{background:#fff;border:1px solid #e1e8f0;border-radius:14px;padding:14px}.question-text{font-size:13px;font-weight:800;line-height:1.55}.option-list{grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;display:grid}.option{border:1px solid #e6ebf1;border-radius:10px;padding:9px 10px;font-size:11px}.option.correct{color:#065f46;background:#ecfdf5;border-color:#a7f3d0;font-weight:800}.ai-note{color:#654390;background:#faf5ff;border-left:3px solid #8b5cf6;border-radius:0 10px 10px 0;padding:11px 12px;font-size:11px;line-height:1.55}.privacy-note{color:#285579;background:#f0f8ff;border:1px solid #cde6ff;border-radius:12px;padding:10px 12px;font-size:11px}.skeleton{background:linear-gradient(90deg,#eef2f7 25%,#e4eaf2 37%,#eef2f7 63%) 0 0/400% 100%;border-radius:8px;height:14px;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.student-shell{background:linear-gradient(#eef8ff,#f7fbff 40%,#f2f6fb);min-height:100vh}.student-top{z-index:10;background:#fff;border-bottom:1px solid #e2eaf3;justify-content:space-between;align-items:center;height:68px;padding:0 22px;display:flex;position:sticky;top:0}.student-brand{align-items:center;gap:10px;font-weight:900;display:flex}.student-main{max-width:1120px;margin:auto;padding:26px 18px 50px}.student-hero{color:#fff;background:radial-gradient(circle at 90% 0,#5eead442,#0000 30%),linear-gradient(135deg,#134070,#2365a0);border-radius:22px;grid-template-columns:1fr auto;gap:20px;padding:25px;display:grid}.student-hero h1{letter-spacing:-.03em;margin:4px 0 7px;font-size:27px}.student-hero p{color:#dbeafe;margin:0}.level-orb{background:#ffffff14;border:8px solid #ffffff2e;border-radius:50%;place-items:center;width:92px;height:92px;font-size:20px;font-weight:950;display:grid}.action-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px;display:grid}.student-action{background:#fff;border:1px solid #dfe8f1;border-radius:18px;padding:18px;box-shadow:0 8px 24px #14395f0d}.student-action h3{margin:7px 0 5px}.student-action p{color:#6c7d92;font-size:12px;line-height:1.55}.question-runner{max-width:850px;margin:20px auto}.runner-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.progress{background:#e8eef5;border-radius:999px;height:8px;overflow:hidden}.progress>span{background:linear-gradient(90deg,#22c55e,#0ea5e9);border-radius:999px;height:100%;display:block}.choice{cursor:pointer;border:1px solid #dfe7f0;border-radius:13px;align-items:flex-start;gap:10px;margin:9px 0;padding:12px;transition:all .15s;display:flex}.choice:hover{background:#f8fbff;border-color:#93c5fd}.choice.selected{background:#eff6ff;border-color:#3b82f6}.choice input{margin-top:2px}.empty{text-align:center;color:#73849a;background:#fbfdff;border:1px dashed #d7e1ec;border-radius:16px;padding:28px}.muted{color:var(--muted)}.small{font-size:11px}.divider{background:#e7edf4;height:1px;margin:18px 0}.nowrap{white-space:nowrap}@media (max-width:1180px){.stats-grid{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:1fr}.package-grid,.four{grid-template-columns:repeat(2,1fr)}}@media (max-width:920px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:42vh;padding:42px}.auth-panel{padding:22px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:10px 12px;position:sticky}.side-brand,.side-bottom,.nav-copy small{display:none}.side-nav{display:flex;overflow:auto}.nav-item{grid-template-columns:1fr;min-width:54px;padding:9px}.nav-copy b{display:none}.nav-item.active .nav-icon{color:#173e69}.content{padding:20px}.topbar{padding:0 18px}.package-grid,.student-hero{grid-template-columns:1fr}.level-orb{display:none}}@media (max-width:640px){.auth-visual{padding:30px 24px}.auth-copy h1{font-size:40px}.auth-copy p{font-size:15px}.brand-mark{margin-bottom:30px}.auth-card{border-radius:20px;padding:24px}.page-heading{display:block}.page-heading h1{font-size:27px}.page-heading .toolbar{margin-top:14px}.stats-grid,.two,.three,.four,.action-grid,.option-list{grid-template-columns:1fr}.content{padding:16px 12px}.topbar-title small,.user-chip>div:last-child{display:none}.hero{padding:21px}.hero-grid{grid-template-columns:1fr}.hero-badge{display:none}.donut-wrap{grid-template-columns:1fr;justify-items:center}.bar-row{grid-template-columns:95px 1fr 38px}.student-main{padding:18px 12px 42px}.student-top{padding:0 12px}}
