/* ---------- Role layer: PATI tokens -> IL semantic roles (see system.md §1) ---------- */
:root{
  --r-canvas:var(--background); --r-panel:var(--card); --r-raised:var(--popover); --r-well:var(--muted); --r-hover:var(--hover);
  --r-ink:var(--foreground); --r-ink-2:var(--muted-foreground); --r-ink-3:var(--text-3);
  --r-line:var(--border); --r-line-2:var(--input);
  --r-act:var(--primary); --r-act-ink:var(--primary-foreground); --r-act-soft:var(--accent); --r-act-line:var(--accent-line); --r-link:var(--link);
  --r-on:var(--accent-foreground); --r-rail-ink:var(--r-ink-2); --r-deep:var(--r-well);
  --fb-post:#f0f2f5;
  --r-card:12px; --r-ctl:8px; --r-pill:9999px; --r-well-r:8px;
  --fs-meta:12px; --fs-ui:13px; --fs-label:11px; --fs-micro:10px;
  --sp-1:4px; --sp-2:6px; --sp-3:8px; --sp-4:12px; --sp-5:16px;
  /* tier = one hue, three steps (sequential: run time is magnitude) */
  --tier-test:#d4d4d4; --tier-proven:#737373; --tier-long:#171717;
  --background:#fff; --r-canvas:#fff; --r-panel:#fff; --r-raised:#fff; --r-well:#f5f5f5; --r-hover:#f5f5f5; --sidebar:#fff;
  --r-ink:#171717; --r-ink-2:#5c5c5c; --r-ink-3:#6b6b6b; --r-line:#ebebeb; --r-line-2:#e5e5e5; --ring:#a3a3a3;
  --r-act:#7c3aed; --r-act-ink:#fff; --r-act-soft:#f6eefe; --r-act-line:#d8b4fe; --r-link:#6d28d9; --r-on:#6d28d9; --accent-foreground:#6d28d9; --brand-accent:#7c3aed; --accent-line:#d8b4fe; --r-rail-ink:#5c5c5c; --grad:linear-gradient(135deg,#ec4899,#a855f7); --brand-p:#ec4899; --brand-v:#a855f7; --brand-btn:linear-gradient(90deg,#db2777,#7c3aed); --ring-brand:#7c3aed;
  --gap:12px; --rail-w:80px; --top-h:56px; --r-sm:6px; --r-md:var(--radius); --r-lg:12px;
}
/* PATI OS dark: neutral surfaces, ImageLauncher pink→purple brand accent */
.dark{--fb-post:#242526; --background:#000; --r-canvas:#000; --r-panel:#0a0a0a; --r-raised:#111; --r-well:#1a1a1a; --r-hover:#1a1a1a; --sidebar:#0a0a0a;
  --r-ink:#ededed; --r-ink-2:#a1a1a1; --r-ink-3:#8a8a8a; --r-line:#2e2e2e; --r-line-2:#2e2e2e; --ring:#666;
  --r-act:#a855f7; --r-act-ink:#0a0a0a; --r-act-soft:#261835; --r-act-line:#6b3fa0; --r-link:#d8b4fe; --r-on:#d8b4fe; --accent-foreground:#d8b4fe; --brand-accent:#a855f7; --accent-line:#6b3fa0; --r-rail-ink:#a1a1a1; --r-deep:#000;
  --ok:#4ade80; --warn:#fbbf24; --bad:#ff4d5e; --ok-soft:rgb(74 222 128/.12); --ok-line:rgb(74 222 128/.32); --warn-soft:rgb(251 191 36/.12); --bad-soft:rgb(255 77 94/.1); --bad-line:rgb(255 77 94/.32);
  --grad:linear-gradient(135deg,#ec4899,#a855f7); --ring-brand:#a855f7; --sh:0 1px 2px rgb(0 0 0/.35); --sh-md:0 12px 28px -16px rgb(0 0 0/.65);
  --tier-test:#737373;--tier-proven:#a1a1a1;--tier-long:#ededed}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url("/static/fonts/manrope-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url("/static/fonts/manrope-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url("/static/fonts/manrope-vietnamese.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
*{box-sizing:border-box} html,body{margin:0;height:100%}
body{font:400 14px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;letter-spacing:-.006em}
button,input,select{font:inherit;color:inherit}
a{color:var(--r-link)}
:focus-visible{outline:2px solid var(--ring-brand);outline-offset:2px;border-radius:4px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mono{font-family:var(--font-mono);font-size:12px}
.muted{color:var(--r-ink-2)} .faint{color:var(--r-ink-3)}
h1,h2,h3{font-family:var(--font-heading);margin:0;letter-spacing:-.01em}
h1{font-size:20px;font-weight:600;letter-spacing:-.02em} h2{font-size:15px;font-weight:600} h3{font-size:13px;font-weight:600}

/* ---------- Shell ---------- */
.shell{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100vh}
.rail{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid var(--r-line);display:flex;flex-direction:column;padding:8px 4px;gap:2px;overflow:auto;align-items:center}
.logo{display:flex;align-items:center;justify-content:center;padding:4px 0 10px;font-weight:600;font-size:15px;color:var(--r-ink);text-decoration:none}
.logo i{width:36px;height:36px;border-radius:8px;background:var(--grad);display:grid;place-items:center;color:#fff;font-style:normal;font-size:13px}
.rail hr{width:32px;height:1px;border:0;margin:6px 0;background:var(--r-line);flex:none}
.nav{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:72px;height:60px;padding:0;border-radius:var(--r-card);color:var(--r-rail-ink);text-decoration:none;font:500 var(--fs-label)/1.1 var(--font-sans)}
.nav svg{width:20px;height:20px;flex:none}
.nav:hover{background:var(--r-hover);color:var(--r-ink)}
.nav[aria-current=page]{background:var(--r-act-soft);color:var(--r-on)}
.dark .nav[aria-current=page]{background:var(--r-raised);color:var(--r-ink)} .dark .nav[aria-current=page] svg{color:var(--r-on)}
.nav .cnt,.nav #queue-cnt{position:absolute;top:4px;right:6px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--bad-soft);color:var(--bad)}
.rail .foot{display:none}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;height:var(--top-h);display:flex;align-items:center;gap:10px;padding:0 20px;background:color-mix(in srgb,var(--r-canvas) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--r-line)}
.crumb{font-weight:600;display:flex;gap:6px;align-items:center;min-width:0}
.crumb a{color:var(--r-ink-2);text-decoration:none;font-weight:600}
.top .sp{flex:1}
.page{padding:18px 20px 80px;max-width:none;width:100%}
.stale{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--warn);font-weight:600}
.stale::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}

/* ---------- Primitives ---------- */
.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--r-line-2);background:var(--r-panel);color:var(--r-ink);font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--r-hover)}
.btn.pri{background:var(--brand-btn);border-color:transparent;color:#fff}
.btn.pri:hover{filter:brightness(.93)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{height:26px;padding:0 9px;font-size:12px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn svg{width:15px;height:15px}
.icon{width:32px;padding:0;justify-content:center}
.seg{display:inline-flex;padding:2px;border-radius:var(--r-md);background:var(--r-well);border:1px solid var(--r-line);gap:2px}
.seg button,.seg a{border:0;background:transparent;height:28px;padding:0 12px;border-radius:6px;font-weight:600;font-size:13px;color:var(--r-ink-2);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.seg [aria-selected=true],.seg [aria-current=page]{background:var(--r-panel);color:var(--r-ink);box-shadow:var(--sh)}
.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:99px;font-size:11px;font-weight:600;background:var(--r-well);color:var(--r-ink-2);white-space:nowrap}
.badge.ok{background:var(--ok-soft);color:var(--ok)} .badge.warn{background:var(--warn-soft);color:var(--warn)} .badge.bad{background:var(--bad-soft);color:var(--bad)} .badge.act{background:var(--r-act-soft);color:var(--accent-foreground)}
.dark .badge.act{color:var(--r-on)}
.badge.demo{background:transparent;border:1px dashed var(--r-line-2);color:var(--r-ink-3)}
.panel{background:var(--r-panel);border:1px solid var(--r-line);border-radius:var(--r-lg);box-shadow:var(--sh)}
.inp{height:36px;border:1px solid var(--r-line-2);border-radius:var(--r-md);background:var(--r-panel);padding:0 10px;min-width:0}
.inp:focus{outline:2px solid var(--ring);outline-offset:-1px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stack{display:grid;gap:var(--gap)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--r-line);margin-bottom:14px;overflow-x:auto}
.tabs button,.tabs a{border:0;background:none;padding:10px 12px;font-weight:600;color:var(--r-ink-2);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;font-size:13px}
.tabs [aria-selected=true]{color:var(--r-ink);border-color:var(--r-act)}

/* ---------- Filter system: QueryBar ---------- */
.qb{display:grid;gap:10px;margin-bottom:14px}
/* Filters scroll away with the page (Trendtrack); only the top bar stays. ponytail: a sticky compact search row can come back if users ask. */
.qb-panel{background:var(--r-panel);border:1px solid var(--r-line);border-radius:var(--r-card);padding:10px 12px;display:grid;gap:8px}
.qb-title{font-size:12px;font-weight:600;color:var(--r-ink)}
.qb-pin{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qb-pin .pop-wrap{flex:none}
.view.pin{background:transparent;border-color:var(--r-line-2);color:var(--r-ink);display:inline-flex;align-items:center;gap:6px}
.view.pin .chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7}
.view.pin:hover,.qb-more:hover{background:var(--r-hover)}
.view.pin[aria-expanded=true],.qb-more[aria-expanded=true]{background:var(--r-raised)}
.view.pin[aria-pressed=true]{background:var(--r-act-soft);border-color:var(--r-act-line)}
.dark .view.pin[aria-pressed=true]{color:var(--r-on)}
.qb-more{border:0;background:transparent;height:28px;padding:0 6px;font-size:12px;font-weight:500;color:var(--r-ink-2);cursor:pointer}
.qb-search{display:flex;gap:8px;align-items:center}
.qb-field{position:relative;flex:1;min-width:0;display:flex;align-items:center;border:1px solid var(--r-line-2);border-radius:var(--r-pill,99px);background:var(--r-raised);height:40px;max-width:560px;margin:0 auto}
.qb-search{justify-content:center}
.qb-field:focus-within{outline:2px solid var(--ring);outline-offset:-1px}
.qb-field svg{width:16px;margin:0 8px 0 12px;color:var(--r-ink-3);flex:none}
.qb-field input{border:0;outline:0;background:transparent;height:100%;flex:1;min-width:0}
.qb-field select{border:0;border-left:1px solid var(--r-line);background:transparent;height:100%;padding:0 10px;color:var(--r-ink-2);font-weight:600;font-size:13px;border-radius:0 99px 99px 0}
.views{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px;justify-content:safe center}
.view{flex:none;border:1px solid var(--r-line);background:var(--r-panel);height:28px;padding:0 11px;border-radius:var(--r-pill,99px);font-size:12px;font-weight:500;color:var(--r-ink-2);cursor:pointer}
.view[aria-pressed=true]{border-color:var(--r-act-line);background:var(--r-act-soft);color:var(--accent-foreground)}
.dark .view[aria-pressed=true]{color:var(--r-on)}
.qb-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.qb-chips:empty{display:none}
.chip{display:inline-flex;align-items:center;height:28px;border-radius:var(--r-md);border:1px solid var(--r-act-line);background:var(--r-act-soft);font-size:12px;max-width:100%}
.chip.not{border-color:var(--bad-line);background:var(--bad-soft)}
.chip>button{border:0;background:none;height:100%;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:0 4px 0 10px;min-width:0}
.chip b{font-weight:600} .chip .op{color:var(--r-ink-2)} .chip.not .op{color:var(--bad)}
.chip .v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.chip .x{padding:0 8px;color:var(--r-ink-2);font-size:15px}
.chip.lock{border-style:dashed}
.add{border:1px solid var(--r-line-2);background:var(--r-panel);height:28px;padding:0 10px;border-radius:var(--r-md);font-weight:600;font-size:12px;color:var(--r-ink-2);cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.add:hover{color:var(--r-ink);border-color:var(--r-act-line)}
.qb-meta:empty{display:none}
.qb-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.qb-meta .count{font-weight:600}
.qb-meta select{height:30px;border:1px solid var(--r-line-2);border-radius:var(--r-pill,99px);background:var(--r-panel);padding:0 8px;font-weight:600;font-size:13px}
.pop-wrap{position:relative;display:inline-block}
.pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(560px,92vw);background:var(--r-raised);border:1px solid var(--r-line-2);border-radius:var(--r-card,16px);box-shadow:var(--sh-md);display:grid;grid-template-columns:190px 1fr;grid-template-rows:minmax(0,1fr) auto;max-height:min(460px,70vh);overflow:hidden}
.pop-l{border-right:1px solid var(--r-line);overflow:auto;padding:8px}
.pop-l input{width:100%;margin-bottom:6px}
.pop-l h4{margin:10px 6px 4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--r-ink-3)}
.pop-l button{display:flex;width:100%;justify-content:space-between;border:0;background:none;padding:6px 8px;border-radius:6px;cursor:pointer;text-align:left;font-weight:600;font-size:13px}
.pop-l button:hover,.pop-l button[aria-selected=true]{background:var(--r-hover)}
.pop-l button .on{color:var(--accent-foreground);font-size:11px}
.dark .pop-l button .on{color:var(--r-on)}
.pop-r{overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.pop-r .hint{font-size:12px;color:var(--r-ink-2);margin-bottom:4px}
.val{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center;padding:3px 4px;border-radius:6px;font-size:13px}
.val:hover{background:var(--r-hover)}
.val .n{font-variant-numeric:tabular-nums;color:var(--r-ink-3);font-size:12px}
.tri{width:26px;height:24px;border:1px solid var(--r-line);border-radius:6px;background:var(--r-panel);cursor:pointer;font-weight:600;font-size:13px;color:var(--r-ink-3);padding:0}
.tri[aria-pressed=true].inc{background:var(--r-act);border-color:var(--r-act);color:var(--r-act-ink)}
.tri[aria-pressed=true].exc{background:var(--bad);border-color:var(--bad);color:#fff}
.bar{height:4px;border-radius:2px;background:var(--r-well);overflow:hidden;grid-column:1/-1;margin-top:-2px}
.bar i{display:block;height:100%;background:var(--r-act-line)}
.presets{display:flex;flex-wrap:wrap;gap:6px}
.pop-foot{grid-column:1/-1;border-top:1px solid var(--r-line);padding:8px 12px;font-size:11px;color:var(--r-ink-3);display:flex;justify-content:space-between;gap:8px}

/* ---------- Ad card + run-time rail (signature) ---------- */
.grid{display:grid;align-items:stretch;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;transition:opacity .15s}
.grid[aria-busy=true]:not(:has(.sk-card)){opacity:.5;pointer-events:none}
.card{position:relative;background:var(--r-panel);border:1px solid var(--r-line-2);border-radius:12px;padding:0;gap:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sh);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.card:hover,.card:focus-within{transform:translateY(-2px);box-shadow:var(--sh-md);border-color:color-mix(in srgb,var(--r-ink) 28%,transparent)}
@media (prefers-reduced-motion:reduce){.card{transition:none}.card:hover,.card:focus-within{transform:none}}
.card[aria-selected=true]{border-color:var(--r-act);box-shadow:0 0 0 1px var(--r-act)}
.card .hd{display:flex;align-items:center;gap:8px;padding:9px 10px;min-height:44px}
.av{width:26px;height:26px;border-radius:50%;background:var(--r-well);display:grid;place-items:center;font-weight:600;font-size:11px;color:var(--r-ink-2);flex:none}
.card .hd .nm{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.card .hd .nm small{display:block;font-weight:500;color:var(--r-ink-3);font-size:11px}
.sel{margin-left:auto;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--r-line-2);background:var(--r-panel);cursor:pointer;display:grid;place-items:center;padding:0;flex:none}
.sel[aria-pressed=true]{background:var(--r-act);border-color:var(--r-act);color:var(--r-act-ink)}
.well{aspect-ratio:var(--ar,4/5);max-height:520px;background:var(--r-well);position:relative;display:block;border:0;padding:0;width:100%;cursor:zoom-in;overflow:hidden;min-height:0}
.well img{width:100%;height:100%;object-fit:contain;display:block}
.well[data-fit=cover] img{object-fit:cover}
.wellw{position:relative}
.well .ov{position:absolute;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 16px);background:color-mix(in srgb,black 66%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:11px;font-weight:600;line-height:1;padding:4px 7px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.well .ov.run{left:8px;top:8px;--c:#fff}.well .ov.run .dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
.well .ov.ratio{right:8px;top:8px}.wellw[data-sel] .ov.ratio{right:38px}
.well .ov.rank{left:8px;bottom:8px}.well .ov.rank b{font-weight:700;color:#fff}
.well .ov.geo{right:8px;bottom:8px}.well .ov.geo span{font-size:inherit;color:inherit}
.wellw .sel{position:absolute;right:8px;top:8px;margin:0;width:24px;height:24px;z-index:2}
.well .ov.run[data-t=long]{--c:var(--ok)}.well .ov.run[data-t=proven]{--c:var(--primary)}.well .ov.run[data-t=test]{--c:var(--warn)}
.tags .badge[data-f=family]{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary)}
.tags .badge[data-f=hook]{background:color-mix(in srgb,var(--violet) 16%,transparent);color:var(--violet)}
.tags .badge[data-f=awareness]{background:color-mix(in srgb,var(--cyan) 18%,transparent);color:color-mix(in srgb,var(--cyan) 45%,#000)}
.dark .tags .badge[data-f=family]{color:color-mix(in srgb,var(--primary) 60%,#fff)}
.dark .tags .badge[data-f=hook]{color:color-mix(in srgb,var(--violet) 55%,#fff)}
.dark .tags .badge[data-f=awareness]{color:color-mix(in srgb,var(--cyan) 70%,#fff)}
.card>.pips .pips-l b{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:99px;background:var(--ok-soft);color:var(--ok);font-weight:600}
.card .bd{padding:10px 10px 12px;display:grid;gap:8px}
.tags{display:flex;gap:4px;flex-wrap:wrap;min-height:20px;overflow:hidden;max-height:20px}
.rt{display:grid;gap:4px}
.rt-top{display:flex;justify-content:space-between;align-items:baseline;font-size:12px}
.rt-top b{font-size:13px;font-variant-numeric:tabular-nums}
.tier{font-weight:600;font-size:11px;display:inline-flex;align-items:center;gap:5px}
.tier::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--c)}
.rt-track{position:relative;height:6px;border-radius:3px;background:var(--r-well)}
.rt-fill{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--c)}
.rt-tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--r-panel)}
.rt-tick::after{content:"";position:absolute;inset:3px 0;background:var(--r-line-2)}
.rt-scale{position:relative;height:12px;font-size:9.5px;color:var(--r-ink-3)}
.rt-scale span{position:absolute;transform:translateX(-50%)}
.card .rkrow{display:flex;gap:6px;align-items:baseline;font-size:13px}
.card .rkrow b{color:var(--ok,#22c55e);font-weight:600}
.card .rkrow span{font-size:12px;color:var(--r-ink-2)}
.card .post{background:var(--r-well);border:1px solid var(--r-line-2);margin:8px;padding:10px 12px;display:grid;gap:8px;border-radius:10px}
.post-hd{display:flex;align-items:center;gap:8px;min-width:0}
.post-hd .nm{font-weight:500;font-size:13px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-id{display:grid;min-width:0}
.post-id .sp{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--r-ink-3)} .dark .post-id .sp{color:var(--r-ink-2)}
.pt{font-size:13px;line-height:1.4;color:var(--r-ink);min-width:0}
.pt-t{white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pt-t.open{display:block;-webkit-line-clamp:unset}
.pt-more{display:inline;align-self:flex-start;justify-self:start;width:auto;text-align:left;border:0;background:none;padding:0;margin:2px 0 0;font:inherit;font-size:12px;font-weight:600;color:var(--r-ink-2);cursor:pointer}
.pt-more:hover{color:var(--r-ink-2);text-decoration:underline}
.pt-more:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.pf-l{display:grid;gap:1px;min-width:0;flex:1}
.pf-h{font-size:13px;font-weight:700;color:var(--r-ink);text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .post .well{border-radius:var(--r-well-r,8px);border:1px solid var(--r-line);background:var(--r-deep)}
.post-ft{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;text-transform:uppercase;color:var(--r-ink-2);min-width:0}
.post-ft span.dom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-cta{flex:none;display:inline-flex;align-items:center;height:32px;padding:0 10px;border-radius:var(--r-ctl,6.4px);background:var(--r-panel);font-size:12px;font-weight:600;color:var(--r-ink);text-transform:none}
.card .ft{display:flex;align-items:center;gap:8px;margin-top:auto;padding:10px 12px;border-top:1px solid var(--r-line)}
.card .ft .ct{flex:1;min-width:0;font-size:11.5px;color:var(--r-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn.round{width:32px;height:32px;padding:0;justify-content:center;border-radius:50%;background:var(--r-raised);border-color:transparent}
@media (max-width:560px){.grid{grid-template-columns:minmax(0,1fr)}}

.bulk-host{display:contents}
.bulk{position:sticky;bottom:16px;z-index:25;margin:16px auto 0;width:max-content;max-width:calc(100% - 20px);display:flex;gap:8px;align-items:center;background:var(--r-ink);color:var(--r-canvas);padding:8px 8px 8px 16px;border-radius:12px;box-shadow:var(--sh-md);font-weight:600}
.bulk .btn{background:transparent;color:inherit;border-color:color-mix(in srgb,currentColor 30%,transparent)}

/* not-public metric slot */
.np{border:1px dashed var(--r-line-2);border-radius:var(--r-md);padding:8px 10px;display:grid;gap:1px;min-width:0}
.np span{font-size:11px;color:var(--r-ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.np b{font-size:13px;color:var(--r-ink-2)}
.stat{border:1px solid var(--r-line);border-radius:var(--r-md);padding:10px 12px;background:var(--r-panel);display:grid;gap:2px;min-width:0}
.stat span{font-size:11px;color:var(--r-ink-2);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.stat b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat small{font-size:11.5px;color:var(--r-ink-3)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}

/* ---------- Table ---------- */
.tbl-wrap{overflow:auto;border:1px solid var(--r-line);border-radius:var(--r-lg);background:var(--r-panel)}
table{border-collapse:collapse;width:100%;font-size:13px}
th{position:sticky;top:0;background:var(--r-panel);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--r-ink-2);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--r-line);white-space:nowrap}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}
td{padding:9px 12px;border-bottom:1px solid var(--r-line);vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--r-hover)}
tbody tr[data-href]{cursor:pointer}
.thumbs{display:flex;gap:4px}
.thumbs img,.thumbs .sk{width:40px;height:50px;object-fit:cover;border-radius:5px;background:var(--r-well)}
.spark{display:flex;align-items:flex-end;gap:2px;height:26px;width:98px}
.spark i{flex:1;background:var(--r-act);border-radius:2px 2px 0 0;min-height:1px;opacity:.85}
.spark i.z{background:var(--r-line-2);opacity:1}
.td-name{font-weight:600} .td-name small{display:block;font-weight:500;color:var(--r-ink-3)}

/* ---------- Drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(10,12,20,.42);z-index:50;animation:fade .15s}
.drawer{position:fixed;z-index:51;top:0;right:0;bottom:0;width:min(980px,100vw);background:var(--r-panel);border-left:1px solid var(--r-line);box-shadow:var(--sh-md);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);animation:slide .18s ease-out}
.dr-media{background:var(--r-well);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:12px;min-height:0}
.dr-navpill{background:var(--r-raised);border-radius:var(--r-pill,99px);padding:3px 4px}
.dr-navpill .btn{border-radius:var(--r-pill,99px);border-color:transparent;background:transparent}
.dr-media img{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:8px;box-shadow:var(--sh-md)}
.dr-body{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--r-line)}
.dr-head{display:flex;gap:10px;align-items:flex-start;padding:16px 18px 0}
.dr-head .nm{flex:1;min-width:0}
.dr-head .nm a{font-weight:600;font-size:16px;color:var(--r-ink);text-decoration:none}
.dr-head .nm a:hover{text-decoration:underline}
.dr-acts{display:flex;gap:6px;padding:12px 18px;flex-wrap:wrap}
.dr-scroll{overflow:auto;padding:0 18px 24px;flex:1}
.dr-body .tabs{padding:0 18px;margin:0}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13px}
.kv dt{color:var(--r-ink-2)} .kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.copy{white-space:pre-wrap;font-size:13px;background:var(--r-well);border-radius:var(--r-md);padding:12px;max-height:240px;overflow:auto}
.sec{display:grid;gap:8px;margin-top:16px}
.sec>h3{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--r-ink-2)}
.mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.mini button{border:1px solid var(--r-line);border-radius:8px;background:var(--r-well);padding:0;overflow:hidden;cursor:pointer;aspect-ratio:4/5}
.mini img{width:100%;height:100%;object-fit:contain}
@keyframes slide{from{transform:translateX(24px);opacity:.6}} @keyframes fade{from{opacity:0}}

/* ---------- Mix bars / charts ---------- */
.mix{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.mix .panel{padding:12px 14px}
.mrow{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:12.5px;margin-top:8px}
.mrow .t{height:6px;border-radius:3px;background:var(--r-well);grid-column:1/-1;overflow:hidden}
.mrow .t i{display:block;height:100%;background:var(--r-act);border-radius:3px}
.vbars{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:8px}
.vbars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;font-size:10.5px;color:var(--r-ink-3)}
.vbars i{width:100%;max-width:32px;background:var(--r-act);border-radius:4px 4px 0 0;min-height:2px}
.vbars i.z{background:var(--r-line-2)}
.lift{display:grid;grid-template-columns:230px 1fr 60px 110px;white-space:nowrap;gap:8px;align-items:center;font-size:13px;padding:6px 0;border-bottom:1px solid var(--r-line)}
.lift button{all:unset;cursor:pointer;font-weight:600;color:var(--r-link)}
.lift button:focus-visible{outline:2px solid var(--ring)}
.lt{position:relative;height:14px}
.lt .mid{position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:var(--r-ink-3)}
.lt i{position:absolute;top:2px;height:10px;border-radius:2px}
.lt i.up{left:50%;background:var(--r-act)} .lt i.dn{right:50%;background:var(--gray-line)}

/* ---------- Create / Ops ---------- */
.split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}
.side{position:sticky;top:calc(var(--top-h) + 18px);padding:8px}
.side button{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:600;text-align:left;font-size:13px}
.side button[aria-current=true]{background:var(--r-act-soft);color:var(--accent-foreground)}
.dark .side button[aria-current=true]{color:var(--r-on)}
.side button:hover{background:var(--r-hover)}
.side h4{margin:10px 10px 4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--r-ink-3)}
.lanes{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.lane{background:var(--r-well);border-radius:var(--r-lg);padding:10px;display:grid;gap:8px;align-content:start;min-height:300px}
.lane h3{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}
.job{background:var(--r-panel);border:1px solid var(--r-line);border-radius:var(--r-md);padding:8px;display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}
.job img{width:52px;height:64px;object-fit:cover;border-radius:6px;background:var(--r-well)}
.job .renders{display:flex;gap:4px;margin-top:6px}
.job .renders span{width:22px;height:28px;border-radius:4px;background:var(--r-well);border:1px solid var(--r-line)}
.job .renders span.ok{background:var(--ok-soft);border-color:var(--ok-line)} .job .renders span.bad{background:var(--bad-soft);border-color:var(--bad-line)} .job .renders span.run{background:var(--r-act-soft);border-color:var(--r-act-line)}
.empty{display:grid;place-items:center;text-align:center;gap:8px;padding:48px 20px;border:1px dashed var(--r-line-2);border-radius:var(--r-lg);color:var(--r-ink-2)}
.empty .ic{width:44px;height:44px;border-radius:12px;background:var(--r-well);display:grid;place-items:center;color:var(--r-ink-3)}
.empty h2{color:var(--r-ink)}
.err{border-color:var(--bad-line);background:var(--bad-soft)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-soft);border:1px solid var(--warn-line);font-size:13px}
.notice.info{background:var(--r-act-soft);border-color:var(--r-act-line)}
.form{display:grid;gap:12px;max-width:640px}
.form label{display:grid;gap:5px;font-weight:600;font-size:13px}
.form label.row{display:flex;align-items:center;gap:6px}
.form label small{font-weight:500;color:var(--r-ink-2)}
.cols2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}


/* ---------- Merged additions: pipeline pips, copy layout, why boxes, section pills ---------- */
.pips{display:grid;gap:4px}
.pips-t{display:flex;gap:3px}
.pips-t i{flex:1;height:5px;border-radius:3px;background:var(--r-well);border:1px solid var(--r-line)}
.pips-t i.on{background:var(--r-act);border-color:var(--r-act)}
.pips-l{display:flex;justify-content:space-between;font-size:11px;color:var(--r-ink-2);gap:6px}
.pips-l b{color:var(--r-ink)}
.pips.big .pips-t i{height:7px}
.pips-s{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;font-size:10.5px;color:var(--r-ink-3);text-align:center}
.pips-s span.on{color:var(--r-ink);font-weight:600}
.copylist{display:grid;gap:10px}
.copyrow{display:grid;grid-template-columns:72px minmax(0,1fr) 170px;gap:14px;padding:12px;cursor:pointer;text-align:left;border:1px solid var(--r-line);background:var(--r-panel);border-radius:var(--r-lg);width:100%;color:inherit}
.copyrow:hover{border-color:var(--r-line-2)}
.copyrow img{width:72px;height:90px;object-fit:cover;border-radius:6px;background:var(--r-well)}
.copyrow p{margin:4px 0 0;font-size:13px;color:var(--r-ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.why{padding:12px 14px;border-radius:var(--r-md);background:var(--r-act-soft);border:1px solid var(--r-act-line)}
.why.steal{background:var(--r-well);border-color:var(--r-line)}
.why b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--r-link);margin-bottom:3px}
.why p{margin:0}
.mtabs{display:none}
.lanes{grid-template-columns:repeat(3,minmax(0,1fr))}
.lane-pick{display:none}
.lane .tagline{font-size:11px}

/* ---------- Skeleton ---------- */
.sk{background:linear-gradient(90deg,var(--r-well) 0%,var(--r-hover) 50%,var(--r-well) 100%);background-size:200% 100%;animation:sh 1.2s linear infinite;border-radius:6px}
.sk-line{height:12px} .sk-card .well{cursor:default}
@keyframes sh{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}.drawer,.scrim{animation:none}*{transition:none!important}}

/* ---------- Mobile ---------- */
.mnav{display:none}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .rail{display:none}
  .mnav{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:30;left:0;right:0;bottom:0;height:52px;background:var(--sidebar);border-top:1px solid var(--r-line);padding-bottom:env(safe-area-inset-bottom)}
  .mnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--r-rail-ink);font-size:var(--fs-label);font-weight:500}
  .mnav a svg{width:20px;height:20px}
  .mnav a[aria-current=page]{color:var(--accent-foreground)}
  .dark .mnav a[aria-current=page]{color:var(--r-on)}
  .top{padding:0 12px}
  .top .hide-m{display:none}
  .page{padding:12px 12px 80px}
  .grid{gap:12px}
    .tags{display:none}
  .pop{position:fixed;left:0;right:0;bottom:0;top:auto;box-shadow:0 0 0 100vmax rgba(10,12,20,.42);width:100%;max-height:82vh;border-radius:16px 16px 0 0;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}
  .pop-l{border-right:0;border-bottom:1px solid var(--r-line);display:flex;gap:4px;overflow-x:auto;padding:8px}
  .pop-l h4,.pop-l input{display:none}
  .pop-l button{width:auto;flex:none;white-space:nowrap;border:1px solid var(--r-line)}
  .pop-l button .on{display:none}
  .drawer{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;overflow:auto}
  .dr-media{padding:12px;max-height:46vh;min-width:0}
  .dr-media img{max-height:40vh}
  .dr-body{border-left:0}
  .split,.cols2{grid-template-columns:1fr}
  .side{position:static;display:flex;overflow-x:auto;gap:4px;padding:6px}
  .side h4{display:none} .side button{width:auto;flex:none;white-space:nowrap}
  .mtabs{display:inline-flex;margin-bottom:12px;max-width:100%;overflow-x:auto}
  .lane-pick{display:flex;margin-bottom:10px;max-width:100%;overflow-x:auto}
  .lane-pick button{flex:none;white-space:nowrap}
  .lanes{grid-template-columns:1fr}
  .lanes .lane:not(.on){display:none}
  .lane{min-height:0}
  .copyrow{grid-template-columns:56px minmax(0,1fr);gap:10px}
  .copyrow img{width:56px;height:70px}
  .copyrow .cr3{display:none}
  .hide-m2{display:none}
  .kv{grid-template-columns:110px 1fr}
  .bulk{bottom:64px}
  .qb-field select{max-width:110px}
  .lift{grid-template-columns:120px 1fr 48px;white-space:normal}
  .lift .hide-s{display:none}
  .tbl-wrap .hide-s{display:none}
}

/* patterns */
.pt{display:grid;gap:14px}
.pt-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.pt-chips{margin:0}.pt-chips .chip>button:disabled{cursor:default;color:inherit}.pt-chips a.btn{text-decoration:none}
.pt-rule{margin:0;font-size:13px;color:var(--r-ink-2)} .pt-rule b{color:var(--r-ink)} .pt-hint{margin:0;font-size:12.5px}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.pt-panel{padding:14px 16px;display:grid;gap:10px;align-content:start;min-width:0}
.pt-head p{margin:2px 0 0;font-size:12.5px}
.pt-dims{flex-wrap:wrap;justify-self:start}
.seg button[aria-pressed=true]{background:var(--r-panel);color:var(--r-ink);box-shadow:var(--sh)}
.pt-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--r-ink-2)}
.pt-legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.sw.long,.pt-bars .long,.pt-rt .long i{background:var(--tier-long)} .sw.all,.pt-bars .all{background:var(--gray-line)}
.pt-lift{display:grid}
.pt-row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(120px,200px) 1fr 96px 150px;gap:12px;align-items:center;padding:7px 6px;border-bottom:1px solid var(--r-line);cursor:pointer;border-radius:6px;font-size:13px}
.pt-row:hover{background:var(--r-hover)} .pt-row:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.pt-v{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:grid} .pt-v small{font-weight:400;font-size:11px;color:var(--r-ink-3)}
.pt-bars{display:grid;gap:3px} .pt-bars i{display:block;height:7px;border-radius:0 4px 4px 0;min-width:2px}
.pt-shares{display:grid;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--r-ink-2)}
.pt-lift-n{text-align:right;font-variant-numeric:tabular-nums}
.pt-row.up .pt-lift-n{color:var(--ok)} .pt-row.dn .pt-lift-n{color:var(--bad)} .pt-row.eq .pt-lift-n{color:var(--r-ink-2)}
.pt-cols{display:flex;align-items:flex-end;gap:6px;height:170px;padding-top:4px}
.pt-cols>div{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;font-size:10.5px;color:var(--r-ink-3);text-align:center}
.pt-cols b{font-size:11px;font-weight:600;color:var(--r-ink-2);font-variant-numeric:tabular-nums}
.pt-cols i{display:block;width:100%;max-width:36px;background:var(--gray-line);border-radius:4px 4px 0 0}
.pt-cols>div:hover i{filter:brightness(1.1)}
.pt-cols>div>span{min-height:26px;line-height:1.2} .pt-cols small{display:block;color:var(--r-ink-3)}
.pt-rt .long i{background:var(--tier-long)}
.pt-cols:not(.pt-rt) i{background:var(--r-act)}
.pt-hbars{display:grid;gap:6px}
.pt-hbars>div{display:grid;grid-template-columns:minmax(80px,130px) 1fr 84px;gap:10px;align-items:center;font-size:12.5px}
.pt-hbars>div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-track{height:8px;background:var(--r-well);border-radius:4px;overflow:hidden} .pt-track i{display:block;height:100%;background:var(--r-act);border-radius:0 4px 4px 0}
.pt-hbars b{text-align:right;font-variant-numeric:tabular-nums} .pt-hbars small{font-weight:400;color:var(--r-ink-3)}
.pt-tbl .pt-n{text-align:right;font-variant-numeric:tabular-nums}
.pt-ex{display:grid;gap:10px;margin-top:6px} .pt-ex h3{font-size:14px} .pt-foot{margin:0;font-size:12px}
.pt .empty{padding:24px}
@media(max-width:700px){
  .pt-row{grid-template-columns:1fr 150px;grid-template-areas:"v n" "b b";gap:4px 8px} .pt-row .pt-v{grid-area:v} .pt-row .pt-liftc{grid-area:n} .pt-row .pt-bars{grid-area:b} .pt-row .pt-shares{display:none}
  .pt-hbars>div{grid-template-columns:90px 1fr 70px}
  .pt-grid{grid-template-columns:1fr}
}

/* ops */
.ops-h{margin-bottom:14px}.ops-h p{margin:2px 0 0}
.ops-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap);align-items:start}
.ops-card{background:var(--r-panel);border:1px solid var(--r-line);border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ops-side{display:flex;flex-direction:column;gap:var(--gap)}
.ops-tabs{margin-bottom:var(--gap);max-width:100%;overflow-x:auto}
.ops-f{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13px;flex:1;min-width:0}
.ops-f input,.ops-f select,.ops-f textarea{height:34px;padding:0 10px;border:1px solid var(--r-line-2);border-radius:var(--r-md);background:var(--r-canvas);font-weight:400;width:100%}
.ops-f textarea{height:auto;padding:8px 10px;resize:vertical}
.ops-f small{font-weight:400}
.ops-row{display:flex;gap:10px}
.ops-note{margin:0;padding:8px 10px;border-radius:var(--r-md);background:var(--r-well);color:var(--r-ink-2)}
.ops-note.bad{background:var(--bad-soft);color:var(--bad)}.ops-note.warn{background:var(--warn-soft);color:var(--warn)}
.ops-small{font-size:12px;margin:0}
.ops-big{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-heading)}
.ops-usage{margin:0}
.ops-res,.ops-runs,.ops-causes,.ops-kinds,.ops-workers,.ops-errs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ops-errs{font-size:12px;max-height:180px;overflow:auto;margin-top:6px}
.ops-run,.ops-cause{border:1px solid var(--r-line);border-radius:var(--r-md);padding:10px;display:flex;flex-direction:column;gap:6px;background:var(--r-canvas)}
.ops-run-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ops-trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.ops-counts{display:flex;gap:14px;font-variant-numeric:tabular-nums}.bad-t{color:var(--bad)}
.ops-acts{display:flex;gap:8px;flex-wrap:wrap}
.ops-bar{height:4px;border-radius:2px;background:var(--r-well);overflow:hidden}
.ops-bar i{display:block;height:100%;width:35%;background:var(--r-act);animation:opsbar 1.2s ease-in-out infinite}
@keyframes opsbar{0%{margin-left:-35%}100%{margin-left:100%}}
@media (prefers-reduced-motion:reduce){.ops-bar i{animation:none;width:100%;opacity:.5}}
.ops-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);margin-bottom:var(--gap)}
.ops-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;border-radius:var(--r-lg);border:1px solid var(--r-line);background:var(--r-panel);cursor:pointer;text-align:left}
.ops-stat b{font-size:24px;font-variant-numeric:tabular-nums;font-family:var(--font-heading)}
.ops-stat span{font-size:12px;color:var(--r-ink-2);text-transform:capitalize}
.ops-stat.failed b{color:var(--bad)}.ops-stat.done b{color:var(--ok)}
.ops-stat[aria-pressed=true]{border-color:var(--r-act);box-shadow:0 0 0 1px var(--r-act)}
.ops-cause-h{display:flex;gap:12px;align-items:flex-start}.ops-cause-t{min-width:0;overflow-wrap:anywhere}
.ops-kinds li{display:flex;gap:10px;align-items:center;justify-content:space-between}
.ops-dlg{border:1px solid var(--r-line);border-radius:var(--r-lg);background:var(--r-raised);color:var(--r-ink);max-width:min(440px,92vw);padding:18px}
.ops-dlg::backdrop{background:rgba(10,12,20,.5)}.ops-dlg h2{margin-bottom:8px}.ops-dlg .ops-acts{justify-content:flex-end;margin-top:12px}
@media (max-width:760px){.ops-cols{grid-template-columns:minmax(0,1fr)}.ops-stats{grid-template-columns:repeat(2,1fr)}.ops-row{flex-direction:column}}

