:root{--ink:#f6f7f9;--muted:#9da7b4;--line:#27303b;--canvas:#080b10;--card:#121720;--nav:#05070a;--accent:#f2bb3e;--blue:#5b91f5;--green:#51d6a7;--shadow:0 14px 32px rgba(0,0,0,.3)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:262px;background:var(--nav);color:#fff;display:flex;flex-direction:column;padding:28px 18px 20px;z-index:5;border-right:1px solid #1c232d}.brand{font:600 21px "Space Grotesk";display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:0 10px 26px}.brand b{color:var(--accent)}.brand-mark{display:grid;place-items:center;width:31px;height:31px;background:var(--accent);color:#12100a;border-radius:10px;font-weight:700}.student-card{margin:2px 4px 28px;background:#141a23;padding:12px;display:flex;align-items:center;gap:10px;border-radius:13px;border:1px solid #252e3a}.student-card strong{font-size:14px;display:block}.student-card small,.sidebar-footer small{font-size:12px;color:#8f9baa}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e7c268;color:#44320a;font-size:12px;font-weight:700;flex:none}.navigation{display:grid;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;padding:12px;border-radius:10px;color:#8995a5;text-decoration:none;font-size:14px;font-weight:600}.nav-link span{width:18px;text-align:center;font-size:19px;font-weight:400}.nav-link.active,.nav-link:hover{color:#fff;background:#171e29}.nav-link.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-footer{margin-top:auto;padding:16px 10px 0;border-top:1px solid #202731;display:grid;gap:14px}.text-button{border:0;background:transparent;padding:0;color:inherit;font:600 13px "DM Sans";cursor:pointer;text-align:left}.main-content{width:calc(100% - 262px);margin-left:262px;padding:0 54px 48px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:42px}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb span{padding:0 7px;color:#65707c}.breadcrumb b{color:var(--ink)}.notification{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#141a23;color:#fff;font-size:18px;position:relative}.notification i{position:absolute;width:7px;height:7px;border-radius:50%;background:#e45a57;right:7px;top:7px}.menu-button{display:none}.view{display:none;max-width:1180px;margin:auto}.view.active{display:block}.welcome-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px}.eyebrow{color:var(--muted);font-weight:700;font-size:11px;letter-spacing:1.2px;margin:0 0 8px}.welcome-row h1{font:600 clamp(28px,4vw,38px) "Space Grotesk";letter-spacing:-1.3px;margin:0 0 7px}.muted{margin:0;color:var(--muted);line-height:1.55}.primary-button,.secondary-button{border:0;border-radius:10px;padding:13px 17px;font:700 14px "DM Sans";cursor:pointer;white-space:nowrap}.primary-button{background:var(--accent);color:#28210e;box-shadow:0 5px 12px rgba(211,151,8,.18)}.primary-button span{font-size:18px;padding-left:8px}.secondary-button{background:#141a23;border:1px solid var(--line);color:var(--ink)}.progress-banner{background:linear-gradient(115deg,#121b28,#202e43);border:1px solid #2c3b50;border-radius:18px;padding:26px 30px;display:flex;align-items:center;gap:20px;color:#fff;box-shadow:var(--shadow);margin-bottom:40px}.progress-icon{font-size:27px;width:54px;height:54px;display:grid;place-items:center;color:var(--accent);border-radius:15px;background:rgba(255,255,255,.07)}.progress-banner .eyebrow{color:#b6c6d8}.progress-banner h2{font:600 21px "Space Grotesk";margin:0 0 16px}.progress-banner>div:nth-child(2){flex:1}.progress-track{height:7px;border-radius:8px;background:rgba(255,255,255,.15);overflow:hidden}.progress-track span{height:100%;display:block;background:var(--accent);border-radius:inherit}.progress-note{color:#b6c6d8;font-size:13px;margin:9px 0 0}.progress-note b{color:#fff}.goal-chip{width:70px;height:70px;border-radius:50%;border:5px solid var(--accent);display:grid;place-content:center;text-align:center;font-weight:700;font-size:18px}.goal-chip small{display:block;color:#b6c6d8;font-size:10px;font-weight:500}.section-heading,.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading{margin-bottom:16px}.section-heading h2,.panel-title h2{margin:0;font:600 20px "Space Grotesk";letter-spacing:-.4px}.inline-link,.panel-title a{color:#83aaff;font-weight:700;font-size:13px;text-decoration:none}.next-card{display:flex;align-items:center;gap:17px;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:19px 22px;margin-bottom:25px;box-shadow:var(--shadow)}.subject-tag{width:49px;height:49px;display:grid;place-items:center;border-radius:13px;font-size:13px;font-weight:700}.constitutional{color:#91b7ff;background:#1a2c4e}.next-content{flex:1}.next-content h3{font:600 17px "Space Grotesk";margin:2px 0 4px}.next-content p:last-child{margin:0;color:var(--muted);font-size:13px}.circle-button{border:0;background:var(--accent);width:41px;height:41px;border-radius:50%;cursor:pointer}.dashboard-grid,.admin-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}.panel{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:var(--shadow)}.trend{padding:5px 9px;border-radius:6px;color:#63ddb5;background:#12382d;font-size:12px;font-weight:700}.chart{height:164px;margin-top:25px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:15px;border-bottom:1px solid var(--line)}.chart div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.chart i{width:min(37px,100%);background:#253554;border-radius:6px 6px 0 0}.chart .today{background:var(--accent)}.chart small{font-size:11px;color:var(--muted);margin-bottom:-24px}.subject-progress{display:grid;grid-template-columns:132px 1fr 34px;gap:10px;align-items:center;margin:17px 0;font-size:13px}.subject-progress div{height:7px;background:#242c36;border-radius:5px;overflow:hidden}.subject-progress i{display:block;height:100%;background:var(--accent);border-radius:inherit}.subject-progress b{text-align:right;font-size:12px}.cycle-tabs{display:flex;gap:7px;margin-bottom:22px;overflow:auto}.cycle-tabs button{padding:9px 16px;border:1px solid var(--line);background:#141a23;border-radius:8px;color:var(--muted);font-weight:700}.cycle-tabs .active{background:var(--accent);color:#281f0b;border-color:var(--accent)}.cycle-list{display:grid;gap:11px}.cycle-item{display:grid;grid-template-columns:74px 48px 1fr auto;gap:16px;align-items:center;padding:17px 20px;background:var(--card);border:1px solid var(--line);border-radius:13px}.cycle-item time{font-weight:700;font-size:13px;color:var(--muted)}.cycle-item .subject-tag{width:42px;height:42px;border-radius:11px}.cycle-item h3{font:600 16px "Space Grotesk";margin:0 0 3px}.cycle-item p{margin:0;color:var(--muted);font-size:13px}.status{font-size:12px;font-weight:700;padding:7px 10px;border-radius:7px}.status.done{background:#12382d;color:#63ddb5}.status.current{background:#3d2c0d;color:#f7cc68}.status.upcoming{background:#232b35;color:#b4becb}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:18px;min-height:205px;display:flex;flex-direction:column}.course-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:11px;margin-bottom:22px;font-weight:700}.course-card h2{font:600 18px "Space Grotesk";margin:0 0 5px}.course-card p{color:var(--muted);font-size:13px;margin:0}.course-card footer{margin-top:auto;padding-top:17px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.tiny-track{height:6px;border-radius:5px;background:#242c36;overflow:hidden;width:70%}.tiny-track i{height:100%;display:block;background:var(--accent)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.metric{background:var(--card);padding:21px;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);display:grid;gap:8px}.metric small{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.7px}.metric b{font:600 27px "Space Grotesk"}.metric span{font-size:12px;color:#63ddb5}.report-panel{max-width:760px}.report-row{display:grid;grid-template-columns:155px 1fr 88px;gap:15px;align-items:center;margin:21px 0;font-size:14px}.report-row i{display:block;height:10px;border-radius:8px;background:linear-gradient(90deg,#d89210,var(--accent))}.report-row b{text-align:right;font-size:13px}.period-select{padding:11px;border:1px solid var(--line);border-radius:9px;background:#141a23;color:var(--ink);font:600 13px "DM Sans"}.admin-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-panel .panel-title{grid-column:1/-1}.admin-stat{display:grid;gap:5px;padding:14px 8px;border-radius:10px;background:#1a212b}.admin-stat b{font:600 27px "Space Grotesk"}.admin-stat span{font-size:12px;color:var(--muted)}.student-row{display:flex;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.student-row:first-of-type{margin-top:13px}.student-row div{flex:1;display:grid;gap:3px}.student-row b{font-size:14px}.student-row small{font-size:12px;color:var(--muted)}.student-row em{color:#63ddb5;background:#12382d;font-size:11px;font-style:normal;padding:5px 7px;border-radius:5px}.green{background:#1b5845;color:#73dfbb}.orange{background:#563814;color:#ffc86e}.purple{background:#3a2855;color:#c5a6ff}.timer-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.76);place-items:center;z-index:20;padding:20px}.timer-modal.open{display:grid}.timer-card{position:relative;background:#161c25;border:1px solid #303b49;border-radius:19px;padding:34px;text-align:center;min-width:min(440px,100%);box-shadow:0 30px 70px rgba(0,0,0,.52)}.timer-card h2{font:600 23px "Space Grotesk";margin:0 0 15px}.timer{font:600 58px "Space Grotesk";letter-spacing:-3px;margin:8px 0}.timer-card .large{margin:27px 0 17px;padding:15px 25px}.close-modal{position:absolute;right:15px;top:12px;border:0;background:none;font-size:28px;color:var(--muted);cursor:pointer}.toast{position:fixed;bottom:26px;right:26px;background:var(--accent);color:#261f0e;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);font-size:14px;font-weight:700;transform:translateY(100px);opacity:0;transition:.25s;z-index:30}.toast.show{transform:translateY(0);opacity:1}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main-content{width:100%;margin-left:0;padding:0 24px 35px}.menu-button{display:block;background:transparent;border:0;color:#fff;font-size:22px}.topbar{margin-bottom:28px}.dashboard-grid,.admin-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.main-content{padding:0 16px 30px}.welcome-row{display:grid}.primary-button,.secondary-button{width:max-content}.progress-banner{padding:20px;gap:12px}.progress-icon{display:none}.goal-chip{width:55px;height:55px;font-size:14px}.dashboard-grid{gap:15px}.panel{padding:18px}.course-grid,.metric-grid{grid-template-columns:1fr}.next-card{padding:15px;gap:12px}.next-content p:last-child{display:none}.cycle-item{grid-template-columns:55px 42px 1fr}.cycle-item .status{display:none}.cycle-item h3{font-size:14px}.report-row{grid-template-columns:110px 1fr 76px;gap:8px;font-size:12px}.admin-panel{grid-template-columns:1fr}.timer-card{padding:28px 18px;min-width:0;width:100%}}
 .login-screen{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#262016 0,#090c11 42%,#06080c 100%)}.login-screen[hidden]{display:none}.login-card{width:min(100%,420px);display:grid;gap:13px;padding:38px;border:1px solid #38362c;border-radius:20px;background:#121720;box-shadow:0 28px 90px rgba(0,0,0,.48)}.login-mark{display:grid;place-items:center;width:47px;height:47px;border-radius:14px;background:#f2bb3e;color:#2f250d;font:700 26px "Space Grotesk"}.login-card .eyebrow{margin:12px 0 0}.login-card h1{margin:0;font:600 29px "Space Grotesk"}.login-card>p{margin:0 0 8px;color:#9da8b6}.login-card label{display:grid;gap:7px;color:#c2ccd7;font-size:13px;font-weight:700}.login-card input{box-sizing:border-box;width:100%;padding:13px;border:1px solid #35404e;border-radius:10px;background:#0c1118;color:#f3f6fa;font:14px "DM Sans"}.login-card small{min-height:18px;color:#94a0ae;text-align:center}.login-card small.error{color:#ff9a9a}
.achievement-view{max-width:1000px}.achievement-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.achievement-heading h1{margin:4px 0 6px}.streak-pill{padding:9px 13px;border:1px solid #5b4420;border-radius:999px;background:#201c15;color:#ffc950;font-size:12px;font-weight:700}.achievement-hero{position:relative;display:grid;grid-template-columns:132px minmax(0,1fr) 220px;gap:26px;align-items:center;overflow:hidden;padding:27px 30px;border:1px solid #5a4722;border-radius:19px;background:linear-gradient(115deg,#251d10 0%,#18202d 48%,#111720 100%);box-shadow:inset 0 1px rgba(255,255,255,.04)}.achievement-hero:after{position:absolute;right:-70px;top:-100px;width:300px;height:300px;border:1px solid rgba(242,187,62,.12);border-radius:50%;content:""}.level-orbit{position:relative;display:grid;place-items:center;width:102px;height:102px;border:1px solid rgba(242,187,62,.35);border-radius:50%;background:rgba(242,187,62,.06)}.level-orbit:before{position:absolute;inset:8px;border:1px dashed rgba(242,187,62,.35);border-radius:50%;content:""}.level-orbit i{position:absolute;width:6px;height:6px;border-radius:50%;background:#f2bb3e;box-shadow:0 0 14px #f2bb3e}.level-orbit i:first-of-type{right:7px;top:21px}.level-orbit i:last-of-type{left:8px;bottom:20px}.level-medal{z-index:1;width:61px;height:61px;background:linear-gradient(135deg,#ffd669,#e8a91c);color:#342507;font-size:21px;box-shadow:0 7px 24px rgba(242,187,62,.3)}.achievement-level h2{margin:4px 0 7px;font:600 22px "Space Grotesk"}.achievement-level p{margin:0;color:#bfc8d3;font-size:13px}.achievement-level p strong{font-size:19px;color:#fff}.xp-track{height:8px;max-width:460px;margin:14px 0 8px;border-radius:99px;background:#323a42;overflow:hidden}.xp-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#eaa719,#ffd15a);box-shadow:0 0 12px rgba(242,187,62,.45)}.achievement-level small{color:#9ba7b4;font-size:11px}.achievement-level small b{color:#f6c34b}.achievement-summary{z-index:1;display:grid;gap:10px}.achievement-summary div{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(8,12,18,.33)}.achievement-summary b{color:#f6c34b;font:600 21px "Space Grotesk"}.achievement-summary span{color:#aab5c1;font-size:10px;line-height:1.35}.challenge-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:17px;margin:16px 0 26px;padding:18px 21px;border:1px solid #2f3a49;border-radius:15px;background:#131b27}.challenge-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#2e291b;color:#ffd058;font-size:21px}.challenge-card h3{margin:3px 0 5px;font:600 16px "Space Grotesk"}.challenge-card p{margin:0;color:#9ba8b5;font-size:12px}.challenge-reward{padding-right:13px;border-right:1px solid #2e3744;text-align:right}.challenge-reward span{display:block;color:#7e8a98;font-size:9px;font-weight:800;letter-spacing:.08em}.challenge-reward b{color:#f7c649;font-size:14px}.challenge-card .primary-button{white-space:nowrap;padding:10px 14px;font-size:12px}.achievement-section-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:13px}.achievement-section-title h2{margin:4px 0 0;font:600 18px "Space Grotesk"}.achievement-section-title>span{color:#8996a4;font-size:12px}.achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:0}.achievement{position:relative;min-height:132px;padding:17px;border-color:#2c3745;background:linear-gradient(150deg,#161e2a,#111821)}.achievement:hover{transform:translateY(-2px);border-color:#705d34}.achievement.unlocked:before{position:absolute;top:0;left:17px;right:17px;height:2px;border-radius:0 0 4px 4px;background:#eeb22c;content:""}.achievement-icon{width:36px;height:36px;background:#302a17;color:#ffcf55;font-size:16px}.achievement-status{position:absolute;right:15px;top:19px;color:#d9b14b;font-size:9px;font-weight:800;letter-spacing:.06em}.achievement h3{margin:13px 0 4px;font-size:14px}.achievement p{font-size:11px}.achievement.locked{opacity:.64}.achievement.locked .achievement-icon{background:#202936;color:#6f7f91}.achievement.locked .achievement-status{color:#708093}@media(max-width:760px){.achievement-heading,.challenge-card{align-items:flex-start;display:grid}.achievement-hero{grid-template-columns:1fr;padding:24px}.achievement-summary{grid-template-columns:1fr 1fr}.challenge-card{grid-template-columns:42px 1fr}.challenge-reward{grid-column:2;border:0;text-align:left}.challenge-card .primary-button{grid-column:1/-1;width:100%}.achievement-grid{grid-template-columns:1fr 1fr}}@media(max-width:460px){.achievement-grid{grid-template-columns:1fr}.streak-pill{display:none}}
.logout-button{color:#dca0a0!important}.logout-button:hover{color:#ffb6b6!important}
.sidebar .navigation{flex:1;min-height:0;overflow-y:auto;padding-bottom:10px}.sidebar-footer{flex:none;background:var(--nav);position:relative;z-index:1}
.admin-actions{display:flex;gap:10px;align-items:center}@media(max-width:560px){.admin-actions{width:100%}.admin-actions button{flex:1;padding:12px 8px}}
