:root{
  color-scheme:dark;
  --bg:#071114;
  --panel:#0d1b20;
  --line:rgba(255,255,255,.11);
  --text:#effbf7;
  --muted:#9fb6af;
  --green:#2dd58f;
  --blue:#67b7ff;
  --warn:#ffc857;
  --bad:#ff6b6b;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(45,213,143,.18),transparent 34%),var(--bg);color:var(--text)}
button,input,select{font:inherit}
button{border:1px solid var(--line);background:#12252b;color:var(--text);border-radius:12px;padding:10px 12px;cursor:pointer}
button.primary{background:linear-gradient(135deg,#1ebd7b,#257ee8);border-color:transparent;font-weight:800}
input,select{width:100%;border:1px solid var(--line);background:#09161a;color:var(--text);border-radius:12px;padding:11px 12px;outline:none}
label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}
.shell{min-height:100vh;padding:20px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 auto 18px;max-width:1180px}
.topbar strong{display:block;font-size:22px}.topbar span{color:var(--muted);font-size:13px}.topbar input{max-width:380px}
.layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:18px;max-width:1180px;margin:0 auto}
.routes,.detail{border:1px solid var(--line);background:rgba(13,27,32,.78);backdrop-filter:blur(18px);border-radius:20px;padding:16px;min-height:72vh}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-head.compact{align-items:center;margin-bottom:10px}
.section-head.compact button{padding:8px 10px;border-radius:10px;font-size:12px}
h1,h2,h3{margin:0}h1{font-size:22px}h2{font-size:26px}h3{font-size:16px}
.routes-list{display:grid;gap:10px}
.route-card{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:16px;padding:14px;text-align:left;width:100%}
.route-card.is-active{border-color:rgba(45,213,143,.7);box-shadow:0 0 0 1px rgba(45,213,143,.26) inset}
.route-title{font-weight:850;margin-bottom:6px}.muted{color:var(--muted)}.small{font-size:12px}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:12px;color:#d9f4eb;background:rgba(255,255,255,.05)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}
.brand{display:flex;gap:10px;align-items:center}.avatar{width:44px;height:44px;border-radius:50%;background:#153139;display:grid;place-items:center;font-weight:900}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.quote-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:rgba(255,255,255,.04)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.fare{font-size:34px;font-weight:900;margin:8px 0}.status{min-height:22px;color:var(--muted);font-size:13px}.ok{color:var(--green)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.ticket{margin-top:14px;border:1px solid rgba(45,213,143,.45);border-radius:18px;padding:16px;background:rgba(45,213,143,.08)}
.ticket.success{background:linear-gradient(155deg,rgba(45,213,143,.16),rgba(103,183,255,.08));box-shadow:0 18px 40px rgba(0,0,0,.2)}
.ticket-code{font-size:24px;font-weight:950;letter-spacing:.08em}
.seat-panel{margin-top:14px;border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.035)}
.seat-map-box{min-height:112px}
.seat-map-head{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:10px}
.seat-map{display:grid;gap:8px}
.seat-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:center}
.row-label{color:var(--muted);font-size:11px;font-weight:800}
.seat-row-grid{display:flex;gap:8px;flex-wrap:wrap}
.seat-chip{width:44px;height:38px;display:inline-grid;place-items:center;padding:0;border-radius:12px;border-color:rgba(45,213,143,.28);background:rgba(45,213,143,.10);font-size:12px;font-weight:900}
.seat-chip.is-selected{border-color:rgba(103,183,255,.9);box-shadow:0 0 0 3px rgba(103,183,255,.18)}
.seat-chip.is-occupied{border-color:rgba(255,107,107,.35);background:rgba(255,107,107,.14);color:#ffd8d8}
.seat-chip.is-driver,.seat-chip.is-bathroom,.seat-chip.is-service_station,.seat-chip.is-door,.seat-chip.is-luggage,.seat-chip.is-facility{border-color:rgba(255,200,87,.28);background:rgba(255,200,87,.12);color:#ffe9a8}
.seat-chip:disabled{cursor:not-allowed;opacity:.78}
.seat-note{border:1px dashed var(--line);border-radius:14px;padding:12px;color:var(--muted);background:rgba(255,255,255,.035)}
.advice{margin-top:12px;border:1px solid rgba(45,213,143,.28);border-radius:16px;padding:12px;background:rgba(45,213,143,.08);display:grid;gap:5px}
.advice b,.advice strong{color:var(--text)}
.advice span{color:var(--muted);font-size:13px}
.advice.warn{border-color:rgba(255,200,87,.36);background:rgba(255,200,87,.10)}
.empty{height:100%;display:grid;place-items:center;color:var(--muted);text-align:center}
@media(max-width:900px){.shell{padding:12px}.topbar{display:grid}.topbar input{max-width:none}.layout{grid-template-columns:1fr}.routes,.detail{min-height:auto}.hero{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.seat-row{grid-template-columns:1fr}.row-label{font-size:12px}}