/* ---------- shell additions (core.js): toast, skip link, dialog, fallback login ---------- */
#toasts{position:fixed;z-index:90;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;max-width:min(92vw,520px)}
.toast{pointer-events:auto;background:var(--r-ink);color:var(--r-panel);padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:var(--sh-md);animation:slide .15s ease-out}
.toast.bad{background:var(--bad,#b3261e);color:#fff}
.mnav ~ #toasts{bottom:66px}
.skip{position:absolute;left:8px;top:8px;z-index:100}
.skip:focus{clip:auto;width:auto;height:auto;overflow:visible;background:var(--r-panel);color:var(--r-ink);padding:8px 12px;border-radius:8px;box-shadow:var(--sh-md)}
dialog.dlg{border:1px solid var(--r-line);border-radius:14px;background:var(--r-panel);color:var(--r-ink);padding:20px;width:min(420px,92vw);box-shadow:var(--sh-md)}
dialog.dlg::backdrop{background:rgba(20,20,30,.4)}
dialog.dlg h2{margin:0;font-size:16px}
.form{display:grid;gap:8px}
.login{position:fixed;inset:0;z-index:95;display:grid;align-content:center;justify-items:center;gap:12px;background:var(--r-panel)}
.login>*{width:min(340px,90vw)}

/* admin */
.adm{align-items:start}.adm-main{min-width:0;display:grid;gap:var(--gap)}.adm-title{margin-bottom:2px}.adm-body{display:grid;gap:var(--gap);min-width:0}.adm-body>div{display:grid;gap:var(--gap);min-width:0}
.adm-card{padding:14px;display:grid;gap:12px;min-width:0}.adm-ch h2{font-size:15px}.adm-ch p{margin:2px 0 0;font-size:13px}
.adm-hero{border-color:var(--r-act-line);background:linear-gradient(180deg,var(--r-act-soft),var(--r-panel) 70%)}
.adm-url{display:flex;gap:8px}.adm-url .inp{flex:1}.adm-run{display:grid;gap:8px;margin-top:6px}.adm-run .notice{margin:0}
.adm-fine{font-size:12px;margin:0}.adm-sm{font-size:15px!important;overflow-wrap:anywhere}.adm-empty{margin:0;padding:12px 0}
.adm-invite{display:flex;gap:8px;flex-wrap:wrap}.adm-invite .inp:first-child{flex:1;min-width:200px}
.adm-inline{margin:0;font-size:13px;min-height:18px;color:var(--r-ink-2)}.adm-inline.bad{color:var(--bad)}.adm-inline.ok{color:var(--ok)}
.adm-role{height:30px;font-weight:600}.adm-acts{flex-wrap:nowrap;gap:6px}.adm-off td{opacity:.62}.adm-off td:last-child{opacity:1}
.adm-danger{color:var(--bad);border-color:var(--bad-line)}.adm-armed{background:var(--bad);border-color:var(--bad);color:#fff}
.adm-sel td{background:var(--r-act-soft)}
.adm-matrix td.adm-c,.adm-matrix th.adm-c{text-align:center;width:90px}.adm-matrix input[type=checkbox]{width:18px;height:18px;accent-color:var(--r-act);cursor:pointer}.adm-matrix input:disabled{cursor:not-allowed;opacity:.55}
.adm-matrix td small{display:block;margin-top:1px}.adm-grp th{background:var(--r-well);position:static;font-size:11px}
.adm-save{gap:10px}.adm-dirty{font-size:13px;color:var(--r-ink-3)}.adm-dirty.on{color:var(--warn);font-weight:600}
.adm-cols{align-items:start}.adm-editor{min-width:0}.adm-editor:empty{display:none}
.adm-form{max-width:none}.adm-ta{height:auto;padding:8px 10px;resize:vertical;font-family:var(--font-sans)}
.adm-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.adm-ph{margin:0;border:1px solid var(--r-line);border-radius:var(--r-md);overflow:hidden;background:var(--r-panel);display:grid}
.adm-ph img{width:100%;aspect-ratio:1;object-fit:contain;background:var(--r-well)}.adm-ph figcaption{padding:8px;display:grid;gap:6px}
.adm-rejected img{opacity:.35}.adm-phs{display:flex;gap:4px;flex-wrap:wrap}.adm-ph .btn[aria-pressed=true]{background:var(--r-act-soft);border-color:var(--r-act-line)}
.adm-keys{display:grid;gap:16px}.adm-key{display:grid;gap:4px}.adm-key-h{display:flex;gap:8px;align-items:center}.adm-key-h label{font-weight:600}.adm-key small{color:var(--r-ink-2)}.adm-key-r{flex-wrap:nowrap}.adm-key-r .inp{flex:1}
.adm-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.adm-g{border:1px solid var(--r-line);border-radius:var(--r-md);overflow:hidden;background:var(--r-panel)}
.adm-g img,.adm-g-ph{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--r-well);display:block}.adm-g-t{padding:8px 10px;display:grid;gap:2px;font-size:13px}.adm-g-t small{color:var(--r-ink-3)}
.adm-more{display:flex;justify-content:center}
.adm-linkout{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.adm-linkout .inp{flex:1;min-width:220px}
.adm .kv{grid-template-columns:140px 1fr}
/* login overlay */
.lg{--lg-p:#ec4899;--lg-v:#a855f7;--lg-grad:linear-gradient(90deg,var(--lg-p),var(--lg-v));--lg-btn:linear-gradient(90deg,#db2777,#7c3aed);position:fixed;inset:0;z-index:100;background:var(--r-canvas);overflow:auto}
/* ground: soft colour pools that drift, plus a masked 44px grid (AdLauncher auth-ground, pink to violet) */
.lg-ground{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(55% 55% at 80% 15%,rgb(168 85 247/.14),transparent 70%),radial-gradient(50% 60% at 8% 95%,rgb(236 72 153/.14),transparent 70%)}
.lg-ground::before{content:"";position:absolute;inset:-20%;background:radial-gradient(40% 45% at 75% 20%,rgb(168 85 247/.22),transparent 70%),radial-gradient(38% 42% at 18% 80%,rgb(236 72 153/.20),transparent 70%);animation:lg-drift 18s ease-in-out infinite alternate}
.lg-ground::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--r-line) 1px,transparent 1px),linear-gradient(90deg,var(--r-line) 1px,transparent 1px);background-size:44px 44px;opacity:.55;-webkit-mask-image:radial-gradient(70% 70% at 50% 45%,#000 15%,transparent 85%);mask-image:radial-gradient(70% 70% at 50% 45%,#000 15%,transparent 85%)}
.dark .lg-ground{background:radial-gradient(55% 55% at 80% 12%,rgb(168 85 247/.22),transparent 70%),radial-gradient(50% 60% at 8% 95%,rgb(236 72 153/.18),transparent 70%)}
.dark .lg-ground::before{background:radial-gradient(40% 45% at 75% 20%,rgb(168 85 247/.34),transparent 70%),radial-gradient(38% 42% at 18% 80%,rgb(236 72 153/.28),transparent 70%)}
@keyframes lg-drift{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.08)}}
.lg-wrap{position:relative;z-index:1;box-sizing:border-box;min-height:100%;max-width:1280px;margin:0 auto;padding:24px 32px 32px;display:grid;grid-template-rows:auto 1fr;gap:16px}
.lg-top{display:flex;align-items:center;gap:10px}.lg-logo{width:36px;height:36px;border-radius:10px;object-fit:cover}
.lg-bn{display:grid;line-height:1.15}.lg-bn small{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--r-ink-2)}.lg-bn b{font-size:15px;font-weight:650}
.lg-main{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.lg-slot{display:grid;justify-items:center}
/* hero */
.lg-hero{display:grid;gap:22px;justify-items:start}
.lg-h1{display:grid;font-size:clamp(40px,5vw,60px);line-height:1.04;letter-spacing:-.03em;font-weight:650;color:var(--r-ink)}
.lg-accent{background:var(--lg-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.lg-word{display:inline-block;background:var(--lg-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:lg-word-in 1200ms ease-out both}
@keyframes lg-word-in{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}
.lg-lead{margin:0;max-width:46ch;font-size:18px;line-height:1.5;color:var(--r-ink-2)}
.lg-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.lg-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--r-line);border-radius:9999px;background:color-mix(in srgb,var(--r-panel) 75%,transparent);font-size:13px;font-weight:600;color:var(--r-ink)}.lg-tag svg{color:var(--lg-v)}
.lg-pipe{width:min(420px,100%);box-sizing:border-box;padding:16px 18px;border:1px solid var(--r-line);border-radius:16px;background:var(--r-panel);display:grid;gap:6px}.lg-pipe>b{font-size:13px}
.lg-line{width:100%;height:auto;display:block;overflow:visible}.lg-line .d{fill:var(--r-panel);stroke:url(#lg-g);stroke-width:2.5}.lg-line .on{fill:var(--lg-v);stroke:none}
.lg-halo{fill:var(--lg-v);opacity:.35;transform-box:fill-box;transform-origin:center;animation:lg-beat 2.4s ease-in-out infinite}
@keyframes lg-beat{0%,40%,100%{transform:scale(1);opacity:.35}20%{transform:scale(2.6);opacity:0}}
.lg-pipe ol{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none}.lg-pipe li{display:grid;gap:1px;font-size:12px;color:var(--r-ink-2)}.lg-pipe li b{font-size:13px;color:var(--r-ink)}.lg-pipe li:last-child{text-align:right}.lg-pipe li:nth-child(2){text-align:center}
/* form card */
.lg-card{width:100%;max-width:368px;box-sizing:border-box;background:var(--r-panel);border:1px solid var(--r-line);border-radius:16px;box-shadow:var(--sh-md);padding:28px}
.lg-form{display:grid;gap:14px}.lg-form h1{margin:0;font-size:22px;line-height:1.2;letter-spacing:-.01em}.lg-form label{display:grid;gap:5px;font-weight:600;font-size:13px}.lg-form p{margin:0}
.lg-sub{font-size:14px;line-height:1.45;color:var(--r-ink-2)}
.lg-form .inp{height:40px;font-size:15px;border-radius:10px}.lg-form .inp:focus{outline:none;border-color:var(--lg-v);box-shadow:0 0 0 3px color-mix(in srgb,var(--lg-v) 28%,transparent)}
.lg-code{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.lg-d{height:48px;text-align:center;font-size:22px;font-weight:600;padding:0;font-variant-numeric:tabular-nums}
.lg-d[aria-invalid=true],.lg-form .inp[aria-invalid=true]{border-color:var(--bad)}.lg-form .inp[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 25%,transparent)}
.lg-msg{min-height:20px;font-size:13px;margin:0;color:var(--r-ink-2)}.lg-msg.bad{color:var(--bad)}.lg-msg.ok{color:var(--ok)}
.lg-go,.lg-alt{width:100%;height:44px;box-sizing:border-box;border-radius:9999px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:filter .15s,box-shadow .15s,background-color .15s}
.lg-go{border:0;background:var(--lg-btn);color:#fff;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--lg-v) 70%,transparent)}
.lg-go:hover:not(:disabled){filter:brightness(.93)}.lg-go:focus-visible{outline:2px solid var(--lg-v);outline-offset:2px;border-radius:9999px}
.lg-go:disabled{filter:grayscale(.35) brightness(.88);cursor:not-allowed}.lg-go[aria-busy=true]{cursor:progress}
.lg-alt{border:1px solid var(--r-line-2);background:transparent;color:var(--r-ink)}.lg-alt:hover{background:var(--r-hover)}.lg-alt:focus-visible{outline:2px solid var(--lg-v);outline-offset:2px;border-radius:9999px}
.lg-or{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--r-ink-2)}.lg-or::before,.lg-or::after{content:"";flex:1;height:1px;background:var(--r-line)}
.lg-foot{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--r-ink-2)}
.lg-link{background:none;border:0;padding:4px 0;color:var(--r-link);font-weight:600;font-size:13px;cursor:pointer;text-align:left;justify-self:start}.lg-link:disabled{color:var(--r-ink-3);cursor:default}.lg-link:hover:not(:disabled){text-decoration:underline}
.lg-back{font-weight:500;color:var(--r-ink-2)}
.lg-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media (max-width:860px){
  .lg-wrap{padding:16px}.lg-main{grid-template-columns:1fr;gap:0}.lg-hero{display:none}.lg-card{max-width:420px;padding:20px}
  .lg-form .inp{font-size:16px}.lg-d{height:46px;font-size:20px}
}
@media (prefers-reduced-motion:reduce){.lg-ground::before,.lg-word{animation:none}.lg-halo{animation:none;opacity:0}}
@media (max-width:860px){
  .adm-url{flex-direction:column}.adm-acts{flex-wrap:wrap}.adm-key-r{flex-wrap:wrap}.adm .kv{grid-template-columns:1fr}
  .adm-matrix td.adm-c,.adm-matrix th.adm-c{width:64px;padding-left:6px;padding-right:6px}
}
.dr-nav{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--r-ink-2)}
.more.sk{height:44px;grid-column:1/-1}
.rk{color:var(--r-ink-3);font-weight:500}
.pg-note{font-size:12px;margin:-4px 0 12px;color:var(--r-ink-2)}

/* create */
.cr-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sp{flex:1}
.cr-main{min-width:0;display:grid;gap:12px;align-content:start}
.cr-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cr-head .sp{flex:1}
.cr-stages{overflow-x:auto}.cr-seg{max-width:100%;overflow-x:auto}.cr-seg button{flex:none;white-space:nowrap}.cr-n{font-variant-numeric:tabular-nums;font-weight:600}
.cr-hint{font-size:12px;color:var(--r-ink-2);margin:6px 0}.cr-more{display:flex;justify-content:center;margin:12px 0}
.empty.err h2{color:var(--bad)}
.cr-job{text-align:left;cursor:pointer;color:inherit;font:inherit;width:100%}.cr-job:hover{border-color:var(--r-line-2)}
.cr-job img,.cr-noimg{width:52px;height:64px;object-fit:cover;border-radius:6px;background:var(--r-well)}
.cr-noimg{display:grid;place-items:center;color:var(--r-ink-3);border:1px solid var(--r-line);font-size:11px}
.cr-jt{display:grid;gap:3px;min-width:0;align-content:start}.cr-jt b{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.cr-clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--r-ink-2)}
.cr-clip2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cr-badges{display:flex;gap:4px;flex-wrap:wrap}
.cr-tools{margin-bottom:10px;gap:10px}.cr-chk{gap:8px;font-size:13px;align-items:flex-start}
.cr-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 14px;text-align:left;width:100%;cursor:pointer;color:inherit;font:inherit}
.cr-item:hover{border-color:var(--r-line-2);box-shadow:var(--sh-md)}.cr-item.done{opacity:.6}
.cr-pair{display:flex;gap:6px}.cr-pair img,.cr-pair .cr-noimg{width:64px;height:80px;object-fit:cover;border-radius:6px;background:var(--r-well)}
.cr-ib{display:grid;gap:6px;min-width:0}.cr-go{font-size:22px;color:var(--r-ink-3)}
.cr-item:focus-visible,.cr-job:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.cr-tcell{display:flex;gap:10px;align-items:center}.cr-tthumb{width:40px;height:50px;object-fit:cover;border-radius:6px;background:var(--r-well)}
.cr-linkbtn{background:none;border:0;padding:0;color:var(--r-link);font:inherit;font-weight:600;cursor:pointer}.cr-linkbtn:hover{text-decoration:underline}
.cr-err{display:block;color:var(--bad);font-size:11px}.cr-shipped{display:grid;gap:2px}
.cr-ready{margin-top:20px}.cr-ready h2{margin-bottom:4px}
/* detail drawer */
.cr-layer{position:fixed;inset:0;z-index:60}.cr-layer .scrim{z-index:60}
.cr-dr{z-index:61;display:flex;flex-direction:column;width:min(1040px,100vw)}
.cr-x{position:absolute;top:10px;right:12px;z-index:2;font-size:20px}
.cr-dscroll{overflow:auto;padding:18px 20px 28px;display:grid;gap:14px;align-content:start;flex:1}
.cr-dh{display:grid;gap:6px;padding-right:40px}
.cr-why{border:1px solid var(--r-line);border-left:4px solid var(--r-line-2);border-radius:var(--r-md);padding:10px 12px;background:var(--r-well);display:grid;gap:6px}
.cr-why.warn{border-left-color:var(--warn);background:var(--warn-soft)}.cr-why.bad{border-left-color:var(--bad);background:var(--bad-soft)}
.cr-why p{margin:0}.cr-list{margin:0;padding-left:18px;display:grid;gap:2px;font-size:13px}
.cr-cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cr-side{padding:12px;display:grid;gap:10px;align-content:start;min-width:0}.cr-side h3{display:flex;gap:8px;align-items:center;justify-content:space-between}
.cr-img{background:var(--r-well);border-radius:var(--r-md);display:grid;place-items:center;min-height:160px}.cr-img img{max-width:100%;max-height:300px;object-fit:contain;border-radius:6px}
.cr-hl{margin:0;font-weight:600}
.cr-act{display:grid;gap:10px;position:sticky;bottom:-28px;background:var(--r-panel);padding:12px 0 4px;border-top:1px solid var(--r-line)}
.cr-note{height:auto;padding:8px 10px;resize:vertical;width:100%;font-family:inherit}
.btn.disabled{opacity:.45;pointer-events:none}
@media (max-width:860px){
 .cr-cmp{grid-template-columns:1fr}.cr-item{grid-template-columns:minmax(0,1fr);}.cr-go{display:none}
 .cr-dr{width:100vw}.cr-dscroll{padding:14px 14px 24px}.cr-img{min-height:140px}
 .cr-act .row .btn{flex:1;justify-content:center}
 .side[aria-label=Boards]{align-items:center}.side[aria-label=Boards] button{padding:6px 10px;gap:8px}.side .cr-hint{display:none}.cr-img img{max-height:220px}
}
@media (prefers-reduced-motion:reduce){.cr-item,.cr-job{transition:none}}
.adm-seg{justify-self:start;margin-bottom:2px}.adm-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);align-items:start}.adm-cols.two{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.adm-inline:empty{display:none}
@media (max-width:860px){.adm-cols.two{grid-template-columns:1fr}}
.adm-body>.adm-seg{display:inline-flex}
.adm-card .notice{margin:0}
@media (max-width:860px){
  .adm-users thead{display:none}.adm-users,.adm-users tbody{display:block}
  .adm-users tr{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:10px 12px;border-bottom:1px solid var(--r-line);align-items:center}
  .adm-users tr:last-child{border-bottom:0}.adm-users td{padding:0;border:0}
  .adm-users td:nth-child(1){grid-column:1/-1;overflow-wrap:anywhere}.adm-users td:nth-child(4){display:none}
  .adm-users td:nth-child(5){grid-column:1/-1}
}
.adm-edit{margin-top:6px}.adm-prof .badge{height:auto;min-height:20px;white-space:normal;padding:2px 7px}
@media (max-width:860px){.adm-url .inp{flex:none;width:100%}}
@media (max-width:760px){
  .qb-meta>.row{gap:8px;flex-wrap:wrap;overflow:visible;white-space:normal}
  .qb-field select{max-width:92px;font-size:12px}
  .qb-field input{min-width:0}
  .qb-meta .btn,.qb-meta select{flex:none}
  .grid{grid-template-columns:minmax(0,1fr);gap:12px}
}
.qb>*{min-width:0}
.qb-meta>.row{max-width:100%}

/* ---------- TT explorer: card header, sort menu, search popover, filter columns ---------- */
.post-ft .dom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none;min-width:0}
.post-ft .dom:hover{color:var(--r-ink);text-decoration:underline}
a.post-cta{text-decoration:none;border:1px solid var(--r-line);cursor:pointer;transition:background .12s}
a.post-cta:hover{background:var(--r-hover)}
a.post-cta:focus-visible,.post-ft .dom:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
/* sort menu */
.sortm{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:13px}
.sortm-l{color:var(--r-ink-2)}
.sortm-btn{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--r-line-2);border-radius:var(--r-ctl,8px);background:var(--r-panel);font-size:13px;font-weight:500;color:var(--r-ink);cursor:pointer;white-space:nowrap}
.sortm-btn:hover,.sortm-btn[aria-expanded=true]{background:var(--r-hover)}
.sortm-btn:focus-visible,.sortm-menu button:focus-visible,.qpop button:focus-visible,.qb-more:focus-visible,.pin-x:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.sortm-btn .chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7}
.sortm-menu{position:absolute;z-index:40;top:calc(100% + 4px);right:0;min-width:220px;padding:4px;background:var(--r-raised);border:1px solid var(--r-line-2);border-radius:var(--r-card,12px);box-shadow:var(--sh-md);display:flex;flex-direction:column}
.sortm-menu[hidden]{display:none}
.sortm-menu button{display:flex;align-items:center;gap:8px;height:32px;padding:0 8px;border:0;border-radius:6px;background:none;font-size:13px;font-weight:400;color:var(--r-ink);text-align:left;cursor:pointer}
.sortm-menu button:hover{background:var(--r-hover)}
.sortm-menu button[aria-selected=true]{font-weight:500}
.sortm-menu .ck{width:16px;text-align:center;font-size:12px}
/* search popover */
.qb-field{position:relative}
.qpop{display:none;position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;padding:12px;background:var(--r-raised);border:1px solid var(--r-line-2);border-radius:var(--r-card,12px);box-shadow:var(--sh-md);flex-direction:column;gap:8px}
.qb-field:focus-within .qpop,.qpop:focus-within{display:flex}
.sp-h{font-size:11px;font-weight:500;color:var(--r-ink-2)}
.sp-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sp-ex{height:24px;padding:0 8px;border:1px solid var(--r-line-2);border-radius:99px;background:none;font-size:12px;font-weight:500;color:var(--r-ink-2);cursor:pointer}
.sp-ex[aria-pressed=true]{background:var(--r-act);border-color:var(--r-act);color:var(--r-act-ink)}
.sp-recent{display:flex;flex-wrap:wrap;gap:4px}
.qpop .rc{display:inline-flex;align-items:center;height:24px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-panel);font-size:12px}
.qpop .rc button{border:0;background:none;color:var(--r-ink);cursor:pointer;height:100%;padding:0 8px;font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:99px}
.qpop .rc .x{padding:0 8px 0 0;color:var(--r-ink-3)}
.qpop .rc button:hover{color:var(--r-ink)}
.sp-scope{display:flex;flex-wrap:wrap;gap:4px}
.sp-scope button{height:28px;padding:0 12px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-panel);font-size:12px;font-weight:500;color:var(--r-ink-2);cursor:pointer}
.sp-scope button:hover{background:var(--r-hover)}
.sp-scope button[aria-pressed=true]{background:var(--r-act);border-color:var(--r-act);color:var(--r-act-ink)}
.sp-go{align-self:flex-end;display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:0;border-radius:var(--r-ctl,8px);background:var(--r-act);color:var(--r-act-ink);font-size:13px;font-weight:500;cursor:pointer}
.sp-go kbd{font:inherit;opacity:.7}
/* filter columns */
.qb-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.qb-col+.qb-col{border-left:1px solid var(--r-line);padding-left:20px}
.qb-cols{gap:0 20px}.qb-col{gap:12px}.qb-cols .qb-pin{gap:12px}
.qb-cols .view.pin{height:28px;border-color:var(--r-line-2)}
.qb-col{min-width:0;display:flex;flex-direction:column;gap:8px}
.qb-gt{font-size:12px;font-weight:600;color:var(--r-ink-2)}
.qb-cols .qb-pin{align-content:flex-start}
.qb-cols .pop-wrap{display:inline-flex;align-items:center;position:relative}
.view.pin[aria-pressed=true]{background:var(--r-act);border-color:var(--r-act);color:var(--r-act-ink)}
.dark .view.pin[aria-pressed=true]{color:var(--r-act-ink)}
.pop-wrap:has(.pin-x) .view.pin{padding-right:28px}
.pin-x{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:0;border-radius:50%;background:none;color:var(--r-act-ink);font-size:14px;line-height:1;cursor:pointer;padding:0}
.pin-x:hover{background:rgba(127,127,127,.35)}
@media (max-width:860px){.qb-cols{grid-template-columns:1fr}.qb-col+.qb-col{border-left:0;padding-left:0;border-top:1px solid var(--r-line);padding-top:12px}.sortm-l{display:none}.sortm-menu{right:auto;left:0}}

