/* Lantern · app */
:root{
  --bg:#EAE9E7; --bg-2:#E2E0DC; --panel:#fff; --panel-2:#F8F7F5; --hover:#F4F2EF;
  --ink:#0E0F12; --ink-2:#3F4249; --ink-3:#6E7178; --ink-4:#9EA0A5;
  --line:#D9D5CF; --line-2:#ECE9E4;
  --cobalt:#0A2FA3; --cobalt-2:#08268A; --cobalt-soft:#EEF1FB; --navy:#0A1D6C;
  --sand:#D4BFAA; --sand-2:#E4D8CA; --sand-3:#C6AE95; --sand-ink:#5E4B37;
  --ok:#1D7A4B; --ok-soft:#E5F1EA; --warn:#C0611A; --warn-soft:#FAECDF; --bad:#BC3424; --bad-soft:#F8E6E3; --ai:#6A3E9E; --ai-soft:#EFE8F7;
  --sans:'Inter Tight',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --side:252px;
  --ease:cubic-bezier(.2,.7,.1,1);
  --shadow:0 18px 44px -20px rgba(10,29,108,.35),0 0 0 1px rgba(14,15,18,.06);
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.45 var(--sans);letter-spacing:-.004em;-webkit-font-smoothing:antialiased;overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
code,pre,kbd{font-family:var(--mono)}
:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:12.5px}
.muted{color:var(--ink-3)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--side) minmax(0,1fr);height:100vh;height:100dvh}
.side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--bg);overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.side::-webkit-scrollbar{display:none}
.ws{padding:12px 12px 8px}
.ws-btn{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border-radius:3px;text-align:left;transition:background .15s}
.ws-btn:hover,.ws-btn[aria-expanded="true"]{background:var(--hover)}
.ws-mark{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:3px;background:var(--cobalt);color:#fff}
.ws-mark svg{width:20px;height:20px}
.ws-txt{min-width:0;flex:1}
.ws-txt b{display:block;font-weight:500;font-size:14.5px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.env-line{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-3)}
.env-line em{font-style:normal}
.env-dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}
body.staging .env-dot{background:var(--warn)}
.ws-chev{flex:none;width:12px;height:12px;color:var(--ink-3)}
.side-search{display:flex;align-items:center;gap:9px;margin:4px 12px 10px;height:34px;padding:0 8px 0 10px;border-radius:3px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);font-size:13.5px}
.side-search svg{width:15px;height:15px}
.side-search kbd,.top-search kbd{margin-left:auto;font-size:11px;padding:2px 5px;border-radius:2px;background:var(--bg);color:var(--ink-3)}
.nav{display:flex;flex-direction:column;padding:0 12px;gap:1px}
.nav-h{font-size:12px;color:var(--ink-4);padding:14px 10px 6px}
.nav a{position:relative;display:flex;align-items:center;gap:11px;height:34px;padding:0 10px;border-radius:3px;font-size:14px;color:var(--ink-2);letter-spacing:-.012em;transition:background .15s,color .15s}
.nav a svg{flex:none;width:17px;height:17px;color:var(--ink-3)}
.nav a:hover{background:var(--hover);color:var(--ink)}
.nav a.on{background:var(--panel);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-weight:500}
.nav a.on svg{color:var(--cobalt)}
.nav-n{margin-left:auto;font:500 11.5px/1 var(--sans);font-style:normal;color:var(--ink-3);font-variant-numeric:tabular-nums}
.nav-n:empty{display:none}
.nav-n-warn{color:#fff;background:var(--warn);padding:3px 6px;border-radius:2px}
.nav-n-blue{color:#fff;background:var(--cobalt);padding:3px 6px;border-radius:2px}
.nav-n-ai{color:var(--ai);background:var(--ai-soft);padding:3px 6px;border-radius:2px}
.side-foot{margin-top:auto;padding:14px 12px 14px;display:flex;flex-direction:column;gap:12px}
.usage{display:block;padding:12px;border-radius:3px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.usage-t{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px}
.usage-t b{font-weight:500}
.usage-t em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.usage-bar{display:block;height:4px;background:var(--bg);border-radius:2px;margin:9px 0 7px;overflow:hidden}
.usage-bar i{display:block;height:100%;background:var(--cobalt);width:61%}
.usage-s{display:block;font-size:11.5px;color:var(--ink-3)}
.ariadne{align-self:flex-start;font:500 12.5px/1 var(--sans);padding:7px 11px;border-radius:999px;background:rgba(20,22,26,.88);color:#fff;letter-spacing:.01em;box-shadow:0 0 0 1px rgba(255,255,255,.14);opacity:.92}
.ariadne b{font-weight:600;color:#ff8a3d}
.scrim{display:none}

.main{display:flex;flex-direction:column;min-width:0;min-height:0}
.top{flex:none;display:flex;align-items:center;gap:14px;height:56px;padding:0 20px 0 24px;border-bottom:1px solid var(--line);background:var(--bg)}
.top-menu{display:none;width:36px;height:36px;border-radius:3px;place-items:center}
.top-menu svg{width:20px;height:20px}
.crumbs{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;color:var(--ink-3);white-space:nowrap;overflow:hidden}
.crumbs a:hover{color:var(--ink)}
.crumbs span:last-child{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.crumbs .sep{width:10px;height:10px;flex:none;color:var(--ink-4)}
.top-r{margin-left:auto;display:flex;align-items:center;gap:8px}
.top-search{display:flex;align-items:center;gap:9px;width:300px;height:36px;padding:0 8px 0 11px;border-radius:3px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);font-size:13.5px}
.top-search svg{width:15px;height:15px;flex:none}
.top-search span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon-btn{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:3px;color:var(--ink-2)}
.icon-btn:hover,.icon-btn[aria-expanded="true"]{background:var(--hover)}
.icon-btn svg{width:18px;height:18px}
.bell-dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 2px var(--bg)}
.bell-dot.off{display:none}
.me{width:34px;height:34px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.me img{width:100%;height:100%;object-fit:cover}
.env-banner{flex:none;padding:8px 24px;background:var(--warn-soft);color:#7A3D10;font-size:13px;border-bottom:1px solid #EFD5BF}
.view{flex:1;min-height:0;overflow:auto;padding:24px 28px 56px;outline:none;scroll-behavior:smooth}

/* ---------- page header ---------- */
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.ph h1{font:430 27px/1.12 var(--sans);letter-spacing:-.038em}
.ph h1 em{font:400 1em/1 var(--serif);font-style:normal;letter-spacing:-.02em}
.ph p{margin-top:6px;color:var(--ink-3);font-size:14px;max-width:70ch}
.ph-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ph-meta{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;font-size:13px;color:var(--ink-3)}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:2px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);font:500 13.5px/1 var(--sans);letter-spacing:-.01em;white-space:nowrap;transition:background .15s,box-shadow .15s,color .15s}
.btn:hover{background:var(--panel-2)}
.btn svg{width:14px;height:14px;flex:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-pri{background:var(--cobalt);color:#fff;box-shadow:none;padding:0 4px 0 13px;gap:12px}
.btn-pri:hover{background:var(--cobalt-2)}
.btn-pri .tile{display:grid;place-items:center;width:26px;height:26px;border-radius:2px;background:var(--sand);color:var(--cobalt)}
.btn-pri .tile svg{width:12px;height:12px}
.btn-pri.plain{padding:0 13px}
.btn-sand{background:var(--sand);color:var(--navy);box-shadow:none}
.btn-sand:hover{background:#DCC9B6}
.btn-ghost{background:transparent;box-shadow:none}
.btn-ghost:hover{background:var(--hover)}
.btn-danger{color:var(--bad)}
.btn-ok{background:var(--ok);color:#fff;box-shadow:none}
.btn-ok:hover{background:#176640}
.btn-sm{height:28px;padding:0 9px;font-size:12.5px;gap:6px}
.btn-icon{width:34px;padding:0;justify-content:center}
.btn-sm.btn-icon{width:28px}
.inp,.select,.ta{height:34px;border:1px solid var(--line);border-radius:2px;padding:0 10px;background:var(--panel);font-size:13.5px;min-width:0}
.ta{height:auto;padding:9px 10px;line-height:1.5;resize:vertical;width:100%}
.inp:focus,.select:focus,.ta:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(10,47,163,.12)}
.select{appearance:none;padding-right:28px;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%236E7178' stroke-width='1.4'/%3E%3C/svg%3E") right 9px center/11px no-repeat;cursor:pointer}
.search-inp{position:relative;display:flex;align-items:center}
.search-inp svg{position:absolute;left:10px;width:14px;height:14px;color:var(--ink-3);pointer-events:none}
.search-inp .inp{padding-left:31px;width:240px}
.seg{display:inline-flex;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);border-radius:2px;padding:3px;gap:2px}
.seg button{height:28px;padding:0 10px;border-radius:2px;font:500 13px/1 var(--sans);color:var(--ink-3);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--cobalt);color:#fff}
.seg button em{font-style:normal;font-size:11.5px;opacity:.75}
.toggle{position:relative;width:34px;height:20px;border-radius:999px;background:var(--line);transition:background .2s;flex:none}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .2s var(--ease)}
.toggle[aria-checked="true"]{background:var(--cobalt)}
.toggle[aria-checked="true"]::after{transform:translateX(14px)}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.toolbar .grow{flex:1}

/* ---------- cards, pills, avatars ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:3px;min-width:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.card-h h2{font:500 15px/1.2 var(--sans);letter-spacing:-.018em}
.card-h .sub{font-size:12.5px;color:var(--ink-3)}
.card-b{padding:16px}
.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 7px;border-radius:2px;font:500 12px/1 var(--sans);white-space:nowrap;background:var(--bg);color:var(--ink-2)}
.pill i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pill svg{width:11px;height:11px;flex:none}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.blue{background:var(--cobalt-soft);color:var(--cobalt)}
.pill.ai{background:var(--ai-soft);color:var(--ai)}
.pill.mute{background:var(--bg);color:var(--ink-3)}
.pill.sand{background:var(--sand-2);color:var(--sand-ink)}
.av{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none;background:var(--sand-2)}
.av-md{width:30px;height:30px}
.av-lg{width:40px;height:40px}
.who{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.glyph{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:2px;background:var(--sand-2);color:var(--sand-ink);font:600 10.5px/1 var(--sans);letter-spacing:.02em}
.glyph.ai{background:var(--ai-soft);color:var(--ai)}
.glyph.lantern{background:var(--cobalt);color:#fff}
.glyph.lantern svg{width:14px;height:14px}
.glyph.approval{background:var(--warn-soft);color:var(--warn)}
.chain{display:inline-flex;align-items:center;gap:3px}
.chain .glyph{width:22px;height:22px;font-size:9.5px}
.chain .glyph+.glyph{margin-left:-2px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}.dot.blue{background:var(--cobalt)}.dot.mute{background:var(--ink-4)}.dot.ai{background:var(--ai)}
.kbd{display:inline-block;font:500 11px/1 var(--mono);padding:3px 5px;border-radius:2px;background:var(--bg);color:var(--ink-3);box-shadow:inset 0 -1px 0 var(--line)}
.empty{display:grid;place-items:center;text-align:center;padding:56px 20px;color:var(--ink-3)}
.empty h3{font:400 22px/1.2 var(--serif);color:var(--ink);margin:14px 0 6px}
.empty .ill{width:64px;height:64px;border-radius:3px;background:var(--sand);display:grid;place-items:center;color:var(--navy)}
.empty .ill svg{width:28px;height:28px}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--panel);border:1px solid var(--line);border-radius:3px;margin-bottom:16px}
.kpi{padding:16px 18px 15px;border-left:1px solid var(--line-2);min-width:0}
.kpi:first-child{border-left:0}
.kpi-l{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:7px}
.kpi-v{font:380 31px/1.05 var(--sans);letter-spacing:-.045em;margin-top:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi-v small{font-size:15px;letter-spacing:-.02em;color:var(--ink-3);margin-left:3px}
.kpi-s{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.kpi-s .up{color:var(--ok)}
.kpi-s .dn{color:var(--bad)}
a.kpi:hover{background:var(--panel-2)}

/* ---------- tables ---------- */
.tbl-wrap{overflow:auto;max-width:100%}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{position:sticky;top:0;z-index:1;text-align:left;font:500 12.5px/1 var(--sans);color:var(--ink-3);padding:12px;border-bottom:1px solid var(--line-2);background:var(--panel);white-space:nowrap}
.tbl th.r,.tbl td.r{text-align:right}
.tbl th.sortable{cursor:pointer;user-select:none}
.tbl th.sortable:hover{color:var(--ink)}
.tbl th .ar{display:inline-block;margin-left:4px;opacity:0;font-size:10px}
.tbl th.sorted .ar{opacity:1;color:var(--cobalt)}
.tbl td{padding:0 12px;height:46px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:var(--panel-2)}
.tbl tr.sel td{background:var(--cobalt-soft)}
.tbl td .t1{font-weight:500;letter-spacing:-.012em}
.tbl td .t2{font-size:12.5px;color:var(--ink-3)}
.tbl .cell2{display:flex;flex-direction:column;justify-content:center;line-height:1.3}
.tbl-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line-2);font-size:13px;color:var(--ink-3)}
.row-menu{opacity:.6}
tr:hover .row-menu{opacity:1}

/* ---------- popovers, menus, modals, drawers ---------- */
.layer{position:fixed;inset:0;z-index:70;pointer-events:none}
.layer>*{pointer-events:auto}
.pop{position:fixed;min-width:220px;max-width:calc(100vw - 16px);background:var(--panel);border-radius:3px;box-shadow:var(--shadow);padding:6px;animation:popin .16s var(--ease)}
@keyframes popin{from{opacity:0;transform:translateY(-4px)}}
.pop-h{padding:8px 10px 6px;font-size:12px;color:var(--ink-3)}
.mi{display:flex;align-items:center;gap:10px;width:100%;min-height:34px;padding:6px 10px;border-radius:2px;font-size:13.5px;text-align:left;color:var(--ink)}
.mi:hover,.mi.on{background:var(--hover)}
.mi svg{width:15px;height:15px;color:var(--ink-3);flex:none}
.mi .kbd{margin-left:auto}
.mi .check{margin-left:auto;width:12px;height:12px;color:var(--cobalt)}
.mi.danger{color:var(--bad)}
.mi.danger svg{color:var(--bad)}
.pop hr{border:0;border-top:1px solid var(--line-2);margin:6px 0}
.pop-user{display:flex;gap:10px;align-items:center;padding:8px 10px 10px}
.pop-user b{display:block;font-weight:500}
.pop-user span{font-size:12.5px;color:var(--ink-3)}
.pop .ariadne{margin:6px 10px 4px}
.notif{width:380px;padding:0}
.notif-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line-2)}
.notif-h b{font-weight:500;font-size:14.5px}
.notif-l{max-height:420px;overflow:auto}
.notif-i{display:flex;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line-2);font-size:13.5px;line-height:1.4}
.notif-i:hover{background:var(--panel-2)}
.notif-i .glyph{margin-top:1px}
.notif-i time{display:block;font-size:12px;color:var(--ink-3);margin-top:3px}
.notif-i.unread{background:#FBFAF8}
.notif-i.unread p::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cobalt);margin-left:6px;vertical-align:2px}
.notif-f{padding:10px 14px;font-size:13px;text-align:center}
.notif-f a{color:var(--cobalt)}
.backdrop{position:fixed;inset:0;background:rgba(14,15,18,.3);animation:fade .2s}
@keyframes fade{from{opacity:0}}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--panel);border-radius:4px;box-shadow:var(--shadow);animation:modalin .22s var(--ease)}
@keyframes modalin{from{opacity:0;transform:translate(-50%,-48%)}}
.modal-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 0}
.modal-h h2{font:500 18px/1.25 var(--sans);letter-spacing:-.025em}
.modal-h p{font-size:13.5px;color:var(--ink-3);margin-top:4px}
.modal-b{padding:16px 20px}
.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 18px;border-top:1px solid var(--line-2)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field>span{font-size:12.5px;font-weight:500;color:var(--ink-2)}
.field small{font-size:12px;color:var(--ink-3)}
.field .inp,.field .select{width:100%}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--panel);box-shadow:-24px 0 60px -30px rgba(10,29,108,.4),-1px 0 0 var(--line);display:flex;flex-direction:column;animation:drawin .28s var(--ease)}
@keyframes drawin{from{transform:translateX(40px);opacity:0}}
.drawer-h{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-2)}
.drawer-h h2{font:500 19px/1.2 var(--sans);letter-spacing:-.025em}
.drawer-h p{font-size:13px;color:var(--ink-3);margin-top:3px}
.drawer-h .btn-icon{margin-left:auto}
.drawer-b{flex:1;overflow:auto;padding:18px 20px}
.drawer-f{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--line-2);flex-wrap:wrap}
.dl{display:grid;grid-template-columns:130px 1fr;gap:0;border-top:1px solid var(--line-2);font-size:13.5px}
.dl dt,.dl dd{padding:10px 0;border-bottom:1px solid var(--line-2)}
.dl dt{color:var(--ink-3)}
.sec-t{font:500 13px/1 var(--sans);color:var(--ink-3);margin:22px 0 10px}
.tooltip{position:fixed;z-index:90;pointer-events:none;background:var(--ink);color:#fff;font-size:12px;line-height:1.3;padding:6px 8px;border-radius:2px;white-space:nowrap;animation:fade .12s}
.tooltip .kbd{background:rgba(255,255,255,.14);color:#fff;box-shadow:none;margin-left:6px}

/* palette */
.pal{position:fixed;left:50%;top:12vh;transform:translateX(-50%);width:min(640px,calc(100vw - 24px));background:var(--panel);border-radius:4px;box-shadow:var(--shadow);overflow:hidden;animation:popin .18s var(--ease)}
.pal-in{position:relative;border-bottom:1px solid var(--line-2)}
.pal-in svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3)}
.pal-in input{width:100%;height:54px;border:0;outline:none;padding:0 16px 0 44px;font-size:16px;background:transparent}
.pal-l{max-height:min(420px,56vh);overflow:auto;padding:6px}
.pal-g{font-size:12px;color:var(--ink-3);padding:10px 10px 4px}
.pal-i{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border-radius:2px;font-size:14px;text-align:left}
.pal-i .glyph{width:22px;height:22px;font-size:9.5px}
.pal-i svg{width:15px;height:15px;color:var(--ink-3)}
.pal-i .meta{margin-left:auto;font-size:12.5px;color:var(--ink-3);display:flex;gap:8px;align-items:center}
.pal-i.on{background:var(--cobalt-soft);color:var(--cobalt)}
.pal-i.on svg{color:var(--cobalt)}
.pal-f{display:flex;gap:14px;padding:9px 14px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-3)}

