:root{--bg:#0b0f14;--panel:#111827;--text:#e5e7eb;--muted:#9ca3af;--border:#1f2937;--accent:#7c3aed;--danger:#ef4444;--success:#22c55e;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:linear-gradient(180deg,#070a0f, #0b0f14);color:var(--text)}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:980px;margin:0 auto;padding:16px}
.topbar{position:sticky;top:0;background:rgba(17,24,39,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand a{font-weight:700;letter-spacing:.3px}
.nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.nav-user{color:var(--muted)}
.nav-sep{color:var(--border)}
.card{background:rgba(17,24,39,.85);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.col-6{grid-column:span 6}
.col-12{grid-column:span 12}
@media(max-width:860px){.col-6{grid-column:span 12}}
.h1{font-size:28px;margin:8px 0 12px}
.h2{font-size:18px;margin:8px 0 12px;color:#f3f4f6}
.p{color:var(--muted);margin:0 0 12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);background:rgba(124,58,237,.18);color:#f5f3ff;padding:10px 14px;border-radius:12px;cursor:pointer}
.btn:hover{background:rgba(124,58,237,.28);text-decoration:none}
.btn-secondary{background:rgba(255,255,255,.06)}
.btn-secondary:hover{background:rgba(255,255,255,.10)}
.btn-danger{background:rgba(239,68,68,.15)}
.btn-danger:hover{background:rgba(239,68,68,.25)}
.btn-small{padding:7px 10px;border-radius:10px;font-size:13px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:12px;border:1px solid var(--border)}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left}
.table th{background:rgba(255,255,255,.04);color:#f3f4f6;font-weight:600}
.table tr:last-child td{border-bottom:none}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--border);color:#f3f4f6;font-size:12px}
.form{display:grid;gap:10px}
.input, select{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:rgba(0,0,0,.25);color:var(--text);outline:none}
.input:focus, select:focus{border-color:rgba(124,58,237,.65)}
.label{font-size:13px;color:var(--muted)}
.alert{padding:10px 12px;border-radius:12px;border:1px solid var(--border);margin:12px 0}
.alert-error{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.35)}
.alert-success{background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.35)}
.footer{margin-top:24px;border-top:1px solid var(--border);color:var(--muted)}
.kpi{display:flex;gap:14px;flex-wrap:wrap}
.kpi .box{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.04)}
.small{color:var(--muted);font-size:13px}
.body-map{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;align-items:flex-start;margin-top:16px}
.body-map-panel{flex:1;min-width:260px;max-width:320px;text-align:center}
.body-map-panel .label{margin-bottom:10px;display:block;color:var(--muted)}
.body-map svg{width:100%;height:auto;overflow:visible}
.body-map .area{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.16);stroke-width:1}
.body-map .highlighted{fill:rgba(124,58,237,.45);stroke:rgba(124,58,237,.7)}
.body-map .cardio-overlay{fill:rgba(124,58,237,.14);stroke:rgba(124,58,237,.4);stroke-width:2;stroke-dasharray:4 3}
.body-map-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.body-map-legend .badge{background:rgba(255,255,255,.08);border-color:rgba(124,58,237,.6);}
.ai-body-map-image{width:100%;max-width:900px;border-radius:16px;border:1px solid var(--border);display:block;margin:0 auto;}
.ai-collapsible{padding:0}
.ai-collapsible-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:18px}
.ai-collapsible-summary::-webkit-details-marker{display:none}
.ai-collapsible[open]{padding:18px}
.ai-collapsible[open] .ai-collapsible-summary{padding:0}
.ai-collapsible-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.06);font-weight:700}
.ai-collapsible[open] .plus{display:none}
.ai-collapsible:not([open]) .minus{display:none}
.body-map-key-panel{border:1px solid var(--border);background:rgba(255,255,255,.05);border-radius:12px;padding:12px;margin-bottom:14px}
.body-map-colour-key{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px}
.body-map-key-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#f3f4f6;padding:5px 8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(0,0,0,.14)}
.body-map-key-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.35);display:inline-block}