/* ---------- Drawer v2 ---------- */
.scrim{background:rgba(0,0,0,.55)}
.drawer.ad{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(1500px,96vw);height:min(92vh,980px);border:1px solid var(--r-line);border-radius:var(--r-card);overflow:hidden;grid-template-columns:44% minmax(0,1fr);animation:fade .15s}
.drawer.ad .dr-media{background:var(--r-well);justify-content:flex-start;align-items:center;padding:24px 24px 84px;gap:0;overflow:auto;position:relative}
.drawer.ad .dr-body{border-left:1px solid var(--r-line);background:var(--r-panel);min-width:0}
.fbp{width:min(500px,100%);background:var(--r-panel);border:1px solid var(--r-line);border-radius:var(--r-card);overflow:hidden;flex:none;margin:auto 0}
.fbp header{display:flex;gap:10px;align-items:center;padding:12px}
.fbp header b{display:block;font-size:14px;font-weight:600}
.fbp header small,.fbp footer small{font-size:11px;color:var(--r-ink-2);font-weight:500}
.fbp-t{margin:0;padding:0 12px 12px;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:96px;overflow:auto}
.fbp-m{position:relative;background:var(--r-well)}
.fbp-m img{display:block;width:100%;max-height:min(46vh,480px);object-fit:contain;border-radius:0;box-shadow:none}
.fbp-chip{position:absolute;top:8px;right:8px;background:var(--r-raised);border:1px solid var(--r-line);color:var(--r-ink-2);font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px}
.fbp footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--r-raised);border-top:1px solid var(--r-line)}
.fbp footer>div{min-width:0}
.fbp footer b{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbp .post-cta{background:var(--r-well);border:1px solid var(--r-line)}
.dr-tool{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;max-width:calc(100% - 24px);overflow-x:auto;background:var(--r-raised);border:1px solid var(--r-line);border-radius:99px;padding:5px 8px;box-shadow:var(--sh-md)}
.dr-tool .btn{border-color:transparent;background:transparent;border-radius:99px}
.dr-tool .btn:hover{background:var(--r-hover)}
.dr-div{width:1px;height:20px;background:var(--r-line);margin:0 4px;flex:none}
.dr-pos{font-size:12px;color:var(--r-ink-2);padding:0 4px;white-space:nowrap}
.drawer.ad .dr-head{align-items:center;padding:16px 20px 12px;gap:10px}
.dr-head .nm a:first-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:860px){.drawer.ad .dr-head .btn.pri{padding:0 10px;font-size:12px}}
.dr-sub{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-sub a{color:var(--r-ink-2);text-decoration:none}.dr-sub a:hover{color:var(--r-ink)}
.drawer.ad .tabs{padding:0 20px;margin:0}
.drawer.ad .dr-scroll{padding:16px 20px 24px;display:grid;gap:12px;align-content:start}
.dv-panel{border:1px solid var(--r-line);border-radius:var(--r-card);background:var(--r-panel);padding:14px 16px;display:grid;gap:12px;min-width:0}
.dv-ph{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.dv-ph h3{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--r-ink-2)}
.dv-status{font-size:12px;font-weight:500;color:var(--r-ink-2);display:inline-flex;align-items:center;gap:6px}
.dv-dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.dv-dot.off{background:var(--r-ink-3)}
.dv-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dv-stats>div{border:1px solid var(--r-line);border-radius:var(--r-ctl);padding:10px 12px;display:grid;gap:2px;background:var(--r-well)}
.dv-stats span{font-size:11px;font-weight:600;color:var(--r-ink-2);text-transform:uppercase;letter-spacing:.05em}
.dv-stats b{font-size:28px;font-weight:600;line-height:1.1}.dv-stats b small{font-size:14px;color:var(--r-ink-3);font-weight:500}
.dv-stats em{font-style:normal;font-size:12px;color:var(--r-ink-2)}
.dv-kvs{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0}
.dv-kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--r-line);font-size:13px}
.dv-kv dt{color:var(--r-ink-2)}.dv-kv dd{margin:0;font-weight:500;min-width:0;overflow-wrap:anywhere}
.dv-np{margin:0;padding:8px 10px;border:1px dashed var(--r-line-2);border-radius:var(--r-ctl);font-size:12px;color:var(--r-ink-3)}
.dv-note{margin:0;font-size:13px;color:var(--r-ink-2);overflow-wrap:anywhere}
.dv-btns{display:flex;gap:8px;flex-wrap:wrap}
.dv-blk{display:grid;gap:6px}
.dv-bh{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--r-ink-2)}
.dv-ic{border:1px solid var(--r-line);background:var(--r-panel);color:var(--r-ink-2);width:28px;height:28px;border-radius:var(--r-ctl);display:grid;place-items:center;cursor:pointer;padding:0}
.dv-ic:hover{background:var(--r-hover);color:var(--r-ink)}
.dv-head{font-weight:600;font-size:15px}
.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rel>button,.rel>.sk{border:1px solid var(--r-line);border-radius:var(--r-ctl);background:var(--r-panel);padding:0;overflow:hidden;cursor:pointer;text-align:left;color:var(--r-ink);display:grid;align-content:start}
.rel>.sk{aspect-ratio:4/5;cursor:default}
.rel img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--r-well)}
.rel b{font-size:12px;font-weight:600;padding:8px 8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rel small{font-size:12px;color:var(--r-ink-2);padding:2px 8px 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rel>button:hover{border-color:var(--r-act-line)}
@media (max-width:860px){
 .drawer.ad{inset:0;transform:none;width:100vw;height:100dvh;border:0;border-radius:0;display:block;overflow:auto}
 .drawer.ad .dr-media{max-height:none;padding:12px;overflow:visible}
 .fbp{margin:0}
 .dr-tool{position:static;transform:none;margin-top:12px;max-width:100%}
 .drawer.ad .dr-body{border-left:0;border-top:1px solid var(--r-line);overflow:visible}
 .drawer.ad .dr-scroll{overflow:visible}
 .dv-kvs{grid-template-columns:1fr}.rel{grid-template-columns:repeat(2,minmax(0,1fr))}
 .drawer.ad .dr-head{position:sticky;top:0;background:var(--r-panel);z-index:2}
}
@media (max-width:860px){.fbp-t{max-height:120px}.fbp-m img{max-height:60vh}.drawer.ad .dr-media{padding-bottom:12px}}

.dr-head .nm .dr-sub a{font-size:12px;font-weight:400;display:inline}

/* ---------- User menu ---------- */
.ucard{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:4px;width:72px;padding:8px 4px;border:0;border-radius:var(--r-card);background:none;color:var(--r-rail-ink);font:500 10px/1.1 var(--font-sans, inherit);cursor:pointer}
.ucard:hover,.ucard[aria-expanded=true]{background:var(--r-hover);color:var(--r-ink)}
.ucard:focus-visible{outline:2px solid var(--r-act);outline-offset:1px}
.uav{width:32px;height:32px;border-radius:50%;background:var(--r-raised);border:1px solid var(--r-line-2);color:var(--r-ink);display:grid;place-items:center;font:600 12px/1 var(--font-sans, inherit)}
.uav svg{width:16px;height:16px}
.urole{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--r-ink-3)}
.umenu{position:fixed;z-index:60;width:232px;padding:4px;background:var(--r-raised);border:1px solid var(--r-line-2);border-radius:12px;box-shadow:var(--sh-md);color:var(--r-ink)}
.umenu hr{border:0;height:1px;margin:4px -4px;background:var(--r-line)}
.uhead{display:flex;flex-direction:column;gap:2px;padding:8px 10px}
.uhead b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uhead span{font-size:12px;color:var(--r-ink-3)}
.umi{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border:0;border-radius:8px;background:none;color:var(--r-ink);font:13px var(--font-sans, inherit);text-align:left;cursor:pointer}
.umi svg{width:16px;height:16px;flex:none;color:var(--r-ink-2)}
.umi span{flex:1}
.umi kbd{font:11px var(--font-sans, inherit);color:var(--r-ink-3)}
.umi:hover,.umi:focus-visible{background:var(--r-hover);outline:0}
@media (max-width:860px){
  .mnav{grid-template-columns:repeat(4,1fr)}
  .mnav .ucard{margin:0;width:auto;height:100%;padding:0;gap:2px;border-radius:0;font-size:var(--fs-label)}
  .mnav .uav{width:22px;height:22px;font-size:10px}
  .mnav .urole{color:inherit;max-width:none}
  .umenu.sheet{left:8px;right:8px;width:auto}
}
.card>.tags,.card>.pips{margin:0;padding:8px 12px 0}.card>.tags{max-height:30px;min-height:30px}
#res{padding:0;margin:0;border-radius:var(--r-card,12px);background:none}
.qb-main{display:grid;gap:10px}
.pop-l{padding-top:0;scroll-padding-top:52px}.pop-l::before{content:"";display:block;position:sticky;top:0;z-index:2;height:8px;background:var(--r-raised)}.pop-l input{position:sticky;top:8px;z-index:2;margin:0 0 6px;background:var(--r-raised);box-shadow:0 6px 0 var(--r-raised)}
.pop,.pop-l,.pop-r,.umenu,.sortm-menu,.qpop{overscroll-behavior:contain}

/* ---------- W4a: Trendtrack single-field popover, colour pass ---------- */
.pop:not(.two){display:flex;flex-direction:column;width:min(480px,92vw);max-height:none;overflow:visible;grid-template-columns:none;grid-template-rows:none;border-radius:12px;padding:0}
.pop.r{left:auto;right:0}
.pop-hd{display:flex;align-items:center;gap:8px;padding:12px 14px 8px}
.pop-hd b{font-size:14px;font-weight:700;color:var(--r-ink)}
.pop-ic{display:inline-flex;color:var(--primary)}.pop-ic svg{width:16px;height:16px}
.pop-i{display:inline-flex;color:var(--r-ink-3);cursor:help;border-radius:50%}.pop-i:focus-visible{outline:2px solid var(--ring)}
.pop-trash{margin-left:auto;width:28px;height:28px;border:0;border-radius:8px;background:none;color:var(--r-ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pop-trash:hover{background:var(--bad-soft);color:var(--bad)}
.pop-done{display:none;margin-left:4px;min-height:40px}
@media (max-width:860px){.pop-done{display:inline-flex}}
.pop-s{padding:0 14px 8px}.pop-s .inp{width:100%;height:34px}
.val-hd{display:grid;grid-template-columns:1fr 20px 20px;gap:8px;align-items:center;padding:2px 14px 6px;font-size:11px;font-weight:600;color:var(--r-ink-3);border-bottom:1px solid var(--r-line)}
.val-hd>span:not(.sorts){text-align:center;font-size:10px;width:20px;margin:0 -2px}
.val-hd .sorts{display:inline-flex;gap:2px}
.val-hd .sorts button{border:0;background:none;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;color:var(--r-ink-3);cursor:pointer}
.val-hd .sorts button:hover{color:var(--r-ink)}
.val-hd .sorts button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}
.pop-body{max-height:min(420px,60vh);overflow:auto;overscroll-behavior:contain;padding:6px 8px 8px;display:flex;flex-direction:column;gap:1px}
.pop:not(.two) .val{grid-template-columns:1fr auto 20px 20px;gap:8px;padding:5px 6px;border-radius:6px}
.pop .val .vl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pop .val .n{color:var(--r-ink-3)}
.pop:not(.two) .tri{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--r-line-2);background:var(--r-panel);padding:0;font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700}
.pop:not(.two) .tri.inc:hover{border-color:var(--primary)}.pop:not(.two) .tri.exc:hover{border-color:var(--bad)}
.pop:not(.two) .tri[aria-pressed=true].inc{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.pop:not(.two) .tri[aria-pressed=true].exc{background:var(--bad);border-color:var(--bad);color:#fff}
.pop:not(.two) .tri:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.bar i{background:var(--primary);opacity:.55}
.pop:not(.two) .bar{grid-column:1/-1;height:3px;margin-top:0}
.pop-lbl{display:block;font-size:11px;font-weight:600;color:var(--r-ink-2);margin-bottom:4px}
.pop .hint{font-size:12px;color:var(--r-ink-2);padding:8px 6px}
.pop .presets{margin-bottom:12px}
.pop .presets .view[aria-pressed=true],.views .view[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.dark .pop .presets .view[aria-pressed=true],.dark .views .view[aria-pressed=true]{color:var(--primary-foreground)}
.rng-in{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.rng-in label{display:block}.rin{display:flex;align-items:center;gap:6px}.rin .inp{width:100%;height:34px}.rin em{font-style:normal;font-size:12px;color:var(--r-ink-3)}
.rs{position:relative;height:22px;margin:4px 8px 0}
.rs-track,.rs-fill{position:absolute;top:9px;height:4px;border-radius:2px}
.rs-track{left:0;right:0;background:var(--r-well)}
.rs-fill{left:var(--a);width:calc(var(--b) - var(--a));background:var(--primary)}
.rs input[type=range]{position:absolute;left:-8px;width:calc(100% + 16px);top:0;height:22px;margin:0;background:none;-webkit-appearance:none;appearance:none;pointer-events:none}
.rs input[type=range]::-webkit-slider-runnable-track{background:none;height:22px}
.rs input[type=range]::-moz-range-track{background:none}
.rs input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:16px;height:16px;margin-top:3px;border-radius:50%;background:#fff;border:2px solid var(--primary);box-shadow:var(--sh);cursor:grab}
.rs input[type=range]::-moz-range-thumb{pointer-events:auto;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--primary);cursor:grab}
.rs input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--ring);outline-offset:2px}
.rs-ticks{position:relative;height:16px;margin:2px 8px 4px;font-size:10px;color:var(--r-ink-3);font-variant-numeric:tabular-nums}
.rs-ticks span{position:absolute;transform:translateX(-50%);top:0}.rs-ticks span:first-child{transform:none}.rs-ticks span:last-child{transform:translateX(-100%)}
.pop:has(.rs) .pop-body{padding:6px 14px 14px}
/* pills */
.view.pin{background:var(--r-panel);gap:6px;height:30px;padding:0 10px}
.view.pin>svg{flex:none;opacity:.75}
.view.pin .pc{font-weight:700;font-size:11px;min-width:16px;height:16px;padding:0 5px;border-radius:99px;background:rgba(127,127,127,.2);display:inline-flex;align-items:center;justify-content:center}
.qb-cols .view.pin[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.qb-cols .view.pin[aria-pressed=true]>svg{opacity:1}
.qb-cols .view.pin[aria-pressed=true] .pc{background:rgba(255,255,255,.22)}
.qb-cols .view.pin[data-st=exc]{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad)}
.qb-cols .view.pin[data-st=exc] .pc{background:var(--bad-line)}
.qb-cols .view.pin[aria-pressed=true]:hover{filter:brightness(1.08)}
.qb-cols .view.pin[aria-expanded=true]:not([aria-pressed=true]){border-color:var(--primary);box-shadow:0 0 0 2px var(--accent-line,rgba(58,97,246,.25))}
.pop-wrap:has(.pin-x) .view.pin{padding-right:30px}
.qb-cols .pin-x{color:var(--primary-foreground)}
.qb-cols .view.pin[data-st=exc]+.pin-x{color:var(--bad)}
.qb-gt{display:flex;align-items:center;gap:6px}.qb-gt svg{width:14px;height:14px;flex:none}
.qb-gt[data-g=Ads] svg{color:var(--primary)}.qb-gt[data-g=Advertiser] svg{color:var(--violet)}.qb-gt[data-g="Run time"] svg{color:var(--cyan)}
/* active chips */
.chip{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.chip .op{color:rgba(255,255,255,.8)}.chip .x{color:var(--primary-foreground);opacity:.85}.chip .x:hover{opacity:1}
.chip.not{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad)}
.chip.not .op{color:var(--bad)}.chip.not .x{color:var(--bad)}
.chip.lock{background:var(--r-well);border-color:var(--r-line-2);color:var(--r-ink)}.chip.lock .op{color:var(--r-ink-2)}
.chip.pop-wrap{display:inline-flex;position:relative}
.qb-end{margin-left:auto;display:inline-flex;gap:6px;align-items:center}
.qb-end .btn.pri{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}
.qb-chips .pop{top:calc(100% + 6px)}
/* card colours */
@media (max-width:860px){
  .pop:not(.two){position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:82vh;border-radius:16px 16px 0 0;overflow:hidden;display:flex}
  .pop:not(.two) .pop-body{max-height:min(52vh,420px)}
  .pop.r{left:0;right:0}
}
.dark .well .ov.run[data-t=proven]{--c:var(--violet-2)}
/* W4a: chips row appearing/disappearing in the sticky bar must not nudge scrollY */
html,body,.qb,#page{overflow-anchor:none}
.pop:not(.two) .tri{justify-self:center}

/* ---------- W5: saved views ---------- */
.views .view[aria-pressed=true]{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent)}
.qb-end [data-new]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
.qb-end [data-a=vdel]:hover{color:var(--bad);background:var(--bad-soft)}
/* Trendtrack header: total count, preset tabs, no panel title */
.qb-head{display:flex;align-items:baseline;gap:8px;min-width:0}
.pg-count{font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--r-ink);font-variant-numeric:tabular-nums}
.qb .views{gap:2px;justify-content:flex-start;align-items:stretch;border-bottom:1px solid var(--r-line);padding-bottom:0;-webkit-overflow-scrolling:touch}
.qb .views .view{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0;background:none;box-shadow:none;font-size:13px;font-weight:600;color:var(--r-ink-2);white-space:nowrap}
.qb .views .view:hover{color:var(--r-ink);background:none}
.qb .views .view[aria-pressed=true],.dark .qb .views .view[aria-pressed=true]{background:none;box-shadow:none;border-color:transparent;border-bottom-color:var(--r-act);color:var(--r-ink)}
.qb .views .view svg{flex:none;opacity:.7}
.views-end{flex:none;margin-left:auto;display:inline-flex;gap:6px;align-items:center;padding-left:12px}
.views-end .btn.pri{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}
.views-end [data-new]{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
.views-end [data-a=vdel]:hover{color:var(--bad);background:var(--bad-soft)}
@media (max-width:560px){.pg-count{font-size:22px}}

/* analysis: tabs (Patterns | Ads Intelligence) + MECE framework page */
.an{display:grid;gap:14px;min-width:0}
.an [hidden],.mc [hidden]{display:none!important}
.an-pane{min-width:0}
.an-tabs{display:flex;gap:2px;border-bottom:1px solid var(--r-line);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.an-tabs .view{flex:none;display:inline-flex;align-items:center;height:38px;padding:0 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0;background:none;box-shadow:none;font-size:13px;font-weight:600;color:var(--r-ink-2);white-space:nowrap}
.an-tabs .view:hover{color:var(--r-ink);background:none}
.an-tabs .view[aria-selected=true]{background:none;border-bottom-color:var(--r-act);color:var(--r-ink)}
.an-tabs .view:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:6px}
.mc{display:grid;gap:14px;min-width:0}
.mc h2{font-size:16px}.mc h3{font-size:13px}
.mc-intro{display:grid;gap:8px}.mc-intro p{margin:0;font-size:13px}.mc-title{font-size:18px!important;letter-spacing:-.02em}
.mc-princ{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.mc-pc{border:1px solid var(--r-line);border-radius:var(--r-lg);background:var(--r-panel);padding:12px 14px;display:grid;gap:4px;align-content:start}
.mc-pc p{margin:0;font-size:13px;color:var(--r-ink-2);max-width:80ch}
.mc-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;position:sticky;top:var(--top-h);z-index:5;padding:8px 0;background:var(--r-canvas)}
.mc-chips{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.mc-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-panel);color:var(--r-ink-2);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.mc-chip b{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:var(--r-well);color:var(--r-ink);font-size:11px}
.mc-chip:hover{background:var(--r-hover);color:var(--r-ink)}
.mc-search{width:260px;max-width:100%}
.mc-layer,.mc-sec{padding:16px 18px;display:grid;gap:12px;scroll-margin-top:calc(var(--top-h) + 56px);outline:0;min-width:0}
.mc-lh{display:flex;gap:12px;align-items:center}.mc-lh h2{margin:0}
.mc-badge{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-weight:700;font-size:15px;color:#fff;background:linear-gradient(135deg,#db2777,#7c3aed)}
.mc-what{margin:2px 0 0;font-size:12.5px;color:var(--r-ink-2)}
.mc-q{margin:0;font-size:13.5px;max-width:80ch}
.mc-note{margin:0;font-size:12.5px;color:var(--r-ink-2);max-width:80ch;padding:8px 10px;border-radius:var(--r-md);background:var(--r-well)}
.mc-note b{color:var(--r-ink)}
.mc-src{font-size:12px}
.mc-sub{margin:4px 0 0}
.mc-vals{display:grid;border:1px solid var(--r-line);border-radius:var(--r-lg);overflow:hidden}
.mc-val{display:grid;grid-template-columns:200px minmax(0,1fr);gap:6px 16px;padding:12px 14px;border-top:1px solid var(--r-line)}
.mc-val:first-child{border-top:0}
.mc-val h3{margin:0;font-size:13.5px}
.mc-def{margin:0;font-size:13.5px;max-width:80ch}
.mc-kv{margin:8px 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:12.5px;max-width:80ch}
.mc-kv dt{color:var(--r-ink-2);font-weight:600}.mc-kv dd{margin:0}
.mc-tbl table{width:100%;border-collapse:collapse;font-size:13px}
.mc-tbl th,.mc-tbl td{text-align:left;vertical-align:top;padding:9px 12px;border-top:1px solid var(--r-line);text-transform:none;letter-spacing:0}
.mc-tbl thead th{border-top:0;position:static;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--r-ink-2)}
.mc-tbl tbody th{font-weight:600;color:var(--r-ink)}
.mc-tbl td{max-width:60ch}
.mc-by{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px}.mc-by li{display:flex;gap:6px}.mc-by b{color:var(--r-ink-2);font-weight:600}
.mc-rest{display:grid;gap:14px}
.mc-sh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.mc-sh h2{margin:0}.mc-sh p{margin:0;font-size:12.5px}
.mc-test{display:grid;gap:10px}
.mc-camp{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:baseline;padding:10px 12px;border:1px solid var(--r-act-line);border-radius:var(--r-lg);background:var(--r-well);font-size:13px}.mc-camp span{color:var(--r-ink-2)}
.mc-sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.mc-set{border:1px solid var(--r-line);border-radius:var(--r-lg);padding:10px 12px;display:grid;gap:8px;font-size:13px}
.mc-set div{display:flex;gap:6px}.mc-set i{font-style:normal;font-size:12px;padding:3px 9px;border-radius:99px;background:var(--r-well);color:var(--r-ink-2)}
.mc-formula{margin:0;padding:12px 14px;border:1px solid var(--r-line);border-radius:var(--r-lg);background:var(--r-well);font:12.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre}
.mc-rules{margin:0;padding-left:20px;display:grid;gap:4px;font-size:13px;max-width:80ch}
@media (max-width:700px){
  .mc-layer,.mc-sec{padding:12px}
  .mc-val{grid-template-columns:1fr}
  .mc-bar{position:static}.mc-search{width:100%}
  .mc-tbl table,.mc-tbl tbody,.mc-tbl tr,.mc-tbl td,.mc-tbl th{display:block;width:100%}
  .mc-tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .mc-tbl tr{padding:8px 12px;border-top:1px solid var(--r-line)}.mc-tbl tr:first-child{border-top:0}
  .mc-tbl th,.mc-tbl td{border:0;padding:3px 0;max-width:none}
  .mc-tbl td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--r-ink-2)}
  .mc-route td:nth-of-type(1)::before{content:"Metric"}.mc-route td:nth-of-type(2)::before{content:"By entry type"}
  .mc-route td::before,.mc-jev td::before{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--r-ink-2)}
  .mc-jev td:nth-of-type(1)::before{content:"Check"}.mc-jev td:nth-of-type(2)::before{content:"Who"}.mc-jev td:nth-of-type(3)::before{content:"If No"}
  .mc-gate td:nth-of-type(1)::before{content:"Gate 2"}.mc-gate td:nth-of-type(2)::before{content:"Yes"}.mc-gate td:nth-of-type(3)::before{content:"No"}
}

