:root{--bg: #14161c;--surface: #1c1f28;--surface-2: #242833;--border: #333849;--text: #e7e9ee;--text-dim: #9aa0b0;--accent: #5b8def;--accent-dim: #3d5faa;--good: #4caf7d;--bad: #e0616b;--warn: #d9a441;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}#app{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;cursor:pointer}button:hover:not(:disabled){background:var(--accent-dim)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:var(--border)}button.danger{background:var(--bad)}input,select{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.auth-shell{flex:1;display:flex;align-items:center;justify-content:center}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:2rem;width:320px}.auth-card h1{margin-top:0;font-size:1.4rem}.auth-card form{display:flex;flex-direction:column;gap:.75rem}.auth-card .switch{margin-top:1rem;font-size:.9rem;color:var(--text-dim)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.topbar .brand{font-weight:700;letter-spacing:.02em}.topbar .who{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--text-dim)}nav.tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}nav.tabs button{background:transparent;border:1px solid transparent;color:var(--text-dim);border-radius:6px}nav.tabs button.active{background:var(--surface-2);color:var(--text);border-color:var(--border)}main{flex:1;padding:1.25rem;max-width:1100px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}.card h2{margin-top:0;font-size:1.1rem}.card h3{font-size:1rem;margin-bottom:.5rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-weight:600}.stat{display:flex;flex-direction:column;gap:.15rem}.stat .label{font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.stat .value{font-size:1.1rem;font-variant-numeric:tabular-nums}.banner{padding:.6rem .9rem;border-radius:6px;margin-bottom:.75rem;font-size:.92rem}.banner-error{background:#e0616b26;border:1px solid var(--bad);color:#ffb3b8}.banner-success{background:#4caf7d26;border:1px solid var(--good);color:#a6e6c6}.banner-info{background:#5b8def26;border:1px solid var(--accent);color:#bcd2ff}.loading{color:var(--text-dim);padding:1rem 0}.pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim)}.pill.good{border-color:var(--good);color:#a6e6c6}.pill.bad{border-color:var(--bad);color:#ffb3b8}.muted{color:var(--text-dim)}.log{max-height:220px;overflow-y:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:.85rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}form.inline{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.bar-row{display:flex;align-items:center;gap:.6rem}.bar{flex:1;height:10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.bar-fill{height:100%;border-radius:999px}.bar-fill.xp{background:var(--accent)}.bar-fill.hp-player{background:var(--good)}.bar-fill.hp-enemy{background:var(--bad)}.bar-row .bar-label{flex:none;font-size:.8rem;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.result-heading{margin:0 0 .5rem;font-size:1.3rem;font-weight:700;text-transform:capitalize}.result-heading.good{color:var(--good)}.result-heading.bad{color:var(--bad)}
