 :root {
  color-scheme: dark;
  --bg: #07111d; --bg2: #0b1f33; --card: rgba(9,22,37,.82); --card-soft: rgba(255,255,255,.06);
  --text: #eaf2ff; --muted: #99b2ce; --accent: #57d3ff; --accent2: #66ffbf; --line: rgba(255,255,255,.1);
  --shadow: 0 18px 48px rgba(0,0,0,.32); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box} html,body{min-height:100%;margin:0} body{color:var(--text);background:radial-gradient(circle at top left,rgba(87,211,255,.16),transparent 30%),linear-gradient(160deg,var(--bg),var(--bg2));}
.app-shell{width:min(760px,calc(100vw - 24px));margin:12px auto 92px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}.card-soft{background:var(--card-soft);border:1px solid var(--line);border-radius:18px}.panel{padding:16px;margin-bottom:12px}
.topbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 16px;margin-bottom:12px}.topbar h1{font-size:1.45rem;margin:8px 0 4px}.subtitle{color:var(--muted);line-height:1.35;margin:0}.score-card{width:98px;height:98px;border-radius:22px;background:linear-gradient(145deg,rgba(87,211,255,.16),rgba(102,255,191,.10));border:1px solid var(--line);display:grid;place-items:center;text-align:center;padding:10px}.score-card strong{font-size:2rem;line-height:1}.score-card span,.score-card small{color:var(--muted);font-size:.76rem}
h1,h2,h3,p{margin-top:0} h2{font-size:1.25rem;margin-bottom:6px} h3{margin-bottom:6px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pill,.tiny{border:1px solid var(--line);background:rgba(255,255,255,.04);padding:6px 10px;border-radius:999px;color:var(--muted);font-size:.78rem}.pill{color:var(--accent2);display:inline-block}.eyebrow{margin:0 0 7px;color:var(--accent2);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}
button,input,select{font:inherit}button{border:0;border-radius:14px;padding:11px 13px;cursor:pointer}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#042032;font-weight:800}.secondary,.ghost{background:rgba(255,255,255,.055);color:var(--text);border:1px solid var(--line)}input,select{width:100%;margin-top:6px;margin-bottom:12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.055);color:var(--text);padding:12px 14px}select option{background:#0b1f33}.auth__grid{display:grid;gap:10px}.personal-card,.progress-block{padding:14px;margin-top:12px}.progress-block{display:grid;gap:10px}.progress-block span{display:block;color:var(--muted);font-size:.84rem}.progress{height:10px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid var(--line)}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:inherit}
.missions,.roles,.badges,.roster{display:grid;gap:10px}.mission,.role,.badge,.crew-card{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:18px;padding:13px}.mission--done{border-color:rgba(102,255,191,.42)}.mission p,.role p,.crew-card p,.badge p{color:var(--muted);line-height:1.42}.mission__footer,.role__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.xp{color:var(--accent2);font-weight:800}.role--muted{opacity:.72}.badge{display:flex;gap:12px;align-items:center}.badge--locked,.crew-card--muted{opacity:.48}.badge__icon{font-size:1.35rem}.briefing{color:var(--muted);line-height:1.55;padding-left:22px}.role__bonus{display:grid;gap:8px;margin-top:12px}.role__bonus .mission{box-shadow:none;background:rgba(0,0,0,.08)}
.bottom-nav{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);width:min(760px,calc(100vw - 24px));display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;border:1px solid var(--line);border-radius:24px;background:rgba(7,17,29,.92);backdrop-filter:blur(18px);box-shadow:var(--shadow);z-index:10}.bottom-nav button{display:grid;gap:2px;place-items:center;background:transparent;color:var(--muted);padding:8px 4px}.bottom-nav button.active{background:rgba(87,211,255,.14);color:var(--text)}.bottom-nav span{font-size:.72rem}.settings-fab{position:fixed;right:14px;top:14px;z-index:11;padding:9px 10px}
.module-dialog::backdrop,.settings::backdrop{background:rgba(3,8,14,.72)}.module-dialog,.settings{border:0;background:transparent;padding:0}.module-card,.settings__card{width:min(720px,calc(100vw - 24px));max-height:88vh;overflow:auto;padding:16px}.module-content{color:var(--muted);line-height:1.5}.module-quiz fieldset{border:1px solid var(--line);border-radius:16px;margin:12px 0;padding:12px}.module-quiz legend{font-weight:800}.module-quiz label{display:block;color:var(--muted);padding:8px 0}.module-quiz input{width:auto;margin:0 8px 0 0}.settings label{display:block;color:var(--muted);margin-bottom:4px}.settings__actions{display:flex;justify-content:space-between;gap:10px}
@media(max-width:520px){.app-shell{width:calc(100vw - 18px);margin-top:8px}.topbar{grid-template-columns:1fr auto;padding:12px}.score-card{width:86px;height:86px}.topbar h1{font-size:1.2rem}.subtitle{font-size:.86rem}.panel{padding:13px}.section-head{align-items:flex-start}.bottom-nav{bottom:8px;width:calc(100vw - 16px)}}
