:root{--bg:#fbfaf7;--fg:#1d1e20;--muted:#62666d;--line:#dedad2;--card:#ffffff;--soft:#f2f0eb;--need:#b3361d;--need-bg:#fbebe6;--hold:#835700;--hold-bg:#f8ecd2;--adopted:#6c7178;--ok:#2f6b45;--ok-bg:#e3f0e7;--locked:#2b5c8a;--locked-bg:#e7eef6;--window:#835700;--window-bg:#f8ecd2;--hover:#f3f1ec;--focus:#2b5c8a;--scrim:rgba(20,20,22,.36);--shadow:0 10px 40px rgba(0,0,0,.14);--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,"Liberation Mono",Menlo,monospace;--t-xs:12px;--t-s:13.5px;--t-m:15px;--t-l:17px;--t-xl:22px;--t-num:28px;--radius:10px;color-scheme:light}
@media screen and (prefers-color-scheme:dark){:root{--bg:#141517;--fg:#e8e6e1;--muted:#a3a19b;--line:#33353a;--card:#1b1c1f;--soft:#222428;--need:#ff8e74;--need-bg:#3a201a;--hold:#f0c46e;--hold-bg:#382c13;--adopted:#9a9da3;--ok:#8fd1a6;--ok-bg:#1b3124;--locked:#8db8e6;--locked-bg:#1b2733;--window:#f0c46e;--window-bg:#382c13;--hover:#202226;--focus:#8db8e6;--scrim:rgba(0,0,0,.55);--shadow:0 10px 40px rgba(0,0,0,.5);color-scheme:dark}}
:root{--accent:var(--focus);--bar-h:45px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:var(--t-m)/1.45 var(--sans);overflow-wrap:anywhere}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
h1{font-size:var(--t-xl);line-height:1.25;margin:0 0 4px;letter-spacing:-.005em}
h2{font-size:18px;line-height:1.3;margin:0 0 10px;letter-spacing:-.003em}
h3{font-size:var(--t-m);line-height:1.35;margin:0}
p{margin:4px 0}
ul{margin:4px 0;padding-left:20px}
code,.mono{font-family:var(--mono);font-size:.87em}
.muted{color:var(--muted)}
.nw{white-space:nowrap}
.bar{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}
.bar-in{max-width:var(--page,1200px);margin:0 auto;padding:10px var(--gutter,24px);display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px}
.bar-in>.sum{flex:1 1 auto}
.mark{display:inline-flex;flex:none;width:22px;height:22px;color:var(--ok)}
.mark svg{width:22px;height:22px}
.mark .vein{stroke:var(--fg)}
.sum{font-size:var(--t-l);font-weight:600;line-height:1.3}
.sum a{text-decoration:none;white-space:nowrap}
.sum a:hover{text-decoration:underline}
.sum b{font-variant-numeric:tabular-nums}
.sum .need{color:var(--need)}
.who{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;font-size:12.5px;color:var(--muted)}
.who h1{font-size:12.5px;font-weight:600;margin:0;color:var(--fg)}
.who b{color:var(--fg);font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.tile .k{display:block;font-size:12.5px;line-height:1.3;color:var(--muted)}
.tile .v{display:block;font-size:var(--t-num);font-weight:650;line-height:1.15;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.tile .s{margin:0;font-size:12.5px;color:var(--muted)}
.alert{border:1px solid var(--need);border-radius:var(--radius);padding:10px 12px;color:var(--need);background:var(--need-bg)}
.calm{color:var(--ok);font-weight:600}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:50;background:var(--card);padding:6px 10px;border:1px solid var(--line);border-radius:6px}
.skip:focus{left:8px}
h2{margin:26px 0 8px;font-size:17px}
h2 .cnt{font-weight:500;color:var(--muted);font-size:14px;margin-left:6px}
h3{margin:0 0 4px}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow:auto;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:14px}
.brand{padding:0 8px;display:flex;gap:10px;align-items:flex-start}
.brand b{display:block;font-size:16px}
.brand span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.brand .mark{margin-top:1px}
.tenant{margin:0 2px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;color:var(--muted)}
.tenant b{display:block;font-size:14px;color:var(--fg)}
.tenant .mode{display:block;margin-top:4px}
.tsw{margin:0}
.tsw label{display:block;font-size:12px;color:var(--muted);margin:0 0 3px}
.tsw-row{display:flex;gap:6px}
.tsw select{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--card);font-size:14px;font-weight:600;color:var(--fg)}
.tsw .btn{padding:4px 10px;font-size:13px}
.js .tsw .btn{display:none}
.tsw-err{display:block;margin-top:6px;font-size:12px;line-height:1.35;color:var(--need)}
.nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:7px 10px;border-radius:7px;text-decoration:none}
.nav a:hover{background:var(--hover)}
.nav a[aria-current="page"]{background:var(--soft);font-weight:620;box-shadow:inset 3px 0 0 var(--accent)}
.nav .cnt{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.nav .cnt.need{color:var(--need);font-weight:650}
.side form{margin:0 2px}
.side .tsw{margin:0}
.side-foot{margin-top:auto;padding:0 8px;font-size:12px;color:var(--muted)}
.tour-btn{align-self:flex-start;margin:0 8px 10px}
.tour-block{position:fixed;inset:0;z-index:90;background:transparent}
.tour-block.dim{background:rgba(10,14,20,.55)}
.tour-spot{position:fixed;z-index:91;border-radius:10px;box-shadow:0 0 0 9999px rgba(10,14,20,.55);outline:2px solid var(--accent);pointer-events:none;transition:left .2s,top .2s,width .2s,height .2s}
.tour-card{position:fixed;z-index:92;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 12px 32px rgba(0,0,0,.3)}
.tour-card h2{margin:2px 0 6px;font-size:18px}
.tour-card .tour-body{margin:0 0 14px;line-height:1.45}
.tour-step{margin:0;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.tour-act{display:flex;gap:8px;align-items:center}
.tour-act span{flex:1}
@media (prefers-reduced-motion:reduce){.tour-spot{transition:none}}
.content{min-width:0;display:flex;flex-direction:column}
.bar-in{justify-content:space-between;align-items:baseline;gap:2px 20px}
.sum .adopted{color:var(--adopted)}
.sum .locked{color:var(--locked)}
.sum .window{color:var(--window)}
.sum .zero{color:var(--muted)}
.sum .dot{color:var(--muted);font-weight:400}
main{flex:1;min-width:0}
.wrap{max-width:1200px;margin:0 auto;padding:20px 24px 56px}
.shell.wide{--page:1480px}
.shell.wide .wrap{max-width:1480px}
.shell:has(table.set) .bar{position:static}
.head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;justify-content:space-between;margin:0 0 8px}
.lede{color:var(--muted);max-width:86ch;font-size:14px;margin:2px 0 0}
details.more{margin:4px 0 0;font-size:13.5px}
details.more>summary{font-size:12.5px;color:var(--muted);margin:2px 0}
.more-body{max-width:86ch;color:var(--muted);padding:2px 0 4px}
.more-body p{margin:4px 0}
.more-body .facts{margin:2px 0}
.facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin:8px 0 12px;font-size:13.5px;color:var(--muted)}
.facts b{color:var(--fg);font-weight:600}
.alert{margin:10px 0;padding:8px 12px}
.note{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin:10px 0;background:var(--card);font-size:14px}
.b{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;line-height:1.35;padding:1px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap;font-weight:560}
.b::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.b.need{color:var(--need);background:var(--need-bg);border-color:transparent}
.b.drifted{color:var(--fg);border-color:var(--fg)}
.b.held{color:var(--hold);background:var(--hold-bg);border-color:transparent}
.b.adopted{color:var(--adopted);background:var(--soft);border-color:transparent}
.b.ok{color:var(--muted)}
.b.locked{color:var(--locked);background:var(--locked-bg);border-color:transparent}
.b.open{color:var(--muted);border-style:dashed}
.b.window{color:var(--window);background:var(--window-bg);border-color:var(--window);border-style:dashed}
.verb{display:inline-block;vertical-align:1px;font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.6;padding:0 6px;border-radius:4px;margin-right:8px;background:var(--soft)}
.verb.v-ESCALATE,.verb.v-FIX{color:var(--need);background:var(--need-bg)}
.verb.v-ADOPT{color:var(--adopted)}
.verb.v-HOLD.w{color:var(--window);background:var(--window-bg)}
.tbl{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;vertical-align:top;padding:7px 10px;border-bottom:1px solid var(--line)}
th{font-size:12.5px;font-weight:600;color:var(--muted);background:var(--soft);white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.tbl.flush{overflow:visible}
.tbl.flush table{border-collapse:separate;border-spacing:0}
.tbl.flush thead th:first-child{border-top-left-radius:calc(var(--radius) - 1px)}
.tbl.flush thead th:last-child{border-top-right-radius:calc(var(--radius) - 1px)}
.tbl.flush tbody tr:last-child td:first-child{border-bottom-left-radius:calc(var(--radius) - 1px)}
.tbl.flush tbody tr:last-child td:last-child{border-bottom-right-radius:calc(var(--radius) - 1px)}
.tbl.flush tbody tr:last-child td{border-bottom:0}
table.set,table.wq{table-layout:fixed}
table.set th,table.set td,table.wq th,table.wq td{font-size:var(--t-s);padding:5px 10px}
table.set thead th{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 var(--line)}
table.set td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px;vertical-align:middle;padding-top:5px;padding-bottom:5px}
table.set td .b{vertical-align:middle}
table.set .w-obj{width:16%}
table.set .w-live{width:9%}
table.set .w-appr{width:7%}
table.set .w-lock{width:12%}
table.set .w-tpl{width:10%}
table.set .w-last{width:11%}
table.set .w-st{width:10%}
table.set .w-act{width:25%}
table.set td.acts-c{overflow:visible;text-overflow:clip;white-space:normal}
table.set .acts{flex-wrap:nowrap}
table.set tbody tr:not(.grp):hover{background:var(--hover)}
table.set .btn.sm{border-color:var(--line)}
table.set .btn.sm:hover{border-color:var(--fg)}
table.set .btn.sm[disabled]{border-color:transparent;background:transparent}
table.wq td{vertical-align:top;line-height:1.4;padding-top:8px;padding-bottom:8px}
table.wq th:nth-child(1){width:16%}
table.wq th:nth-child(2){width:12%}
table.wq th:nth-child(3){width:8%}
table.wq th:nth-child(4){width:24%}
table.wq th:nth-child(5){width:10%}
table.wq th:nth-child(6){width:11%}
table.wq th:nth-child(7){width:19%}
table.wq.lean th:nth-child(1){width:30%}
table.wq.lean th:nth-child(2){width:38%}
table.wq.lean th:nth-child(3){width:13%}
table.wq.lean th:nth-child(4){width:12%}
table.wq.lean th:nth-child(5){width:7%}
table.wq td code{font-size:12.5px;overflow-wrap:anywhere}
table.wq td.st{display:table-cell}
table.wq td.st .b{margin:0 4px 3px 0}
table.wq tbody tr:hover{background:var(--hover)}
code.chg{color:var(--need);font-weight:600}
.cls{font-weight:600}
.rs{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;color:var(--muted);font-size:12.5px;line-height:1.4;margin-top:1px}
.q.late{color:var(--need)}
th[data-sort]{user-select:none}
.sortbtn{all:unset;cursor:pointer;display:inline-flex;gap:5px;align-items:center;font-weight:600;color:var(--muted);font-size:12.5px}
.sortbtn:hover{color:var(--fg)}
.sortbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.sortbtn::after{content:"\2195";font-size:11px;opacity:.55}
th[aria-sort="ascending"] .sortbtn,th[aria-sort="descending"] .sortbtn{color:var(--fg)}
th[aria-sort="ascending"] .sortbtn::after{content:"\25B2";color:var(--accent);opacity:1}
th[aria-sort="descending"] .sortbtn::after{content:"\25BC";color:var(--accent);opacity:1}
td .on{font-family:var(--mono);font-size:13px}
td .oh{color:var(--muted);font-size:12.5px;margin-left:4px}
tr[data-open]{cursor:pointer}
tr[data-open]:hover{background:var(--hover)}
tr[data-open]:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
tr.grp td{background:var(--bg);font-size:12.5px;color:var(--muted);font-weight:600;padding:6px 10px;white-space:normal}
td .p{font-family:var(--mono);font-size:13.5px;display:block}
td .q{display:block;color:var(--muted);font-size:12.5px}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:14px 0 10px}
.filters label{display:flex;flex-direction:column;font-size:12.5px;color:var(--muted);gap:3px}
.filters select,.filters input{min-width:150px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--card);font-size:14px}
.filters .count{margin-left:auto;font-size:13px;color:var(--muted)}
.btn{display:inline-block;border:1px solid var(--line);background:var(--card);border-radius:7px;padding:6px 12px;cursor:pointer;font-size:14px;line-height:1.3;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--hover)}
.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}
.btn.primary:hover{filter:brightness(1.08)}
.btn.approve{color:var(--accent);border-color:var(--accent)}
.btn.lock{color:var(--locked);border-color:var(--locked)}
.btn.window{color:var(--window);border-color:var(--window)}
.btn.full{width:100%;text-align:center}
.btn.sm{padding:2px 8px;font-size:12.5px;line-height:1.5}
.btn[disabled]{opacity:.55;cursor:progress}
.acts .btn[disabled]{opacity:.5;cursor:not-allowed}
.acts .btn[disabled]:hover{background:var(--card)}
.acts{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.busy{font-size:12.5px;color:var(--muted)}
.item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .what{font-weight:600}
.item .where,.item .meta{color:var(--muted);font-size:13.5px}
.item .why{margin-top:2px}
.item .cause{margin-top:2px}
.list{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 14px}
.calm{color:var(--ok);font-weight:600}
details>summary{cursor:pointer}
details.fold>summary{color:var(--muted);margin:6px 0}
details.exc>summary{list-style:none}
details.exc>summary::-webkit-details-marker{display:none}
details.exc[open]>summary{margin-bottom:8px}
.exc form{width:min(360px,80vw)}
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:20}
.drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(640px,100vw);background:var(--card);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:21;display:flex;flex-direction:column}
.dr{display:flex;flex-direction:column;min-height:0;flex:1}
.dr-head{padding:16px 20px 12px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}
.dr-head h2{margin:0;font-size:15px;font-family:var(--mono);font-weight:600}
.dr-tools{margin-left:auto;flex:none;display:flex;gap:6px}
.kicker{font-size:12.5px;color:var(--muted);margin:0 0 4px}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.dr-body{overflow:auto;padding:4px 20px 28px;flex:1}
.dr-body h3,.detail h3{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:20px 0 6px;font-weight:650}
.dr-body table,.detail table{font-size:14px}
.kv{display:grid;grid-template-columns:9em minmax(0,1fr);gap:4px 14px;margin:6px 0;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
.kv.glance{grid-template-columns:11em minmax(0,1fr);gap:6px 14px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);margin:10px 0}
.kv .rc{display:block;font-size:12.5px;color:var(--muted)}
.crumb{margin:0 0 6px;font-size:13px;color:var(--muted)}
.oname{font-family:var(--mono);font-size:20px;overflow-wrap:anywhere}
.detail{max-width:980px}
.obj-head .acts{align-self:flex-start}
.pop{position:fixed;inset:0;margin:auto;width:min(400px,calc(100vw - 32px));height:fit-content;max-height:calc(100vh - 32px);overflow:auto;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--fg);box-shadow:var(--shadow);white-space:normal;text-align:left;text-overflow:clip;font-size:14px;line-height:1.45;font-weight:400}
.pop::backdrop{background:var(--scrim)}
.pop form{display:grid;grid-template-columns:4.5em minmax(0,1fr);gap:8px 10px;align-items:center;margin:0}
.pop h3{grid-column:1 / -1;font-size:16px;margin:0}
.pop-o{grid-column:1 / -1;margin:0;font-family:var(--mono);font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.pop-i{grid-column:1 / -1;margin:0 0 4px;font-size:13.5px}
.pop label{font-size:13px;color:var(--muted)}
.pop input{padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);min-width:0;width:100%}
.pop .act{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.strip-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.strip-id{display:flex;flex-direction:column;gap:1px;font-size:12.5px;line-height:1.3;color:var(--muted);min-width:0}
.strip-id b{font-size:16px;color:var(--fg)}
.stats{display:flex;flex-wrap:wrap;gap:8px;margin-right:auto}
.stat{display:inline-flex;align-items:baseline;gap:6px;padding:3px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);text-decoration:none;font-size:var(--t-s);color:var(--fg)}
.stat:hover{border-color:var(--fg);text-decoration:none}
.stat b{font-size:19px;line-height:1.15;font-variant-numeric:tabular-nums}
.stat.need{color:var(--need);background:var(--need-bg);border-color:transparent}
.stat.held{color:var(--hold)}
.stat.locked{color:var(--locked)}
.stat.adopted{color:var(--adopted)}
.stat.zero{color:var(--muted)}
.stat.drifted{color:var(--fg);border-color:var(--fg)}
.stat.window{color:var(--window);background:var(--window-bg);border-color:var(--window);border-style:dashed}
.strip-pass{margin:0}
.strip-pass .busy{margin:0}
.strip~main section{scroll-margin-top:84px}
@supports not selector(:popover-open){
.pop,[popovertarget]{display:none}
.obj-head .pop{display:block;position:static;width:auto;max-width:400px;margin:8px 0 0;box-shadow:none}
}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12.5px/1.5 var(--mono);background:var(--soft);padding:10px 12px;border-radius:8px;margin:6px 0}
pre.diff{white-space:pre;overflow-x:auto;overflow-wrap:normal}
pre .del{color:var(--need)}
pre .add{color:var(--locked)}
pre .hunk{color:var(--muted)}
.hist{list-style:none;margin:6px 0;padding:0;font-size:14px}
.hist li{padding:6px 0;border-bottom:1px solid var(--line)}
.hist li:last-child{border-bottom:0}
.hist .rc{display:block;font-size:12.5px;color:var(--muted)}
.wf{border:1px solid var(--line);border-radius:10px;padding:10px 14px 12px;margin:14px 0 4px;background:var(--bg)}
.wf h3{margin:0 0 8px}
.exc input,.exc textarea{padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--card);min-width:0;width:100%}
.exc .act{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.list.needs{border-left:4px solid var(--need)}
.exc form{display:grid;gap:6px}
.exc label{font-size:13px;color:var(--muted)}
.confirm{grid-column:1 / -1;border:1px solid var(--fg);border-radius:8px;padding:8px 10px;background:var(--card);font-size:14px}
.confirm p{margin:0 0 8px}
.report{display:block;width:100%;height:calc(100vh - 170px);min-height:520px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.toasts{position:fixed;right:16px;bottom:16px;z-index:30;display:flex;flex-direction:column;gap:8px;width:min(560px,calc(100vw - 32px));pointer-events:none}
.toast{position:relative;pointer-events:auto;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;box-shadow:var(--shadow);padding:10px 34px 10px 12px;font-size:14px}
.toast.err{border-left-color:var(--need)}
.toast pre{margin:6px 0 0;max-height:40vh;overflow:auto}
.toast .tx{position:absolute;top:6px;right:6px;border:0;background:none;cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;color:var(--muted)}
.pill{display:inline-block;font-size:11px;padding:0 6px;border-radius:4px;background:var(--soft);color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.drawer.in{animation:slide .18s ease-out}@keyframes slide{from{transform:translateX(32px)}to{transform:none}}}
@media (max-width:1360px){
table.set .hide-m,table.set col.hide-m{display:none}
}
@media (max-width:1080px){
table.set,table.set thead,table.set tbody,table.set tr,table.set td,table.wq,table.wq thead,table.wq tbody,table.wq tr,table.wq td{display:block;width:100%;min-width:0}
table.set colgroup,table.set thead,table.wq thead{display:none}
table.set tr[data-open],table.wq tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 14px;border-bottom:1px solid var(--line);padding:8px 12px}
table.set td,table.wq td{border:0;padding:2px 0;white-space:normal;line-height:1.4}
table.set td::before,table.wq td::before{content:attr(data-label);display:block;font-size:12.5px;color:var(--muted)}
table.set td[data-label="Object"],table.set td[data-label="Actions"],table.wq td[data-label="Object"],table.wq td[data-label="Why"],table.wq td[data-label="Actions"]{grid-column:1 / -1}
table.set tr.grp td::before,table.wq td[data-label="Actions"]::before{display:none}
table.set td.acts-c{padding-top:4px}
table.set .acts{flex-wrap:wrap}
.tbl.flush tbody tr:last-child td{border-bottom:0}
.kv.glance{grid-template-columns:1fr;gap:0}
}
@media (max-width:860px){
table.set tr[data-open],table.wq tbody tr{grid-template-columns:repeat(2,minmax(0,1fr))}
.strip{position:static}
.strip-in{gap:8px 12px}
.strip-pass,.strip-pass .btn{width:100%}
.stats{margin-right:0}
.oname{font-size:17px}
body{font-size:16px}
table{font-size:16px}
.shell{grid-template-columns:1fr}
.side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px 16px;gap:10px}
.brand,.tenant{padding:0;margin:0;border:0}
.nav{flex-direction:row;flex-wrap:wrap;gap:4px}
.nav a{border:1px solid var(--line);padding:5px 10px}
.side-foot{display:none}
.bar-in,.wrap{padding-left:16px;padding-right:16px}
.sum{font-size:16px}
table.rt,table.rt thead,table.rt tbody,table.rt tr,table.rt td{display:block;width:100%}
table.rt thead{display:none}
table.rt tr{border-bottom:1px solid var(--line);padding:8px 12px}
table.rt tbody tr:last-child{border-bottom:0}
table.rt td{border:0;padding:2px 0}
table.rt td::before{content:attr(data-label);display:block;font-size:12.5px;color:var(--muted)}
table.rt tr.grp td::before{display:none}
.filters label{flex:1 1 140px}
.filters select,.filters input{min-width:0;width:100%}
.filters .count{margin-left:0;width:100%}
.item{grid-template-columns:1fr}
.kv{grid-template-columns:1fr;gap:0}
.kv dt{margin-top:6px}
.report{height:calc(100vh - 230px)}
.ex-tools{flex-wrap:wrap}
}
.ex-chart{margin:0;min-width:0}
.ex-chart figcaption h3{margin:0}
.ex-chart .cap{color:var(--muted);font-size:var(--t-s);margin:2px 0 6px}
.chart{display:block;width:100%;height:auto;max-height:300px;overflow:visible}
.chart text{font-family:var(--sans);font-size:12px;fill:var(--muted)}
.chart .axl{font-size:12.5px;font-weight:600;fill:var(--fg)}
.chart .val{font-size:12px;font-weight:650;fill:var(--fg)}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--muted);stroke-width:1}
.chart .seg,.sw .sws{stroke:var(--card);stroke-width:1}
.chart .pl,.sw .pl{stroke:var(--card);stroke-width:1.7}
.chart .pd{fill:var(--card)}
.chart .ln,.sw .ln{fill:none;stroke:var(--locked);stroke-width:2.5}
.chart .pt,.sw .pt{fill:var(--card);stroke:var(--locked);stroke-width:2}
.f-need{fill:var(--need)}.f-hold{fill:var(--hold)}.f-ok{fill:var(--ok)}.f-adopted{fill:var(--adopted)}.f-locked{fill:var(--locked)}.f-muted{fill:var(--muted)}.f-fg{fill:var(--fg)}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 8px;padding:0;font-size:var(--t-s)}
.legend li{display:inline-flex;align-items:center;gap:6px}
.legend .sw{width:14px;height:14px;flex:none;border-radius:2px}
table.data{border-collapse:collapse;width:100%;font-size:var(--t-s);margin:4px 0;overflow-wrap:normal}
table.data th,table.data td{padding:4px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.data thead th{font-size:var(--t-xs);font-weight:600;color:var(--muted);background:var(--soft)}
table.data tbody th{font-weight:500;white-space:nowrap;background:none;color:var(--fg);font-size:inherit}
table.data .num{text-align:right;font-variant-numeric:tabular-nums}
.ex-chart .rest{color:var(--muted);font-size:var(--t-xs);margin:4px 0 0}
@media (max-width:640px){
table.data,table.data tbody,table.data tr,table.data th,table.data td{display:block;width:100%}
table.data thead{display:none}
table.data tr{border-bottom:1px solid var(--line);padding:6px 0}
table.data tbody th,table.data td{border:0;padding:1px 0;white-space:normal}
table.data td{display:flex;justify-content:space-between;gap:12px;text-align:right}
table.data td::before{content:attr(data-label);color:var(--muted);text-align:left}
}
.ex{max-width:1200px}
.ex-sec{margin:0 0 30px}
.ex-sec>h2{margin:24px 0 10px}
.ex-sec>h2 .cnt{font-weight:500;color:var(--muted);font-size:14px;margin-left:6px}
.ex-top{margin:4px 0 6px}
.ex-top h1{margin:0}
.ex-when{display:flex;flex-wrap:wrap;gap:0 14px;color:var(--muted);font-size:var(--t-s);margin:2px 0 0}
.ex-when span:first-child{color:var(--fg);font-weight:600}
.ex-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile .v small{font-size:.5em;color:var(--muted);font-weight:500}
.ex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ex-incs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ex-inc h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 0}
.ex-inc .where{color:var(--muted);margin:2px 0 6px}
.ex-inc .fid{margin:8px 0 0;font-size:var(--t-xs);color:var(--muted)}
.badge{display:inline-block;vertical-align:1px;font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.6;padding:0 6px;border-radius:4px;margin-right:6px;background:var(--soft)}
.badge.v-ESCALATE,.badge.v-FIX{color:var(--need);background:var(--need-bg)}
.badge.v-HOLD{color:var(--hold);background:var(--hold-bg)}
.badge.v-ROLLBACK{color:var(--ok);background:var(--ok-bg)}
.badge.v-ADOPT{color:var(--adopted)}
.ex-kv{display:grid;grid-template-columns:7em minmax(0,1fr);gap:4px 12px;margin:0;font-size:var(--t-s)}
.ex-kv dt{color:var(--muted)}
.ex-kv dd{margin:0}
.ex-kv ul{margin:0;padding-left:16px}
table.data.ex-src tbody th{white-space:normal}
.ex-dq{list-style:none;padding:0;margin:6px 0;font-size:var(--t-s)}
.ex-dq li{padding:5px 0;border-bottom:1px solid var(--line)}
.dq{display:inline-block;min-width:5.5em;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.pass,.dq.pass{color:var(--ok)}
.fail,.dq.fail{color:var(--need);font-weight:600}
.dq.unread{color:var(--muted)}
.ex-receipts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;align-items:start}
.ex-stats{list-style:none;padding:0;margin:8px 0 4px;display:grid;gap:6px}
.ex-stats b{display:block;font-size:var(--t-l);font-variant-numeric:tabular-nums}
.ex-stats li{color:var(--muted);font-size:var(--t-s)}
.ex-stats li b{color:var(--fg)}
.ex-head-line .cap{color:var(--muted);font-size:var(--t-xs);margin:4px 0 0}
.ex-foot{margin:22px 0 0;padding:12px 0 0;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px}
.ex-foot p{margin:2px 0}
@media (max-width:900px){.ex-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-grid,.ex-incs,.ex-receipts{grid-template-columns:1fr}}
@media (max-width:560px){.ex-kpis{grid-template-columns:1fr}.ex-kv{grid-template-columns:1fr}.ex-kv dt{margin-top:4px}}
@page{size:A4;margin:14mm 12mm}
@media print{
.ex-sec{break-before:page}
.ex-sec:first-child{break-before:auto}
.ex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ex-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.ex-incs{grid-template-columns:repeat(2,minmax(0,1fr))}
.card,.tile,.ex-chart,tr{break-inside:avoid}
h2,h3{break-after:avoid}
.chart{max-height:none}
}
.ex-tools{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 14px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.ex-act{display:inline-flex;gap:8px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.seg a{padding:6px 12px;text-decoration:none;font-size:14px;border-left:1px solid var(--line)}
.seg a:first-child{border-left:0}
.seg a:hover{background:var(--hover)}
.seg a[aria-current="page"]{background:var(--fg);color:var(--bg);font-weight:600}
.tpls{display:flex;flex-direction:column;gap:10px;margin:14px 0 0}
.tpl{padding:0}
.tpl>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 16px}
.tpl>summary::-webkit-details-marker{display:none}
.tpl>summary::before{content:"\25B8";color:var(--muted)}
.tpl[open]>summary::before{content:"\25BE"}
.tpl-name{font-family:var(--mono);font-weight:600;font-size:14px}
.tpl-n{margin-left:auto;color:var(--muted);font-size:13.5px}
.tpl-n .need{color:var(--need);font-weight:600}
.tpl-rule{margin:0;padding:0 16px 10px;font-size:13.5px}
.tpl .tbl{border-width:1px 0 0;border-radius:0 0 var(--radius) var(--radius)}
.tpl-t td .verb{margin-right:4px}
@media print{
:root{color-scheme:light;--bg:#fff;--card:#fff;--soft:#f3f3f3}
body{font-size:10pt}
.side,.bar,.skip,.toasts,.drawer,.scrim,.ex-tools{display:none!important}
.pop,.acts{display:none!important}
.shell{display:block}
.wrap{max-width:none;padding:0}
a{text-decoration:none}
}