/* AS2 Connection console — design system.
   Palette: corporate theme (saaslauncher-as2/theme.json). Green primary, warm signal, no blue. Light sidebar. */
:root{
  /* Brand palette — taken from the AS2 Connection logo: forest green + mint */
  --primary:#167544;--primary-1:#115C35;--primary-2:#0B3A22;--primary-soft:#E2F3EA;--primary-tint:#F0F8F3;
  --mint:#61C2A2;--mint-soft:#DDF3EA;--mint-deep:#3FA684;
  --dark:#0A1F14;--dark-1:#123726;--accent:#1F8A55;
  --bg:#F3F6F4;--card:#FFFFFF;--line:#DCE5E0;--line-2:#EAF0EC;--line-3:#F2F5F3;
  --txt:#41544A;--heading:#0A1F14;--muted:#6B7C73;--muted-2:#93A29A;
  --signal:#B45309;--signal-soft:#FBEEDD;--err:#B42323;--err-soft:#FBE4E4;--ok:#167544;--ok-soft:#DDF3EA;
  --info:#1F8A55;--info-soft:#E2F3EA;--neutral:#5B6B63;--neutral-soft:#E8EEEA;
  --radius:14px;--radius-s:10px;
  --shadow-1:0 1px 2px rgba(10,31,20,.04),0 4px 14px rgba(10,31,20,.04);--shadow-2:0 14px 32px rgba(10,31,20,.10)
}
*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;background:var(--bg)}
body{margin:0;font:14px/1.5 "Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--txt);background:radial-gradient(900px 460px at 85% -180px,#DDF3EA 0%,transparent 65%),var(--bg);font-feature-settings:"tnum" 1,"cv11" 1}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-1)}
h1,h2,h3{color:var(--heading);letter-spacing:-.02em}
button,input,select,textarea{font:inherit}
button,input,select,textarea{transition:border-color .15s,box-shadow .15s,background .15s}
.hidden{display:none!important}
svg.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.i.s{width:14px;height:14px}
.mono{font-family:ui-monospace,"JetBrains Mono",SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}

/* ---------- shell: horizontal top navigation ---------- */
#app{min-height:100vh;display:flex;flex-direction:column}
.topnav{position:sticky;top:0;z-index:40;padding:14px 22px 0}
.topnav .bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 10px 8px 22px;box-shadow:0 1px 2px rgba(10,31,20,.04),0 10px 28px rgba(10,31,20,.06);max-width:1580px;margin:0 auto}
.topnav .brand{display:flex;align-items:center;gap:9px;min-width:0}
.topnav .brand .wordmark{height:18px;width:auto;display:block}
.topnav .navtabs{display:flex;align-items:center;gap:2px;background:var(--bg);border-radius:999px;padding:4px;justify-self:center;max-width:100%;overflow:auto;scrollbar-width:none}
.topnav .navtabs a{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;color:var(--txt);font-weight:550;font-size:13.5px;white-space:nowrap;transition:background .12s,color .12s}
.topnav .navtabs a svg.i{display:none;width:16px;height:16px;color:var(--muted)}
.topnav .navtabs a:hover{color:var(--heading);background:#fff}
.topnav .navtabs a.active{background:var(--dark);color:#fff;box-shadow:0 4px 12px rgba(10,31,20,.22)}
.topnav .navtabs a.active svg.i{color:var(--mint)}
.topnav .right{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.topnav .usr{display:flex;align-items:center;gap:9px;background:none;border:1px solid transparent;border-radius:999px;padding:4px 8px 4px 4px;cursor:pointer;color:var(--heading);font-weight:600;font-size:13px;max-width:260px}
.topnav .usr:hover,.topnav .menu.open .usr{background:var(--bg);border-color:var(--line-2)}
.topnav .usr .av{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:700;flex:none;letter-spacing:.3px}
.topnav .usr .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topnav .usr svg.i{color:var(--muted-2)}
.topnav .dd{min-width:250px}
.topnav .dd .who{padding:8px 10px 6px}
.topnav .dd .who b{display:block;color:var(--heading);font-size:13.5px}
.topnav .dd .who small{display:block;color:var(--muted);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1500px){.topnav .navtabs a{padding:8px 11px;font-size:13px}.topnav .bar{gap:10px}}
@media (max-width:1180px){.topnav .navtabs a span{display:none}.topnav .navtabs a{padding:9px 12px}.topnav .navtabs a svg.i{display:block;width:18px;height:18px}}
@media (max-width:820px){.topnav .brand .wordmark{height:14px}.topnav .usr .nm{display:none}.topnav .bar{padding-left:14px}}
main{padding:30px 42px 56px;max-width:1660px;min-width:0;width:100%;margin:0 auto}
h1{font-size:22px;margin:0 0 4px;font-weight:650}
.sub{color:var(--muted);margin:0 0 22px}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.topbar .actions{display:flex;gap:8px;align-items:center}
.page-heading{margin-bottom:26px;align-items:flex-end}
.page-heading h1{font-size:28px;line-height:1.2;margin:2px 0 6px;font-weight:700}
.page-heading .sub{margin:0;max-width:720px;font-size:13.5px}
.eyebrow{display:block;color:var(--primary);font-size:10.5px;font-weight:750;letter-spacing:1.2px;text-transform:uppercase}
.count{display:inline-block;background:var(--primary-soft);color:var(--primary-1);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:650;vertical-align:4px;margin-left:7px}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-1)}
.card h3{margin:0 0 15px;font-size:14px;font-weight:650;color:var(--heading)}
.card.flush{padding:0;overflow:hidden}
.card.flush h3{padding:17px 20px 0}
.grid{display:grid;gap:18px}
.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.grid.c4{grid-template-columns:repeat(2,1fr)}.grid.c2{grid-template-columns:1fr}}
.stat{position:relative;overflow:hidden;min-height:128px;padding:19px 20px 17px;display:flex;flex-direction:column;gap:12px}
.stat::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary)}
.stat::after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;right:-27px;top:-32px;background:var(--primary-soft);opacity:.9}
.stat .l{font-size:10.5px;letter-spacing:.85px;font-weight:700;color:var(--muted);text-transform:uppercase}
.stat .n{font-size:32px;font-weight:730;color:var(--heading);line-height:1}
.stat .row{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}
.stat .row svg{padding:9px;width:38px;height:38px;color:var(--primary);background:var(--primary-soft);border-radius:11px}
.stat.b::before{background:var(--signal)}.stat.b::after{background:var(--signal-soft)}.stat.b .row svg{color:var(--signal);background:var(--signal-soft)}
.stat.c::before{background:var(--dark-1)}.stat.c::after{background:var(--neutral-soft)}.stat.c .row svg{color:var(--dark-1);background:var(--neutral-soft)}
.stat.d::before{background:var(--accent)}.stat.d::after{background:#E1F3EC}.stat.d .row svg{color:var(--accent);background:#E1F3EC}
.page-dashboard .grid.c4{margin-bottom:18px}
.page-dashboard .grid.c2 .card{min-height:244px}

/* ---------- dashboard ---------- */
.kpi{padding:18px 20px;display:grid;gap:8px;position:relative}
.kpi .hd{display:flex;align-items:center;gap:12px;margin-bottom:2px}
.kpi .ic{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex:none}
.kpi .ic svg{width:18px;height:18px}
.kpi.b .ic{background:var(--signal-soft);color:var(--signal)}.kpi.c .ic{background:var(--neutral-soft);color:var(--dark-1)}.kpi.d .ic{background:#E1F3EC;color:var(--accent)}
.kpi .l{font-size:15px;color:var(--heading);font-weight:600;letter-spacing:-.01em}
.kpi .n{font-size:26px;font-weight:720;color:var(--heading);line-height:1.1}
.kpi .f{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.delta{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:650}
.delta.up{background:var(--ok-soft);color:var(--ok)}.delta.down{background:var(--err-soft);color:var(--err)}.delta.flat{background:var(--neutral-soft);color:var(--muted)}
.dash-charts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
@media (max-width:1100px){.dash-charts{grid-template-columns:1fr}}
.dash-charts .card{position:relative;margin:0}
.ch-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.ch-head h3{margin:0}
svg.chart{width:100%;height:230px;display:block;overflow:visible}
svg.chart .grid{stroke:var(--line-2);stroke-width:1}
svg.chart .tick{fill:var(--muted-2);font-size:11px;font-family:inherit}
svg.chart .b-recv{fill:var(--primary)}svg.chart .b-sent{fill:var(--mint)}
svg.chart .bar-g:hover .b-recv{fill:var(--accent)}svg.chart .bar-g:hover .b-sent{fill:var(--mint-deep)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted);justify-content:center}
.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend .sw.recv{background:var(--primary)}.legend .sw.sent{background:var(--mint)}
.tip{position:absolute;display:none;background:var(--dark);color:#fff;font-size:11.5px;padding:5px 9px;border-radius:6px;pointer-events:none;white-space:nowrap;z-index:3}
.tbl.compact{min-width:0}.tbl.compact td{padding:10px 14px}.tbl.compact th{padding:9px 14px}

/* ---------- entity rows (stations / partners, horizontal) ---------- */
.elist{display:grid;gap:12px}
.erow{display:grid;grid-template-columns:minmax(210px,1.2fr) auto minmax(150px,1fr) minmax(200px,1.3fr) minmax(190px,1fr) auto;gap:18px;align-items:center;padding:16px 20px;margin:0}
.erow:hover{box-shadow:var(--shadow-2);border-color:#cfe0d8}
.erow .who .avatar{width:42px;height:42px;border-radius:12px;font-size:13px}
.erow .who .n{font-size:14.5px;font-weight:650}
.erow .who .s{font-family:inherit;font-size:12px}
.erow .cell{min-width:0}
.erow .cell .k{font-size:9.5px;font-weight:700;color:var(--muted-2);letter-spacing:.8px;text-transform:uppercase;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.erow .cell .v{color:var(--heading);font-weight:550;display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erow .cell .v.mono{font-size:12.5px}
.erow .today{padding:0;gap:10px}
.erow .today .m b{font-size:20px}
.erow .today .cap{display:none}
.erow .acts{display:flex;gap:4px;justify-content:flex-end;flex-wrap:nowrap}
.erow .acts .btn.sec{border-color:transparent}
.erow .acts .btn.sec:hover{border-color:var(--line)}
@media (max-width:1560px){.erow{grid-template-columns:minmax(210px,1.2fr) auto minmax(150px,1fr) minmax(200px,1.3fr);row-gap:14px}.erow .cell.cert{grid-column:1/3}.erow .acts{grid-column:3/-1;justify-content:flex-end}}
@media (max-width:1100px){.erow{grid-template-columns:1fr 1fr}.erow .who{grid-column:1/-1}.erow .cell.cert,.erow .acts{grid-column:1/-1;justify-content:flex-start}}
.avatar{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);flex:none;letter-spacing:.4px;box-shadow:0 5px 12px rgba(11,107,84,.18)}
.avatar.p{background:linear-gradient(135deg,#8A4B0A 0%,var(--signal) 100%);box-shadow:0 5px 12px rgba(180,83,9,.18)}
.today{display:flex;align-items:center;gap:14px}
.today .m{display:flex;align-items:baseline;gap:5px}
.today .m b{font-size:22px;color:var(--heading);font-weight:720}
.today .m span{font-size:11.5px;color:var(--muted)}
.today .sep{width:1px;height:22px;background:var(--line)}
.today .cap{margin-left:auto;font-size:10px;font-weight:650;color:var(--muted-2);text-transform:uppercase;letter-spacing:.6px}
.health{display:grid;gap:6px;min-width:0}
.health .track{height:6px;background:var(--line-2);border-radius:99px;overflow:hidden}
.health .fill{height:100%;border-radius:99px;background:var(--ok)}
.health .fill.warn{background:var(--signal)}.health .fill.err{background:var(--err)}
.health .cap{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.health .cap span{overflow:hidden;text-overflow:ellipsis}
.copy{background:none;border:0;color:var(--muted-2);cursor:pointer;padding:2px;border-radius:4px;display:inline-grid;place-items:center}
.copy:hover{color:var(--primary);background:var(--primary-soft)}

/* ---------- bars / sparkline ---------- */
.bars{display:grid;gap:9px}
.bar{display:grid;grid-template-columns:minmax(105px,180px) 1fr 64px;gap:12px;align-items:center;font-size:13px}
.bar .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.bar .track{background:var(--line-2);border-radius:999px;height:8px;overflow:hidden}
.bar .fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}
.bar.b .fill{background:linear-gradient(90deg,var(--signal),#D98B3E)}
.bar .num{text-align:right;color:var(--heading);font-weight:600;font-size:12px}
.bar .num .help{font-weight:400}
.spark{display:flex;align-items:flex-end;gap:4px;height:104px;margin-top:8px;padding:6px 0 0;border-bottom:1px solid var(--line-2)}
.spark div{flex:1;background:linear-gradient(180deg,var(--accent),var(--primary));border-radius:4px 4px 0 0;min-height:2px;position:relative}
.spark div.b{background:linear-gradient(180deg,#D98B3E,var(--signal))}
.spark div:hover::after{content:attr(data-t);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;font-size:11px;padding:2px 6px;border-radius:4px;white-space:nowrap;z-index:2}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;padding:3px;box-shadow:0 1px 2px rgba(12,26,22,.03)}
.seg a{padding:6px 11px;color:var(--muted);font-size:12px;cursor:pointer;font-weight:550;border-radius:7px}.seg a.active{background:var(--primary);color:#fff;box-shadow:0 2px 5px rgba(11,107,84,.22)}

/* ---------- tables ---------- */
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:700px}
.tbl th{position:sticky;top:0;z-index:1;text-align:left;background:var(--primary-2);color:#D7E6DF;font-weight:650;font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;padding:12px 16px;border-bottom:1px solid var(--primary-2);white-space:nowrap}
.tbl th:first-child{padding-left:20px}.tbl th:last-child{padding-right:20px}
.tbl th.r,.tbl td.r{text-align:right}
.tbl td{padding:13px 16px;border-bottom:1px solid var(--line-2);vertical-align:middle;color:var(--txt);background:#fff;transition:background .14s}
.tbl td:first-child{padding-left:20px}.tbl td:last-child{padding-right:20px}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--primary-tint)}
.tbl tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.tbl tr.new td{background:#FAFCFB}
.tbl tr.new td:first-child{box-shadow:inset 3px 0 0 var(--primary)}
.tbl td .primary{color:var(--heading);font-weight:650}
.tbl td .sub{margin:2px 0 0;font-size:11.5px;color:var(--muted)}
.tbl .acts{display:flex;gap:4px;justify-content:flex-end;opacity:.35;transition:opacity .1s}
.tbl tr:hover .acts{opacity:1}
.tbl td.w0,.tbl th.w0{width:1%;white-space:nowrap}
.tbl td.nw{white-space:nowrap}
.card.flush{overflow-x:auto}
.id{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;background:var(--bg);border:1px solid var(--line-2);border-radius:7px;padding:3px 7px;color:var(--heading);max-width:100%}
.id.dim{color:var(--muted)}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.who .avatar{width:30px;height:30px;border-radius:9px;font-size:10px;box-shadow:none}
.who .n{color:var(--heading);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who .s{font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,monospace}
.flags{display:inline-flex;gap:3px;margin-right:8px;vertical-align:middle}
.flags span{width:22px;height:22px;border-radius:7px;display:inline-grid;place-items:center;font-size:11px}
.flags .enc{background:var(--ok-soft);color:var(--ok)}.flags .sig{background:var(--signal-soft);color:var(--signal)}.flags .cmp{background:var(--neutral-soft);color:var(--neutral)}.flags .off{background:var(--line-3);color:#B8C4BE}
.toolbar{display:flex;gap:9px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#FBFCFB);flex-wrap:wrap}
.toolbar input,.toolbar select,.topbar input{height:36px;padding:0 11px;border:1px solid #CFDAD4;border-radius:9px;background:#fff;color:var(--heading);font-size:13px;box-shadow:0 1px 2px rgba(12,26,22,.02)}
.toolbar input{min-width:240px}
.toolbar input:focus,.toolbar select:focus,.topbar input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,122,95,.13)}
.toolbar .sp{flex:1}
.empty{color:var(--muted);padding:42px 24px;text-align:center;display:grid;gap:6px;justify-items:center}
.empty svg.i{width:28px;height:28px;color:var(--muted-2)}
.empty b{color:var(--heading);font-weight:600}

/* ---------- buttons, badges, pills ---------- */
.btn{background:var(--primary);color:#fff;border:1px solid transparent;border-radius:9px;padding:8px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;line-height:1.2;box-shadow:0 2px 4px rgba(11,107,84,.16)}
.btn:hover{background:var(--primary-1);color:#fff;box-shadow:0 5px 10px rgba(11,107,84,.2)}
.btn.sec{background:#fff;color:var(--heading);border-color:#CFDAD4;box-shadow:0 1px 2px rgba(12,26,22,.03)}.btn.sec:hover{background:var(--bg);color:var(--heading);box-shadow:0 2px 5px rgba(12,26,22,.06)}
.btn.ghost{background:transparent;color:var(--muted);border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--bg);color:var(--heading);box-shadow:none}
.btn.sm{padding:5px 9px;font-size:12px}
.btn.danger{background:#fff;color:var(--err);border-color:#F0C9C9;box-shadow:none}.btn.danger:hover{background:var(--err-soft);color:var(--err)}
.btn.icon{padding:6px 7px}
.btn:disabled{opacity:.5;cursor:default;box-shadow:none}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:680;background:var(--neutral-soft);color:var(--neutral);white-space:nowrap}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.badge.plain::before{display:none}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--signal-soft);color:var(--signal)}.badge.err{background:var(--err-soft);color:var(--err)}
.badge.info{background:var(--info-soft);color:var(--info)}.badge.dark{background:var(--dark);color:#fff}
.badge.num{background:var(--neutral-soft);color:var(--muted);min-width:22px;justify-content:center;padding:1px 7px}
.badge.num::before{display:none}
.pill{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12.5px}
.pill span{padding:4px 9px}.pill span:first-child{background:var(--bg);color:var(--muted);border-right:1px solid var(--line)}
.dir{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;padding:3px 9px;border-radius:7px}
.dir.in{background:var(--ok-soft);color:var(--ok)}.dir.out{background:var(--signal-soft);color:var(--signal)}

/* ---------- forms (roomy) ---------- */
form.f{display:grid;gap:16px}
form.f label{display:grid;gap:6px;align-content:start;font-size:12.5px;color:var(--muted);font-weight:550}
form.f input,form.f select,form.f textarea{padding:10px 12px;border:1px solid #CFDAD4;border-radius:9px;background:#fff;color:var(--heading);font-weight:400;font-size:13.5px;min-height:40px}
form.f input:read-only{background:var(--bg);color:var(--muted)}
form.f input:focus,form.f select:focus,form.f textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,122,95,.13)}
form.f .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
form.f .row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
form.f .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px;padding-top:16px;border-top:1px solid var(--line-2)}
form.f fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px 18px;display:grid;gap:14px;margin:0;background:#FBFCFB;min-width:0;max-width:100%}
form.f fieldset>*{min-width:0}
form.f label{min-width:0}
form.f input,form.f select,form.f textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
form.f legend{font-size:12px;color:var(--heading);font-weight:650;padding:0 6px}
form.f .section{display:grid;gap:4px;margin-top:4px}
form.f .section b{font-size:13.5px;color:var(--heading);font-weight:650}
form.f .section span{font-size:12px;color:var(--muted)}
form.f label.switch,.switch{display:flex;align-items:center;gap:12px;color:var(--heading);font-size:13.5px;cursor:pointer;font-weight:500;padding:6px 0}
form.f .switch input,.switch input{appearance:none;-webkit-appearance:none;width:40px;height:22px;padding:0;border:0;border-radius:999px;background:#C9D5CF;position:relative;cursor:pointer;margin:0;flex:none;min-height:0}
.switch input::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
form.f .switch input:checked,.switch input:checked{background:var(--primary)}.switch input:checked::after{left:20px}
form.f .switch input:focus{outline:0;box-shadow:0 0 0 3px rgba(14,122,95,.13)}
.switch .d{display:grid;gap:1px}.switch .d small{color:var(--muted);font-weight:400;font-size:12px}
.help{font-size:12px;color:var(--muted)}
code{background:var(--bg);padding:1px 5px;border-radius:4px;font-size:12px}
pre{background:var(--dark);color:#D9E8E1;padding:14px;border-radius:10px;overflow:auto;font-size:12px;max-height:420px;white-space:pre-wrap;word-break:break-all;line-height:1.5}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.tabs a{padding:10px 16px;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-weight:550}
.tabs a.active{color:var(--primary);border-color:var(--primary)}
.toast{position:fixed;right:20px;bottom:20px;background:var(--dark);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-2);max-width:420px;z-index:50}
.toast.err{background:var(--err)}
.modal-bg{position:fixed;inset:0;background:rgba(12,26,22,.5);display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;z-index:60;overflow:auto;backdrop-filter:blur(2px)}
.modal{background:#fff;border-radius:16px;padding:28px 32px 26px;width:100%;max-width:720px;min-width:0;overflow:hidden;box-shadow:0 24px 70px rgba(12,26,22,.35)}
.modal.wide{max-width:960px}
.modal h2{margin:0 0 20px;font-size:18px;display:flex;align-items:center;gap:10px}
.modal h2 svg.i{color:var(--primary)}
.kv{display:grid;grid-template-columns:190px 1fr;gap:9px 16px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all;color:var(--heading)}
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(700px 420px at 15% 0%,rgba(97,194,162,.22) 0%,transparent 60%),linear-gradient(150deg,var(--dark) 0%,var(--primary-2) 55%,var(--primary-1) 100%)}
.login .wrap{width:400px;max-width:100%}
.login .logo{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 26px}
.login .logo .mk{height:40px;width:40px}
.login .logo .wm{height:26px;width:auto}
.login .card{padding:30px}
.login h1{margin:0 0 4px;font-size:20px}
.login .sub{margin-bottom:18px}
.login form.f{gap:12px}
.login form.f input{height:46px;padding:0 14px;font-size:14px}
.login .f .forgot{font-size:13px;text-align:right;margin:-4px 0 6px;color:var(--primary);font-weight:500}
.login .f .btn{height:46px;font-size:14px;margin-top:2px;width:100%;justify-content:center;text-align:center}
.login .signup{text-align:center;color:rgba(255,255,255,.72);font-size:13.5px;margin-top:22px}
.login .signup a{color:var(--mint);font-weight:600}.login .signup a:hover{color:#fff}

/* ---------- messages: horizontal boxes, full-width table ---------- */
.boxbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.boxbar .grow{flex:1}
.boxbar a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;border:1px solid transparent;color:var(--txt);font-weight:550;background:transparent}
.boxbar a:hover{background:#fff;border-color:var(--line)}
.boxbar a.active{background:#fff;color:var(--primary-1);border-color:#cfe6dc;box-shadow:var(--shadow-1)}
.boxbar a.active svg.i{color:var(--primary)}
.boxbar .sp{flex:1}
.detail .hdr{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.detail h2{margin:0;font-size:17px;display:flex;align-items:center}
.detail .tools{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.mdnbox{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--bg);font-family:ui-monospace,Menlo,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:300px;overflow:auto}
.status-strip{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.tl{display:flex;gap:0;align-items:center;margin:6px 0 14px;font-size:12.5px;color:var(--muted)}
.tl .step{display:flex;align-items:center;gap:6px}
.tl .step::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--line);border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.tl .step.done::before{background:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.tl .step.err::before{background:var(--err);box-shadow:0 0 0 1px var(--err)}
.tl .step.done,.tl .step.err{color:var(--heading)}
.tl .ln{width:34px;height:1px;background:var(--line);margin:0 8px}

/* ---------- list cards (stations, partners) ---------- */
.listcard{padding:0;overflow:hidden}
.listcard .lhead{border-radius:var(--radius) var(--radius) 0 0}
.lfoot{border-radius:0 0 var(--radius) var(--radius)}
.ltbl th:first-child{border-top-left-radius:0}
.listcard .lhead{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.listcard .lhead h2{margin:0;font-size:17px;font-weight:700;display:flex;align-items:center;color:var(--heading)}
.listcard .lhead .count{vertical-align:2px}
.listcard .lhead .grow{flex:1}
.search{position:relative;display:flex;align-items:center}
.search svg{position:absolute;left:11px;color:var(--muted-2);pointer-events:none}
.search input{height:36px;padding:0 12px 0 32px;border:1px solid #CFDAD4;border-radius:9px;background:#fff;color:var(--heading);font-size:13px;min-width:240px}
.search input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(22,117,68,.12)}
.ltbl{width:100%;border-collapse:collapse;font-size:13px;min-width:780px}
.ltbl th{text-align:left;background:#F6F8F7;color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:11px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.ltbl th:first-child,.ltbl td:first-child{padding-left:22px}.ltbl th:last-child,.ltbl td:last-child{padding-right:22px}
.ltbl th.r{text-align:right}
.ltbl td{padding:14px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle;color:var(--txt)}
.ltbl tbody tr:last-child td{border-bottom:0}
.ltbl tbody tr:hover td{background:#FAFCFB}
.ltbl td.nw{white-space:nowrap}
.ltbl .ent{display:flex;align-items:center;gap:12px;min-width:170px}
.ltbl .ent .ic{width:40px;height:40px;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:none;font-weight:700;font-size:12.5px}
.ltbl .ent .ic svg{width:20px;height:20px}
.ltbl .ent .ic.p{background:var(--mint-soft);color:#237A5C}
.ltbl .ent .n{font-weight:650;color:var(--heading);font-size:14px;line-height:1.25}
.ltbl .ent .s{font-size:12px;color:var(--muted);margin-top:3px}
.ltbl .mono{font-family:ui-monospace,"JetBrains Mono",SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;color:var(--heading);font-weight:600;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.ltbl .sub{font-size:11.5px;color:var(--muted);margin:4px 0 0;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.ltbl .sub svg{width:12px;height:12px}
.ltbl .sub .mono{font-size:11.5px;color:var(--muted);font-weight:500}
.ltbl .chips{display:flex;gap:6px;flex-wrap:nowrap}
.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:650;background:var(--neutral-soft);color:var(--neutral);white-space:nowrap;letter-spacing:.2px}
.chip.green{background:var(--ok-soft);color:var(--ok)}.chip.mint{background:var(--mint-soft);color:#237A5C}.chip.sand{background:var(--signal-soft);color:var(--signal)}.chip.red{background:var(--err-soft);color:var(--err)}
.ltbl td.cert{min-width:150px}
.ltbl .bar{height:5px;border-radius:3px;background:var(--line-2);overflow:hidden;width:110px}
.ltbl .bar i{display:block;height:100%;background:var(--primary);border-radius:3px}
.ltbl .bar i.warn{background:var(--signal)}.ltbl .bar i.err{background:var(--err)}
.ltbl .acts{display:flex;gap:4px;justify-content:flex-end;align-items:center}
.ltbl .acts .btn.sm.sec{margin-right:4px}
.ltbl .today{gap:8px}.ltbl .today .m b{font-size:16px}.ltbl .today .sep{height:16px}
.lfoot{padding:12px 22px;border-top:1px solid var(--line-2);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;background:#FBFCFB}
.listcard .empty{padding:48px 20px}

/* row action menu */
.menu{position:relative;display:inline-block}
.menu .dd{display:none;position:fixed;z-index:60;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-2);padding:6px;text-align:left}
.menu.open .dd{display:block}
.menu.open>.btn{background:var(--bg);color:var(--heading)}
.menu .dd button,.menu .dd a{white-space:nowrap;display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;background:none;border-radius:7px;color:var(--heading);font-size:13px;cursor:pointer;text-align:left}
.menu .dd button:hover,.menu .dd a:hover{background:var(--primary-tint);color:var(--primary-1)}
.menu .dd svg{width:15px;height:15px;color:var(--muted)}
.menu .dd .danger{color:var(--err)}.menu .dd .danger:hover{background:var(--err-soft);color:var(--err)}
.menu .dd .danger svg{color:var(--err)}
.menu .dd hr{border:0;border-top:1px solid var(--line-2);margin:5px 4px}
.lwrap{overflow-x:auto}

/* ---------- message detail ---------- */
.msg{padding:22px 26px 26px}
.msg-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.msg-when{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.msg-when .dir{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-weight:650;font-size:12px}
.msg-when .dir.in{background:var(--ok-soft);color:var(--ok)}.msg-when .dir.out{background:var(--signal-soft);color:var(--signal)}
.msg-when .dir svg{width:14px;height:14px}
.msg-when .t{color:var(--heading);font-weight:550}
.msg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.msg-title{display:flex;align-items:center;gap:14px;min-width:0}
.msg-title .ficon{width:46px;height:46px;border-radius:12px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:none}
.msg-title .ficon svg{width:22px;height:22px}
.msg-title h2{margin:0;font-size:20px;letter-spacing:-.01em;word-break:break-all}
.msg .route{display:flex;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap;font-size:12.5px}
.msg .ent{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;font-weight:600;color:var(--heading);background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:2px 8px;display:inline-block}
.msg .route .arr{color:var(--muted-2);display:inline-flex}
.msg-actions{display:flex;gap:8px;align-items:center;flex:none}
.secrow{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 6px}
.secchip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:8px;font-size:12.5px;font-weight:600;background:var(--neutral-soft);color:var(--muted);border:1px solid transparent}
.secchip svg{width:14px;height:14px}
.secchip.on{background:var(--ok-soft);color:var(--ok)}.secchip.on.mint{background:var(--mint-soft);color:#237A5C}.secchip.err{background:var(--err-soft);color:var(--err)}
.msg .tl{margin:10px 0 18px}
.mtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:0 0 20px}
.mtabs a{padding:10px 16px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--muted);font-weight:600;font-size:13.5px}
.mtabs a:hover{color:var(--heading)}
.mtabs a.active{color:var(--primary);border-color:var(--primary)}
.panel{border:1px solid var(--line-2);border-radius:12px;padding:16px 18px;background:#FBFCFB}
.panel h3{margin:0 0 12px;font-size:13.5px;display:flex;align-items:center;gap:8px;color:var(--heading)}
.panel h3 svg{width:15px;height:15px;color:var(--primary)}
.kv2{display:grid;grid-template-columns:150px 1fr;gap:0;margin:0;font-size:13px}
.kv2 dt{color:var(--muted);padding:8px 0;border-top:1px solid var(--line-2)}
.kv2 dd{margin:0;padding:8px 0;border-top:1px solid var(--line-2);color:var(--heading);word-break:break-all;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.kv2 dt:first-of-type,.kv2 dd:first-of-type{border-top:0}
.kv2 .mono{font-size:12px}
.codebar{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:8px}
.codebar b{color:var(--heading)}.codebar .sp{flex:1}
pre.code{background:#F6F8F7;color:var(--heading);border:1px solid var(--line-2);border-radius:10px;padding:14px 16px;font-size:12.5px;line-height:1.55;max-height:560px;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:0}
.htbl{width:100%;border-collapse:collapse;font-size:12.5px;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
.htbl th{text-align:left;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;color:var(--primary-1);padding:8px 14px;width:260px;background:#F6F8F7;border-bottom:1px solid var(--line-2);vertical-align:top;white-space:nowrap}
.htbl td{padding:8px 14px;border-bottom:1px solid var(--line-2);font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all;color:var(--heading)}
.htbl tr:last-child th,.htbl tr:last-child td{border-bottom:0}
.mdn-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.mdn-text{border-left:3px solid var(--primary);background:var(--primary-tint);padding:12px 16px;border-radius:0 10px 10px 0;font-size:13px;line-height:1.55;color:var(--heading);margin-bottom:14px}
@media (max-width:900px){.kv2{grid-template-columns:1fr}.kv2 dt{padding-bottom:0;border-top:1px solid var(--line-2)}.kv2 dd{border-top:0;padding-top:2px}}

.msg .ov{margin-top:4px}
.files{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.fgroup{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.fgroup .fl{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--heading);border-right:1px solid var(--line-2)}
.fgroup .fl svg{width:15px;height:15px;color:var(--primary)}
.fgroup .ib{border:0;border-right:1px solid var(--line-2);background:#fff;padding:0 10px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center}
.fgroup .ib:last-child{border-right:0}
.fgroup .ib:hover:not(:disabled){background:var(--primary-tint);color:var(--primary)}
.fgroup .ib:disabled{opacity:.35;cursor:default}
.fgroup .ib svg{width:15px;height:15px}
.fgroup.off .fl{color:var(--muted)}.fgroup.off .fl svg{color:var(--muted-2)}
details.preview{margin-top:18px;border:1px solid var(--line-2);border-radius:12px;background:#FBFCFB}
details.preview summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13.5px;color:var(--heading)}
details.preview summary::-webkit-details-marker{display:none}
details.preview summary svg{width:14px;height:14px;color:var(--muted);transition:transform .15s}
details.preview[open] summary svg{transform:rotate(180deg)}
details.preview pre.code{border:0;border-top:1px solid var(--line-2);border-radius:0 0 12px 12px;background:#fff}
pre.code.tall{max-height:62vh}
.modal .codebar{margin-top:-4px}

/* ---------- onboarding ---------- */
.login .wrap.wide{width:760px;max-width:100%}
.login.onboarding{align-items:flex-start;padding-top:40px}
.stepper{display:flex;justify-content:center;gap:26px;margin:0 0 40px;color:rgba(255,255,255,.55);font-size:13px;font-weight:600}
.stepper span{display:inline-flex;align-items:center;gap:8px}
.stepper i{font-style:normal;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:grid;place-items:center;font-size:11px}
.stepper .cur{color:#fff}.stepper .cur i{background:var(--mint);border-color:var(--mint);color:var(--dark)}
.stepper .done{color:rgba(255,255,255,.8)}.stepper .done i{background:rgba(97,194,162,.25);border-color:transparent;color:var(--mint)}
.onboarding .card h1{font-size:22px;margin:0 0 4px}
.onboarding .card .sub{margin-bottom:20px}
.plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.plan{border:1.5px solid var(--line);border-radius:12px;padding:16px 14px;cursor:pointer;display:block;position:relative;transition:border-color .12s,box-shadow .12s}
.plan input{position:absolute;opacity:0}
.plan b{display:block;font-size:14px;color:var(--heading)}
.plan .price{font-size:22px;font-weight:720;color:var(--heading);margin:6px 0 10px;letter-spacing:-.02em}
.plan .price small{font-size:12px;color:var(--muted);font-weight:500;margin-left:3px}
.plan ul{margin:0;padding:0;list-style:none;font-size:12px;color:var(--txt);display:grid;gap:5px}
.plan ul li::before{content:"✓";color:var(--primary);font-weight:700;margin-right:6px}
.plan:hover{border-color:var(--mint-deep)}
.plan.sel{border-color:var(--primary);box-shadow:0 0 0 3px rgba(22,117,68,.14);background:var(--primary-tint)}
.onboarding .actions{display:flex;gap:10px;align-items:center;margin-top:6px}
.onboarding .actions .grow{flex:1}
.onboarding form.f .actions{margin-top:4px}
.ferr{display:block;color:var(--err);font-size:12px;font-weight:600;margin-top:2px}
form.f label.has-err input,form.f label.has-err select{border-color:var(--err);box-shadow:0 0 0 3px rgba(180,35,35,.12)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.chk{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--txt);flex-wrap:wrap}
.chk input{width:16px;height:16px;margin-top:2px;flex:none}
.alert{padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:14px}
.alert.err{background:var(--err-soft);color:var(--err)}
.done{text-align:center;padding:10px 0}
.done svg{width:44px;height:44px;color:var(--primary);background:var(--ok-soft);border-radius:50%;padding:10px;margin-bottom:8px}
.done p{max-width:520px;margin:6px auto 12px}
@media (max-width:820px){.plans{grid-template-columns:1fr 1fr}}
.login form.f .chk input{height:16px;width:16px;min-height:0}
.onboarding form.f .btn,.onboarding .actions .btn{width:auto;height:auto}
.onboarding .login .f .btn{width:auto}

/* ---------- split login ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:#F7F9F8}
.auth-side{position:relative;overflow:hidden;background:radial-gradient(900px 600px at 20% 10%,rgba(97,194,162,.35) 0%,transparent 55%),radial-gradient(700px 500px at 90% 90%,rgba(97,194,162,.18) 0%,transparent 60%),linear-gradient(160deg,var(--primary-2) 0%,var(--primary-1) 60%,var(--primary) 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:56px 48px;color:#fff}
.auth-side::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:80px solid rgba(255,255,255,.05);top:-160px;right:-200px}
.auth-side::after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;background:rgba(255,255,255,.04);bottom:-140px;left:-120px}
.auth-side .hero{position:relative;z-index:1;width:min(100%,640px);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.12)}
.auth-side .hero img{display:block;width:100%;height:auto}
.auth-side .tag{position:relative;z-index:1;text-align:center;margin-top:44px;max-width:520px}
.auth-side .tag h2{margin:0 0 10px;font-size:26px;line-height:1.25;font-weight:700;color:#fff;letter-spacing:-.01em}
.auth-side .tag p{margin:0;color:rgba(255,255,255,.72);font-size:14px}
.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 32px}
.auth-box{width:400px;max-width:100%}
.auth-box .logo{height:22px;width:auto;display:block;margin-bottom:44px}
.auth-box h1{font-size:28px;margin:0 0 26px;font-weight:700;letter-spacing:-.02em}
.auth-box .sub{margin:0 0 28px;font-size:13.5px}
.auth-box form.f{gap:16px}
.auth-box form.f label{font-size:13px;color:var(--heading);font-weight:600}
.auth-box .in{display:flex;align-items:center;gap:10px;height:46px;padding:0 6px 0 13px;border:1px solid #CFDAD4;border-radius:9px;background:#fff;transition:border-color .15s,box-shadow .15s}
.auth-box .in:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(22,117,68,.13)}
.auth-box .in svg.i{width:16px;height:16px;color:var(--muted-2);flex:none}
.auth-box .in input,.auth-box form.f .in input{flex:1;min-width:0;height:100%;border:0;padding:0;background:transparent;box-shadow:none;font-size:14px;font-weight:400;outline:0}
.auth-box .peek{flex:none;border:0;background:none;cursor:pointer;color:var(--muted-2);padding:6px;display:inline-flex;align-items:center;line-height:0;border-radius:6px}
.auth-box .peek:hover{color:var(--heading);background:var(--bg)}
.auth-box .peek svg{width:16px;height:16px}
.auth-box .between{display:flex;justify-content:space-between;align-items:center;margin-top:-4px}
.auth-box .remember{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--txt)}
.auth-box .remember input{width:15px;height:15px;min-height:0;accent-color:var(--primary)}
.auth-box .forgot{font-size:13px;color:var(--primary);font-weight:500}
.auth-box .btn{height:46px;font-size:14px;width:100%;justify-content:center;margin-top:4px}
.auth-box .alt{margin:16px 0 0;font-size:13px;color:var(--muted)}
.auth-box .alt a{color:var(--primary);font-weight:600}
.auth-box .copy{margin:72px 0 0;font-size:12px;color:var(--muted-2)}
@media (max-width:980px){.auth{grid-template-columns:1fr}.auth-side{display:none}.auth-main{min-height:100vh}}
.onboarding .logo{margin-bottom:52px}

.ltbl .url{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,"JetBrains Mono",SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--txt);white-space:nowrap;max-width:100%}
.ltbl .url svg{width:13px;height:13px;color:var(--muted-2);flex:none}
.ltbl .url span{overflow:hidden;text-overflow:ellipsis}
.ltbl td{vertical-align:middle}
.ltbl td.cert>.bar{margin-top:2px}
