/* ACME-CENTRAL — „řídicí velín": petrolejová čerň, jantarové LED, mono data.
   Bez externích fontů — běží v interní síti offline. */
:root{
  --bg:#10151c; --panel:#1a222c; --panel2:#151c25; --line:#2a3644;
  --text:#d8e0e8; --dim:#7c8a99;
  --amber:#e8a33d; --ok:#3fb68b; --crit:#e25d5d;
  --mono:ui-monospace,'Cascadia Code','JetBrains Mono',Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);
  font:15px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif}
a{color:var(--amber);text-decoration:none}
.mono{font-family:var(--mono);font-size:.92em}
.small-t{font-size:.85em}

/* ---- kostra ---- */
.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
main{padding:28px 32px;max-width:1200px;min-width:0}
@media(max-width:800px){.shell{grid-template-columns:1fr}
  .rack{position:static;height:auto;flex-direction:row;flex-wrap:wrap;
  align-items:center}
  .rack nav{flex-direction:row;flex-wrap:wrap}}

/* ---- sidebar jako rack jednotka ---- */
.rack{background:var(--panel2);border-right:1px solid var(--line);
  padding:22px 18px;display:flex;flex-direction:column;gap:6px;
  position:sticky;top:0;height:100vh;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.rack::-webkit-scrollbar{width:6px}
.rack::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.unit-label{font-family:var(--mono);font-weight:700;font-size:1.15rem;
  letter-spacing:.14em;color:var(--text)}
.unit-label span{color:var(--amber)}
.unit-label.big{font-size:1.5rem}
.unit-sub{font-size:.72rem;color:var(--dim);letter-spacing:.24em;
  text-transform:uppercase;margin-bottom:22px}
.rack nav{display:flex;flex-direction:column;gap:2px;margin-bottom:auto}
.rack nav a{color:var(--dim);padding:9px 12px;border-radius:6px;
  border-left:2px solid transparent}
.rack nav a:hover{color:var(--text);background:var(--panel)}
.rack nav a.on{color:var(--text);background:var(--panel);
  border-left-color:var(--amber)}
.whoami{display:flex;gap:10px;align-items:center;padding:12px;
  border:1px solid var(--line);border-radius:8px;margin-top:18px;flex:none}
.logout,.version,.licbox,.unit-label,.unit-sub{flex:none}
.whoami small{color:var(--dim)}
.logout{margin-top:10px;font-size:.85rem;color:var(--dim);padding:4px 12px}
.logout:hover{color:var(--crit)}

/* ---- LED — signature prvek ---- */
.led{width:12px;height:12px;border-radius:50%;flex:none;
  background:var(--dim);box-shadow:0 0 0 3px color-mix(in srgb,var(--dim) 18%,transparent)}
.led.ok{background:var(--ok);box-shadow:0 0 6px var(--ok),
  0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}
.led.warn{background:var(--amber);box-shadow:0 0 7px var(--amber),
  0 0 0 3px color-mix(in srgb,var(--amber) 22%,transparent);
  animation:blink 1.6s ease-in-out infinite}
.led.crit{background:var(--crit);box-shadow:0 0 8px var(--crit),
  0 0 0 3px color-mix(in srgb,var(--crit) 25%,transparent);
  animation:blink .9s ease-in-out infinite}
.led.inline{display:inline-block;margin-right:12px;vertical-align:baseline}
@keyframes blink{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.led{animation:none!important}}

/* ---- hlavička stránky + countdown ---- */
.pagehead{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:24px;gap:16px;flex-wrap:wrap}
h1{font-size:1.35rem;font-weight:600}
h1 small{color:var(--dim);font-weight:400}
h2{font-size:.8rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.16em;margin-bottom:14px}
.back{color:var(--dim)}
.countdown{display:flex;align-items:center;gap:12px;padding:10px 18px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.countdown .num{font-family:var(--mono);font-size:2.1rem;font-weight:700}
.countdown .lbl{font-size:.7rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.1em;line-height:1.3}
.countdown.ok .num{color:var(--ok)}
.countdown.warn .num{color:var(--amber)}
.countdown.crit .num{color:var(--crit)}

/* ---- tabulky ---- */
.grid{width:100%;border-collapse:collapse;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.grid th{font-size:.72rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.12em;text-align:left;padding:12px 14px;
  border-bottom:1px solid var(--line);font-weight:600}
.grid td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.grid tbody tr:last-child td{border-bottom:none}
.rowlink{cursor:pointer}
.rowlink:hover td{background:color-mix(in srgb,var(--amber) 5%,var(--panel))}
.grid.slim td,.grid.slim th{padding:8px 12px}
.reason{display:inline-block;font-size:.78rem;padding:2px 8px;margin:1px 4px 1px 0;
  border-radius:20px;background:color-mix(in srgb,var(--amber) 14%,transparent);
  color:var(--amber)}
.reason.ok-t{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}
.ok-t{color:var(--ok)}
.bad{color:var(--crit)}
.hint{color:var(--dim);font-size:.85rem;margin-top:14px}

/* ---- karty a detail ---- */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
@media(max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:20px;margin-bottom:18px}
dl{display:grid;grid-template-columns:130px 1fr;gap:7px 14px}
dt{color:var(--dim);font-size:.85rem}
dd{overflow-wrap:anywhere}
.fp{font-size:.78em;color:var(--dim)}

/* ---- akce ---- */
.actionrow{display:flex;flex-direction:column;gap:12px}
.actionrow form{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.actionrow code{font-family:var(--mono);font-size:.78rem;color:var(--dim);
  background:var(--panel2);padding:5px 10px;border-radius:6px}
button{background:var(--amber);color:#181205;border:none;padding:9px 18px;
  border-radius:7px;font-weight:600;font-size:.9rem;cursor:pointer}
button:hover{filter:brightness(1.1)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{
  outline:2px solid var(--amber);outline-offset:2px}
button.danger{background:transparent;color:var(--crit);
  border:1px solid var(--crit)}
button.small{padding:4px 12px;font-size:.8rem}

/* ---- konzole běhu ---- */
.console{font-family:var(--mono);font-size:.82rem;background:#0b0f14;
  border:1px solid var(--line);border-radius:8px;padding:16px;margin-top:16px;
  white-space:pre-wrap;max-height:480px;overflow:auto;color:#b8c4d0}

/* ---- formuláře ---- */
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;align-items:end}
.formgrid.narrow{max-width:380px;grid-template-columns:1fr}
.formgrid label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;
  color:var(--dim)}
.formgrid label.wide{grid-column:1/-1}
.formgrid label.check{flex-direction:row;align-items:center}
input,select{background:var(--panel2);border:1px solid var(--line);
  color:var(--text);padding:9px 12px;border-radius:7px;font-size:.9rem}
.svc-edit{margin-bottom:16px}
.svc-edit button{margin-top:14px}
.svc-edit.new{border-style:dashed}
.flash{background:color-mix(in srgb,var(--amber) 15%,var(--panel));
  border:1px solid var(--amber);color:var(--amber);padding:11px 16px;
  border-radius:8px;margin-bottom:18px}

/* ---- login ---- */
.login-body{display:grid;place-items:center;min-height:100vh}
.login-box{background:var(--panel);border:1px solid var(--line);
  border-radius:12px;padding:38px;width:min(92vw,380px);
  display:flex;flex-direction:column;gap:16px}
.login-box .unit-sub{margin-bottom:8px}
.login-box label{display:flex;flex-direction:column;gap:6px;
  font-size:.85rem;color:var(--dim)}

/* ---- skripty ---- */
.script-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
@media(max-width:1000px){.script-cols{grid-template-columns:1fr}}
.code-edit{width:100%;background:#0b0f14;border:1px solid var(--line);
  border-radius:8px;color:#c8d4e0;padding:14px;font-size:.82rem;
  line-height:1.5;resize:vertical}
.savebar{display:flex;gap:12px;margin-top:12px}
.savebar input{flex:1}
.grid tr.sel td{background:color-mix(in srgb,var(--amber) 8%,var(--panel))}
.mini{font-size:.78rem;margin-right:8px}
.nowrap{white-space:nowrap}
.diffbox .d-add{color:var(--ok)}
.diffbox .d-del{color:var(--crit)}
.diffbox .d-hdr{color:var(--amber)}

/* ---- navody ---- */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.guide-card{display:block;color:var(--text);transition:border-color .15s}
.guide-card:hover{border-color:var(--amber)}
.guide-card p{color:var(--dim);font-size:.9rem;margin:10px 0}
.guide-head{display:flex;align-items:center;gap:10px}
.guide-head h2{margin:0}
.guide-steps{color:var(--amber);font-size:.85rem}
.guide-step{display:flex;gap:18px}
.step-no{font-family:var(--mono);font-size:1.4rem;font-weight:700;
  color:var(--amber);flex:none;width:36px;text-align:center;
  border-right:1px solid var(--line);padding-right:14px}
.step-body{flex:1;min-width:0}
.step-body h2{margin-bottom:8px}
.step-body pre{margin-top:10px}

/* ---- zalohy ---- */
.sched-human{font-size:1.05rem;color:var(--amber);margin-bottom:16px}
.sched-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.sched-row label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--dim)}
.sched-actions{display:flex;gap:12px;margin-top:16px}

/* ---- verze ---- */
.version{margin-top:14px;font-family:var(--mono);font-size:.72rem;
  color:var(--dim);letter-spacing:.08em;text-align:center;opacity:.7}
.login-v{margin-top:8px}

/* ---- skripty: edit/preview ---- */
.head-actions{display:flex;gap:16px;align-items:center}
.btn-link{background:var(--amber);color:#181205;padding:7px 16px;
  border-radius:7px;font-weight:600;font-size:.85rem}
.btn-link:hover{filter:brightness(1.1)}
button.secondary{background:transparent;color:var(--amber);
  border:1px solid var(--amber)}
.savebar{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.savebar input{flex:1;min-width:180px}
.cancel{display:inline-block;margin-top:10px;color:var(--dim);font-size:.85rem}
.cancel:hover{color:var(--crit)}
.preview-box{border:1px solid var(--amber);border-radius:8px;padding:14px;
  margin-bottom:16px;background:color-mix(in srgb,var(--amber) 5%,transparent)}

/* ---- filtr + strankovani ---- */
.filterbar{display:flex;gap:10px;align-items:center;margin:16px 0}
.filterbar input[type=search]{flex:1;max-width:420px}
.pager{display:flex;gap:6px;margin:16px 0;flex-wrap:wrap}
.pager a{padding:6px 12px;border:1px solid var(--line);border-radius:6px;
  color:var(--dim);font-family:var(--mono);font-size:.85rem}
.pager a:hover{border-color:var(--amber);color:var(--text)}
.pager a.on{background:var(--amber);color:#181205;border-color:var(--amber);font-weight:700}

/* ---- zamek pouziteho skriptu ---- */
.locked{color:var(--dim);font-size:.85rem;white-space:nowrap}
.locked.small{font-size:.78rem}
.usedbar{background:color-mix(in srgb,var(--amber) 12%,var(--panel));
  border:1px solid var(--amber);border-radius:8px;padding:12px 16px;
  margin-bottom:18px;font-size:.9rem}

/* ---- download tlacitko ---- */
.btn-link.ghost{background:transparent;color:var(--amber);
  border:1px solid var(--amber)}
.btn-link.ghost:hover{background:color-mix(in srgb,var(--amber) 12%,transparent);filter:none}

/* ---- sprava sluzeb: deploy blok ---- */
.deploy-block{border:1px solid var(--line);border-radius:8px;padding:14px;
  margin:14px 0;background:var(--panel2)}
.ex{color:var(--dim);font-weight:400;font-size:.78rem;font-style:italic}
.ex-help{margin-top:14px;margin-bottom:6px;font-size:.85rem}
.ex-help summary{color:var(--amber);cursor:pointer;padding:6px 0;line-height:1.5}
.ex-help summary:hover{opacity:.85}
.ex-table{margin-top:10px;border-collapse:collapse;width:100%}
.ex-table td{padding:5px 8px;border-bottom:1px solid var(--line);
  vertical-align:top;font-size:.8rem}
.ex-table td:first-child{color:var(--dim);white-space:nowrap;width:70px}

/* ---- vypnuta sluzba ---- */
.led.off{background:var(--dim);box-shadow:none;opacity:.4}

/* ---- autofill + fmc note ---- */
.autofill-row{display:flex;gap:12px;align-items:center;margin-top:10px;flex-wrap:wrap}
.fmc-note{margin-top:12px;padding:12px 16px;border:1px solid var(--amber);
  border-radius:8px;background:color-mix(in srgb,var(--amber) 8%,transparent);
  font-size:.88rem}

/* ---- zivy vystup behu ---- */
#out.console{max-height:60vh;overflow:auto}
.jobstatus{font-family:var(--mono);font-size:.9rem;padding:2px 10px;border-radius:5px}
.jobstatus.run{background:color-mix(in srgb,var(--amber) 20%,transparent);color:var(--amber)}
.jobstatus.run::before{content:"● ";animation:pulse 1s infinite}
.jobstatus.ok{background:color-mix(in srgb,#2ec16b 22%,transparent);color:#8ff0b5}
.jobstatus.err{background:color-mix(in srgb,#e5484d 22%,transparent);color:#ffb4b4}
@keyframes pulse{50%{opacity:.35}}

/* ---- PFX heslo v panelu ---- */
.pfxbox{margin-bottom:14px}
.pfxpass{display:flex;gap:12px;align-items:center;margin:10px 0}
.pfxpass code{font-size:1.1rem;padding:8px 14px;background:var(--panel2);
  border:1px solid var(--amber);border-radius:6px;letter-spacing:1px;color:var(--amber)}

/* ---- auto-obnova statusy ---- */
.amber-t{color:var(--amber)}
.dim-t{color:var(--dim)}
.small-t{font-size:.82rem}

/* ---- prehled: zarovnani a jeden radek ---- */
.grid.overview td, .grid.overview th{white-space:nowrap;vertical-align:middle}
.grid.overview td.num, .grid.overview th.num{text-align:right}
.grid.overview .nowrap{white-space:nowrap}
.grid.overview td{padding:12px 14px}

/* ---- velké číslo "dní do nejbližší expirace" ---- */
.bignum{
  display:flex; align-items:center; gap:10px;
  background:var(--panel,#161b22); border:1px solid var(--border,#30363d);
  border-radius:10px; padding:12px 18px; color:var(--dim,#8b949e);
  font-size:.85rem; line-height:1.2; text-transform:uppercase; letter-spacing:.5px;
}
.bignum .n{
  font-size:2rem; font-weight:700; color:var(--accent,#f0a500);
  letter-spacing:0;
}

/* odkazy v hlavičce detailu služby */
.headlinks{display:flex;gap:12px;align-items:center}

/* ---- badge stavů běhů ---- */
.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.8rem;
  font-weight:600;white-space:nowrap}
.badge.ok{background:rgba(63,185,80,.15);color:#3fb950;border:1px solid rgba(63,185,80,.4)}
.badge.err{background:rgba(229,72,77,.15);color:#e5484d;border:1px solid rgba(229,72,77,.4)}
.badge.run{background:rgba(240,165,0,.15);color:#f0a500;border:1px solid rgba(240,165,0,.4)}
tr.running{background:rgba(240,165,0,.06)}

/* akce u uživatele + inline změna hesla */
.useractions{display:flex;gap:8px;align-items:center}
.pwform{display:none;gap:8px;align-items:center;margin-top:8px}
.pwform input[name=new_password]{max-width:200px}

/* ---- skupiny v navigaci ---- */
.navgroup{
  font-size:.68rem; text-transform:uppercase; letter-spacing:1.2px;
  color:var(--dim,#6b7280); font-weight:600;
  margin:18px 0 6px; padding:0 2px;
}
.navgroup:first-child{margin-top:4px}
nav a{margin:1px 0}

/* ---- karty DNS providerů ---- */
.provlist{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.provcard{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:var(--bg,#0d1117);border:1px solid var(--border,#30363d);
  border-radius:10px;padding:12px 16px;
}
.provcard:hover{border-color:var(--accent,#f0a500)}
.provinfo{min-width:0;flex:1}
.provhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.provlabel{font-weight:700;font-size:1rem}
.provplugin{font-size:.82rem;color:var(--dim,#8b949e)}
.provvars{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{
  display:inline-block;padding:2px 9px;border-radius:20px;font-size:.75rem;
  background:rgba(240,165,0,.1);color:var(--accent,#f0a500);
  border:1px solid rgba(240,165,0,.25);
}
.provnovars{font-size:.8rem;color:var(--dim,#6b7280);font-style:italic}
.provnote{font-size:.8rem;color:var(--dim,#8b949e);margin-top:6px}
.provbtns{display:flex;gap:8px;flex-shrink:0;align-items:center}
@media(max-width:760px){
  .provcard{flex-direction:column;align-items:stretch}
  .provbtns{justify-content:flex-end}
}

/* výchozí provider odznak */
.chip.default-chip{
  background:rgba(63,185,80,.15);color:#3fb950;
  border-color:rgba(63,185,80,.4);font-weight:600;
}

/* ---- karty vydaných certů (stažení) ---- */
.certlist{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.certcard{display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:var(--bg,#0d1117);border:1px solid var(--border,#30363d);
  border-radius:10px;padding:12px 16px;flex-wrap:wrap}
.certcard:hover{border-color:var(--accent,#f0a500)}
.certhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.certdomain{font-weight:700;font-size:1rem}
.certmeta{font-size:.82rem;color:var(--dim,#8b949e);margin-top:4px}
.certdl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.certdl select{max-width:260px}
.certdl .pwfield{max-width:200px}

/* ---- mazání certu (potvrzení) ---- */
.delform{width:100%;margin-top:10px;background:rgba(229,72,77,.06);
  border:1px solid rgba(229,72,77,.35);border-radius:8px;padding:12px 14px}
.delwarn{font-size:.85rem;color:var(--text,#e6edf3);margin-bottom:10px}
.delused{margin-top:8px;color:#e5484d}
.delused .chip{background:rgba(229,72,77,.12);color:#e5484d;
  border-color:rgba(229,72,77,.3)}
.delconfirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.delconfirm input{max-width:280px}

/* jemný oddělovač mezi nápovědou a volbami */
.softdivider{border:none;border-top:1px solid var(--border,#30363d);
  margin:16px 0 4px;opacity:.5}
/* checkbox volby ať má trochu vzduchu */
label.check{display:flex;align-items:flex-start;gap:8px;margin:8px 0;line-height:1.5}

/* výsledek testu e-mailu */
.mailtest{margin-top:14px;padding:12px 14px;border-radius:8px;font-size:.9rem}
.mailtest.ok{background:rgba(63,185,80,.08);border:1px solid rgba(63,185,80,.35)}
.mailtest.err{background:rgba(229,72,77,.08);border:1px solid rgba(229,72,77,.35)}

/* detail certifikátu - tabulka klíč/hodnota */
table.detail{width:100%;border-collapse:collapse}
table.detail th{text-align:left;vertical-align:top;padding:8px 16px 8px 0;
  color:var(--dim,#8b949e);font-weight:500;white-space:nowrap;width:210px}
table.detail td{padding:8px 0;vertical-align:top}
table.detail td.wrap{word-break:break-all}
table.detail tr{border-bottom:1px solid rgba(255,255,255,.04)}

/* ---- licenční štítek v sidebaru ---- */
.licbox{margin:12px 0 4px;padding:8px 10px;border:1px solid var(--line);
  border-radius:8px;font-size:.78rem;line-height:1.5;color:var(--dim)}
.licbox b{color:var(--text);font-weight:600}
.licbox small{display:block;font-family:var(--mono);font-size:.72rem;
  margin-top:2px}
.licbox .led{width:9px;height:9px;margin-right:8px}

/* ---- Jak to funguje (schéma) ---- */
.arch{max-width:1100px}
.arch-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.arch-targets{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.arch-card{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:4px;min-height:92px;padding:14px 16px;border-radius:12px;
  background:var(--panel);border:1.5px solid var(--line);color:var(--text)}
.arch-card b{font-size:1.05rem}
.arch-card span{font-size:.85rem;color:var(--dim)}
.arch-card code{font-family:var(--mono);font-size:.85rem;color:#b7c0d1}
.arch-card small{font-size:.72rem;color:var(--dim)}
.arch-card.ext{border-color:#5b667a}
.arch-card.acme{border-color:var(--amber)}
.arch-card.target{border-color:#2fb8a0}
.arch-card.target.fmc,.arch-card.target.fmc-vpn{border-color:#7f77dd}
.arch-card.target.vcenter{border-color:#378add}
a.arch-card.target:hover{background:var(--panel2)}
.arch-card.check{border-color:#5b667a;margin-top:0}
.arch-links3{min-height:56px;align-items:stretch}
.arch-link{position:relative;display:flex;align-items:flex-end;justify-content:center;
  font-size:.78rem;color:var(--dim);padding-bottom:4px}
.arch-link::before{content:"";position:absolute;left:50%;top:0;bottom:22px;
  border-left:2px solid #7d8aa3}
.arch-link.down::after,.arch-link.both::after{content:"";position:absolute;left:calc(50% - 5px);
  bottom:20px;border:5px solid transparent;border-top:7px solid #7d8aa3}
.arch-link.up::after{content:"";position:absolute;left:calc(50% - 5px);top:-2px;
  border:5px solid transparent;border-bottom:7px solid #7d8aa3}
.arch-band{position:relative;margin:0 -16px;padding:34px 16px 18px;
  border:1px dashed #34405a;border-radius:20px;background:#131a27}
.arch-band-label{position:absolute;left:18px;top:10px;font-family:var(--mono);
  font-size:.78rem;letter-spacing:.06em;color:var(--amber)}
.arch-bus{position:relative;height:64px;display:flex;align-items:center;justify-content:center}
.arch-bus::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px solid #7d8aa3}
.arch-bus::after{content:"";position:absolute;left:calc(50% - 5px);bottom:6px;
  border:5px solid transparent;border-top:7px solid #7d8aa3}
.arch-bus span{position:relative;background:var(--bg);padding:2px 12px;font-size:.8rem;color:var(--dim)}
.arch-bus.thin{height:44px}
.arch-list{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.arch-list b{color:var(--text)}
@media(max-width:800px){.arch-row{grid-template-columns:1fr}.arch-links3{display:none}}
.subrow{display:flex;align-items:center;gap:6px}
.subrow input{flex:1;min-width:120px}
.subrow #zonesuffix{color:var(--amber);white-space:nowrap}
button.small{padding:4px 10px;font-size:.85rem}
