@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--ink:#1c1b2e;--muted:#77758a;--line:#ecebf2;--bg:#f8f8fc;--purple:#635bff;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}h1,h2,h3{font-family:'Space Grotesk',sans-serif;margin:0 0 8px}h1{font-size:25px}h2{font-size:23px}h3{font-size:17px}a{color:var(--purple);text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#fff;border-right:1px solid var(--line);padding:27px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:10px;font:700 20px 'Space Grotesk';color:var(--ink);padding:0 12px}.brand span span{color:var(--purple)}.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--purple);color:white!important}.profile{display:flex;align-items:center;gap:10px;padding:30px 12px 24px;border-bottom:1px solid var(--line)}.profile small,.list-row small,.course-row small,.event small,.meta{display:block;color:var(--muted);font-size:12px;margin-top:4px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#e9e7ff;color:var(--purple);font-weight:700}.avatar.small{width:34px;height:34px}.avatar.tiny{width:27px;height:27px;font-size:11px}nav{padding-top:20px;display:grid;gap:3px}nav a,.logout{padding:11px 12px;color:#858393;border-radius:9px;font-weight:500}nav a:hover,nav a:first-child{color:var(--purple);background:#f1f0ff}.logout{margin-top:auto}.main{margin-left:240px;padding:28px 5%;max-width:1440px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.top-actions{display:flex;align-items:center;gap:18px}.bell{font-size:22px;color:#777}.eyebrow{font-size:10px;letter-spacing:1.4px;color:#9896a7;font-weight:700}.muted{color:var(--muted);line-height:1.55}.welcome{background:linear-gradient(110deg,#26234a,#443e8a);border-radius:18px;padding:28px 34px;color:#fff;display:flex;justify-content:space-between;overflow:hidden}.welcome .muted{color:#bfc1ea}.welcome-art{font-size:80px;color:#8f89ff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:21px}.stat{position:relative}.stat-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;margin-bottom:16px;font-size:18px}.purple{background:#eeedff;color:#635bff}.orange{background:#fff4df;color:#ed9a00}.pink{background:#ffecef;color:#e45171}.green{background:#e6faf3;color:#149c78}.stat small{display:block;color:var(--muted)}.stat strong{font:700 25px 'Space Grotesk';display:block;margin-top:5px}.stat em{font-style:normal;color:#24a37b;font-size:11px}.grid{display:grid;gap:18px;margin-bottom:18px}.two{grid-template-columns:1fr 1fr}.section-head,.page-intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.course-row,.list-row,.event{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.course-dot{width:38px;height:38px;border-radius:11px;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.grow{flex:1}.progress{height:5px;background:#eeeef4;border-radius:8px;overflow:hidden;margin-top:11px}.progress i{display:block;height:100%;border-radius:8px}.percent{font-size:12px;color:var(--muted)}.date-box{background:#f3f2ff;color:var(--purple);border-radius:8px;padding:7px 9px;text-align:center;font-weight:700}.date-box small{display:block;color:inherit;margin:0}.pill{font-size:11px;padding:5px 9px;border-radius:20px;white-space:nowrap}.warning{background:#fff5de;color:#c88600}.success{background:#e5faf2;color:#15936d}.danger{background:#ffe8ed;color:#d64c69}.event-mark{font-size:23px;color:#635bff}.ai-card{background:linear-gradient(130deg,#635bff,#8d79e9);color:#fff}.ai-card .eyebrow{color:#d9d5ff}.ai-card p{color:#e4e1ff}.btn{border:0;border-radius:8px;padding:10px 15px;cursor:pointer;font:600 13px 'DM Sans';display:inline-block}.primary{background:var(--purple);color:#fff}.light{background:#fff;color:var(--purple)}.small{padding:7px 10px;background:#f1f0ff;color:var(--purple)}.full{width:100%;text-align:center}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px 12px;border-bottom:1px solid var(--line)}th{font-size:11px;text-transform:uppercase;color:#9997a7;letter-spacing:.7px}.course-grid,.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.course-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.course-cover{color:#fff;min-height:130px;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.course-cover span{font-size:12px;opacity:.8}.course-cover b{font:600 22px 'Space Grotesk'}.course-body{padding:18px}.meta{display:flex;justify-content:space-between}.course-links{display:flex;gap:15px;margin-top:18px;font-size:12px}.exam-card{min-height:200px}.result{text-align:center;padding:60px}.score,.big-gpa{font:700 52px 'Space Grotesk';color:var(--purple)}.result-hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.big-gpa small{display:block;font:12px 'DM Sans';color:var(--muted)}fieldset{border:0;border-top:1px solid var(--line);padding:22px 0;margin:0}legend{font-weight:700;margin-bottom:12px}.option{display:block;background:#fafaff;border:1px solid var(--line);padding:12px;border-radius:8px;margin:8px 0;cursor:pointer}.option:hover{border-color:var(--purple)}.option input{margin-right:10px}.chat-layout{max-width:800px}.chat{padding:0;overflow:hidden}.chat-head,.chat-input{padding:16px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.chat-body{padding:20px;min-height:300px}.message{display:flex;gap:10px;margin-bottom:18px}.message p{margin:5px 0}.message small{color:#aaa}.chat-input{border:0;border-top:1px solid var(--line)}.chat-input input,.auth input,textarea{border:1px solid var(--line);border-radius:8px;padding:12px;font:inherit;width:100%;outline:none}.chat-input input:focus,textarea:focus,input:focus{border-color:var(--purple)}.ai-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}.ai-orb{font-size:70px;color:var(--purple);margin-bottom:20px}.subject-pills span{display:inline-block;background:#eeedff;color:var(--purple);padding:7px 10px;border-radius:20px;margin:4px;font-size:12px}.ai-chat textarea{min-height:150px;resize:vertical;margin-bottom:12px}.ai-answer{background:#f1f0ff;border-radius:10px;padding:14px;margin-bottom:15px;line-height:1.6}.calculator{max-width:370px}.calculator #calc-display{background:#27253c;color:#fff;text-align:right;padding:20px;font:28px 'Space Grotesk';border-radius:9px;margin-bottom:14px;min-height:70px}.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.key{border:0;border-radius:8px;padding:15px;background:#f1f0f6;font-size:16px;cursor:pointer}.key:hover{background:#e3e1f2}.key.operator{color:var(--purple);font-weight:700}.auth{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#f8f8fc,#eeedff)}.auth-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:40px;width:min(420px,92%);box-shadow:0 20px 60px #4b438b18}.centered{justify-content:center;margin-bottom:30px}.auth-card h1{margin-top:8px}.auth-card label{display:block;font-weight:600;margin:20px 0}.auth-card input{display:block;margin-top:7px}.google{border:1px solid var(--line);color:var(--ink);text-align:center;background:#fff;margin-top:13px}.divider{text-align:center;color:#aaa;font-size:12px;margin:24px 0 0}.demo{text-align:center;background:#fafaff;padding:10px;color:#777;font-size:11px;margin-top:20px}.flash{padding:12px 16px;border-radius:8px;background:#e5faf2;color:#168866;margin-bottom:18px}.flash.error{background:#ffe8ed;color:#cc4d69}.flash.info{background:#eeedff;color:#635bff}.menu{display:none}
dialog{border:0;border-radius:12px;padding:25px;box-shadow:0 10px 60px #0003}dialog textarea{margin:15px 0;min-height:120px}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0;padding:20px}.menu{display:block;border:0;background:none;font-size:22px;margin-right:12px}.stats{grid-template-columns:repeat(2,1fr)}.two,.course-grid,.ai-layout{grid-template-columns:1fr}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.welcome{padding:20px}.welcome-art{font-size:50px}.course-links{gap:7px;font-size:11px}.result-hero{display:block}.top-actions{gap:8px}}