/* pink wash + framed canvas on every logged-in route (TrendTrack frame) */
html[data-route]{--ads-p:236 72 153;--ads-v:168 85 247;--ads-a:.40}
html.dark[data-route]{--ads-a:.62}
html[data-route] .shell{background:var(--sidebar)}
html[data-route] .rail{background:transparent;border-right-color:transparent}
html[data-route] .main{margin:8px 8px 8px 0;border:1px solid var(--r-line);border-radius:18px;box-shadow:var(--sh-md);background:var(--r-canvas);isolation:isolate}
html[data-route] .main::before{content:"";position:sticky;top:0;z-index:-1;flex:none;height:calc(100vh - 18px);margin-bottom:calc(18px - 100vh);border-radius:17px 17px 0 0;pointer-events:none;background:linear-gradient(180deg,rgb(var(--ads-v)/calc(var(--ads-a)*.5)),transparent 190px),radial-gradient(85% 70% at 100% 0%,rgb(var(--ads-p)/calc(var(--ads-a)*1.25)),transparent 72%),radial-gradient(75% 60% at 15% 0%,rgb(var(--ads-v)/calc(var(--ads-a)*1.05)),transparent 72%),radial-gradient(100% 95% at 100% 100%,rgb(var(--ads-p)/var(--ads-a)),transparent 72%),radial-gradient(70% 60% at 55% 100%,rgb(var(--ads-v)/calc(var(--ads-a)*.8)),transparent 72%)}
html[data-route] .top{border-radius:17px 17px 0 0}
@media (max-width:860px){
  html[data-route] .main{margin:6px 6px 58px;border-radius:14px}
  html[data-route] .top{border-radius:13px 13px 0 0}
}

