:root {
    --navy: #06264a;
    --navy-2: #0b3765;
    --green: #42d62b;
    --ink: #101c31;
    --muted: #6b778a;
    --line: #e6ebf2;
    --surface: #ffffff;
    --bg: #f3f6fa;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--bg); }
button, input { font: inherit; }
.app-shell { max-width: 760px; min-height: 100vh; margin: 0 auto; padding: 28px 28px 110px; background: var(--bg); }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding: 8px 0 28px; }
.brand { display:flex; align-items:center; gap:12px; color:var(--navy); text-decoration:none; }
.brand-mark { width:54px; height:54px; color:#fff; background:var(--navy); border-radius:15px; display:grid; place-items:center; }
.brand-mark svg { width:43px; height:43px; }
.brand-word { font-size:27px; font-weight:850; letter-spacing:-1.2px; line-height:1; }
.brand-word > span { color:var(--green); }
.brand-word small { display:block; margin-top:7px; color:var(--muted); font-size:10px; font-weight:600; letter-spacing:0; }
.icon-button { width:44px; height:44px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--navy); display:grid; place-items:center; }
.icon-button svg { width:22px; height:22px; }
.welcome { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; min-height:170px; padding:28px 30px; border-radius:24px; color:#fff; background:linear-gradient(120deg,var(--navy),#0d4678); }
.eyebrow { margin:0 0 8px; color:var(--green); font-size:10px; font-weight:800; letter-spacing:1.4px; }
.welcome h1 { max-width:430px; margin:0; font-size:clamp(23px,4vw,32px); line-height:1.12; letter-spacing:-.8px; }
.muted { margin:10px 0 0; color:#d5e0ed; font-size:14px; }
.welcome-symbol { width:104px; flex:0 0 104px; color:#dcecff; opacity:.95; }
.welcome-symbol svg { width:100%; }
.search { display:flex; align-items:center; gap:12px; height:58px; margin:22px 0 30px; padding:0 18px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 5px 16px #0a2d5010; color:var(--navy); }
.search svg { width:22px; height:22px; flex:0 0 auto; }
.search input { width:100%; border:0; outline:0; color:var(--ink); background:transparent; font-size:14px; }
.search input::placeholder { color:#8994a5; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:14px; }
.section-heading h2 { margin:0; font-size:23px; letter-spacing:-.5px; }
.count { color:var(--muted); font-size:12px; padding-bottom:3px; }
.discipline-list { display:grid; gap:10px; }
.discipline-row { display:flex; align-items:center; gap:15px; width:100%; min-height:76px; padding:12px 16px; border:1px solid var(--line); border-radius:17px; background:var(--surface); text-align:left; box-shadow:0 4px 12px #102b4a08; cursor:pointer; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.discipline-row:hover { transform:translateY(-1px); border-color:#b8c9dc; box-shadow:0 8px 18px #102b4a10; }
.discipline-icon { display:grid; place-items:center; width:46px; height:46px; flex:0 0 46px; border-radius:13px; color:var(--navy-2); background:#edf4fc; }
.discipline-icon svg { width:27px; height:27px; }
.discipline-copy { display:flex; flex:1; flex-direction:column; gap:4px; min-width:0; }
.discipline-copy strong { color:var(--ink); font-size:15px; font-weight:750; }
.discipline-copy small { color:var(--muted); font-size:12px; }
.chevron { width:20px; height:20px; color:var(--navy); }
.bottom-nav { position:fixed; z-index:5; bottom:0; left:50%; transform:translateX(-50%); display:flex; justify-content:space-around; width:min(760px,100%); padding:12px 12px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid #dfe6ef; background:#fff; box-shadow:0 -8px 24px #102b4a0a; }
.bottom-nav a { display:flex; align-items:center; gap:5px; flex-direction:column; min-width:66px; color:#526176; font-size:10px; font-weight:650; text-decoration:none; }
.bottom-nav a span { width:24px; height:24px; }
.bottom-nav svg { width:24px; height:24px; }
.bottom-nav a.active { color:#24b91e; }
@media (max-width:520px) {
    .app-shell { padding:18px 16px 104px; }
    .topbar { padding-bottom:20px; }
    .brand-word { font-size:23px; }
    .brand-mark { width:48px; height:48px; }
    .welcome { min-height:150px; padding:22px 20px; }
    .welcome-symbol { width:76px; flex-basis:76px; }
    .discipline-row { min-height:70px; padding:10px 12px; }
}
