:root{
  --navy:#0b2a5b; --navy-2:#13396f; --blue:#1d4f91; --blue-l:#e8eef8; --red:#b22234; --red-d:#8f1b29;
  --ink:#1b2333; --muted:#5d6779; --line:#d9dfe9; --bg:#f5f7fb; --white:#fff;
  --radius:8px; --shadow:0 1px 2px rgba(11,42,91,.06),0 6px 24px rgba(11,42,91,.08);
  font-family: "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif; color:var(--ink);
}
*{box-sizing:border-box} html,body{margin:0;height:100%;background:var(--bg)}
[hidden]{display:none!important}
.stripe{display:flex;height:4px}.stripe i{flex:1}.stripe i:nth-child(1){background:var(--red)}.stripe i:nth-child(2){background:var(--white)}.stripe i:nth-child(3){background:var(--navy)}
button{font:inherit;cursor:pointer}
.primary{background:var(--red);color:#fff;border:0;border-radius:var(--radius);padding:11px 16px;font-weight:600;letter-spacing:.2px;width:100%}
.primary:hover{background:var(--red-d)} .primary:disabled{opacity:.6;cursor:wait}
.ghost{background:transparent;border:1px solid var(--line);border-radius:6px;padding:6px 10px;color:var(--blue);font-weight:600}
.ghost.light{color:#fff;border-color:rgba(255,255,255,.4)} .ghost.light:hover{background:rgba(255,255,255,.1)}
.link{background:none;border:0;color:var(--blue);padding:10px 0 0;font-weight:600}
.brand{display:flex;align-items:center;gap:10px}
.mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--red);color:#fff;font-weight:800;font-size:13px;letter-spacing:.5px;box-shadow:inset 0 -3px 0 var(--navy)}
.brand.big .mark{width:44px;height:44px;font-size:17px}
.brand h1{margin:0;font-size:22px;color:var(--navy)} .brand p{margin:2px 0 0;color:var(--muted);font-size:14px}

/* login */
.login-wrap{min-height:calc(100% - 4px);display:grid;place-items:center;padding:32px;background:linear-gradient(180deg,var(--navy) 0 220px,var(--bg) 220px)}
.login-card{width:440px;max-width:100%;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:28px 30px 22px;border-top:4px solid var(--red)}
.lbl{display:block;font-size:13px;font-weight:600;color:var(--navy);margin:16px 0 6px}
input[type=text],input[type=password],input[type=search]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;background:#fff;color:var(--ink)}
input:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}
#username{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:15px;letter-spacing:.2px}
.hint{margin:5px 0 0;font-size:12px;color:var(--muted)}
.pw{display:flex;gap:8px}.pw input{flex:1}.pw .ghost{min-width:64px}
.check{display:flex;gap:8px;align-items:center;margin:14px 0 16px;font-size:14px;color:var(--ink)}
.msg{padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:12px;background:var(--blue-l);color:var(--navy)}
.msg.err{background:#fbeaec;color:var(--red-d)}
.endpoint{margin-top:16px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
.endpoint summary{cursor:pointer;color:var(--navy);font-weight:600}
.endpoint code{background:var(--bg);padding:1px 5px;border-radius:4px;color:var(--navy)}
.endpoint dl{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;margin:8px 0}.endpoint dt{font-weight:600;color:var(--ink)}.endpoint dd{margin:0;word-break:break-word}

/* combobox */
.combo{position:relative}
.combo>button.combo-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left;color:var(--ink)}
.combo>button.combo-btn:after{content:"▾";color:var(--muted)}
.combo .panel{position:absolute;z-index:20;left:0;width:max(100%,440px);top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:320px}
.combo .panel input{border:0;border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}
.combo ul{list-style:none;margin:0;padding:4px 0;max-height:340px;overflow:auto}
.combo li{padding:7px 12px;display:flex;justify-content:space-between;gap:10px;cursor:pointer;font-size:14px;color:var(--ink)}
.combo li small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.combo li.active,.combo li:hover{background:var(--blue-l)} .combo li.sel{font-weight:700;color:var(--navy)}
.combo .count{padding:6px 12px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line)}
.combo.dark{width:300px}.combo.dark>button.combo-btn{background:var(--navy-2);border-color:rgba(255,255,255,.25);color:#fff;padding:7px 12px}
.combo.dark>button.combo-btn:after{color:#cfd8e6}

/* main */
.topbar{display:flex;align-items:center;gap:16px;background:var(--navy);color:#fff;padding:10px 18px;height:56px}
.brand .mark-img{width:44px;height:44px;border-radius:10px}
.topbar .brand-tile{display:inline-flex;align-items:center;justify-content:center;height:36px;min-width:36px;max-width:150px;border-radius:8px;overflow:hidden}
.topbar .brand-tile img{height:36px;width:36px;display:block}
.topbar .brand-tile.logo{background:#fff;padding:3px 8px;box-shadow:inset 0 -2px 0 var(--red)}
.topbar .brand-tile.logo img{height:30px;width:auto;max-width:134px;object-fit:contain}
.spacer{flex:1}
.hostinfo{font-size:12px;color:#cfd8e6;max-width:520px;line-height:1.3}
.hostinfo .warn{color:#ffd7dc}
.badge{font-size:12px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25)}
.badge.on{background:#fff;color:var(--navy);font-weight:600}
.layout{display:grid;grid-template-columns:380px 1fr;height:calc(100vh - 4px - 56px - 30px)}
.sidebar{background:#fff;border-right:1px solid var(--line);overflow:auto}
.hier{border-bottom:1px solid var(--line)}
.hier>header{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;user-select:none;background:linear-gradient(90deg,var(--blue-l),#fff)}
.hier>header .t{font-weight:700;color:var(--navy);font-size:14px}
.hier>header .n{font-size:11.5px;color:var(--muted);margin-left:auto}
.hier>header .chev{width:14px;color:var(--red);font-size:12px;transition:transform .15s}
.hier.closed>header .chev{transform:rotate(-90deg)}
.hier .src{font-size:11px;color:var(--muted);padding:0 12px 6px 34px;background:linear-gradient(90deg,var(--blue-l),#fff);word-break:break-all}
.hier.closed .body{display:none}
.hier .missing{padding:8px 14px 12px 34px;font-size:12.5px;color:var(--red-d)}
ul.tree{list-style:none;margin:0;padding:2px 0 8px}
ul.tree ul{list-style:none;margin:0;padding-left:16px}
.node{display:flex;align-items:center;gap:4px;padding:3px 10px 3px 12px;font-size:13.5px;cursor:pointer;border-left:3px solid transparent;white-space:nowrap}
.node:hover{background:var(--bg)}
.node.sel{background:var(--blue-l);border-left-color:var(--red);font-weight:600;color:var(--navy)}
.tw{width:16px;text-align:center;color:var(--muted);font-size:10px;flex:none}
.tw.leaf{visibility:hidden}
.node .nm{overflow:hidden;text-overflow:ellipsis}
.node .ct{margin-left:auto;font-size:11px;color:var(--muted);padding-left:8px}
.loading{font-size:12px;color:var(--muted);padding:4px 12px 4px 34px}
.detail{overflow:auto;padding:22px 28px}
.detail .empty{color:var(--muted);margin-top:60px;text-align:center}
.dhead h2{margin:0 0 4px;color:var(--navy);font-size:22px}
.crumbs{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.crumbs b{color:var(--red)}
.meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--muted);margin:8px 0 16px}
.meta code{color:var(--navy);background:var(--blue-l);padding:1px 6px;border-radius:4px}
.meta a{color:var(--blue)}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:12px}
.tabs button{border:0;background:none;padding:8px 14px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs button.on{color:var(--navy);border-bottom-color:var(--red)}
.toolbar{display:flex;gap:14px;align-items:center;margin-bottom:10px;font-size:13px}
.toolbar input[type=search]{max-width:280px;padding:6px 10px;font-size:13px}
table.fields{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:13px}
table.fields th{background:var(--navy);color:#fff;text-align:left;font-weight:600;padding:8px 10px;font-size:12px;letter-spacing:.3px}
table.fields td{padding:7px 10px;border-top:1px solid var(--line);vertical-align:top}
table.fields tr:nth-child(even) td{background:#fafbfd}
table.fields td.v{white-space:pre-wrap;word-break:break-word;max-width:520px}
table.fields td.k{font-weight:600;color:var(--navy);white-space:nowrap}
table.fields td.s{color:var(--muted);font-size:12px}
.pill{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--blue-l);color:var(--navy)}
.pill.red{background:#fbeaec;color:var(--red-d)}
.foot{height:30px;line-height:30px;font-size:12px;color:var(--muted);padding:0 18px;border-top:1px solid var(--line);background:#fff}
.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:s .8s linear infinite;vertical-align:-2px}
@keyframes s{to{transform:rotate(360deg)}}

/* tree: long lists are rendered in chunks of 200 rows; offscreen chunks skip style/layout/paint work */
ul.tree li.chunk{content-visibility:auto}
ul.tree li.chunk>ul{padding-left:0}
ul.tree li.more{display:flex;align-items:center;gap:8px;padding:4px 12px 6px 34px;font-size:12px;color:var(--muted)}
ul.tree li.more button{background:none;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600;color:var(--blue)}
ul.tree li.more button:hover{background:var(--blue-l);border-color:var(--blue)}
ul.tree li.more button[data-more=all]{color:var(--red-d)}

/* sortable tables: every column title is a button */
table.fields.sortable th{padding:0}
table.fields th .sorth{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;cursor:pointer;color:#fff;font-weight:600;font-size:12px;letter-spacing:.3px;white-space:nowrap;user-select:none}
table.fields th .sorth:hover{background:var(--navy-2)}
table.fields th .sorth:focus-visible{outline:2px solid #fff;outline-offset:-3px}
table.fields th .arrow{font-size:10px;color:rgba(255,255,255,.35);min-width:10px}
table.fields th .sorth:hover .arrow{color:rgba(255,255,255,.7)}
table.fields th.sorted{box-shadow:inset 0 -3px 0 var(--red)}
table.fields th.sorted .arrow{color:#ffb3bc}
.link.small{padding:0;font-size:12.5px}
.toolbar{flex-wrap:wrap;row-gap:8px}
.toolbar>label,.toolbar>.link,.toolbar>span.s{white-space:nowrap}

/* developer "Show API calls" panel (public/netlog.js); off by default */
.netlog-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer;user-select:none}
.foot{display:flex;gap:6px;align-items:center}
.netlog-toggle input{appearance:none;width:26px;height:14px;border-radius:999px;background:var(--line);position:relative;margin:0;cursor:pointer;transition:background .15s}
.netlog-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.netlog-toggle input:checked{background:var(--red)}.netlog-toggle input:checked:after{left:14px}
.netlog-toggle input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
/* settings menu (build 2026-10-08.1): gear (lucide Settings2, LiveStuff's settings icon) in a round header button like the
   menu button; the panel follows LiveStuff's account menu (white card, 1px line, radius 16px, shadow, 8px rows, navy-50 hover)
   and its switch (48×28, navy when on) */
.settings{position:relative;flex:none}
.setpop{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:min(19rem,calc(100vw - 1rem));padding:6px;background:#fff;color:var(--ink,#0f172a);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 25px -5px rgba(6,33,74,.15),0 8px 10px -6px rgba(6,33,74,.15)}
.sethead{display:flex;align-items:center;gap:10px;padding:8px 10px 10px;font-size:14px;font-weight:700;color:var(--navy)}
.sethead .setico{display:inline-grid;color:var(--red)}.sethead .setico svg{width:20px;height:20px}
.setrow.setlink{all:unset;box-sizing:border-box;display:block;width:100%;padding:10px;border-radius:6px;font-size:14px;cursor:pointer}
.setrow.setlink:hover,.setrow.setlink:focus-visible{background:#eef3fb}
.jr-note{color:var(--muted);font-size:12px;margin:0 0 10px}
table.fields td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.fields td.u{word-break:break-all}
.setsep{height:1px;background:var(--line);margin:0 4px 4px}
.setrow.netlog-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border-radius:6px;font-size:14px;color:inherit;cursor:pointer}
.setrow.netlog-toggle:hover{background:#eef3fb}
.settxt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.settxt b{font-weight:600;color:var(--ink,#0f172a)}.settxt small{font-size:12px;color:var(--muted);line-height:1.35}
.setrow.netlog-toggle input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.setrow .sw{position:relative;flex:none;width:48px;height:28px;border-radius:999px;background:#c7d4e8;transition:background .15s}
.setrow .sw:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(6,33,74,.3);transition:left .15s}
.setrow input:checked+.sw{background:var(--navy)}.setrow input:checked+.sw:after{left:22px}
.setrow input:focus-visible+.sw{box-shadow:0 0 0 2px rgba(10,49,97,.4)}
.menubtn[aria-expanded=true]#settingsBtn{background:rgba(255,255,255,.14)}
body.netlog-open{padding-bottom:var(--netlog-h)}
body.netlog-open .layout{height:calc(100vh - 4px - 56px - 30px - var(--netlog-h))}
body.netlog-open .login-wrap{min-height:calc(100% - 4px - var(--netlog-h))}
.netlog{position:fixed;left:0;right:0;bottom:0;height:var(--netlog-h,36vh);z-index:30;background:#fff;border-top:3px solid var(--red);box-shadow:0 -6px 24px rgba(11,42,91,.12);display:flex;flex-direction:column;font-size:12px}
.nl-grip{position:absolute;top:-6px;left:0;right:0;height:9px;cursor:ns-resize}
.nl-head{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:6px 12px;flex:none}
.nl-head strong{font-size:13px;letter-spacing:.2px}
.nl-count{color:#cfd8e6;font-size:11.5px;white-space:nowrap}
.nl-head input[type=search]{width:280px;padding:4px 8px;font-size:12px;border-radius:6px;border:1px solid rgba(255,255,255,.25)}
.nl-chk{display:flex;align-items:center;gap:5px;white-space:nowrap;color:#e6ebf3}
.nl-btn{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600}
.nl-btn:hover{background:rgba(255,255,255,.12)}
.nl-note{padding:6px 12px;background:#fbeaec;color:var(--red-d);flex:none}
.nl-scroll{overflow:auto;flex:1}
.nl-table{width:100%;border-collapse:collapse;font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:11.5px}
.nl-table th{position:sticky;top:0;background:var(--blue-l);color:var(--navy);text-align:left;font-weight:700;padding:4px 8px;font-family:"Segoe UI",Arial,sans-serif;font-size:11px;border-bottom:1px solid var(--line);white-space:nowrap}
.nl-table td{padding:3px 8px;border-bottom:1px solid #eef1f6;vertical-align:top;white-space:nowrap}
.nl-table td.p{white-space:normal;word-break:break-all;min-width:260px;color:var(--ink)}
.nl-table td.sum{white-space:normal;color:var(--muted);min-width:200px}
.nl-table td.t,.nl-table td.req,.nl-table td.ms{color:var(--muted)}
.nl-table td.side{font-family:"Segoe UI",Arial,sans-serif;font-size:11px}
.nl-table tr.live td.side{color:var(--navy);font-weight:700}
.nl-table tr.app td.side{color:var(--blue)}
.nl-table tr.live td{background:#fafbfd}
.nl-table td.st{font-weight:700;color:var(--navy)}
.nl-table tr.err td.st,.nl-table tr.err td.sum{color:var(--red-d)}
.nl-table tr.err td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.nl-empty{padding:18px;color:var(--muted);text-align:center;font-family:"Segoe UI",Arial,sans-serif}


/* Context / Workflow tab counts */
.tabs{flex-wrap:wrap;row-gap:0}
.tabs button .n{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--blue-l);color:var(--navy);font-size:11px;font-weight:700;min-width:1.4em;text-align:center;line-height:1.6}
.tabs button.on .n{background:var(--red);color:#fff}
.tabs button{white-space:nowrap}

/* LiveRetail Strategic Partner dropdown (topbar; hidden unless LiveRetail) */
.combo.dark.partner{width:220px}
.combo.dark.partner>button.combo-btn{padding:7px 10px;font-size:13px}

/* Table / Hierarchy switch per group (build 2026-10-07.4). Same control as LiveStuff's sidebar List / Tree switch:
   a bordered white pill holding icon + label buttons, the active one filled; here navy with the brand tile's red underline. */
.layout{transition:grid-template-columns .15s ease}
.layout.wide{grid-template-columns:560px 1fr}
.hier>header .n{white-space:nowrap}
.viewseg{display:inline-flex;flex:none;gap:2px;padding:2px;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:default}
.viewseg .vbtn{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;line-height:1}
.viewseg .vbtn:hover{color:var(--navy);background:var(--bg)}
.viewseg .vbtn[aria-pressed=true]{background:var(--navy);color:#fff;box-shadow:inset 0 -2px 0 var(--red)}
.viewseg .vbtn:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.viewseg .ico{display:inline-flex}.viewseg .ico svg{width:14px;height:14px}
.layout:not(.wide) .hier[data-view=hierarchy] .viewseg .vbtn[aria-pressed=false] .vlbl{display:none} /* narrow sidebar: the inactive mode shrinks to its icon */
/* flat table in the sidebar: fixed columns with ellipsis, sticky headers under the filter box */
.stable{padding:0 0 8px}
.stable .tstat{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);padding:2px 12px 6px 34px}
table.fields.side{table-layout:fixed;border-radius:0;border-left:0;border-right:0;font-size:12.5px;overflow:visible} /* not a scroll box, so the sticky headers follow the sidebar */
table.fields.side th{position:sticky;top:var(--sf-h,54px);z-index:1}
table.fields.side th .sorth{padding:6px 7px;gap:4px;font-size:11.5px}
table.fields.side th .sorth span:first-child{overflow:hidden;text-overflow:ellipsis}
table.fields.side td{padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;color:var(--ink);font-size:12px;cursor:pointer;border-top-color:#eef1f6}
table.fields.side td.k{color:var(--navy);font-size:12.5px}
table.fields.side td.e{color:#b4bccb}
table.fields.side tbody tr:hover td{background:var(--bg)}
table.fields.side tbody tr.sel td{background:var(--blue-l);color:var(--navy);font-weight:600}
table.fields.side tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--red)}
table.fields.side td.note{color:var(--muted);text-align:center;cursor:default;padding:10px}
table.fields.side tr.more td{cursor:default;background:#fff!important;padding:6px 12px;color:var(--muted)}
table.fields.side tr.more td>*{margin-right:8px}
table.fields.side tr.more button{background:none;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600;color:var(--blue)}
table.fields.side tr.more button:hover{background:var(--blue-l);border-color:var(--blue)}
table.fields.side tr.more button[data-tmore=all]{color:var(--red-d)}

/* build 2026-10-07.5 ------------------------------------------------------------------------------------------------ */
/* left panel show / hide (build .6): LiveStuff's control. Round 40 px menu button at the far left of the header, lucide Menu
   20 px, hover white 10 %; collapsed = no sidebar at all; white search badge on the button while a group search is active */
:root{--sf-h:0px}
.topbar{padding-left:8px;gap:12px}
.menubtn{position:relative;flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:999px;background:transparent;color:#fff}
.menubtn:hover{background:rgba(255,255,255,.1)}
.menubtn:focus-visible{outline:2px solid #fff;outline-offset:1px}
.menubtn>svg{width:20px;height:20px}
.menubtn .msbadge{display:none;position:absolute;right:2px;bottom:2px;width:16px;height:16px;place-items:center;border-radius:999px;background:#fff;color:var(--navy);box-shadow:0 0 0 2px var(--navy)}
.menubtn .msbadge svg{width:10px;height:10px}
.menubtn.collapsed.has-search .msbadge{display:grid}
.layout.navcollapsed{grid-template-columns:1fr}
.layout.navcollapsed .sidebar{display:none}
/* per-group search: magnifier in the header expands into an input (Esc / × clear) */
.gswrap{display:flex;align-items:center;min-width:0}
.hier.searching .gswrap{flex:1}
.hier.searching>header .n{display:none}
.gsbtn{flex:none;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted)}
.gsbtn:hover{color:var(--navy);background:#fff;border-color:var(--line)}
.gsbtn svg{width:15px;height:15px}
.hier.filtered .gsbtn{color:#fff;background:var(--navy);box-shadow:inset 0 -2px 0 var(--red)}
.hier.searching .gsbtn{display:none}
.gsearch{display:none;align-items:center;gap:4px;flex:1;min-width:0;height:28px;padding:0 4px 0 8px;background:#fff;border:1px solid var(--blue);border-radius:8px;box-shadow:0 0 0 2px var(--blue-l)}
.hier.searching .gsearch{display:flex}
.gsearch .gsico{display:inline-grid;color:var(--muted)}.gsearch .gsico svg{width:14px;height:14px}
.gsearch input.gsin{flex:1;min-width:0;width:auto;border:0;outline:0;padding:0 2px;font-size:12.5px;background:transparent}
.gsearch input.gsin::-webkit-search-cancel-button{display:none}
.gsearch input.gsin:focus{outline:0}
.gsclr{flex:none;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:var(--bg);color:var(--muted);font-size:14px;line-height:1}
.gsclr:hover{background:var(--red);color:#fff}
.gsspin{flex:none;width:11px;height:11px}
.hier>header{gap:6px}
/* letter-jump chips (both views), sticky under the filter box; the table header sticks under them */
.jump{position:sticky;top:var(--sf-h,54px);z-index:2;display:flex;flex-wrap:nowrap;gap:4px;align-items:center;height:32px;padding:0 12px 0 34px;background:#fff;border-bottom:1px solid #eef1f6;overflow-x:auto;scrollbar-width:none}
.jchip{flex:none;height:22px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-size:11.5px;font-weight:700;letter-spacing:.3px;font-variant-numeric:tabular-nums}
.jchip:hover{background:var(--blue-l);border-color:var(--blue)}
.jchip.on{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:inset 0 -2px 0 var(--red)}
.jchip:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
table.fields.side th{top:calc(var(--sf-h,54px) + var(--jump-h,0px))}
table.fields.side tbody tr{scroll-margin-top:calc(var(--sf-h,54px) + var(--jump-h,0px) + 30px)}
ul.tree .node{scroll-margin-top:calc(var(--sf-h,54px) + var(--jump-h,0px) + 4px)}
@keyframes lomflash{from{background:#ffe3e7}to{background:transparent}}
.node.flash,table.fields.side tbody tr.flash td{animation:lomflash .9s ease-out}
.stable .tstat{padding-top:6px}
/* Usage pills, strongest first: Core (solid red) · System (red outline) · Base (solid navy) · Standard (light blue) · rest grey */
.upill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.2px;line-height:16px;padding:0 7px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.upill.u-core{background:var(--red);color:#fff}
.upill.u-system{background:#fbeaec;color:var(--red-d);border-color:#e7a5ae}
.upill.u-base{background:var(--navy);color:#fff}
.upill.u-standard{background:var(--blue-l);color:var(--navy);border-color:#c9d6ea}
.upill.u-config{background:#fff;color:#6b7486;border-color:#cfd5df}
.upill.u-hidden{background:#f1f3f6;color:#8a93a3;border-style:dashed;border-color:#cfd5df}
.upill.u-other{background:#f1f3f6;color:#6b7486}
.upill.u-none{background:none;color:#b4bccb;border:0;padding:0;text-transform:none}
/* Usage column header: a one-click picker (All or one value), not a sort (build .6) */
table.fields th.fth{position:sticky}
table.fields th .fwrap{display:flex;align-items:center;min-width:0}
table.fields th .sorth.filt{flex:1;min-width:0}
table.fields th .sorth.filt .arrow{color:rgba(255,255,255,.7)}
table.fields th .flbl{min-width:0;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 4px;white-space:nowrap}
table.fields th .fpre{font-weight:700}
table.fields th.fth.sorted .sorth.filt{padding-top:3px;padding-bottom:3px}
table.fields th.fth.sorted .sorth.filt .arrow{display:none}
table.fields th .upill.fhead{max-width:none;padding-left:6px;padding-right:6px;box-shadow:0 0 0 1px rgba(255,255,255,.55)}
table.fields th .fclear{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;margin-right:5px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:13px;line-height:1;cursor:pointer}
table.fields th .fclear:hover{background:var(--red)}
table.fields th .fclear:focus-visible{outline:2px solid #fff;outline-offset:1px}
.fpop{position:absolute;top:100%;right:0;z-index:5;min-width:210px;background:#fff;color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--red);border-radius:0 0 8px 8px;box-shadow:var(--shadow);padding:4px 0;font-weight:400;letter-spacing:0;text-align:left}
.fpop .fopt{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 8px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.fpop .fopt:hover,.fpop .fopt:focus-visible{background:var(--bg)}
.fpop .fopt:focus-visible{box-shadow:inset 2px 0 0 var(--blue)}
.fpop .fopt.on{background:var(--blue-l)}
.fpop .fopt.on .fall{color:var(--navy)}
.fpop .fchk{width:14px;text-align:center;color:var(--red);font-weight:700}
.fpop .fall{color:var(--ink)}
.fpop .fsep{height:1px;background:var(--line);margin:4px 0}
.fpop .fn{margin-left:auto;padding-left:14px;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.upill.u-blank{background:#fff;color:var(--muted);border-color:#e1e5ec;font-style:italic}
/* details header: one unlabeled line */
.meta1{font-size:12.5px;color:var(--muted);margin:6px 0 16px;word-break:break-word}
.meta1 a.dri{font-family:ui-monospace,"SF Mono",Consolas,monospace;color:var(--navy);background:var(--blue-l);padding:1px 6px;border-radius:4px;text-decoration:none}
.meta1 a.dri:hover{text-decoration:underline}
.meta1 .iid{font-family:ui-monospace,"SF Mono",Consolas,monospace;color:var(--navy)}
.meta1 .cre{color:var(--ink)}
/* build 2026-10-12.1: Usable Fields (link picker, row menu, confirm dialog) + Item URL links */
a.iurl{color:var(--navy);text-decoration:none;white-space:nowrap;font-size:12px;display:inline-block;max-width:24rem;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
a.iurl:hover{text-decoration:underline;color:var(--red-d)}
.addbtn{white-space:nowrap}
button.small{padding:5px 12px;font-size:12.5px}
.msg.ok{background:#eaf6ee;color:#14532d;border:1px solid #bfe3cb}
.lomscrim{position:fixed;inset:0;z-index:200;background:rgba(6,33,74,.35);display:flex;align-items:center;justify-content:center;padding:16px}
.lomdlg{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px rgba(6,33,74,.25),0 8px 10px -6px rgba(6,33,74,.2);width:min(30rem,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;padding:18px 20px}
.lomdlg.wide{width:min(44rem,100%)}
.lomdlg h3{margin:0 0 10px;color:var(--navy);font-size:17px}
.lomdlg .dbody{overflow:auto;min-height:0;flex:1}
.lomdlg .dact{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.lomdlg .dact button:disabled{opacity:.5;cursor:not-allowed}
button.danger{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}
.lommenu{position:fixed;z-index:210;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 15px -3px rgba(6,33,74,.18);padding:4px;min-width:170px}
.lommenu button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 12px;border-radius:8px;font-size:13px;color:var(--navy)}
.lommenu button:hover,.lommenu button:focus-visible{background:var(--blue-l)}
.lommenu button.danger{background:none!important;color:var(--red-d)!important;border:0!important}
.lommenu button.danger:hover{background:#fbeaec!important}
.picker{display:flex;flex-direction:column;gap:8px;min-height:0}
.picker input[type=search]{width:100%}
.pjump{display:flex;flex-wrap:wrap;gap:4px}
.plist{border:1px solid var(--line);border-radius:10px;overflow:auto;height:min(52vh,420px)}
.prow{display:grid;grid-template-columns:1fr 9rem 6.5rem auto;align-items:center;gap:8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:6px 10px;font-size:13px}
.prow:hover{background:var(--blue-l)}
.prow.on{background:var(--navy);color:#fff;box-shadow:inset 3px 0 0 var(--red)}
.prow.linked{opacity:.55;cursor:default}
.prow .pt{color:var(--muted);font-size:12px}
.prow.on .pt{color:#dbe4f3}
.toolbar .primary,.lomdlg .primary{width:auto}.lomdlg .primary{padding:8px 16px}

/* build 2026-10-13.1: real links (Ctrl / Cmd / middle click = new tab) */
a.node{color:inherit;text-decoration:none}
section.hier header a.t{color:inherit;text-decoration:none}
table.fields.side td a.rl{color:inherit;text-decoration:none}
table.fields.side td a.rl:hover,section.hier header a.t:hover{text-decoration:underline}
table.fields td.e{color:var(--muted)}
/* Settings tab */
.settings{display:flex;flex-direction:column;gap:12px;padding:4px 0}
.settings .hint{font-size:12px;color:var(--muted)}
.setcard{border:1px solid #dfe3ea;border-radius:8px;background:#fff;padding:10px 14px}
.setcard header{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.setcard header b{font-size:14px;color:var(--navy)}
.setcard header code{font-size:11.5px;background:var(--bg);padding:1px 6px;border-radius:4px;color:#555}
.setcard header .muted{margin-left:auto;font-size:12px;color:var(--muted)}
.setcard .chips{display:flex;flex-wrap:wrap;gap:6px}
.setcard .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfd6e2;border-radius:14px;padding:2px 10px 2px 3px;font-size:13px;background:var(--blue-l)}
.setcard .chip .ord{font-size:10.5px;background:var(--navy);color:#fff;border-radius:10px;min-width:18px;text-align:center;padding:1px 4px}
.setcard .e{color:var(--muted)}

/* build 2026-10-13.3: compact label / value grid (Settings, Clouds) */
.settings{gap:8px}
dl.sgrid{display:grid;grid-template-columns:max-content 1fr;column-gap:18px;row-gap:0;margin:0;border:1px solid #e3e7ee;border-radius:6px;background:#fff;font-size:13px}
dl.sgrid dt,dl.sgrid dd{padding:6px 12px;border-top:1px solid #eef1f5;margin:0}
dl.sgrid dt:first-of-type,dl.sgrid dt:first-of-type+dd{border-top:0}
dl.sgrid dt{color:#5b6576;font-weight:600;white-space:nowrap}
dl.sgrid dd{color:#1d2633;min-width:0;overflow-wrap:anywhere}
dl.sgrid dd.desc{white-space:pre-wrap;line-height:1.4}
dl.sgrid .e{color:var(--muted)}
.schips{display:flex;flex-wrap:wrap;gap:4px}
.schip{display:inline-block;border:1px solid #d5dce7;background:var(--bg);border-radius:4px;padding:0 6px;font-size:12px;line-height:20px}
.schip.strong{border-color:var(--navy);color:var(--navy);font-weight:600}
a.ilink{color:var(--navy);text-decoration:none;font-weight:600}
a.ilink:hover{text-decoration:underline}
.muted.small{font-size:11.5px}

/* build 2026-10-13.4: LiveStuff-style cloud lists (drag ⋮⋮ to reorder, hold for the menu) */
table.cloudlist tbody tr{touch-action:pan-y;user-select:none;cursor:grab}
table.cloudlist tbody tr.dragging{position:relative;z-index:5;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.18);opacity:.95;cursor:grabbing}
table.cloudlist .grip{color:#b4bccb;font-size:11px;margin-right:6px;letter-spacing:-2px}
body.lomdrag{cursor:grabbing;user-select:none}
.dropbar{position:fixed;height:3px;background:var(--red);border-radius:2px;z-index:60;pointer-events:none}
.rmdlg dl{background:var(--bg);border-radius:6px;padding:8px 12px;margin:0 0 10px}
.rmdlg dt{font-size:11.5px;color:var(--muted)}
.rmdlg dd{margin:0 0 6px;font-weight:600}

/* build 2026-10-16.1: Settings editing */
dl.sgrid dd.editable{cursor:text}
dl.sgrid dd.editable:hover{background:#f6f8fb}
.sedit{width:100%;box-sizing:border-box;font:inherit;padding:3px 6px;border:1px solid var(--navy);border-radius:4px}
textarea.sedit{resize:vertical}
.schip-x{border:0;background:none;padding:0 0 0 4px;cursor:pointer;color:var(--muted);font-size:13px;line-height:1}
.schip-x:hover{color:#b42318}
.subhead{margin:16px 0 6px;font-size:14px;color:var(--navy)}
/* build 2026-10-20.3: Settings list editor (multi-value fields) + inherited (On Blank Fallback) values */
.sinh{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.schip.inh{opacity:.55;font-style:italic}
.sfrom{color:#8a93a3;font-size:12px;font-style:italic}
.sledit{border:1px solid #d7dde7;border-radius:6px;background:#fbfcfe;padding:6px}
ol.slist{list-style:none;margin:0;padding:0}
.srow{display:grid;grid-template-columns:22px 1fr auto auto auto;align-items:center;gap:4px;padding:4px 6px;border-bottom:1px solid #eef1f5;background:#fff}
.srow.empty{grid-template-columns:1fr}
.srow.drag{opacity:.4}
.srow.over{box-shadow:inset 0 2px 0 var(--red)}
.sl-h{cursor:grab;color:#9aa3b2;user-select:none;text-align:center}
.sl-b{border:0;background:none;cursor:pointer;color:#5b6576;padding:0 5px;font-size:14px}
.sl-b:disabled{opacity:.25;cursor:default}
.sl-b.x:hover{color:var(--red)}
.sl-act{display:flex;align-items:center;gap:8px;padding-top:6px}
.sl-act .sp{flex:1}
.sl-act button{flex:0 0 auto;width:auto;white-space:nowrap}
