:root{--bg:#0b1220;--card:#111b2e;--ink:#eaf1ff;--mut:#8da2c4;--line:#22314d;--acc:#38bdf8;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,Arial,sans-serif;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer}
.muted{color:var(--mut)}
.logo{font-weight:900;font-size:1.6rem;letter-spacing:.3px}.logo i{font-style:normal;background:var(--acc);color:#06222f;border-radius:9px;padding:0 9px;margin-right:6px}

/* kezdőlap */
.home{max-width:520px;margin:auto;padding:28px 18px}
.home h1{margin:.4em 0 .1em}
.home .box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin-top:16px}
.field{width:100%;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);background:#0c1626;color:var(--ink);font:inherit;font-size:1rem}
.btn{display:block;width:100%;padding:14px;border-radius:14px;border:0;background:var(--acc);color:#06222f;font-weight:800;font-size:1.05rem;margin-top:10px}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink);font-weight:600}
.btn.small{display:inline-block;width:auto;padding:9px 14px;margin:0;font-size:.95rem}
label.l{display:block;margin:12px 0 4px;color:var(--mut);font-size:.85rem}

/* szoba */
#map{position:fixed;inset:0}
.top{position:fixed;left:8px;right:8px;top:8px;display:flex;gap:6px;align-items:center;z-index:500;flex-wrap:wrap}
.pill{background:#0b1220e6;border:1px solid var(--line);border-radius:999px;padding:6px 11px;backdrop-filter:blur(6px);font-weight:700;font-size:.82rem;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill.btn2{cursor:pointer}.pill.on{background:var(--acc);color:#06222f;border-color:var(--acc)}
.panel{position:fixed;left:8px;right:8px;bottom:8px;z-index:500;display:flex;flex-direction:column;gap:5px;max-height:44vh;overflow:auto}
body.nopanel .panel{display:none}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:5px}
.card{background:#0b1220ee;border:1px solid var(--line);border-radius:12px;padding:6px 9px;backdrop-filter:blur(6px);font-size:.8rem;line-height:1.3}
.card .nm{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.88rem}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.card .l2{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:1px}
.card .spd{font-size:1.55rem;font-weight:900;line-height:1.05}.card .spd small{font-size:.7rem;font-weight:600;color:var(--mut);margin-left:2px}
.card .l3{margin-top:1px}
.card.stale{opacity:.55}
.card{cursor:pointer}
canvas.spark{width:100%;height:28px;display:none;margin-top:3px}
.card.open canvas.spark{display:block}
.gap{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;cursor:default}
.gap b{font-size:1rem}
.banner{border-radius:12px;padding:7px 11px;font-weight:700;font-size:.85rem}
.banner.warn{background:#4a3a0a;border:1px solid var(--warn);color:#ffe9a8}
.banner.bad{background:#4a1414;border:1px solid var(--bad);color:#ffd0d0}
.banner.msg{background:#0d3a52;border:1px solid var(--acc)}
.quick{display:flex;gap:5px;flex-wrap:wrap}
.quick button{background:#0b1220ee;border:1px solid var(--line);border-radius:10px;padding:6px 9px;font-weight:600;font-size:.8rem}
.sheet{position:fixed;inset:0;background:#000a;z-index:900;display:flex;align-items:flex-end}
.sheet .in{background:var(--card);border-radius:20px 20px 0 0;padding:18px;width:100%;max-width:560px;margin:auto;max-height:80vh;overflow:auto}
.sugg button{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:11px 4px;color:var(--ink)}
.car{width:24px;height:24px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #000a;display:flex;align-items:center;justify-content:center;font-size:11px;color:#06222f;font-weight:900}
.carlbl{position:absolute;left:28px;top:-3px;background:#0b1220e6;border:1px solid var(--line);border-radius:8px;padding:1px 6px;font-size:.75rem;font-weight:700;white-space:nowrap;color:#fff}
.mini{background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--mut);padding:0 7px;font-size:.75rem;line-height:1.5}
.leaflet-container{background:#0d1626}

/* széles kijelző (pl. a Tesla böngészője): oldalsáv, így a térkép szabad marad */
@media (min-width:620px){
  .panel{top:50px;left:auto;right:8px;bottom:8px;width:300px;max-height:none}
  body:not(.nopanel) #map{right:316px}
  .cards{grid-template-columns:1fr}
}
#map.dark .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.8)}
.installbar{position:fixed;left:8px;right:8px;top:52px;z-index:1500;background:var(--card);color:var(--ink);border-radius:14px;padding:9px 12px;box-shadow:0 8px 30px #0008;border:1.5px solid var(--acc);display:flex;gap:9px;align-items:center;max-width:560px;margin:auto}
.installbar .tx{flex:1;font-size:.85rem}
.installbar .ib{background:transparent;border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-weight:700;font-size:.85rem}
.installbar .ib.go{background:var(--acc);color:#06222f;border-color:var(--acc)}
