@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#202744;--muted:#77819a;--blue:#5267d8;--purple:#8757d8;--line:#e9ecf4;--bg:#f6f7fc}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#fff;border-right:1px solid var(--line);padding:25px 17px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:900;letter-spacing:.5px;font-size:14px;padding:4px 8px}.brand small{display:block;font-size:8px;letter-spacing:1.5px;color:#929bb0;margin-top:4px}.mark{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#5267d8,#965bd2);font-size:23px}.side-label{font-size:9px;font-weight:800;letter-spacing:1.5px;color:#a0a7b8;margin:42px 10px 13px}.side-link{display:flex;align-items:center;gap:13px;padding:12px 13px;margin:3px 0;border-radius:10px;color:#69738b;text-decoration:none;font-size:12px;font-weight:600}.side-link span{font-size:17px;width:19px;text-align:center}.side-link.active{background:#f0efff;color:#6259c8}.side-bottom{margin-top:auto}.side-help{background:linear-gradient(145deg,#f1efff,#f4f6ff);padding:16px;border-radius:13px}.side-help strong{font-size:12px}.side-help p{font-size:10px;line-height:1.6;color:var(--muted)}.side-help a{font-size:11px;font-weight:800;color:#6259c8;text-decoration:none}.side-copy{display:block;font-size:9px;color:#a0a7b8;margin:22px 8px 0}.main-area{margin-left:248px;min-height:100vh}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.5%}.breadcrumb{font-size:11px;color:#a0a7b8}.topbar strong{font-size:12px}.top-actions{display:flex;align-items:center;gap:9px}.visitor-chip{font-size:10px;color:#7a8298;background:#f4f5fa;padding:9px 11px;border-radius:30px;margin-right:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 15px;border-radius:9px;text-decoration:none;font-size:11px;font-weight:800;white-space:nowrap}.btn-primary{background:linear-gradient(100deg,#5267d8,#8958d8);color:#fff;box-shadow:0 7px 18px #665bd32b}.btn-outline{border:1px solid #e0e4f0;color:#505db9;background:#fff}.btn-light{background:#fff;color:#5b60b8;border:1px solid #e6e5f5}.btn-large{padding:13px 17px;font-size:11px}.content{max-width:1400px;margin:auto;padding:30px 4.5% 25px}.welcome-strip{background:radial-gradient(circle at 80% 15%,#9b8be7 0,transparent 30%),linear-gradient(110deg,#354b9d,#6652bb 68%,#8060c7);border-radius:18px;color:#fff;padding:38px 4.5%;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;min-height:270px;overflow:hidden}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:800;color:#8c83dc}.welcome-strip .eyebrow{color:#d8d3ff}.welcome-strip h1{font-size:31px;letter-spacing:-1px;margin:13px 0 9px}.welcome-strip p{font-size:12px;line-height:1.8;color:#e5e4ff;max-width:600px}.welcome-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:19px}.welcome-visual{height:200px;position:relative;display:grid;place-items:center}.visual-orbit{position:absolute;width:225px;height:155px;border:1px dashed #d2caff;border-radius:50%;transform:rotate(-28deg)}.visual-globe{width:130px;height:130px;border-radius:48%;display:grid;place-items:center;background:linear-gradient(145deg,#a5b9ff,#d6a8f5);font-size:68px;box-shadow:0 20px 50px #22235d55;transform:rotate(-8deg)}.visual-tag{position:absolute;background:#fff;color:#414b78;border:1px solid #ecebff;border-radius:10px;padding:9px 12px;font-size:10px;font-weight:800;box-shadow:0 8px 25px #1d235833}.tag-one{left:0;top:20px}.tag-two{right:0;top:50px}.tag-three{left:18px;bottom:12px}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 32px}.quick-stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px}.stat-icon{width:38px;height:38px;border-radius:11px;background:#f0efff;display:grid;place-items:center;font-size:18px}.quick-stats strong,.quick-stats small{display:block}.quick-stats strong{font-size:11px}.quick-stats small{font-size:9px;color:var(--muted);margin-top:5px}.section-block{margin:30px 0 38px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:17px}.section-title h2,.info-panel h2{font-size:21px;letter-spacing:-.6px;margin:7px 0}.section-title p,.info-panel p{font-size:11px;line-height:1.8;color:var(--muted);margin:0;max-width:650px}.access-note{font-size:9px;color:#a27a38;background:#fff8e9;border-radius:20px;padding:8px 11px;white-space:nowrap}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.feature{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;min-height:205px;display:flex;flex-direction:column;box-shadow:0 5px 18px #26335b06}.feature-head{display:flex;align-items:center;justify-content:space-between}.feature-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;font-size:19px}.purple{background:#f0ebff}.pink{background:#ffedf4}.orange{background:#fff1e5}.green{background:#e8f8ee}.lock-pill{font-size:8px;color:#a27a38;background:#fff8e9;padding:6px 8px;border-radius:20px}.feature h3{font-size:12px;margin:15px 0 7px}.feature p{font-size:10px;line-height:1.7;color:var(--muted);flex:1}.feature-link{font-size:10px;font-weight:800;color:#5d5cc7;text-decoration:none;margin-top:9px}.about-guide{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:38px 0}.info-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px}.mini-steps{display:grid;gap:12px;margin-top:14px}.mini-steps>div{display:flex;align-items:center;gap:13px}.mini-steps b{font-size:17px;color:#7065cd}.mini-steps strong,.mini-steps small{display:block}.mini-steps strong{font-size:10px}.mini-steps small{font-size:9px;color:var(--muted);margin-top:4px}footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:20px 0;color:#9aa1b2;font-size:9px}footer strong{color:#5e62b9;letter-spacing:1px}
@media(max-width:1100px){.feature-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:210px}.main-area{margin-left:210px}.welcome-strip{grid-template-columns:1fr .7fr}}@media(max-width:720px){.sidebar{position:static;width:auto;height:auto;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.side-label,.side-link,.side-bottom{display:none}.main-area{margin-left:0}.topbar{padding:0 16px}.visitor-chip{display:none}.content{padding:18px 15px}.welcome-strip{grid-template-columns:1fr;padding:25px 22px}.welcome-strip h1{font-size:25px}.welcome-visual{height:170px}.quick-stats{grid-template-columns:1fr;gap:8px}.section-title{align-items:start;flex-direction:column}.feature-grid{grid-template-columns:1fr 1fr}.about-guide{grid-template-columns:1fr}.btn{padding:9px 11px;font-size:10px}}@media(max-width:420px){.feature-grid{grid-template-columns:1fr}.topbar{height:62px}.welcome-actions{flex-direction:column;align-items:stretch}.welcome-actions .btn{width:100%}footer{flex-wrap:wrap}}

.side-logout{display:block;padding:15px 8px 0;font-size:11px;font-weight:800;color:#6259c8;text-decoration:none}

/* Hamburger navigation: the same drawer works for visitors and signed-in students */
.topbar-left{display:flex;align-items:center;gap:14px}
.hamburger{width:36px;height:36px;border:1px solid #e5e8f2;border-radius:9px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.hamburger span{display:block;width:15px;height:2px;border-radius:2px;background:#5963bd}
.sidebar{transform:translateX(-105%);transition:transform .24s ease;box-shadow:12px 0 35px #20274412}
.sidebar.open{transform:translateX(0)}
.main-area{margin-left:0}
.sidebar-backdrop{position:fixed;inset:0;background:#17204466;opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:4}
.sidebar-backdrop.visible{opacity:1;visibility:visible}
@media(max-width:720px){
 .sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,84vw);height:100vh;overflow-y:auto;padding:22px 17px}
 .sidebar .side-label,.sidebar .side-link,.sidebar .side-bottom{display:flex}
 .sidebar .side-label{display:block}
 .sidebar .side-bottom{display:block}
 .topbar{padding:0 15px}
}

.protected-content{min-height:calc(100vh - 70px);display:flex;flex-direction:column}
.protected-heading{padding:24px 0 18px}
.protected-heading h1{font-size:27px;letter-spacing:-.7px;margin:9px 0}
.protected-heading p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}
.protected-panel{display:flex;align-items:flex-start;gap:18px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:24px;max-width:720px;box-shadow:0 5px 18px #26335b06}
.protected-panel-icon{width:48px;height:48px;border-radius:13px;background:#f0efff;display:grid;place-items:center;font-size:24px;flex:none}
.protected-panel h2{font-size:16px;margin:7px 0}
.protected-panel p{font-size:11px;line-height:1.8;color:var(--muted);max-width:520px}
.protected-panel .feature-link{display:inline-block;margin-top:8px}
.protected-content footer{margin-top:auto;padding-top:24px}
@media(max-width:720px){.protected-heading h1{font-size:23px}.protected-panel{padding:18px;gap:13px}}

/* Desktop and mobile both use a hidden off-canvas hamburger drawer */
.topbar-left{display:flex;align-items:center;gap:14px}
.hamburger{width:38px;height:38px;border:1px solid #e5e8f2;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;flex:none}
.hamburger span{display:block;width:16px;height:2px;border-radius:2px;background:#5963bd}
.sidebar{position:fixed!important;inset:0 auto 0 0!important;width:248px!important;height:100vh!important;overflow-y:auto;transform:translateX(-110%)!important;transition:transform .24s ease!important;box-shadow:12px 0 35px #20274412;z-index:10!important}
.sidebar.open{transform:translateX(0)!important}
.main-area{margin-left:0!important;min-height:100vh}
.sidebar-backdrop{position:fixed;inset:0;background:#17204466;opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:9}
.sidebar-backdrop.visible{opacity:1;visibility:visible}
@media(max-width:720px){.sidebar{width:min(280px,84vw)!important;padding:22px 17px!important}.sidebar .side-label{display:block}.sidebar .side-link{display:flex}.sidebar .side-bottom{display:block}.topbar{padding:0 15px}}

/* Visible hamburger control and off-canvas sidebar */
.topbar-left{display:flex;align-items:center;gap:14px}
.hamburger{width:38px;height:38px;display:inline-flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;border:1px solid #e5e8f2;border-radius:10px;background:#fff;cursor:pointer;flex:none;visibility:visible!important;opacity:1!important}
.hamburger span{display:block;width:16px;height:2px;border-radius:2px;background:#5963bd}
.sidebar{position:fixed!important;inset:0 auto 0 0!important;width:248px!important;height:100vh!important;overflow-y:auto;transform:translateX(-110%)!important;transition:transform .24s ease!important;box-shadow:12px 0 35px #20274412;z-index:20!important}
.sidebar.open{transform:translateX(0)!important}
.main-area{margin-left:0!important;min-height:100vh}
.sidebar-backdrop{position:fixed;inset:0;background:#17204466;opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:19}
.sidebar-backdrop.visible{opacity:1;visibility:visible}
@media(max-width:720px){.sidebar{width:min(280px,84vw)!important;padding:22px 17px!important}.sidebar .side-label{display:block}.sidebar .side-link{display:flex}.sidebar .side-bottom{display:block}.topbar{padding:0 15px}}

/* FINAL shared drawer override — applies to homepage and protected learning pages */
#appSidebar{
 position:fixed!important;top:0!important;left:0!important;bottom:0!important;
 width:248px!important;height:100vh!important;max-height:100vh!important;
 overflow-y:auto!important;z-index:1001!important;
 transform:translate3d(-110%,0,0)!important;
 transition:transform .24s ease!important;
 box-shadow:12px 0 35px rgba(32,39,68,.12)!important;
}
#appSidebar.open{transform:translate3d(0,0,0)!important}
#menuToggle{
 display:inline-flex!important;visibility:visible!important;opacity:1!important;
 position:relative!important;z-index:1002!important;
 width:38px!important;height:38px!important;flex:0 0 38px!important;
 align-items:center!important;justify-content:center!important;flex-direction:column!important;
 gap:4px!important;padding:0!important;background:#fff!important;
 border:1px solid #e5e8f2!important;border-radius:10px!important;cursor:pointer!important;
}
#menuToggle span{display:block!important;width:16px!important;height:2px!important;background:#5963bd!important;border-radius:2px!important}
.sidebar-backdrop{z-index:1000!important}
.main-area{margin-left:0!important;width:100%!important}
.topbar-left{display:flex!important;align-items:center!important;gap:14px!important}
@media(max-width:720px){
 #appSidebar{width:min(280px,84vw)!important;padding:22px 17px!important}
 #appSidebar .side-label{display:block!important}
 #appSidebar .side-link{display:flex!important}
 #appSidebar .side-bottom{display:block!important}
}

/* Drawer layering fix: keep the hamburger in the page header, never over the drawer brand */
#menuToggle{
 position:relative!important;
 z-index:2!important;
}
#appSidebar{z-index:1001!important}
.sidebar-backdrop{z-index:1000!important}
