
@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{
  --bg:#f6f7fb;--surface:#fff;--surface2:#f9f9fc;--ink:#11121a;--muted:#687083;
  --line:#e9eaf0;--purple:#6d5dfc;--purple2:#9a8cff;--purple3:#eeeaff;
  --dark:#17152b;--green:#16b364;--orange:#f79009;--red:#f04438;
  --shadow:0 18px 55px rgba(26,24,61,.08);--shadow2:0 8px 25px rgba(26,24,61,.07);
  --radius:22px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}

/* NAV */
.top{height:78px;background:rgba(255,255,255,.84);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(231,232,239,.8);position:sticky;top:0;z-index:50}
.top>.wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;font:700 22px "Space Grotesk",sans-serif;letter-spacing:-.04em}
.mark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:white;background:linear-gradient(135deg,#5f4ff4,#9b8cff);box-shadow:0 9px 25px rgba(109,93,252,.28)}
.links{display:flex;align-items:center;gap:26px;color:#687083;font-size:13px;font-weight:700}
.links a{position:relative;padding:30px 0}
.links a:after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:2px;border-radius:99px;background:var(--purple);transition:.2s}
.links a:hover{color:var(--ink)}.links a:hover:after{right:0}
.actions{display:flex;gap:9px;align-items:center}

/* BUTTONS */
.btn{border:0;border-radius:13px;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:800;cursor:pointer;transition:.2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.primary{color:#fff;background:linear-gradient(135deg,#6656f6,#8272ff);box-shadow:0 10px 25px rgba(109,93,252,.22)}
.soft{color:#5d4de8;background:var(--purple3)}
.dark{color:#fff;background:var(--dark)}
.ghost{color:#586174;background:transparent}.ghost:hover{background:#f2f3f7;transform:none}

/* HOME HERO */
.hero{position:relative;overflow:hidden;padding:88px 0 72px;background:
  radial-gradient(circle at 78% 30%,rgba(139,124,255,.17),transparent 28%),
  radial-gradient(circle at 15% 55%,rgba(109,93,252,.08),transparent 24%)}
.hero:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(109,93,252,.09);border-radius:50%;right:-190px;top:-170px}
.hero-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:70px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #ded9ff;background:rgba(238,234,255,.8);color:#5c4de3;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800}
.dot{width:7px;height:7px;border-radius:50%;background:#16b364;box-shadow:0 0 0 4px rgba(22,179,100,.12)}
h1,h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.045em;line-height:1.06}
h1{font-size:clamp(48px,6.2vw,78px);margin:20px 0 18px;max-width:720px}
h1 span{background:linear-gradient(135deg,#6656f6,#a193ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);font-size:17px;line-height:1.7;max-width:650px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:27px 0 20px}

/* DASHBOARD MOCKUP */
.mock{position:relative;padding:24px;background:linear-gradient(145deg,#17152b 0%,#2c2653 100%);border:1px solid rgba(255,255,255,.1);border-radius:30px;color:#fff;box-shadow:0 35px 90px rgba(38,31,88,.24);overflow:hidden}
.mock:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:#8e7dff20;filter:blur(15px);right:-90px;top:-100px}
.mock-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;color:#c9c3e7;font-size:11px;font-weight:700}
.avatar{width:42px;height:42px;border-radius:14px;background:#b1a5ff;color:#28204f;display:grid;place-items:center;font-weight:900}
.big{position:relative;z-index:1;padding:30px 0 24px}
.big small{font-size:11px;color:#aaa3c8}.big strong{display:block;margin-top:5px;font:700 39px "Space Grotesk"}
.mock-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.m{padding:17px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.07);border-radius:17px;backdrop-filter:blur(10px)}
.m b{display:block;font:700 19px "Space Grotesk"}.m span{display:block;margin-top:4px;color:#aaa4c1;font-size:10px}

/* SECTIONS */
.section{padding:86px 0}
.head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:30px}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:900;color:var(--purple);margin-bottom:9px}
h2{font-size:42px;margin:0}
.head>.muted{max-width:490px}
.muted{color:var(--muted);line-height:1.65}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow2);transition:.22s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.icon{width:47px;height:47px;border-radius:15px;display:grid;place-items:center;background:var(--purple3);color:#5d4de8;font-size:20px;margin-bottom:20px;box-shadow:inset 0 0 0 1px #dfd9ff}
.card h3{font-size:20px;margin:0 0 8px}.card p{color:var(--muted);font-size:13px;line-height:1.65}
.cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#6656f6,#8d7eff);color:#fff;border-radius:28px;padding:45px 48px;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:0 25px 60px rgba(109,93,252,.2)}
.cta:after{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-120px;top:-150px}
.cta>*{position:relative;z-index:1}.cta h2{margin:0 0 9px}.cta p{margin:0;color:#eeeaff;font-size:14px}

/* PUBLIC PAGES */
.page{padding:64px 0 85px;min-height:65vh}
.page h1{font-size:54px;margin:7px 0 12px}
.page-intro{max-width:740px;color:var(--muted);line-height:1.7;font-size:15px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0 17px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;color:#667083;font-size:11px;font-weight:800;cursor:pointer}
.chip:hover,.chip.active{background:var(--purple3);border-color:#dcd6ff;color:#5d4de8}
.search{display:flex;gap:9px;max-width:680px;margin:24px 0}
.input,select,textarea{width:100%;border:1px solid #e1e3ea;background:#fff;border-radius:13px;padding:13px 14px;color:var(--ink);outline:0;transition:.18s}
.input:focus,select:focus,textarea:focus{border-color:#a095ff;box-shadow:0 0 0 4px rgba(109,93,252,.09)}
label{display:block;margin:17px 0 7px;font-size:11px;font-weight:900;color:#475066}
.form{max-width:760px;margin:0 auto}
.form .card{padding:32px}
.notice{display:flex;gap:10px;padding:14px 16px;border-radius:14px;background:#fff8e8;border:1px solid #f3dfae;color:#795900;font-size:12px;line-height:1.55;margin:18px 0}
.upload{border:2px dashed #d9dbe5;background:#fafbfe;border-radius:17px;padding:31px;text-align:center;color:#667083;transition:.2s}
.upload:hover{border-color:#a79dff;background:#f7f5ff}
.pill{display:inline-flex;padding:6px 9px;border-radius:8px;background:#eafaf2;color:#087443;font-size:10px;font-weight:900}
.offer .price{font:700 29px "Space Grotesk";margin:20px 0 2px}.offer .meta{font-size:11px;color:#98a2b3}

/* PARTNER CARDS */
.partner-logo{width:58px;height:58px;border-radius:17px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:9px;margin-bottom:16px}
.list{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.list:last-child{border-bottom:0}

/* STEPS */
.steps{counter-reset:step}
.step{counter-increment:step;display:flex;gap:17px;padding:21px 0;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:0}.num{width:42px;height:42px;flex:none;border-radius:14px;background:var(--purple3);color:#5d4de8;display:grid;place-items:center;font-weight:900}.num:before{content:counter(step)}

/* FOOTER */
.footer{background:#fff;border-top:1px solid var(--line);padding:52px 0 25px}
.footgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:35px}
.footer p,.footer a{font-size:12px;color:#788195;line-height:1.85}
.footer h4{font-size:12px;margin:0 0 10px}.footer .brand{color:var(--ink)}
.bottom{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:34px;padding-top:18px;color:#98a2b3;font-size:10px}

/* STUDENT SPACE */
.dash{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 78px)}
.side{background:#fff;border-right:1px solid var(--line);padding:20px 13px;position:sticky;top:78px;height:calc(100vh - 78px)}
.side .brand{padding:8px 10px 22px}
.side a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;color:#697286;font-size:12px;font-weight:800;margin:3px 0;transition:.18s}
.side a.active,.side a:hover{background:var(--purple3);color:#5d4de8}
.main{padding:34px;max-width:1350px;width:100%}
.welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow2)}
.kpi strong{display:block;font:700 29px "Space Grotesk";margin:7px 0 2px}.kpi span{font-size:10px;color:#7d8799}
.two{display:grid;grid-template-columns:1.25fr .75fr;gap:15px;margin-top:15px}
.cardpass{position:relative;overflow:hidden;background:linear-gradient(135deg,#17152b,#342c62);border-radius:23px;padding:24px;color:#fff;min-height:205px;box-shadow:0 24px 55px rgba(36,29,78,.2)}
.cardpass:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-100px;top:-80px}
.cardpass>*{position:relative;z-index:1}.numcard{font:600 24px "Space Grotesk";letter-spacing:.09em;margin:26px 0}.small{font-size:10px;color:#aaa4c1}
.status{display:inline-flex;padding:7px 9px;border-radius:9px;font-size:9px;font-weight:900}.pending{background:#fff4e5;color:#b54708}.valid{background:#eafaf2;color:#087443}.danger{background:#feeceb;color:#b42318}
.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);font-size:11px}.table th{color:#7b8496;background:#fafbfc;font-weight:900}

/* ADMIN */
.admin{background:#11101f;color:#fff;min-height:100vh}.adminbar{height:78px;background:#17152b;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 25px}.admin .main{background:var(--bg);color:var(--ink);min-height:calc(100vh - 78px)}

/* RESPONSIVE */
@media(max-width:900px){
 .links{display:none}.hero-grid,.two{grid-template-columns:1fr}.hero{padding:62px 0}.hero-grid{gap:45px}
 .grid3{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}
 .head{display:block}.head>.muted{margin-top:16px}.dash{grid-template-columns:1fr}
 .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);display:flex;overflow:auto;gap:4px;padding:10px}
 .side .brand{display:none}.side a{white-space:nowrap}.main{padding:23px}
}
@media(max-width:560px){
 .wrap{width:min(100% - 26px,1180px)}.top{height:68px}.actions .ghost{display:none}
 h1{font-size:46px}.page h1{font-size:41px}h2{font-size:34px}
 .hero{padding:45px 0}.section{padding:62px 0}.grid4,.kpis,.footgrid{grid-template-columns:1fr}
 .cta{padding:30px;display:block}.cta .btn{margin-top:22px}.form .card{padding:22px}
 .bottom{display:block}.bottom span{display:block;margin-top:4px}.search{display:block}.search .btn{margin-top:8px;width:100%}
}

.notice b{color:inherit}.card h3 + .list{margin-top:8px}
@media(max-width:700px){.card[style*="grid-template-columns:160px"]{grid-template-columns:1fr!important}.card[style*="grid-template-columns:160px"] .partner-logo{margin:auto}}