/* ---------- P1 polish toward TrendTrack: metric strip above media, shared empty card, mobile drawer bar ---------- */
.mstrip{display:grid;gap:6px;font-size:12px;line-height:1;color:var(--r-ink-2)}
.card>.mstrip{padding:10px 12px 0}
.ms-r{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.ms-b{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:8px;border:1px solid var(--r-line-2);background:var(--r-well);color:var(--r-ink);font-size:12px;white-space:nowrap;min-width:0;max-width:100%}
.ms-b>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ms-b svg{flex:none}.ms-b b{font-weight:600}.ms-b small{font-size:12px;color:var(--r-ink-3)}
.ms-st i{font-style:normal;font-size:10px}
.ms-st.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent);font-weight:600}
.ms-st.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent);font-weight:600}
.ms-run{color:var(--r-ink-2)}.ms-run b{color:var(--r-ink)}
.ms-fl{font-size:14px;line-height:1}
.ms-hl{flex:1 1 auto;min-width:0;background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.ms-n{color:var(--r-ink-2)}
.empty:not(.err){border-style:solid;background:var(--r-panel);box-shadow:var(--sh);padding:40px 20px;gap:10px}
.empty .ic{width:48px;height:48px;border-radius:14px}
.empty .btn{margin-top:6px}
.dr-more,.dr-menu{display:none}
@media (max-width:639px){
  .dr-act,.dr-tool .dr-div{display:none}
  .dr-more{display:inline-flex}
  .dr-tool{justify-content:space-between;overflow:visible;gap:8px;width:100%}
  .dr-menu:not([hidden]){display:grid;gap:4px;margin-top:8px;padding:6px;width:100%;background:var(--r-raised);border:1px solid var(--r-line);border-radius:var(--r-card,12px);box-shadow:var(--sh-md)}
  .dr-menu .btn{justify-content:flex-start;height:38px;width:100%}
}

/* ads page: full-width content + TrendTrack header (count left, search centred, centred preset pills) */
html[data-route=ads] .qb:has(>.qb-head){grid-template-columns:1fr minmax(0,560px) 1fr;column-gap:12px;align-items:center}
html[data-route=ads] .qb:has(>.qb-head)>.qb-head{grid-column:1;grid-row:1;align-self:center}
html[data-route=ads] .qb:has(>.qb-head)>.qb-main{display:contents}
html[data-route=ads] .qb-head .pg-count{font-size:13px;font-weight:600;line-height:1;padding:7px 12px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-panel);color:var(--r-ink)}
html[data-route=ads] .qb:has(>.qb-head) .qb-search{grid-column:2;grid-row:1}
html[data-route=ads] .qb:has(>.qb-head) .views{grid-column:1/-1;grid-row:2;border-bottom:0;gap:6px;justify-content:safe center;padding:2px 0}
html[data-route=ads] .qb .views .view{height:30px;padding:0 13px;border:1px solid transparent;border-radius:99px;margin:0;font-size:13px;background:none;color:var(--r-ink-2);transition:background .15s,color .15s}
html[data-route=ads] .qb .views .view:hover{background:var(--r-hover);color:var(--r-ink)}
html[data-route=ads] .qb .views .view[aria-pressed=true],html.dark[data-route=ads] .qb .views .view[aria-pressed=true]{background:var(--r-act-soft);border-color:var(--r-act-line);border-bottom-color:var(--r-act-line);color:var(--r-ink);box-shadow:none}
html[data-route=ads] .qb:has(>.qb-head)>.qb-main>.qb-panel,html[data-route=ads] .qb:has(>.qb-head) .qb-chips{grid-column:1/-1}
html[data-route=ads] .qb:has(>.qb-head) .views-end{margin-left:12px}
html[data-route=ads] .qb:has(>.qb-head)>.qb-meta{grid-column:1/-1}
@media (max-width:860px){
  html[data-route=ads] .qb:has(>.qb-head){grid-template-columns:minmax(0,1fr)}
  html[data-route=ads] .qb:has(>.qb-head)>.qb-head,html[data-route=ads] .qb:has(>.qb-head) .qb-search,html[data-route=ads] .qb:has(>.qb-head) .views{grid-column:1}
  html[data-route=ads] .qb:has(>.qb-head)>.qb-head{grid-row:1}
  html[data-route=ads] .qb:has(>.qb-head) .qb-search{grid-row:2}
  html[data-route=ads] .qb:has(>.qb-head) .views{grid-row:3;justify-content:flex-start}
}
html[data-route] .card{background:color-mix(in srgb,var(--r-panel) 88%,transparent)}
html[data-route] .qb-panel,html[data-route] .panel,html[data-route] .tbl-wrap,html[data-route] .stat,html[data-route] .empty:not(.err){background:color-mix(in srgb,var(--r-panel) 78%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
html[data-route] .sortm-btn,html[data-route] .btn:not(.pri),html[data-route] .seg{background:color-mix(in srgb,var(--r-panel) 72%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* search field: translucent but NO backdrop-filter (it would trap the popover in its own stacking context, behind the filter panel); the row sits above the panel so the popover is never clipped or blurred */
html[data-route] .qb-field{background:color-mix(in srgb,var(--r-panel) 84%,transparent)}
.qb-search{position:relative;z-index:30}
.qb-field:focus-within{z-index:31}
.qpop{background:var(--r-raised);-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-route] .btn:not(.pri):hover{background:var(--r-hover)}
html[data-route] .seg button[aria-pressed=true],html[data-route] .seg a[aria-selected=true]{background:var(--r-panel)}
/* ---- P2: Shop group colour + TrendTrack-style ad drawer cards ---- */
.qb-gt[data-g=Shop] svg{color:var(--ok)}
.dr-pane[hidden]{display:none}
.dr-pane{display:grid;gap:10px;align-content:start}
.dv-panel{border:1px solid var(--r-line);border-radius:var(--r-lg,12px);background:var(--r-panel);padding:12px 14px;display:grid;gap:10px;min-width:0}
.dv-ph{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dv-ph h3{margin:0;font-size:11px;letter-spacing:.06em;font-weight:600;color:var(--r-ink-2)}
.dv-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dv-stats span,.dv-cell>span{display:block;font-size:11px;color:var(--r-ink-3);margin-bottom:2px}
.dv-stats b{font-size:20px;font-weight:600;display:flex;align-items:center;gap:6px}
.dv-stats b small{font-size:12px;color:var(--r-ink-2);font-weight:500}
.dv-stats em{font-style:normal;font-size:12px;color:var(--r-ink-2)}
.dv-st{font-size:15px!important}
.dv-dot{width:8px;height:8px;border-radius:99px;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);flex:none}
.dv-dot.off{background:var(--r-ink-3);box-shadow:none}
.dv-rank{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.dv-rank b{font-size:20px;font-weight:600}.dv-rank span{font-size:12px;color:var(--r-ink-2)}
.dv-bar{height:6px;border-radius:99px;background:var(--r-well);overflow:hidden}.dv-bar i{display:block;height:100%;border-radius:99px;background:var(--primary)}
.dv-note,.dv-np{margin:0;font-size:12px;color:var(--r-ink-2)}
.dv-np{border:1px dashed var(--r-line-2);border-radius:var(--r-md);padding:8px 10px}
.dv-g2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.dv-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dv-cell{min-width:0;font-size:13px;overflow-wrap:anywhere}
.dv-cell>div{min-width:0}
.dv-cell a{color:var(--r-ink);text-decoration:underline;text-underline-offset:2px}
.dv-big{font-size:22px;font-weight:600;line-height:1.2}
.dv-chips{display:inline-flex;flex-wrap:wrap;gap:4px}
.dv-chip{border:1px solid var(--r-line-2);border-radius:99px;padding:1px 8px;font-size:12px;background:var(--r-well)}
.dv-link{border:0;background:transparent;padding:0;font:inherit;color:var(--r-ink);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.dv-link:hover{color:var(--primary)}
.dv-kvs{display:grid;gap:6px;margin:0}.dv-kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;font-size:13px}
.dv-kv dt{color:var(--r-ink-3)}.dv-kv dd{margin:0;overflow-wrap:anywhere}
.dv-blk{display:grid;gap:4px}.dv-bh{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.06em;color:var(--r-ink-3)}
.dv-ic{border:0;background:transparent;color:var(--r-ink-3);cursor:pointer;padding:4px;border-radius:6px}.dv-ic:hover{background:var(--r-hover);color:var(--r-ink)}
.dv-blk .copy{white-space:pre-wrap;font-size:13px;line-height:1.5;max-height:220px;overflow:auto}
.dv-head{font-weight:600;font-size:14px}
.dv-adv{display:flex;gap:12px;align-items:center}.dv-adv b{font-size:15px}
.dv-adv-body{display:grid;gap:12px}
.dv-sec h4{margin:0 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--r-ink-2);font-weight:600}
.dv-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.dv-strip button{border:1px solid var(--r-line);border-radius:8px;background:var(--r-well);padding:0;aspect-ratio:1;overflow:hidden;cursor:pointer}
.dv-strip img{width:100%;height:100%;object-fit:cover;display:block}
.dv-lps{display:grid;gap:4px}
.dv-lp{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--r-line);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--r-ink);text-decoration:none;background:var(--r-panel)}
.dv-lp span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dv-lp b{font-weight:600;flex:none;color:var(--r-ink-2)}
.dv-lp:hover{border-color:var(--r-act-line)}
.rel-h{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rel-h>.sk{aspect-ratio:4/5;display:block}
.rel-h>p{grid-column:1/-1}
@media(max-width:640px){.dv-g3{grid-template-columns:1fr 1fr 1fr}.dv-kv{grid-template-columns:90px minmax(0,1fr)}.rel,.rel-h{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* popover hosts must out-rank the translucent (backdrop-filter) result cards below them; search row stays on top at 30, drawer/modals are 50+ */
html[data-route] .qb-panel,html[data-route] .qb-chips,html[data-route] .qb-meta,html[data-route] .views{position:relative;z-index:25}
html[data-route] .qb-search{z-index:30}
html[data-route] .qb-panel:has(.pop),html[data-route] .qb-chips:has(.pop),html[data-route] .qb-meta:has(.sortm-menu:not([hidden])){z-index:32}
html[data-route] .qb-search:focus-within{z-index:40}
/* mobile: .mnav is fixed at z 30 outside .main's isolated stacking context; lift .main above it only while a popover is open */
@media (max-width:860px){html[data-route] .main:has(.pop),html[data-route] .main:has(.sortm-menu:not([hidden])),html[data-route] .main:has(.qb-field:focus-within){position:relative;z-index:35}}
@media (max-width:760px){.sortm-menu{right:auto;left:auto;min-width:200px;max-width:calc(100vw - 32px);max-height:min(46vh,340px);overflow-y:auto}.sortm{position:static}.qb-meta{position:relative}.qb-meta .sortm-menu{top:calc(100% + 4px);right:0}}
/* === P2-B filters === */
.btn.sm.tgl[aria-pressed=true]{background:var(--r-act-soft);border-color:var(--r-act-line);color:var(--accent-foreground)}
.dark .btn.sm.tgl[aria-pressed=true]{color:var(--r-on)}
.qb-gt svg{flex:none}
.view.pin svg{flex:none}
/* === P2-C drawer === */
.dv-bar i{background:linear-gradient(90deg,#ec4899,#a855f7)}
.adv-pane[hidden],.dr-pane[hidden]{display:none!important}
.dv-cell .spark{min-height:36px}
/* === /P2-C drawer === */

/* === P2-D card menu === */
.card .ft{gap:10px;align-items:center}
.card .ft .ft-av{width:30px;height:30px;font-size:11px}
.ft-i{flex:1;min-width:0;display:grid;gap:1px}
.ft-nm{font-weight:600;font-size:13px;line-height:1.25;color:var(--r-ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ft-nm:hover{text-decoration:underline}
.ft-meta{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;line-height:1.3;color:var(--r-ink-3);white-space:nowrap;overflow:hidden}
.ft-n{display:inline-flex;align-items:center;gap:5px;flex:none}
.ft-n b{color:var(--r-ink);font-weight:700}
.ft-dot{width:7px;height:7px;border-radius:50%;background:var(--r-ink-3);flex:none}
.ft-dot.on{background:var(--ok)}
.ft-sep{flex:none;opacity:.7}
.ft-geo{display:inline-flex;align-items:center;gap:2px;min-width:0;font-size:13px}
.ft-geo small{font-size:12px;margin-left:3px;color:var(--r-ink-3)}
.card .ft .btn.round{flex:none}
.card .ft .btn.round[aria-expanded=true]{background:var(--r-hover);border-color:var(--r-line-2)}
.am{position:fixed;z-index:46;width:268px;max-width:calc(100vw - 16px);overflow-y:auto;overscroll-behavior:contain;padding:6px;background:var(--r-raised);border:1px solid var(--r-line-2);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18),0 2px 6px rgba(0,0,0,.08);color:var(--r-ink);outline:none}
.dark .am{box-shadow:0 12px 32px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.4)}
.am-sec+.am-sec,.am-sec+.am-foot{margin-top:5px;padding-top:5px;border-top:1px solid var(--r-line)}
.am-i{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--r-ink);font:inherit;font-size:13px;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;box-sizing:border-box}
.am-i:hover,.am-i:focus-visible{background:var(--r-hover);outline:none}
.am-i:focus-visible{box-shadow:inset 0 0 0 2px var(--ring)}
.am-i[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.am-ic{display:inline-flex;flex:none;color:var(--r-ink-2)}
.am-tx{flex:1;min-width:0;display:grid}
.am-lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-tx small{font-size:11.5px;font-weight:400;color:var(--r-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-ext{flex:none;color:var(--r-ink-3);font-size:14px;line-height:1}
.am-foot{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.am-i.am-big{flex-direction:column;justify-content:center;gap:4px;min-height:56px;padding:8px;text-align:center;font-weight:600;font-size:12.5px}
.am-i.am-big .am-tx{flex:none}
.am-i.am-big .am-ext{display:none}
.am-scrim{position:fixed;inset:0;z-index:45;background:rgba(10,12,20,.42)}
@media (max-width:760px){
  .card .ft .btn.round{width:36px;height:36px}
  .am.sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;max-height:80vh;border-radius:16px 16px 0 0;border-width:1px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));animation:am-up .18s ease}
  .am-i{min-height:44px}
  .am-i.am-big{min-height:64px}
  .am.sheet .am-foot{position:sticky;bottom:0;z-index:1;background:var(--r-raised);padding-bottom:4px}
}
@keyframes am-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.am.sheet{animation:none}}
/* === P2-F layout === */
html[data-route] .page{max-width:1600px;margin-inline:auto}
html:is([data-route=import],[data-route=queue],[data-route=admin],[data-route=boards],[data-route=recreate],[data-route=patterns],[data-route=analysis],[data-route=advertiser]) .page{max-width:1440px}
@property --tf-l{syntax:"<length>";inherits:false;initial-value:0px}
@property --tf-r{syntax:"<length>";inherits:false;initial-value:0px}
@keyframes tf-fade{0%{--tf-l:0px;--tf-r:28px}10%{--tf-l:28px;--tf-r:28px}90%{--tf-l:28px;--tf-r:28px}100%{--tf-l:28px;--tf-r:0px}}
@media (max-width:860px){
  .drawer .tabs,.dr-body .tabs{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--tf-l),#000 calc(100% - var(--tf-r)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--tf-l),#000 calc(100% - var(--tf-r)),transparent 100%);animation:tf-fade linear both;animation-timeline:scroll(self inline);scrollbar-width:none}
  .drawer .tabs::-webkit-scrollbar,.dr-body .tabs::-webkit-scrollbar{display:none}
  .crumb a,.view,.qb-more,.tabs button,.tabs a,.seg button,.seg a,.mtabs button,.ops-tabs button,.inp,.sortm-btn,.sortm-menu button,.btn:not(.card *){min-height:36px}
  .crumb a,.qb-meta a{display:inline-flex;align-items:center;min-height:36px}
  .ops-f input,.ops-f select{min-height:36px}
  .adm-main input[type=checkbox],.adm input[type=checkbox]{width:24px;height:24px}
}
@media (max-width:760px){
  .qb-meta .sortm-menu{position:fixed;top:auto;left:12px;right:12px;bottom:66px;max-width:none;max-height:min(55vh,380px)}
}
/* === /P2-F layout === */
/* === P2-E filters === */
.qb-tools{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.qb-ftog{gap:6px;white-space:nowrap}
.qb-ftog svg{flex:none}
.qb-ftog .ft-m{display:none}
.qb-sh,.qb-sf,.qb-scrim{display:none}
.chip.kw button[disabled]{cursor:default;opacity:1;color:inherit}
.pop-note{margin:0 0 8px;padding:6px 10px;border-radius:8px;background:var(--r-well);color:var(--r-ink-2);font-size:12px;line-height:1.4}
@media (min-width:641px){.qb.fcollapsed .qb-panel{display:none}}
html.qb-lock,html.qb-lock body{overflow:hidden}
@media (max-width:640px){
  .qb-ftog .ft-d{display:none}
  .qb-ftog .ft-m{display:inline}
  .qb-tools{margin:0;flex:none}
  html[data-route=ads] .qb:has(>.qb-head){grid-template-columns:auto minmax(0,1fr);column-gap:8px;row-gap:6px}
  html[data-route=ads] .qb:has(>.qb-head)>.qb-head{grid-column:1;grid-row:1;margin:0}
  html[data-route=ads] .qb:has(>.qb-head) .qb-search{grid-column:2;grid-row:1}
  html[data-route=ads] .qb:has(>.qb-head) .views{grid-column:1/-1;grid-row:2;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}
  html[data-route=ads] .qb:has(>.qb-head) .views .view{flex:none}
  html[data-route=ads] .qb:has(>.qb-head)>.qb-main>.qb-panel,html[data-route=ads] .qb:has(>.qb-head) .qb-chips,html[data-route=ads] .qb:has(>.qb-head)>.qb-meta{grid-column:1/-1}
  .qb>.qb-panel,.qb .qb-main>.qb-panel{display:none}
  html[data-route] .qb.sheet-open .qb-panel{display:block;position:fixed;left:0;right:0;bottom:0;top:auto;z-index:42;width:auto;max-height:85vh;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0 14px;border-radius:16px 16px 0 0;border:1px solid var(--r-line-2);border-bottom:0;background:var(--r-raised);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -8px 32px rgba(0,0,0,.28)}
  .qb.sheet-open .qb-scrim{display:block;position:fixed;inset:0;z-index:41;background:rgba(10,12,20,.45)}
  .qb.sheet-open .qb-sh{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;margin:0 -14px;padding:12px 14px;background:var(--r-raised);border-bottom:1px solid var(--r-line)}
  .qb.sheet-open .qb-sf{display:block;position:sticky;bottom:0;z-index:2;margin:8px -14px 0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--r-raised);border-top:1px solid var(--r-line)}
  .qb.sheet-open .qb-sf .btn{width:100%;justify-content:center}
  html[data-route] .main:has(.qb.sheet-open){position:relative;z-index:35}
}
/* === /P2-E filters === */

/* ---- Analysis: TrendTrack-style metric tiles, charts, coverage, drawer layers ---- */
:root{--st-tagged:var(--ok);--st-low_confidence:var(--warn);--st-pending:var(--violet);--st-not_built:var(--r-ink-3);--st-out_of_scope:var(--r-line-2)}
i.st-tagged,.sw.st-tagged{background:var(--st-tagged)} i.st-low_confidence,.sw.st-low_confidence{background:var(--st-low_confidence)} i.st-pending,.sw.st-pending{background:var(--st-pending)}
i.st-not_built,.sw.st-not_built{background:repeating-linear-gradient(135deg,var(--st-not_built) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--st-not_built)}
i.st-out_of_scope,.sw.st-out_of_scope{background:var(--st-out_of_scope);box-shadow:inset 0 0 0 1px var(--r-ink-3)}
.pt-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.pt-tile{border:1px solid var(--r-line);border-radius:var(--r-card);background:var(--r-panel);padding:12px 14px;display:grid;gap:2px;min-width:0}
.pt-tk{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--r-ink-2)}
.pt-tv{font-size:26px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}
.pt-tile small{font-size:11.5px;color:var(--r-ink-3)}
.pt-mh{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap} .pt-mh b{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums} .pt-mh small{font-size:12px;color:var(--r-ink-3)}
.pt-delta{font-size:12px;font-weight:600;margin-left:6px;font-variant-numeric:tabular-nums} .pt-delta small{font-weight:400;color:var(--r-ink-3);font-size:11.5px}
.pt-delta.up{color:var(--ok)} .pt-delta.dn{color:var(--bad)} .pt-delta.eq{color:var(--r-ink-2)}
.pt-body{display:grid;gap:8px;min-width:0}
.pt-area{position:relative;width:100%;min-width:0;border-radius:8px} .pt-area:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.pt-svg{display:block;max-width:100%;touch-action:pan-y;overflow:visible}
.pt-g0{stop-color:var(--violet);stop-opacity:.28} .pt-g1{stop-color:var(--violet);stop-opacity:.02}
.pt-ln{fill:none;stroke:var(--violet);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pt-gl{stroke:var(--r-line);stroke-width:1} .pt-cross{stroke:var(--r-ink-3);stroke-width:1;stroke-dasharray:3 3}
.pt-ax{font-size:10.5px;fill:var(--r-ink-3);font-variant-numeric:tabular-nums} .pt-pl{font-size:11px;font-weight:600;fill:var(--r-ink);font-variant-numeric:tabular-nums}
.pt-dot{fill:var(--violet);stroke:var(--r-panel);stroke-width:2} .pt-dot.act{r:5.5}
.pt-tip{position:fixed;z-index:1000;pointer-events:none;max-width:260px;padding:7px 10px;border-radius:8px;background:var(--popover);color:var(--r-ink);border:1px solid var(--r-line-2);box-shadow:var(--sh-md);font-size:12px;line-height:1.5}
.pt-tip .sw,.pt-legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px} .pt-tip i.sw{background-clip:padding-box}
.pt-legend .sw.dvl{background:linear-gradient(90deg,var(--bad) 50%,var(--ok) 50%)}
/* coverage */
.pt-cov{display:grid;gap:6px}
.pt-crow{display:grid;grid-template-columns:24px minmax(110px,190px) 1fr 44px;gap:10px;align-items:center;padding:6px;border-radius:6px;font-size:13px;cursor:default}
.pt-crow:hover{background:var(--r-hover)} .pt-crow:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.pt-lid{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--r-well);border:1px solid var(--r-line-2);font-size:11px;font-weight:700}
.pt-lname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.pt-stack{display:flex;gap:2px;height:14px;border-radius:4px;overflow:hidden;background:var(--r-well)} .pt-stack i{display:block;min-width:2px;height:100%;border-radius:2px}
.pt-cpct{text-align:right;font-variant-numeric:tabular-nums}
/* lift diverging indicator */
.pt-liftc{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.pt-div{position:relative;flex:none;width:72px;height:8px;border-radius:4px;background:var(--r-well)}
.pt-div::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--r-ink-3);border-radius:1px}
.pt-div i{position:absolute;top:0;bottom:0;border-radius:4px;min-width:2px}
.pt-row.up .pt-div i{background:var(--ok)} .pt-row.dn .pt-div i{background:var(--bad)} .pt-row.eq .pt-div i{background:var(--r-ink-3)}
.pt-lift-n{min-width:64px}
.pt-dimgrps{display:flex;flex-wrap:wrap;gap:8px 18px}
.pt-dimgrp{display:grid;gap:4px} .pt-dimlbl{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--r-ink-3)}
.pt-dimgrp button:disabled{opacity:.4;cursor:not-allowed}
@media (max-width:720px){.pt-crow{grid-template-columns:22px 1fr 40px;grid-template-areas:"i n p" "b b b"} .pt-crow .pt-lid{grid-area:i} .pt-crow .pt-lname{grid-area:n} .pt-crow .pt-cpct{grid-area:p} .pt-crow .pt-stack{grid-area:b}
  .pt-tv,.pt-mh b{font-size:22px} .pt-div{width:56px}}
/* drawer: layers, run time, score */
.ly-lg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--r-ink-2)} .ly-lg span,.ly-chip{display:inline-flex;align-items:center;gap:6px}
.ly-lg i,.ly-chip i{display:inline-block;width:9px;height:9px;border-radius:3px;flex:none}
.ly-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.ly-card{border:1px solid var(--r-line);border-radius:10px;background:var(--r-panel);padding:9px 10px;display:grid;gap:5px;align-content:start;min-width:0;border-left:3px solid var(--st-pending)}
.ly-card.st-tagged{border-left-color:var(--st-tagged)} .ly-card.st-low_confidence{border-left-color:var(--st-low_confidence)} .ly-card.st-pending{border-left-color:var(--st-pending)}
.ly-card.st-not_built{border-left-color:var(--st-not_built);border-left-style:dashed} .ly-card.st-out_of_scope{border-left-color:var(--r-ink-3);border-left-style:dotted;background:var(--r-well)}
.ly-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.ly-id{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--r-well);border:1px solid var(--r-line-2);font-size:11px;font-weight:700;flex:none}
.ly-n{font-size:11.5px;font-weight:600;color:var(--r-ink-2);flex:1 1 auto;white-space:nowrap}
.ly-chip{font-size:10.5px;padding:1px 7px;border-radius:99px;border:1px solid var(--r-line-2);color:var(--r-ink-2);background:var(--r-well)}
.ly-v{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.ly-m{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--r-ink-2);flex-wrap:wrap}
.dv-meter{display:inline-block;width:44px;height:5px;border-radius:99px;background:var(--r-well);overflow:hidden;border:1px solid var(--r-line)} .dv-meter i{display:block;height:100%;background:var(--ok);border-radius:99px}
.ly-note{margin:0;font-size:11.5px;color:var(--r-ink-3);overflow-wrap:anywhere}
.rt-head{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap} .rt-head b{font-size:22px;font-weight:600} .rt-head span{font-size:12px;color:var(--r-ink-2)}
.rt-body{display:grid;gap:8px;min-width:0} .rt-svg{display:block;max-width:100%;height:auto;overflow:visible}
.rt-bar{fill:var(--gray-line);opacity:.55} .rt-bar.me{fill:var(--violet);opacity:1}
.rt-base{stroke:var(--r-line-2)} .rt-n{font-size:10.5px;fill:var(--r-ink-2);font-variant-numeric:tabular-nums} .rt-ax{font-size:10px;fill:var(--r-ink-3)}
.rt-tick{stroke:var(--r-ink-2);stroke-width:1;stroke-dasharray:3 3} .rt-tl{font-size:10px;fill:var(--r-ink-2)}
.rt-me{fill:var(--violet)} .rt-mt{font-size:10.5px;font-weight:600;fill:var(--r-ink)}
.rt-flag{margin:0;padding:6px 9px;border-radius:8px;font-size:12px;color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-line)}
.sc-bar{display:flex;gap:2px;height:12px;border-radius:6px;overflow:hidden;background:var(--r-well)} .sc-bar i,.sc-leg i{display:block;height:100%} .sc-bar i{border-radius:3px}
.sc-bar .a,.sc-leg .a{background:var(--violet)} .sc-bar .b,.sc-leg .b{background:var(--cyan)}
.sc-leg{display:grid;gap:3px;font-size:12px;color:var(--r-ink-2)} .sc-leg span{display:flex;align-items:center;gap:6px} .sc-leg i{width:10px;height:10px;border-radius:3px;flex:none} .sc-leg b{color:var(--r-ink)}

