/* Lardi-біржа — доступна тема (темна + висока контрастність) */
:root{
    --bg:#0f1522; --bg2:#182033; --bg3:#1f2a40;
    --text:#e8ecf4; --muted:#9aa7bd; --border:#2a3550;
    --accent:#3fd0c9; --accent-soft:#123c3a; --amber:#ffb454;
    --ok:#4cc38a; --err:#ff6b6b; --warn:#ffd166; --focus:#ffd166;
    --radius:10px; --shadow:0 2px 10px rgba(0,0,0,.35);
}
html[data-theme="high-contrast"]{
    --bg:#000; --bg2:#000; --bg3:#000;
    --text:#fff; --muted:#fff; --border:#fff;
    --accent:#ffff00; --accent-soft:#000; --amber:#ffff00;
    --ok:#7cfc00; --err:#ff3b3b; --warn:#ffff00; --focus:#ffff00;
    --radius:6px;
}
*{box-sizing:border-box}
html{font-size:19px}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;line-height:1.6}
a{color:var(--accent)}
a:hover,a:focus{color:var(--amber)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--amber);color:#000;padding:10px 16px;z-index:99;font-weight:700}
.skip-link:focus{left:8px;top:8px}
.container{max-width:1000px;margin:0 auto;padding:0 16px}
header[role="banner"]{border-bottom:1px solid var(--border);background:var(--bg2)}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;gap:12px}
.topbar .who{color:var(--muted);font-size:.95rem}
.site-title{font-size:1.6rem;margin:12px 0}
.site-title a{color:var(--text);text-decoration:none}
nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0 0 8px}
nav ul li a{display:inline-block;padding:10px 14px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:600}
nav ul li a:hover{background:var(--bg3)}
nav ul li a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);outline:2px solid var(--accent)}
.firm-bar{background:var(--bg3);padding:10px 16px;margin:0 0 4px;font-size:1.02rem;border-top:1px solid var(--border)}
main{padding:20px 16px 48px}
h1{font-size:1.7rem}
h2{font-size:1.35rem}
h3{font-size:1.15rem}
p.lead{font-size:1.15rem;color:var(--muted)}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin:0 0 14px;box-shadow:var(--shadow)}
.card-title{margin:0 0 6px}
.card-title a{text-decoration:none}
.route-pair{color:var(--accent);font-weight:700;margin:2px 0}
.route-pair .muted{color:var(--muted);font-weight:400}
.route{font-size:1.08rem}
.owner{color:var(--muted);margin-top:4px}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.badge{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:3px 12px;font-size:.92rem;font-weight:700}
.btn{display:inline-block;background:var(--accent);color:#001;border:2px solid var(--accent);border-radius:var(--radius);padding:12px 22px;font-size:1.05rem;font-weight:700;text-decoration:none;cursor:pointer;min-height:48px}
.btn:hover{background:var(--amber);border-color:var(--amber)}
.btn.big{padding:16px 30px;font-size:1.2rem}
.btn.secondary{background:transparent;color:var(--accent);border-color:var(--border)}
.btn.danger{background:var(--err);border-color:var(--err);color:#000}
button.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:20px;padding:8px 14px;cursor:pointer;font-size:.95rem}
form fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 18px;padding:14px 16px 16px}
legend{font-weight:700;padding:0 8px;color:var(--accent)}
label{display:block;margin:10px 0 4px;font-weight:600}
input,select,textarea{width:100%;max-width:100%;background:var(--bg3);color:var(--text);border:2px solid var(--border);border-radius:8px;padding:12px 14px;font-size:1.05rem;min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
input[type="checkbox"],input[type="radio"]{width:auto;min-height:24px;min-width:24px;height:24px;margin:0;accent-color:var(--accent);vertical-align:middle}
label.check{display:flex;align-items:center;gap:10px;font-weight:400;margin:8px 0}
label.check input{margin:0}
/* Список-листбокс областей/кузова (role=listbox): вибране піднімається нагору */
.lb-label{display:block;font-weight:600;margin:10px 0 4px}
.lb{border:2px solid var(--border);border-radius:8px;max-height:230px;overflow-y:auto;background:var(--bg3);padding:6px;min-height:48px}
.lb:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.lb-opt{padding:9px 12px;border-radius:6px;cursor:pointer;min-height:44px;border:1px solid transparent}
.lb-opt[aria-selected="true"]{background:var(--accent-soft);color:var(--accent);font-weight:700;border-color:var(--accent)}
.lb-opt[aria-selected="false"]:hover{background:var(--bg2)}
.lb-status{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.hint{color:var(--muted);font-size:.95rem;margin-top:4px}
.flash{border-radius:var(--radius);padding:14px 18px;margin:0 0 18px;font-weight:600;border:2px solid}
.flash-ok{background:rgba(76,195,138,.12);border-color:var(--ok);color:var(--ok)}
.flash-err{background:rgba(255,107,107,.12);border-color:var(--err);color:var(--err)}
.flash-warn{background:rgba(255,209,102,.12);border-color:var(--warn);color:var(--warn)}
.error-box{background:rgba(255,107,107,.1);border:2px solid var(--err);border-radius:var(--radius);padding:16px 18px;margin:0 0 20px}
.result-count{font-size:1.15rem;font-weight:700;margin:6px 0 16px}
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 14px;background:rgba(255,255,255,.04);border:2px solid var(--border);border-radius:var(--radius)}
.toolbar .sel-count{font-weight:700}
.toolbar .btn{padding:9px 14px;min-height:42px;font-size:.98rem}
label.check.sel-box-wrap{border-bottom:1px dashed var(--border);padding-bottom:8px;margin-bottom:8px}
.sel-box{width:22px;height:22px}
.pagination{margin:20px 0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.page-info{color:var(--muted)}
ul.list{list-style:none;margin:0;padding:0}
ul.phones{list-style:none;margin:6px 0;padding:0}
ul.phones li{margin:6px 0;font-size:1.1rem}
.detail dt{font-weight:700;color:var(--muted);margin-top:14px}
.detail dd{margin:2px 0 0}
pre{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;font-size:.9rem;white-space:pre-wrap;word-break:break-word}
footer[role="contentinfo"]{border-top:1px solid var(--border);padding:20px 16px;color:var(--muted);font-size:.95rem}
.login-body{display:flex;min-height:100vh;align-items:center}
.login-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
ol.route-parts{list-style:decimal;margin:8px 0 0;padding-left:24px;line-height:1.9}
ol.route-parts li{margin:4px 0}
.debug-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);padding:14px 16px;margin:20px 0}
@media (max-width:640px){.row2,.grid{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}
