
:root{--bg:#04111d;--card:#07192b;--card2:#0a2035;--border:#17324a;--text:#eff7ff;--muted:#92a9ba;--accent:#18c5d9;--gold:#f6c85f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
#app{max-width:1100px;margin:auto;padding:14px 14px 92px}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:12px;align-items:center;background:rgba(4,17,29,.94);backdrop-filter:blur(14px);padding:10px 0 14px}
h1{font-size:22px;margin:2px 0}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--gold)}.muted{color:var(--muted);font-size:12px}
.import-btn,button{border:1px solid var(--border);background:var(--card2);color:var(--text);border-radius:11px;padding:10px 12px;font-weight:800}.import-btn{background:var(--accent);color:#04111d;cursor:pointer}.import-btn input{display:none}
.view{display:none}.view.active{display:block}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-head h2,.card h2{margin:0 0 10px;font-size:17px}.badge,.tag{border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:10px;color:var(--gold)}
.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.metric{background:var(--card2);border-radius:12px;padding:10px}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{font-size:20px}
.stack{display:grid;gap:8px}.team-card,.roster-card,.role-card,.module-card,.db-row{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:10px}.team-head,.row{display:flex;align-items:center;justify-content:space-between;gap:8px}.players{display:grid;gap:5px;margin-top:8px}.player{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;background:rgba(255,255,255,.025);border-radius:9px;font-size:12px}.player strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-card details{border-top:1px solid var(--border);margin-top:7px;padding-top:7px}.role-card summary{cursor:pointer;font-weight:800}.role-search{width:100%;margin:8px 0;padding:9px 10px;background:#061523;border:1px solid var(--border);color:var(--text);border-radius:9px}
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.module-card strong{display:block;font-size:14px}.module-card span{font-size:11px;color:var(--muted)}
.filters{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:10px}.filters input,.filters select{background:#061523;border:1px solid var(--border);color:var(--text);border-radius:9px;padding:10px}.db-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:6px}.db-row small{color:var(--muted)}
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));background:rgba(4,17,29,.96);border-top:1px solid var(--border)}.nav button{background:transparent;border:0;display:grid;gap:2px;justify-items:center;color:var(--muted);font-size:18px}.nav button span{font-size:10px}.nav button.active{color:var(--accent)}
.empty{padding:16px;text-align:center;color:var(--muted)}@media(min-width:760px){.metrics{grid-template-columns:repeat(4,1fr)}}