/* ---------- TT views row: pill + menu, value-first chips, filled pills ---------- */
.views>*{flex:none}
.views .view{display:inline-flex;align-items:center;gap:6px}.views .view svg{flex:none}
.vwrap{display:inline-flex;align-items:center;height:30px;border:1px solid var(--primary);border-radius:99px;background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--r-ink)}
html[data-route] .qb .views .vwrap.on .view,html.dark[data-route] .qb .views .vwrap.on .view,.qb .views .vwrap.on .view[aria-pressed=true]{background:none;border-color:transparent;box-shadow:none;color:var(--r-ink);border-radius:99px 0 0 99px;padding-right:4px;height:28px}
.vmore,.vmanage{border:0;background:none;color:var(--r-ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font:inherit}
.vmore{height:24px;min-width:24px;margin-right:3px;padding:0 6px;border-radius:99px;font-weight:700;letter-spacing:1px;line-height:1}
.vmore:hover,.vmanage:hover,.vmore[aria-expanded=true],.vmanage[aria-expanded=true]{background:var(--r-hover);color:var(--r-ink)}
.vmanage{width:30px;height:30px;border-radius:8px}
.vmore:focus-visible,.vmanage:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.vdirty{width:6px;height:6px;border-radius:50%;background:var(--primary);flex:none}
.chip .ci{display:inline-flex;flex:none}.chip .ci svg{width:13px;height:13px}

/* ---------- Fixed-structure ad card (TrendTrack): every card in every grid has the SAME height ----------
   strip 36 + postw (frame H + 20) + tags 34 + ft 58, where H = clamp(430px,125cqw+147px,660px) off the card width.
   Every variable-height part (badges, copy, media, footer, tags, pipeline) is clamped/fixed below. */
.card{container-type:inline-size}
.card>.mstrip{height:36px;padding:10px 12px 0;box-sizing:border-box;overflow:hidden;flex:none}
.card .mstrip .ms-r{flex-wrap:nowrap;overflow:hidden;height:26px}
.card .mstrip .ms-b{flex:none;max-width:none}
.card .mstrip .ms-hl{flex:0 0 auto;min-width:0;max-width:none}  /* the rank is never cut; IL.fitStrip hides lower-priority badges instead */
.card .mstrip [hidden]{display:none!important}
.card .mstrip .ms-r.tight .ms-run{flex:none}.card .mstrip .ms-r.tight .ms-run>span{overflow:visible}
.card .mstrip .ms-hl>span{overflow:hidden;text-overflow:ellipsis}
.card .postw{--pfh:clamp(430px,125cqw + 147px,660px);flex:none;height:auto;box-sizing:border-box;padding:10px;display:flex;align-items:flex-start;justify-content:center;background:color-mix(in srgb,var(--r-panel) 60%,var(--r-well))}
.card .post{margin:0;box-sizing:border-box;width:100%;height:auto;flex:none;max-height:var(--pfh);display:flex;flex-direction:column;gap:8px;padding:10px 12px;overflow:hidden;border-radius:10px;background:var(--fb-post);border:1px solid var(--r-line-2)}
.card .post-hd{flex:none;height:40px}
.card .post-hd .post-id{flex:1}
.card .pt{flex:none;display:block;height:56px;gap:0;overflow:hidden;font-size:13px;line-height:18px}
.card .pt-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}
.card .pt-more{display:block;height:20px;line-height:20px;margin:0}
@container (min-width:440px){.card .pt{height:74px}.card .pt-t{-webkit-line-clamp:3}}
.card .pm{flex:none;display:flex;align-items:center;justify-content:center;height:calc(var(--pfh) - var(--pchrome,214px))}  /* one media slot height for every ratio so cards, footers and gaps line up across a row */
/* the frame takes the image's exact ratio and narrows to fit the height cap, so it hugs the image (no bars inside); slack goes to the well around the post, never inside the frame */
.card .wellw{--fmh:calc(var(--pfh) - var(--pchrome,214px));width:min(100%,calc(var(--fmh) * var(--far,1)));margin-inline:auto;aspect-ratio:var(--far,1);max-height:var(--fmh);flex:none}
.card .wellw .well{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;background:var(--fb-post);border-radius:var(--r-well-r,8px);border:1px solid var(--r-line);overflow:hidden}
.card .well img{width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(1);transition:opacity .15s ease,transform .15s ease}
.card .well img.ld{opacity:1}
.card .wellw:hover .well img{transform:scale(1.05)}
@media (prefers-reduced-motion:reduce){.card .well img{transition:none;transform:none!important}}
.card .post-ft{flex:none;height:52px;overflow:hidden}
.card .pf-l{overflow:hidden}
.card .post-ft .dom{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:14px}
.card .pf-h{line-height:18px}
.card>.tags{flex:none;display:flex;flex-wrap:nowrap;align-items:center;gap:4px;height:34px;min-height:34px;max-height:34px;margin:0;padding:8px 12px 6px;box-sizing:border-box;overflow:hidden}
.card>.tags .badge{flex:none}
.card>.tags .pips{flex:none;margin-left:auto;width:96px}
.card>.tags .pips-l{display:none}
.card>.ft{flex:none;height:58px;box-sizing:border-box;margin-top:0;overflow:hidden}
.sk-card .post.sk{animation:none;background:linear-gradient(90deg,var(--r-well),var(--r-hover),var(--r-well));background-size:200% 100%;animation:sh 1.2s linear infinite}
.sk-card .ft .sk-line{flex:1}
@media (max-width:560px){.card>.tags{display:flex}}
/* chart read-outs (Analysis): sentences computed from each chart, pinned under it so the panel has no dead space */
.pt-body{display:flex;flex-direction:column;gap:14px;flex:1}
.pt-ins{margin-top:auto;border-top:1px solid var(--r-line);padding-top:12px}
.pt-ins h4{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--r-ink-3)}
.pt-ins ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.pt-ins li{position:relative;padding-left:14px;font-size:12.5px;line-height:1.45;color:var(--r-ink-2)}
.pt-ins li::before{content:"";position:absolute;left:2px;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--primary)}
.pt-ins b{color:var(--r-ink);font-weight:600}
.pt-panel:has(> .pt-body){display:flex;flex-direction:column}

