:root{--bg: #0f0f10;--surface: #1b1b1e;--surface-2: #26262a;--text: #f4f2ee;--muted: #9a978f;--accent: #e8b04a;--accent-text: #1a1408;--positive: #3fbf7f;--negative: #e5534b;--radius: 18px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}h1{font-size:clamp(1.8rem,4vw,3rem);margin:.3em 0}h2{font-size:1.2rem;margin:1.2em 0 .5em;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--negative);font-weight:600}.screen{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:24px;gap:20px}.brand{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;color:var(--accent);align-self:stretch}.offline{position:fixed;top:0;left:0;right:0;background:var(--negative);color:#fff;text-align:center;padding:6px;z-index:10}footer{margin-top:auto}.card{background:var(--surface);border-radius:var(--radius);padding:32px;width:min(720px,100%);display:flex;flex-direction:column;gap:16px;margin:auto 0}.card.center{align-items:center;text-align:center}.card.ok{box-shadow:0 0 0 2px var(--positive) inset}.card.bad{box-shadow:0 0 0 2px var(--negative) inset}.check{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;font-size:48px;background:var(--positive);color:#fff}.card.bad .check{background:var(--negative)}.big-text{font-size:1.4rem;margin:0}.car-big{font-size:clamp(3rem,10vw,6rem);font-weight:800;color:var(--accent);line-height:1}label{display:flex;flex-direction:column;gap:8px;font-weight:600}input,select,textarea{font:inherit;font-size:1.3rem;padding:14px 16px;border-radius:12px;border:1px solid var(--surface-2);background:var(--bg);color:var(--text);-webkit-user-select:text;user-select:text}textarea{font-size:1rem}.btn{font:inherit;font-size:1.05rem;font-weight:600;padding:12px 20px;border-radius:12px;border:0;background:var(--surface-2);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center}.btn small{font-weight:400;color:var(--muted)}.btn.primary{background:var(--accent);color:var(--accent-text)}.btn.ghost{background:transparent;color:var(--muted)}.btn.big{font-size:1.4rem;padding:22px 28px}.btn.small{font-size:.9rem;padding:8px 12px}.btn.positive{background:var(--positive);color:#fff}.btn.negative{background:var(--negative);color:#fff}.btn:disabled{opacity:.4}.row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;width:100%}.band-icon{width:140px;height:140px}.band-icon .ring{fill:none;stroke:var(--accent);stroke-width:3;opacity:.35;animation:pulse 1.6s ease-in-out infinite;transform-origin:center}.band-icon .waves{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round}@keyframes pulse{50%{transform:scale(.9);opacity:.8}}.sim{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;padding:10px;border:1px dashed var(--surface-2);border-radius:12px}.nfc-gate{display:flex;flex-direction:column;align-items:center;gap:8px}.dashboard{align-items:stretch}.dash-head{display:flex;justify-content:space-between;align-items:baseline}.stats{display:flex;gap:28px;font-size:1.2rem;color:var(--muted)}.stats b{color:var(--text);font-size:2rem}.dash-body{display:grid;grid-template-columns:1fr 320px;gap:24px;flex:1}.cars{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;align-content:start}.car-card{background:var(--surface);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:6px;border-left:6px solid var(--surface-2);transition:border-color .3s}.car-card.busy{border-left-color:var(--accent)}.car-label{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.driver{font-size:1.6rem;font-weight:700}.badge{align-self:flex-start;font-size:.8rem;padding:4px 10px;border-radius:99px;background:var(--surface-2)}.badge.ok{background:color-mix(in srgb,var(--positive) 25%,transparent);color:var(--positive)}.badge.fail{background:color-mix(in srgb,var(--negative) 25%,transparent);color:var(--negative)}.side{background:var(--surface);border-radius:var(--radius);padding:20px;overflow:hidden}.side ul,.card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.log li{font-size:.95rem}@media(max-width:900px){.dash-body{grid-template-columns:1fr}}