/* toasts */
.toasts{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:95;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;min-height:42px;padding:8px 8px 8px 14px;border-radius:3px;background:var(--navy);color:#fff;font-size:13.5px;box-shadow:0 16px 40px -16px rgba(10,29,108,.6);animation:toastin .25s var(--ease);max-width:calc(100vw - 24px)}
.toast svg{width:14px;height:14px;color:var(--sand);flex:none}
.toast button{height:28px;padding:0 10px;border-radius:2px;background:rgba(255,255,255,.1);color:var(--sand);font-weight:500;font-size:13px;white-space:nowrap}
.toast button:hover{background:rgba(255,255,255,.18)}
.toast a{color:var(--sand);text-decoration:underline;text-underline-offset:3px}
.toast.out{animation:toastout .2s forwards}
@keyframes toastin{from{opacity:0;transform:translateY(10px)}}
@keyframes toastout{to{opacity:0;transform:translateY(6px)}}

/* ---------- map ---------- */
.map-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.map-card{overflow:hidden}
.map{position:relative;height:540px;background:var(--sand);overflow:hidden}
.map svg.lines{position:absolute;inset:0;width:100%;height:100%}
.map .ln{fill:none;stroke:#F3ECE3;stroke-width:2;stroke-dasharray:3 6;vector-effect:non-scaling-stroke}
.map .ln.warn{stroke:#F6D6B9}
.map .ln.hl{stroke:var(--cobalt);stroke-dasharray:none}
.edge-lbl{position:absolute;transform:translate(-50%,-50%);font:500 11.5px/1 var(--mono);color:var(--sand-ink);background:rgba(232,221,208,.95);padding:4px 6px;border-radius:2px;white-space:nowrap;pointer-events:none}
.edge-lbl.warn{color:var(--warn)}
.mnode{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;background:#fff;border-radius:3px;box-shadow:0 1px 0 rgba(94,75,55,.16);cursor:pointer;text-align:left;transition:box-shadow .15s;z-index:2}
.mnode:hover{box-shadow:0 0 0 1px var(--cobalt)}
.mnode.sel{box-shadow:0 0 0 2px var(--cobalt)}
.mnode .glyph{width:34px;height:34px;font-size:12px}
.mnode b{display:block;font-weight:500;font-size:14.5px;letter-spacing:-.015em}
.mnode .mn-s{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);white-space:nowrap}
.mnode.hub{background:var(--cobalt);color:#fff;padding:12px 18px 12px 12px}
.mnode.hub .mn-s{color:rgba(255,255,255,.7)}
.mnode.hub .glyph{background:rgba(255,255,255,.14);color:#fff}
.mnode.hub .glyph svg{width:20px;height:20px}
.pk{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--cobalt);pointer-events:none;z-index:1}
.pk.warn{background:var(--warn)}
.map-foot{display:flex;align-items:center;gap:16px;padding:10px 14px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ink-3);flex-wrap:wrap}
.map-foot .lg{display:inline-flex;align-items:center;gap:6px}
.map-foot .lg i{width:16px;border-top:2px dashed #C9B49E}
.map-foot .lg i.w{border-color:var(--warn)}
.side-col{display:flex;flex-direction:column;gap:16px}
.feed li{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-2);font-size:13.5px;cursor:pointer}
.feed li:last-child{border-bottom:0}
.feed li:hover{background:var(--panel-2)}
.feed .f-main{min-width:0;flex:1}
.feed .f-main b{font-weight:500;letter-spacing:-.012em}
.feed .f-main span{display:block;font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed time{font:500 12px/1 var(--mono);color:var(--ink-3)}

/* charts */
.chart{position:relative}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .ax{font:11px var(--sans);fill:var(--ink-4)}
.chart .grid{stroke:var(--line-2);stroke-width:1}
.chart .bar{fill:var(--cobalt)}
.chart .bar.f{fill:var(--warn)}
.chart .bar:hover{opacity:.8}
.chart .area{fill:rgba(10,47,163,.08)}
.chart .line{fill:none;stroke:var(--cobalt);stroke-width:1.8;vector-effect:non-scaling-stroke}
.chart-tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-size:12px;padding:6px 8px;border-radius:2px;white-space:nowrap;transform:translate(-50%,-100%);margin-top:-8px}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--ink-3)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:9px;height:9px;border-radius:1px;background:var(--cobalt)}
.legend i.f{background:var(--warn)}

/* ---------- flow builder ---------- */
.builder{display:block}
.cv-card{overflow:hidden;position:relative}
.cv-bar{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.presence{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12.5px;color:var(--ink-3)}
.presence .faces{display:flex}
.presence .faces img{width:26px;height:26px;border-radius:50%;object-fit:cover;border:2px solid #fff;margin-left:-7px}
.presence .faces img:first-child{margin-left:0}
.cv-wrap{position:relative;overflow:auto;background:var(--sand);height:min(600px,calc(100dvh - 300px));min-height:440px;background-image:radial-gradient(rgba(94,75,55,.16) 1px,transparent 1.2px);background-size:20px 20px}
.cv{position:relative;margin:16px}
.cv svg.wires{position:absolute;inset:0;overflow:visible;pointer-events:none}
.cv .wire{fill:none;stroke:#F2EAE0;stroke-width:2}
.cv .wire.lit{stroke:var(--cobalt)}
.cv .wlbl{font:500 11px var(--sans);fill:var(--sand-ink);paint-order:stroke;stroke:var(--sand);stroke-width:5px;stroke-linejoin:round}
.fnode{position:absolute;width:280px;min-height:72px;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#FCFCFB;border-radius:3px;box-shadow:0 1px 0 rgba(94,75,55,.16);cursor:pointer;text-align:left;transition:box-shadow .15s}
.fnode:hover{box-shadow:0 0 0 1px var(--cobalt)}
.fnode.sel{box-shadow:0 0 0 2px var(--cobalt)}
.fnode .glyph{width:32px;height:32px;font-size:11px}
.fnode b{display:block;font:500 14.5px/1.25 var(--sans);letter-spacing:-.015em}
.fn-t{display:block;min-width:0}
.fn-t span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}
.fnode .ms{position:absolute;right:10px;top:9px;font:500 11px/1 var(--mono);color:var(--ok);opacity:0;transition:opacity .2s}
.fnode.lit .ms{opacity:1}
.fnode .fst{position:absolute;right:10px;bottom:9px;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center}
.fnode.lit .fst{background:var(--ok);border-color:var(--ok)}
.fnode.lit .fst::after{content:"";width:6px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.fnode.skip .fst{border-style:dashed}
.fnode.edited::before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;background:var(--sand-3);border-radius:2px}
.lcur{position:absolute;z-index:5;pointer-events:none;width:0;height:0;transition:left 1.6s var(--ease),top 1.6s var(--ease)}
.lcur svg{width:20px;height:20px;max-width:none;color:var(--cobalt);transform:translate(-3px,-3px)}
.lcur span{position:absolute;left:14px;top:15px;display:flex;align-items:center;gap:5px;height:24px;padding:0 8px 0 3px;border-radius:999px;background:var(--cobalt);color:#fff;font:500 12px/1 var(--sans);white-space:nowrap}
.lcur span img{width:18px;height:18px;max-width:none;border-radius:50%;object-fit:cover}
.lcur.b svg{color:#7A4E1E}
.lcur.b span{background:#7A4E1E}
.cpin{position:absolute;z-index:4;display:flex;align-items:center;gap:7px;height:34px;padding:0 12px 0 3px;border-radius:999px;background:var(--cobalt);color:#fff;font:500 13px/1 var(--sans);box-shadow:0 0 0 2px #fff;cursor:pointer;white-space:nowrap}
.cpin img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.cpin em{font-style:normal;font-size:11.5px;opacity:.7}
.insp{position:absolute;z-index:6;top:49px;right:0;bottom:0;width:340px;background:var(--panel);border-left:1px solid var(--line);box-shadow:-24px 0 40px -32px rgba(10,29,108,.4);overflow:auto;animation:drawin .24s var(--ease)}
.insp .card-b{display:flex;flex-direction:column;gap:2px}
.insp-h{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line-2)}
.insp-h .glyph{width:36px;height:36px;font-size:12px}
.insp-h b{display:block;font-weight:500;font-size:15px;letter-spacing:-.018em}
.insp-h span{font-size:12.5px;color:var(--ink-3)}
.range{width:100%;accent-color:var(--cobalt)}
.row-t{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13.5px}
.versions li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.versions li:last-child{border-bottom:0}
.versions .v{flex:none;width:44px;font:500 13px/22px var(--mono);color:var(--ink-3)}
.versions .vb{flex:1;min-width:0}
.versions .vb b{font-weight:500}
.versions .vb p{font-size:13px;color:var(--ink-3);margin-top:2px}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a,.tabs button{height:38px;padding:0 12px;font:500 13.5px/38px var(--sans);color:var(--ink-3);white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}
.tabs a:hover,.tabs button:hover{color:var(--ink)}
.tabs .on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--cobalt)}
.tabs em{font-style:normal;font-size:11.5px;color:var(--ink-3);margin-left:5px}

/* ---------- run detail ---------- */
.run-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px;align-items:start}
.trace{padding:8px 16px 8px}
.st{position:relative;display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:start;padding:11px 8px;margin:0 -8px;border-radius:3px;cursor:pointer;text-align:left;width:calc(100% + 16px)}
.st:hover{background:var(--panel-2)}
.st.sel{background:var(--cobalt-soft)}
.st::before{content:"";position:absolute;left:18px;top:33px;bottom:-11px;border-left:1.5px dashed var(--line)}
.st:last-child::before{display:none}
.st.lit::before{border-left:1.5px solid var(--cobalt)}
.st-dot{position:relative;z-index:1;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center}
.st.lit .st-dot{background:var(--cobalt);border-color:var(--cobalt)}
.st.lit .st-dot::after,.st.held .st-dot::after{content:"";width:8px;height:5px;border-left:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.st.lit.ai .st-dot{background:var(--ai);border-color:var(--ai)}
.st.fail .st-dot{background:var(--bad);border-color:var(--bad)}
.st.fail .st-dot::after{content:"!";color:#fff;font:700 12px/1 var(--sans)}
.st.held .st-dot{background:var(--warn);border-color:var(--warn)}
.st.held .st-dot::after{content:"";width:6px;height:6px;border:0;border-radius:1px;background:#fff;transform:none}
.st.pend .st-body b,.st.pend .st-body span{color:var(--ink-4)}
.st-body b{display:block;font:500 14.5px/1.3 var(--sans);letter-spacing:-.015em}
.st-body span{display:block;font-size:13px;color:var(--ink-3);margin-top:2px;line-height:1.4}
.st-ms{font:500 12px/22px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.st.fail .st-ms{color:var(--bad)}
.payload{margin:0;padding:14px 16px;font-size:12.5px;line-height:1.65;color:#22324F;background:var(--panel-2);border-top:1px solid var(--line-2);overflow:auto;max-height:340px;white-space:pre}
.payload .k{color:var(--cobalt)}.payload .s{color:#7A4E1E}.payload .n{color:var(--ai)}.payload .b{color:var(--ok)}
.err-box{margin:16px;padding:12px 14px;border-radius:3px;background:var(--bad-soft);color:#7E2216;font-size:13.5px;line-height:1.45}
.err-box b{display:block;margin-bottom:3px}
.ai-box{margin:16px;padding:12px 14px;border-radius:3px;background:var(--ai-soft);color:#3E2363;font-size:13.5px;line-height:1.5}
.ai-box b{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-weight:500}
.ai-box b svg{width:13px;height:13px}
.held-box{margin:16px;padding:12px 14px;border-radius:3px;background:var(--warn-soft);color:#7A3D10;font-size:13.5px;line-height:1.45;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* ---------- mappings ---------- */
.mp-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
.pairs li a{display:block;padding:12px 14px;border-bottom:1px solid var(--line-2)}
.pairs li:last-child a{border-bottom:0}
.pairs li a:hover{background:var(--panel-2)}
.pairs li a.on{background:var(--cobalt-soft)}
.pair-t{display:flex;align-items:center;gap:6px;font-weight:500;font-size:13.5px;letter-spacing:-.012em;flex-wrap:wrap}
.pair-t svg{width:12px;height:12px;color:var(--ink-4)}
.pair-s{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:12.5px;color:var(--ink-3)}
.fld{font-family:var(--mono);font-size:12.5px}
.arrow-c{color:var(--ink-4);width:14px}
.tf{font:500 12px/1 var(--mono);padding:4px 6px;background:var(--bg);border-radius:2px;color:var(--ink-2);cursor:text;border:1px dashed transparent}
.tf:hover{border-color:var(--line)}
.tf.add{color:var(--ink-4);background:transparent;border-color:var(--line)}
@media (hover:hover){tr:not(:hover) .tf.add:not(:focus){opacity:0}}
.tf-inp{height:26px;font:500 12px var(--mono);width:170px;padding:0 6px}
tr.sug td{background:#FCFAFE}
tr.unm td{background:#FBFAF8}

/* ---------- incidents ---------- */
.inc-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;align-items:start}
.inc-l li a{display:block;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.inc-l li:last-child a{border-bottom:0}
.inc-l li a:hover{background:var(--panel-2)}
.inc-l li a.on{background:var(--cobalt-soft)}
.inc-t{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-3)}
.inc-l b{display:block;font-weight:500;margin:5px 0 7px;letter-spacing:-.012em;line-height:1.3}
.sev{font:600 11px/1 var(--mono);padding:4px 5px;border-radius:2px;background:var(--bg);color:var(--ink-2)}
.sev.s2{background:var(--bad-soft);color:var(--bad)}
.sev.s3{background:var(--warn-soft);color:var(--warn)}
.tl{position:relative;padding:6px 0 0}
.tl li{position:relative;display:grid;grid-template-columns:30px 1fr;gap:12px;padding:0 0 18px}
.tl li::before{content:"";position:absolute;left:14px;top:30px;bottom:0;border-left:1px solid var(--line)}
.tl li:last-child::before{display:none}
.tl .glyph{width:30px;height:30px;border-radius:50%}
.tl img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.tl p{font-size:13.5px;line-height:1.5}
.tl time{display:block;font-size:12px;color:var(--ink-3);margin-bottom:2px}
.note-form{display:flex;gap:8px;margin-top:4px}
.note-form .inp{flex:1}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line-2)}
.stat-row div{padding:14px 16px;border-left:1px solid var(--line-2)}
.stat-row div:first-child{border-left:0}
.stat-row>div>span{display:block;font-size:12px;color:var(--ink-3)}
.stat-row b{display:block;font:400 20px/1.2 var(--sans);letter-spacing:-.03em;margin-top:5px}

/* ---------- approvals ---------- */
.apr-list{display:flex;flex-direction:column;gap:12px}
.apr{display:grid;grid-template-columns:minmax(0,1fr) 300px;background:var(--panel);border:1px solid var(--line);border-radius:3px;transition:box-shadow .2s,opacity .3s}
.apr.sel{box-shadow:0 0 0 2px var(--cobalt)}
.apr-main{padding:16px 18px;min-width:0}
.apr-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}
.apr-main h3{font:500 17px/1.3 var(--sans);letter-spacing:-.02em;margin:9px 0 4px}
.apr-main .rule{font-size:13.5px;color:var(--ink-3)}
.ctx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin-top:14px;border-top:1px solid var(--line-2)}
.ctx div{padding:9px 0;border-bottom:1px solid var(--line-2);font-size:13px;min-width:0}
.ctx span{display:block;font-size:12px;color:var(--ink-3)}
.apr-side{border-left:1px solid var(--line-2);padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--panel-2)}
.apr-side .ai-why{font-size:13px;line-height:1.5;color:var(--ink-2)}
.apr-side .ai-why b{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--ai);margin-bottom:4px}
.apr-side .ai-why b svg{width:12px;height:12px}
.apr-btns{display:flex;gap:8px;margin-top:auto}
.apr-btns .btn{flex:1;justify-content:center}
.apr-done{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-top:auto}

/* ---------- settings ---------- */
.set-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}
.set-nav{display:flex;flex-direction:column;gap:1px;position:sticky;top:0}
.set-nav a{height:34px;display:flex;align-items:center;padding:0 10px;border-radius:3px;color:var(--ink-2);font-size:14px}
.set-nav a:hover{background:var(--hover)}
.set-nav a.on{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-weight:500}
.set-sec{margin-bottom:16px}
.set-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.set-row:last-child{border-bottom:0}
.set-row b{display:block;font-weight:500;letter-spacing:-.012em}
.set-row p{font-size:13px;color:var(--ink-3);margin-top:2px}
.meter{margin:6px 0 2px}
.meter-t{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}
.meter-b{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
.meter-b i{display:block;height:100%;background:var(--cobalt);border-radius:3px}
.key-tail{font-family:var(--mono);font-size:12.5px;color:var(--ink-2)}


/* entry motion (route entry only) */
.entering .chart .bar{transform-box:fill-box;transform-origin:50% 100%;animation:grow .7s var(--ease) both}
@keyframes grow{from{transform:scaleY(0)}}
.entering .kpis,.entering .card,.entering .apr{animation:rise .45s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(6px)}}
.glyph svg{width:13px;height:13px}
.menu-badge{display:none!important}
@media (max-width:1199px) and (min-width:761px){.menu-badge{display:inline-block!important}}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .map-grid{grid-template-columns:minmax(0,1fr) 320px}
}
@media (max-width:1199px){
  :root{--side:64px}
  .ws{padding:12px 10px 8px}
  .ws-btn{padding:6px;justify-content:center}
  .ws-txt,.ws-chev,.side-search span,.side-search kbd,.nav-h,.nav a span,.usage,.side-foot .ariadne{display:none}
  .side-search{justify-content:center;margin:4px 10px 10px;padding:0}
  .nav{padding:0 10px}
  .nav a{justify-content:center;padding:0}
  .nav a+.nav-h,.nav-h{display:block;height:1px;padding:0;margin:8px 6px;background:var(--line);font-size:0;overflow:hidden}
  .nav-h:first-child{display:none}
  .nav-n{position:absolute;top:3px;right:3px;font-size:10px;padding:2px 4px}
  .nav-n:not(.nav-n-warn):not(.nav-n-blue):not(.nav-n-ai){display:none}
  .map-grid,.run-grid{grid-template-columns:1fr}
  .mp-grid,.inc-grid{grid-template-columns:260px minmax(0,1fr)}
  .apr{grid-template-columns:1fr}
  .apr-side{border-left:0;border-top:1px solid var(--line-2)}
  .top-search{width:220px}
}
@media (max-width:900px){
  .mp-grid,.inc-grid,.set-grid{grid-template-columns:1fr}
  .set-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none}
  .set-nav a{white-space:nowrap}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(3){border-left:0}
  .kpi:nth-child(n+3){border-top:1px solid var(--line-2)}
  .stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-row div:nth-child(3){border-left:0}
  .stat-row div:nth-child(n+3){border-top:1px solid var(--line-2)}
}
@media (max-width:760px){
  :root{--side:0px}
  .app{grid-template-columns:1fr}
  .side{position:fixed;z-index:60;top:0;left:0;bottom:0;width:284px;transform:translateX(-100%);transition:transform .28s var(--ease);box-shadow:20px 0 50px -30px rgba(10,29,108,.5)}
  .side.open{transform:none}
  .side .ws-txt,.side .ws-chev,.side .side-search span,.side .side-search kbd,.side .nav a span,.side .usage,.side .side-foot .ariadne{display:revert}
  .side .ws-txt{display:block}
  .side .side-search span{display:inline}
  .side .side-search{justify-content:flex-start;padding:0 8px 0 10px;margin:4px 12px 10px}
  .side .ws{padding:12px 12px 8px}
  .side .ws-btn{justify-content:flex-start;padding:7px 8px}
  .side .nav{padding:0 12px}
  .side .nav a{justify-content:flex-start;padding:0 10px}
  .side .nav-h{display:block;height:auto;background:none;margin:0;padding:14px 10px 6px}
  .side .nav-n{position:static;font-size:11.5px}
  .side .nav-n:not(.nav-n-warn):not(.nav-n-blue):not(.nav-n-ai){display:inline}
  .side .usage{display:block}
  .side .side-foot .ariadne{display:inline-block}
  .scrim{display:block;position:fixed;inset:0;z-index:55;background:rgba(14,15,18,.32);opacity:0;pointer-events:none;transition:opacity .25s}
  .scrim.on{opacity:1;pointer-events:auto}
  .top{padding:0 10px 0 8px;gap:6px}
  .top-menu{display:grid}
  .top-search{width:36px;padding:0;justify-content:center;box-shadow:none;background:transparent}
  .top-search span,.top-search kbd{display:none}
  .top-search svg{width:18px;height:18px;color:var(--ink-2)}
  .crumbs{font-size:13.5px}
  .crumbs>*:not(:last-child){display:none}
  .view{padding:16px 14px 40px}
  .ph h1{font-size:23px}
  .ph-actions{width:100%}
  .search-inp,.search-inp .inp{width:100%}
  .toolbar>*{flex:1 1 auto}
  .toolbar .seg,.card-h .seg{overflow-x:auto;max-width:100%;scrollbar-width:none}
  .card-h{flex-wrap:wrap}
  .card-h>div:first-child{min-width:0;flex:1 1 100%}
  .kpi{padding:13px 14px}
  .kpi-v{font-size:25px}
  .map{height:440px}
  .mnode{padding:6px 9px 6px 6px;gap:7px}
  .mnode .glyph{width:26px;height:26px;font-size:10px}
  .mnode b{font-size:12.5px}
  .mnode .mn-s{font-size:11px}
  .mnode.hub{padding:8px 12px 8px 8px}
  .edge-lbl{display:none}
  .ctx{grid-template-columns:1fr}
  .notif{width:calc(100vw - 16px)}
  .dl{grid-template-columns:110px 1fr}
  .drawer{width:100vw}
  .insp{width:100%;top:0}
  .cv-hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .view{scroll-behavior:auto}
}