/* ---- Ads Intelligence tab: taxonomy table, tiles, dialog, diagrams (ix-*) ---- */
.ix-ic{width:22px;height:22px;flex:none;color:var(--r-ink-2)}
.ix-princ{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.ix-pc{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--r-line);border-radius:var(--r-lg);background:var(--r-panel);padding:10px 12px}
.ix-pc .ix-ic{color:var(--primary);margin-top:1px}
.ix-pc h3{margin:0 0 2px;font-size:13px}.ix-pc p{margin:0;font-size:12px;line-height:1.4;color:var(--r-ink-2)}
.ix-cap{margin:0;font-size:12px}
.ix-tbl{display:grid;overflow:hidden;min-width:0}
.ix-row{display:grid;grid-template-columns:minmax(210px,270px) minmax(0,1fr);gap:12px 20px;padding:14px 16px;border-top:1px solid var(--r-line);outline:0;scroll-margin-top:calc(var(--top-h) + 56px);transition:opacity .15s}
.ix-row:first-child{border-top:0}
.ix-row.dim{opacity:.4}
.ix-lh{display:grid;grid-template-columns:34px minmax(0,1fr);gap:6px 10px;align-content:start;min-width:0}
.ix-lh h3{margin:0;font-size:14px}
.ix-what{margin:1px 0 4px;font-size:12px;color:var(--r-ink-2)}
.ix-q{grid-column:1/-1;margin:0;font-size:12px;line-height:1.45;color:var(--r-ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ix-link{grid-column:1/-1;justify-self:start;border:0;background:none;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--r-ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ix-link:hover{color:var(--r-ink)}
.ix-vals{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;min-width:0}
.ix-tile{width:118px;display:grid;justify-items:start;align-content:start;gap:5px;padding:9px 10px;border:1px solid var(--r-line);border-radius:10px;background:var(--r-panel);color:var(--r-ink);text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,background .15s,opacity .15s,transform .15s}
.ix-tile:hover{border-color:var(--r-act-line);background:var(--r-hover)}
.ix-tile:focus-visible,.ix-link:focus-visible,.ix-steps:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.ix-tile:hover .ix-ic,.ix-tile:focus-visible .ix-ic{color:var(--primary)}
.ix-tile.dim{opacity:.3}
.ix-tile.act{border-style:dashed}
.ix-lb{font-size:12px;font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.ix-tile small{font-size:11px}
.ix-ct{display:grid;gap:3px;width:100%;margin-top:auto}
.ix-n{font-size:12px;font-variant-numeric:tabular-nums;color:var(--r-ink-2);font-weight:600}
.ix-bar{display:block;height:3px;border-radius:2px;background:var(--r-well);overflow:hidden}
.ix-bar i{display:block;height:100%;width:0;background:var(--primary);border-radius:2px;transition:width .4s ease}
.ix-sub{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;width:100%;padding-top:8px;border-top:1px dashed var(--r-line)}
.ix-sub .ix-tile{width:96px}
.ix-subl{flex:0 0 100%;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--r-ink-3)}
.ix-stairs{display:flex;align-items:flex-end;gap:6px;width:100%}
.ix-stairs .ix-tile{flex:1 1 0;width:auto;min-width:0;min-height:calc(70px + var(--i)*18px)}
.ix-routebox{display:grid;gap:6px;width:100%;padding-top:8px;border-top:1px dashed var(--r-line)}
.ix-route{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ix-route.sm{margin:0 0 8px}
.ix-node{padding:4px 10px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-well);font-size:12px;font-weight:600;color:var(--r-ink-2);transition:background .15s,border-color .15s,color .15s}
.ix-node.on{border-color:var(--primary);background:var(--r-act-soft);color:var(--r-ink)}
.ix-arr{color:var(--r-ink-3);font-size:13px}
/* dialog */
.ix-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}
.ix-scrim{position:absolute;inset:0;background:rgba(10,12,20,.5);animation:fade .15s}
.ix-dlg{position:relative;width:min(640px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;box-shadow:var(--sh-md);outline:0;animation:fade .15s}
.ix-dh{display:flex;gap:12px;align-items:flex-start;padding:16px 16px 12px;border-bottom:1px solid var(--r-line)}
.ix-dh>.ix-ic{width:32px;height:32px;color:var(--primary)}
.ix-dh>div{flex:1;min-width:0}.ix-dh h2{margin:0;font-size:17px;letter-spacing:-.01em}
.ix-kick{margin:0 0 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--r-ink-3)}
.ix-dsub{margin:2px 0 0;font-size:12.5px}
.ix-x{width:32px;padding:0;justify-content:center;font-size:18px;line-height:1}
.ix-db{padding:14px 16px;overflow:auto;display:grid;gap:10px;align-content:start;min-height:0}
.ix-def{margin:0;font-size:13.5px;line-height:1.5;max-width:70ch}
.ix-cnt{margin:0;font-size:12.5px;color:var(--r-ink-2)}.ix-cnt b{color:var(--r-ink);font-size:15px}
.ix-nofilter{margin:0;font-size:12px}
.ix-rule{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--r-line)}
.ix-rule h3{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--r-ink-3)}
.ix-df{padding:12px 16px;border-top:1px solid var(--r-line);display:flex;justify-content:flex-end}
/* collapsible details */
.ix-det{border:1px solid var(--r-line);border-radius:var(--r-md);background:var(--r-well)}
.ix-det summary{cursor:pointer;padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--r-ink-2)}
.ix-det summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:var(--r-md)}
.ix-det[open] summary{color:var(--r-ink)}
.ix-detb{display:grid;gap:10px;padding:4px 12px 12px}
/* test tree */
.ix-tree{display:grid;gap:0;justify-items:center}
.ix-root{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;justify-content:center;padding:8px 14px;border:1px solid var(--r-act-line);border-radius:var(--r-lg);background:var(--r-well);font-size:13px;position:relative}
.ix-root::after{content:"";position:absolute;left:50%;top:100%;height:14px;border-left:1px solid var(--r-line-2)}
.ix-pill{font-size:11.5px;padding:2px 8px;border-radius:99px;background:var(--r-panel);border:1px solid var(--r-line);color:var(--r-ink-2)}
.ix-kids{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:10px;width:100%;padding-top:14px;position:relative}
.ix-kids::before{content:"";position:absolute;top:0;left:calc(50% / var(--n));right:calc(50% / var(--n));border-top:1px solid var(--r-line-2)}
.ix-kid{position:relative;border:1px solid var(--r-line);border-radius:var(--r-lg);padding:9px 10px;display:grid;gap:7px;align-content:start;font-size:12.5px;min-width:0}
.ix-kid::before{content:"";position:absolute;left:50%;bottom:100%;height:14px;border-left:1px solid var(--r-line-2)}
.ix-leaves{display:flex;flex-wrap:wrap;gap:4px}
.ix-leaves i{font-style:normal;font-size:11.5px;padding:2px 8px;border-radius:99px;background:var(--r-well);color:var(--r-ink-2)}
/* route step strip */
.ix-flow{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ix-flow li{font-size:12px;font-weight:600;padding:5px 11px;border:1px solid var(--r-line);border-radius:99px;background:var(--r-well);color:var(--r-ink-2)}
.ix-flow li+li::before{content:"→";margin-right:8px;color:var(--r-ink-3);font-weight:400}
.ix-flow li.var{border-color:var(--primary);background:var(--r-act-soft);color:var(--r-ink)}
/* Jev stepper */
.ix-steps{list-style:none;margin:0;padding:0 0 6px;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;counter-reset:none}
.ix-steps li{position:relative;flex:0 0 190px;scroll-snap-align:start;display:grid;gap:8px;align-content:start;padding-top:2px}
.ix-steps li::before{content:"";position:absolute;top:14px;left:30px;right:-10px;border-top:2px solid var(--r-line-2)}
.ix-steps li:last-child::before{display:none}
.ix-sn{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--r-act);color:var(--r-act-ink);font-size:12px;font-weight:700}
.ix-sq{margin:0;font-size:12.5px;line-height:1.4}
.ix-sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ix-no{font-size:11.5px;color:var(--r-ink-2)}.ix-no b{color:var(--bad);font-weight:600}
/* recipe chips */
.ix-recipe{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.ix-rn{font-size:11px;letter-spacing:.06em;color:var(--r-ink-3)}
.ix-chip{padding:5px 12px;border-radius:var(--r-md);border:1px solid var(--r-act-line);background:var(--r-act-soft);color:var(--r-ink);font-size:12.5px;font-weight:600}
.ix-x2{font-size:15px;color:var(--r-ink-3)}
@media (max-width:760px){
  .ix-row{grid-template-columns:1fr;gap:10px;padding:12px}
  .ix-tile,.ix-sub .ix-tile{flex:1 1 calc(50% - 4px);width:auto;min-width:0;max-width:calc(50% - 4px)}
  .ix-stairs{flex-direction:column;align-items:stretch;gap:6px}
  .ix-stairs .ix-tile{max-width:none;min-height:0;margin-left:calc(var(--i)*12px);width:auto;flex:none}
  .ix-kids{gap:6px}.ix-kid{padding:7px}
  .ix-steps li{flex-basis:170px}
  .ix-modal{padding:8px;align-items:end}.ix-dlg{width:100%;max-height:calc(100dvh - 16px)}
}
@media (prefers-reduced-motion:reduce){.ix-scrim,.ix-dlg{animation:none}.ix-tile,.ix-row,.ix-node,.ix-bar i{transition:none}}

/* chart motion */
.cm-chart .cm-bar{transition:width .5s ease-out,translate .12s ease-out,filter .12s ease-out}
.cm-chart .cm-grow-x{transform-origin:left center;transform-box:fill-box}
.cm-chart .cm-grow-y{transform-origin:center bottom;transform-box:fill-box}
.cm-chart .cm-brand{background-image:linear-gradient(90deg,var(--lg-p,#ec4899),var(--lg-v,#a855f7))}
.cm-chart .cm-hover:hover{translate:0 -2px;filter:brightness(1.06)}
.pt-tip{opacity:0;transition:opacity .12s ease-out}
.pt-tip:not([hidden]){opacity:1}
@media (prefers-reduced-motion:no-preference){
  .cm-chart.cm-play .cm-grow-x{animation:cm-grow-x .5s ease-out calc(var(--cm-i,0)*40ms) both}
  .cm-chart.cm-play .cm-grow-y{animation:cm-grow-y .5s ease-out calc(var(--cm-i,0)*40ms) both}
  @keyframes cm-grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes cm-grow-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}
@media (prefers-reduced-motion:reduce){
  .cm-chart .cm-bar{animation:none!important;transform:none!important;transition:none!important}
  .cm-chart .cm-hover{transition:none}
  .pt-tip{transition:none}
}
/* ---------- Ads filter panel v2: find box, Ads subgroups, pinned/rest divider ---------- */
.qb-find input{width:100%;max-width:280px;height:30px;border:1px solid var(--r-line-2);border-radius:99px;background:var(--r-raised);color:var(--r-ink);padding:0 12px;font-size:13px}
.qb-find input:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.qb-cols:has(.qb-col[data-g=Ads]){grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.qb-col[data-g=Ads]{grid-column:1;grid-row:1/span 2}
.qb-col[data-g=Advertiser]{grid-column:2;grid-row:1;border-left:1px solid var(--r-line);padding-left:20px}
.qb-col[data-g=Shop]{grid-column:2;grid-row:2;border-left:1px solid var(--r-line);padding-left:20px;border-top:1px solid var(--r-line);padding-top:12px;margin-top:12px}
.qb-subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.qb-sub:last-child{grid-column:1/-1}
.qb-st{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--r-ink-2);margin-bottom:8px}
.qb-cols .qb-rest{display:none;border-top:1px solid var(--r-line);margin-top:10px;padding-top:10px}
.qb-col[data-open=true] .qb-rest,.qb-panel[data-find] .qb-rest{display:flex}
.qb-more{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;height:28px;padding:0 8px;border-radius:6px;color:var(--r-link);font-weight:600}
.qb-more .chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.qb-more[aria-expanded=true] .chev{transform:translateY(1px) rotate(225deg)}
.qb-panel[data-find] .qb-more{display:none}
.qb-more:hover{background:var(--r-hover)}
.qb-none{margin:0;font-size:13px;color:var(--r-ink-2)}
[hidden].pop-wrap,.qb-sub[hidden],.qb-col[hidden],.qb-none[hidden]{display:none!important}
.qb-cols .view.pin[aria-pressed=true]{background:var(--brand-btn);border-color:transparent;color:#fff}
@media (max-width:860px){.qb-cols:has(.qb-col[data-g=Ads]){grid-template-columns:1fr}.qb-col[data-g]{grid-column:auto;grid-row:auto}.qb-col[data-g=Advertiser],.qb-col[data-g=Shop]{border-left:0;padding-left:0;border-top:1px solid var(--r-line);padding-top:12px;margin-top:0}.qb-subs{grid-template-columns:1fr}}

/* copy-doctrine paragraph tags (IL.copyTagged) */
.ctag{display:grid;gap:8px;font-size:13px;line-height:1.5;max-height:420px;overflow:auto}.ctag p{margin:0}
.ctg{border-left:3px solid var(--tc);padding-left:8px;white-space:pre-wrap}.ctgh{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:2px;font:600 11px/1.6 system-ui;white-space:normal}
.cchip{border-radius:4px;padding:0 6px;color:#fff;background:var(--tc)}.ctn{color:var(--r-ink-3);font-weight:500}
.ctag.notags .ctgh{display:none}.ctag.notags .ctg{border-left:0;padding-left:0}.ctsrc{font-size:11px}
@media (forced-colors:active){.cchip{border:1px solid CanvasText}}
