:root{--bg: #f4f5fb;--surface: #ffffff;--surface-2: #f7f8fc;--surface-3: #eef1f8;--border: #e7e9f1;--border-strong: #d6d9e6;--text: #0f172a;--text-muted: #5d6b85;--text-subtle: #97a1b6;--brand-1: #2563eb;--brand-2: #1d4ed8;--brand-ink: #1d4ed8;--accent: var(--brand-1);--brand-soft: #eef4ff;--brand-border: #bfdbfe;--grad: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--ok: #059669;--ok-soft: #ecfdf5;--ok-border: #a7f3d0;--err: #e11d48;--err-soft: #fff1f3;--err-border: #fecdd6;--err-ink: #be123c;--warn: #b45309;--warn-soft: #fffbeb;--warn-border: #fde68a;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 1px rgba(16, 24, 40, .03);--shadow-md: 0 8px 24px -8px rgba(16, 24, 40, .14), 0 3px 8px -3px rgba(16, 24, 40, .06);--shadow-lg: 0 28px 60px -16px rgba(16, 24, 40, .24), 0 10px 22px -10px rgba(16, 24, 40, .1);--shadow-brand: 0 10px 28px -8px rgba(37, 99, 235, .42);--ring: 0 0 0 3px rgba(37, 99, 235, .22);--ease: cubic-bezier(.2, .7, .2, 1);--ease-spring: cubic-bezier(.16, 1, .3, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .34s;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--topbar-h: 64px;--font-display: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--chart-grid: #eef1f6;--chart-axis: #64748b;--chart-line: #e7e9f1;--glass: rgba(255, 255, 255, .72);--glass-2: rgba(255, 255, 255, .82);--loader-veil: rgba(15, 23, 42, .4);--tooltip-bg: #0f172a;--star: #f5a623;--scalar-grad: linear-gradient(180deg, #ffffff, #fbfbff);--skeleton-1: #eef1f7;--skeleton-2: #e2e6f0;--dot-color: rgba(15, 23, 42, .04);--accent-warm: #f97316;--accent-warm-soft: #fff1e6}:root[data-theme=dark]{--bg: #0a0f1c;--surface: #121a2c;--surface-2: #18223a;--surface-3: #212d49;--border: #273350;--border-strong: #36456a;--text: #e9eef9;--text-muted: #9fabc6;--text-subtle: #6c7a9c;--brand-soft: #16223e;--brand-border: #2d4675;--brand-ink: #9cc0ff;--ok-soft: #0d2019;--ok-border: #1d4a39;--err-soft: #271521;--err-border: #54283c;--err-ink: #fb7185;--warn-soft: #271f10;--warn-border: #564719;--chart-grid: #222e49;--chart-axis: #8c99b6;--chart-line: #2b3855;--glass: rgba(13, 19, 33, .72);--glass-2: rgba(13, 19, 33, .82);--loader-veil: rgba(2, 6, 14, .64);--tooltip-bg: #2a3656;--star: #fbbf24;--scalar-grad: linear-gradient(180deg, #16203a, #131b30);--skeleton-1: #1a2336;--skeleton-2: #222d45;--dot-color: rgba(255, 255, 255, .045);--accent-warm: #fb923c;--accent-warm-soft: #2a1c10;--shadow-sm: 0 1px 2px rgba(0,0,0,.28);--shadow-md: 0 10px 28px -8px rgba(0,0,0,.55), 0 3px 8px -3px rgba(0,0,0,.4);--shadow-lg: 0 30px 64px -16px rgba(0,0,0,.7), 0 10px 22px -10px rgba(0,0,0,.5);--shadow-brand: 0 10px 28px -8px rgba(37, 99, 235, .5)}:root[data-theme=dark] .app:before{background:radial-gradient(48% 62% at 50% -12%,rgba(59,130,246,.2),transparent 70%),radial-gradient(42% 52% at 84% -4%,rgba(99,102,241,.14),transparent 72%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.6;letter-spacing:-.006em;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.muted{color:var(--text-muted)}.small{font-size:16px}:focus-visible{outline:2px solid var(--brand-1);outline-offset:2px}.theme-switching,.theme-switching *,.theme-switching *:before,.theme-switching *:after{transition:none!important}.app{position:relative;min-height:100vh}.app:before{content:"";position:fixed;inset:0 0 auto 0;height:540px;pointer-events:none;z-index:0;background:radial-gradient(46% 60% at 50% -12%,rgba(37,99,235,.16),transparent 70%),radial-gradient(40% 50% at 86% -4%,rgba(37,99,235,.1),transparent 72%)}.app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:radial-gradient(var(--dot-color) 1.1px,transparent 1.4px);background-size:26px 26px}.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--glass);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}.brand .logo{display:block;width:36px;height:36px;filter:drop-shadow(0 5px 11px rgba(196,0,112,.32));transition:transform .2s ease}.brand:hover .logo{transform:rotate(-4deg) scale(1.04)}.brand-text{display:flex;flex-direction:column;line-height:1.04}.brand-name{font-family:var(--font-display);font-size:22.5px;font-weight:700;letter-spacing:-.03em}.brand-tag{font-size:13px;font-weight:600;letter-spacing:.085em;text-transform:uppercase;color:var(--brand-ink);opacity:.82}.topbar-right{display:flex;align-items:center;gap:12px}.db-pill{display:inline-flex;align-items:center;gap:8px;height:38px;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:0 10px 0 13px;font-size:14px;box-shadow:var(--shadow-sm);color:var(--text);cursor:pointer;transition:all .15s ease}.db-pill:hover,.db-pill.open{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.db-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px #05966929;animation:pulse 2.4s ease-in-out infinite;flex:0 0 auto}.db-brand{flex:0 0 auto;width:21px;height:21px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:inset 0 0 0 1px #fff3,0 1px 2px #0f172a2e}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #05966929}50%{box-shadow:0 0 0 5px #0596690f}}.db-name{font-weight:600}.db-kind{color:var(--text-muted)}.db-count{color:var(--text-subtle);border-left:1px solid var(--border);padding-left:9px;margin-left:2px}.layout{position:relative;z-index:1;display:flex;align-items:flex-start}.shell{flex:1;min-width:0;padding:30px 36px 90px}.sidebar{position:sticky;top:var(--topbar-h);align-self:flex-start;width:232px;flex:0 0 232px;height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:18px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--glass);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}.sidebar-new{display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px 14px;transition:all .15s;box-shadow:var(--shadow-sm)}.sidebar-new:hover{border-color:var(--brand-1);color:var(--brand-ink);background:var(--brand-soft)}.sidebar-section{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin:22px 8px 9px}.sidebar-section:before{content:"";width:6px;height:6px;border-radius:2px;background:var(--brand-1);flex:0 0 auto}.sidebar-empty{font-size:14px;color:var(--text-subtle);padding:6px 8px;line-height:1.5}.sidebar-search{display:flex;align-items:center;gap:7px;margin:0 0 8px;padding:6px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text-subtle);transition:all .15s ease}.sidebar-search:focus-within{border-color:var(--brand-1);background:var(--surface);box-shadow:0 0 0 3px var(--brand-soft);color:var(--brand-ink)}.sidebar-search input{border:none;outline:none;background:transparent;font:inherit;font-size:14.5px;flex:1;min-width:0;color:var(--text)}.sidebar-search input::placeholder{color:var(--text-subtle)}.sidebar-search-clear{border:none;background:transparent;color:var(--text-subtle);cursor:pointer;font-size:19px;line-height:1;padding:0 2px;flex:0 0 auto}.sidebar-search-clear:hover{color:var(--text)}.sidebar-list{list-style:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:2px}.navrow{position:relative;min-width:0}.navrow-btn{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:8px 58px 8px 12px;background:transparent;border:0;border-radius:10px;font:inherit;text-align:left;color:var(--text);cursor:pointer;transition:background .12s}.navrow-btn:hover{background:var(--surface-2)}.navrow-btn.is-active{background:var(--brand-soft)}.navrow-btn.is-active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-1)}.navrow-btn:focus-visible{outline:2px solid var(--brand-border);outline-offset:-2px}.navrow-icon{flex:0 0 auto;color:var(--text-subtle);display:flex}.navrow-btn.is-active .navrow-icon{color:var(--brand-ink)}.navrow-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600}.navrow-btn.is-active .navrow-label{color:var(--brand-ink)}.navrow-actions{position:absolute;top:0;bottom:0;right:7px;display:flex;align-items:center;gap:5px;pointer-events:none}.navrow-act{pointer-events:auto;border:0;background:transparent;color:var(--text-subtle);cursor:pointer;padding:4px;border-radius:7px;visibility:hidden;display:flex}.navrow:hover .navrow-act,.navrow-act.is-on{visibility:visible}.navrow-act:hover{color:var(--brand-ink);background:var(--brand-soft)}.navrow-act.is-del:hover{color:var(--err);background:var(--err-soft)}.sidebar-list-wrap{display:flex;flex-direction:column;gap:4px;min-width:0}.dash-group{min-width:0}.dash-group-head{display:flex;align-items:center;gap:2px;padding:0 4px 0 2px;min-width:0}.dash-group-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:5px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 4px;border-radius:7px}.dash-group-toggle:hover{color:var(--text)}.dash-group-toggle svg{flex:0 0 auto;opacity:.7}.dash-group-toggle .dg-caret{transition:transform .2s ease}.dash-group-toggle.collapsed .dg-caret{transform:rotate(-90deg)}.dash-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dash-group-count{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--text-subtle);background:var(--surface-3);border-radius:999px;padding:1px 7px;letter-spacing:0}.dash-group-head.plain{padding:6px 6px 2px}.dash-group-name.muted{font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);flex:1}.dash-group-actions{display:flex;gap:1px;flex:0 0 auto;visibility:hidden}.dash-group-head:hover .dash-group-actions{visibility:visible}.dash-group-actions button{border:none;background:transparent;color:var(--text-subtle);cursor:pointer;padding:4px;border-radius:6px;display:flex}.dash-group-actions button:hover{color:var(--brand-ink);background:var(--brand-soft)}.dash-group-actions button.gd-danger:hover{color:var(--err);background:var(--err-soft)}.group-pop{z-index:1400;width:224px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:1px;animation:popIn .12s ease}.group-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;background:transparent;color:var(--text);cursor:pointer;font:inherit;font-size:14.5px;text-align:left;padding:8px 10px;border-radius:8px}.group-opt:hover{background:var(--surface-2)}.group-opt.on{color:var(--brand-ink);font-weight:600}.group-opt-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-opt svg{flex:0 0 auto;color:var(--brand-ink)}.group-new{display:flex;align-items:center;gap:6px;margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}.group-new input{flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;padding:7px 9px;font:inherit;font-size:14.5px;background:var(--surface-2);color:var(--text);outline:none}.group-new input:focus{border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.group-new-btn{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background-image:var(--grad);color:#fff;cursor:pointer;box-shadow:var(--shadow-brand)}.group-new-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.hero{text-align:center;max-width:680px;margin:16px auto 26px}.hero-mosaic{display:flex;justify-content:center;gap:6px;margin:0 0 22px}.hero-mosaic i{width:17px;height:17px;border-radius:5px;display:block;animation:tileIn .5s var(--ease-spring) both}.hero-mosaic i:nth-child(1){background:#3b82f6;animation-delay:0ms}.hero-mosaic i:nth-child(2){background:#14b8a6;animation-delay:60ms}.hero-mosaic i:nth-child(3){background:#8b5cf6;animation-delay:.12s}.hero-mosaic i:nth-child(4){background:#fb923c;animation-delay:.18s}.hero-mosaic i:nth-child(5){background:#f472b6;animation-delay:.24s}.hero-title{font-family:var(--font-display);font-size:clamp(38px,5.2vw,60px);font-weight:600;letter-spacing:-.04em;line-height:1.04;margin:0 0 16px}.hero-title .grad{color:var(--brand-1)}.hero-sub{font-size:18px;color:var(--text-muted);margin:0;line-height:1.6}.composer{max-width:860px;margin:0 auto 30px}.composer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:20px 20px 18px}.composer-card textarea{width:100%;border:none;outline:none;resize:vertical;background:transparent;font:inherit;font-size:18.5px;line-height:1.5;color:var(--text);padding:4px 4px 2px;min-height:52px}.composer-card textarea::placeholder{color:var(--text-subtle)}.examples{display:flex;flex-wrap:wrap;gap:7px;margin:6px 2px 0}.chip{background:var(--surface-2);color:var(--brand-ink);border:1px solid var(--border);border-radius:999px;padding:5px 13px;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.chip:hover{background:var(--brand-soft);border-color:var(--brand-border);transform:translateY(-1px)}.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.left-actions,.right-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-answer{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px 20px;animation:fadeIn .2s ease}.qa-loading{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:14.5px;font-weight:600}.qa-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.qa-q{display:inline-flex;align-items:center;gap:7px;min-width:0;font-size:14px;font-weight:600;color:var(--brand-ink);background:var(--brand-soft);padding:5px 11px;border-radius:999px}.qa-q svg{flex:0 0 auto;opacity:.85}.qa-close{flex:0 0 auto;border:none;background:transparent;color:var(--text-subtle);font-size:22.5px;line-height:1;cursor:pointer;padding:0 4px}.qa-close:hover{color:var(--text)}.qa-title{font-size:17px;font-weight:700;color:var(--text);margin:4px 0 6px}.qa-explain{font-size:14px;color:var(--text-muted);margin:8px 0 0;line-height:1.5}.qa-expand{margin-top:14px}.app.view-only .sidebar{display:none}.app.view-only .layout{display:block}@media print{@page{margin:14mm}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.topbar,.sidebar,.no-print,.brief,.insights-btn,.insights-refresh,.widget-actions,.widget-foot,.param-reset,.quick-answer,.tooltip-layer,.dash-busy,.tbl-search,.filter-row,.drag-handle{display:none!important}.app:before,.app:after{display:none!important}html,body,.app,.main,.layout,.dashboard,.composer{min-height:0!important;height:auto!important;background:#fff!important;background-image:none!important}.widget.shape-scalar{background:#fff!important}.scalar-value,.stat-value{background:none!important;-webkit-text-fill-color:var(--brand-ink)!important;color:var(--brand-ink)!important}.layout{display:block!important}.main,.shell{padding:0!important}#recharts_measurement_span{display:none!important}.dashboard,.widget-grid-area,.widget-grid{margin:0!important}.widget{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important}.dashboard>*:last-child,.widget-grid-area,.widget:last-child{page-break-after:avoid!important}}.btn{font:inherit;font-size:16px;font-weight:600;cursor:pointer;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:11px 18px;transition:all .15s ease;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.btn:hover:not(:disabled){background-color:var(--surface-2);border-color:var(--border-strong)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background-image:var(--grad);color:#fff;border:none;box-shadow:var(--shadow-brand);padding:10px 18px}.btn-primary:hover:not(:disabled){background-image:var(--grad);filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 14px 30px #2563eb6b}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn kbd{font-family:inherit;font-size:12.5px;font-weight:600;background:#ffffff38;padding:1px 6px;border-radius:6px}.file-btn{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:14.5px;font-weight:500;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:10px;padding:8px 14px;transition:all .15s ease}.file-btn:hover{border-color:var(--brand-1);color:var(--brand-ink);background:var(--brand-soft)}.error{margin-top:14px;background:var(--err-soft);border:1px solid var(--err-border);color:var(--err-ink);padding:10px 14px;border-radius:var(--r-md);font-size:14.5px}.error.small{font-size:13.5px;padding:8px 11px;margin:0}.warn{margin-top:14px;background:var(--warn-soft);border:1px solid var(--warn-border);color:var(--warn);padding:10px 14px;border-radius:var(--r-md);font-size:14.5px}.saved-row{display:flex;align-items:center;gap:10px;margin-top:18px;padding:0 4px;flex-wrap:wrap}.saved-label{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em}.saved-label:before{content:"";width:6px;height:6px;border-radius:2px;background:var(--brand-1);flex:0 0 auto}.saved-chips{display:flex;flex-wrap:wrap;gap:7px}.dash-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:5px 8px 5px 13px;font-size:14px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s ease}.dash-chip:hover{border-color:var(--brand-1);transform:translateY(-1px);box-shadow:var(--shadow-md)}.dash-chip.active{background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-ink)}.dash-chip small{color:var(--text-subtle)}.dash-chip .del{border:none;background:transparent;color:var(--text-subtle);cursor:pointer;font-size:17px;line-height:1;padding:0 3px}.dash-chip .del:hover{color:var(--err)}.dashboard{max-width:1320px;margin:0 auto;animation:fadeUp .45s cubic-bezier(.2,.7,.2,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes tileIn{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes widgetIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.dash-titlebar{display:flex;align-items:center;gap:12px;margin:4px 2px 16px;min-width:0}.dash-title-sizer{display:inline-grid;align-items:center;max-width:100%}.dash-title-sizer:after{content:attr(data-value) " ";visibility:hidden;white-space:pre;grid-area:1 / 1;min-width:200px}.dash-title-sizer:after,.dash-title-input{font-family:var(--font-display);font-size:38px;font-weight:600;letter-spacing:-.04em;padding:5px 11px;box-sizing:border-box;border:1px solid transparent}.dash-title-input{grid-area:1 / 1;width:100%;min-width:0;background:transparent;border-radius:10px;color:var(--text)}.dash-title-input:hover{background:var(--surface);border-color:var(--border)}.dash-title-input:focus{outline:none;background:var(--surface);border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.dash-busy{color:var(--brand-ink);font-weight:600}.dash-title-static{margin:0;font-family:var(--font-display);font-size:38px;font-weight:600;letter-spacing:-.04em;color:var(--text);padding:5px 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-head-actions{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.dash-head-actions .icon-btn{width:40px;height:40px;border-radius:11px}.lock-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:11px;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm)}.lock-toggle:hover{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.lock-toggle.on{color:var(--brand-ink);border-color:var(--brand-border);background:var(--brand-soft)}.save-btn{transition:all .15s ease}.save-btn.dirty{background-image:var(--grad);color:#fff;border-color:transparent;box-shadow:var(--shadow-brand)}.save-btn.flash{background:var(--surface-2);color:var(--text-muted);border-color:var(--border);opacity:1}.save-btn.flash:disabled{opacity:1}.save-btn.flash svg{color:var(--ok)}.save-btn.dirty:hover:not(:disabled){filter:brightness(1.05)}.prompt-collapsed{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-md);padding:9px 14px;margin-bottom:16px;cursor:pointer;color:var(--text-muted);font:inherit;font-size:14.5px;box-shadow:var(--shadow-sm);transition:all .15s ease}.prompt-collapsed:hover{border-color:var(--brand-border);background:var(--surface-2);color:var(--text)}.prompt-collapsed>svg:first-child{color:var(--brand-1);flex:0 0 auto}.prompt-collapsed>svg:last-child{margin-left:auto;flex:0 0 auto;color:var(--text-subtle)}.prompt-collapsed-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.brief{margin-bottom:18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.brief-head{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;font:inherit;font-size:14.5px;color:var(--text-muted);text-align:left;padding:10px 14px;cursor:pointer;transition:background .12s}.brief-head:hover{background:var(--surface-2);color:var(--text)}.brief-head>svg:first-child{color:var(--brand-1);flex:0 0 auto}.brief-collapsed-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.brief-head-title{font-weight:700;color:var(--text)}.brief-count{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--brand-ink);background:var(--brand-soft);border-radius:999px;padding:2px 7px}.brief-caret{margin-left:auto;flex:0 0 auto;color:var(--text-subtle);transition:transform .15s}.brief-caret.up{transform:rotate(180deg)}.brief-timeline{list-style:none;margin:0;padding:0 14px 10px;display:flex;flex-direction:column;gap:7px}.brief-step{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;line-height:1.45;color:var(--text)}.brief-step>span:last-child{min-width:0}.brief-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--brand-border);margin-top:6px}.brief-dot.seed{background:var(--brand-1)}.brief-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:0 14px 10px}.brief-add{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-2)}.brief-add input{flex:1;min-width:0;border:1px solid var(--border);border-radius:9px;padding:8px 12px;font:inherit;font-size:14.5px;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.brief-add input:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.brief-add>button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:none;border-radius:9px;background-image:var(--grad);color:#fff;font:inherit;font-size:14.5px;font-weight:600;padding:8px 15px;cursor:pointer;box-shadow:var(--shadow-brand);transition:filter .15s}.brief-add>button:hover:not(:disabled){filter:brightness(1.06)}.brief-add>button:disabled{opacity:.55;cursor:default;box-shadow:none}.prompt-panel{margin-bottom:16px}.dash-error{margin:0 0 14px}.widget-ico.static:hover{background:transparent}.widget.locked h3,.widget.locked .widget-expl{cursor:default}.widget.locked .widget-expl:hover{background:transparent}.badge{display:inline-flex;align-items:center;gap:4px;background:var(--brand-soft);color:var(--brand-ink);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600}.badge.soft{background:var(--ok-soft);color:var(--ok)}.param-bar{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:var(--glass-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 18px;margin-bottom:18px;box-shadow:var(--shadow-sm);transition:transform .32s cubic-bezier(.2,.7,.2,1),margin .32s cubic-bezier(.2,.7,.2,1),padding .32s cubic-bezier(.2,.7,.2,1),box-shadow .32s ease,border-radius .32s ease,border-color .32s ease}.param-sentinel{height:1px;margin-bottom:-1px;visibility:hidden;pointer-events:none}.param-bar:after{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--grad);border-radius:4px 4px 0 0;opacity:0;transition:opacity .3s ease;pointer-events:none}.param-bar.is-pinned{transform:translateY(-8px);margin-left:var(--dock-ml, 0px);margin-right:var(--dock-mr, 0px);padding-left:var(--dock-pl, 18px);padding-right:var(--dock-pr, 18px);border-radius:0;border-left-color:transparent;border-right-color:transparent;box-shadow:0 16px 26px -16px #0f172a42}.param-bar.is-pinned:after{opacity:1;border-radius:0}@media (prefers-reduced-motion: reduce){.param-bar{transition:none}}.param-bar-label{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle)}.param-inline{display:flex;align-items:center;gap:7px;font-size:14.5px}.param-inline>span{color:var(--text-muted);font-weight:500}.param-inline>input,.param-inline>select,.daterange input,.ms-button,.dd-button{border:1px solid var(--border);border-radius:9px;padding:7px 11px;font:inherit;font-size:14.5px;background:var(--surface);transition:border-color .15s,box-shadow .15s;color:var(--text)}.param-inline>input{min-width:150px}.param-inline>input:focus,.param-inline>select:focus,.daterange input:focus,.ms-button:focus,.dd-button:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.param-bar-busy{font-size:13.5px;color:var(--brand-ink);margin-left:auto;font-weight:600}.param-reset{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:8px;padding:5px 11px;cursor:pointer;transition:all .15s ease}.param-reset:hover{color:var(--brand-ink);border-color:var(--brand-border);background:var(--brand-soft)}.param-reset svg{opacity:.8}.multiselect{position:relative}.ms-button{min-width:132px;cursor:pointer;display:inline-flex;justify-content:space-between;align-items:center;gap:8px}.ms-button.open{border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.ms-button .caret{color:var(--text-subtle);flex:0 0 auto}.ms-panel{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:250px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);overflow:hidden;animation:popIn .12s ease}.ms-search{display:flex;align-items:center;gap:7px;padding:9px 11px;border-bottom:1px solid var(--border);color:var(--text-subtle)}.ms-search input{border:none;outline:none;background:transparent;font:inherit;font-size:14.5px;flex:1;color:var(--text)}.ms-actions{display:flex;gap:5px;padding:7px;border-bottom:1px solid var(--border)}.ms-actions button{flex:1;border:none;background:var(--surface-2);color:var(--brand-ink);font:inherit;font-size:13px;font-weight:600;padding:6px;border-radius:7px;cursor:pointer;transition:background .12s}.ms-actions button:hover{background:var(--brand-soft)}.ms-list{max-height:244px;overflow-y:auto;padding:5px}.ms-option{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:14.5px;transition:background .1s}.ms-option:hover{background:var(--surface-2)}.ms-option.on{color:var(--brand-ink);font-weight:500}.ms-option input{accent-color:var(--brand-1);width:16px;height:16px;min-width:0;padding:0;border:none;background:none;flex:0 0 auto;margin:0;cursor:pointer}.ms-search input{min-width:0}.ms-empty{padding:12px;color:var(--text-subtle);font-size:14px;text-align:center}.cbx{flex:0 0 auto;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.dropdown{display:inline-flex}.dd-button{min-width:132px;cursor:pointer;display:inline-flex;justify-content:space-between;align-items:center;gap:8px}.dd-button.open{border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.dd-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-button .caret{color:var(--text-subtle);flex:0 0 auto}.dd-inline .dd-button{min-width:120px;padding:5px 9px;font-size:14px}.dd-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;z-index:1500;max-height:320px;overflow:auto;animation:popIn .12s ease}.dd-option{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;border:none;background:transparent;color:var(--text);font:inherit;font-size:14.5px;text-align:left;padding:7px 10px;border-radius:8px;cursor:pointer;transition:background .1s}.dd-option>span:last-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-option:hover{background:var(--surface-2)}.dd-option.on{color:var(--brand-ink);font-weight:500}.dd-option svg{flex:0 0 auto}.dd-option-icon{display:inline-flex;align-items:center;flex:0 0 auto}.dd-option-icon svg{color:inherit}.dd-button-label{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.param-inline input[type=checkbox]{accent-color:var(--brand-1)}.daterange{display:inline-flex;align-items:center;gap:8px}.daterange .dash{color:var(--text-subtle)}.datepicker{display:inline-flex}.dp-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:9px;padding:7px 11px;background:var(--surface);font:inherit;font-size:14.5px;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}.dp-btn:hover{border-color:var(--brand-1)}.dp-btn.open{border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.dp-btn svg{color:var(--text-subtle);flex:0 0 auto}.dp-placeholder{color:var(--text-subtle)}.dp-pop{z-index:70;width:264px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:12px;animation:popIn .12s ease}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dp-title{font-size:15px;font-weight:700;text-transform:capitalize}.dp-nav{width:28px;height:28px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all .12s}.dp-nav:hover{background:var(--surface-2);border-color:var(--brand-1);color:var(--brand-ink)}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-dow{margin-bottom:4px}.dp-dowcell{text-align:center;font-size:12px;font-weight:700;color:var(--text-subtle);padding:2px 0;text-transform:uppercase}.dp-cell{aspect-ratio:1;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;font:inherit;font-size:14px;color:var(--text);border-radius:8px;cursor:pointer;transition:background .1s;padding:0}.dp-cell:hover:not(.dp-empty){background:var(--surface-2)}.dp-cell.today{color:var(--brand-ink);font-weight:700}.dp-cell.sel{background:var(--brand-1);color:#fff;font-weight:600}.dp-cell.sel:hover{background:var(--brand-ink)}.dp-empty{cursor:default}.dp-foot{display:flex;gap:6px;margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.dp-quick{flex:1;border:1px solid var(--border);background:var(--surface-2);color:var(--brand-ink);font:inherit;font-size:13.5px;font-weight:600;padding:6px;border-radius:7px;cursor:pointer;transition:background .12s}.dp-quick:hover{background:var(--brand-soft)}.add-widget{display:flex;gap:10px;margin-bottom:18px}.add-widget input{flex:1;border:1px solid var(--border);border-radius:11px;padding:11px 15px;font:inherit;background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.add-widget input::placeholder{color:var(--text-subtle)}.add-widget input:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.add-widget button{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;padding:0 18px;transition:all .15s;white-space:nowrap}.add-widget button:hover:not(:disabled){background:var(--surface-2);border-color:var(--brand-1);color:var(--brand-ink)}.add-widget button:disabled{opacity:.5;cursor:default}.widget-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:start}.widget-grid-area{position:relative}.widget-grid.is-reworking{opacity:.4;filter:blur(1.5px);pointer-events:none;transition:opacity .2s ease,filter .2s ease}.widget-grid.printing{display:block;max-width:680px}.widget-grid.printing .widget{display:block;width:100%;max-width:100%;grid-column:auto;margin:0 0 16px}.widget-grid.printing .widget:last-child{margin-bottom:0}.print-prep{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:var(--bg);display:flex;align-items:center;justify-content:center}.print-prep-card{display:flex;align-items:center;gap:12px;font-size:15.5px;font-weight:600;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 24px;box-shadow:var(--shadow-lg);animation:modalIn .18s cubic-bezier(.2,.7,.2,1)}.rework-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding-top:70px;pointer-events:none;z-index:6}.rework-card{display:flex;align-items:center;gap:14px;max-width:440px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px;padding:15px 22px;animation:modalIn .2s cubic-bezier(.2,.7,.2,1)}.rework-spinner{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2.5px solid var(--brand-border);border-top-color:var(--brand-1);animation:reworkSpin .8s linear infinite}@keyframes reworkSpin{to{transform:rotate(360deg)}}.rework-text{min-width:0}.rework-title{font-size:15.5px;font-weight:700;color:var(--text);letter-spacing:-.01em}.rework-sub{font-size:14px;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.widget{position:relative;grid-column:span var(--span, 6);container-type:inline-size;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-width:0;transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease);animation:widgetIn .5s var(--ease-spring) both;animation-delay:calc(min(var(--i, 0),8)*45ms)}.widget:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-3px)}.widget-resize{position:absolute;top:0;bottom:0;right:-8px;width:16px;z-index:6;cursor:ew-resize;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.widget-resize i{width:5px;height:40px;border-radius:5px;background:var(--brand-1);box-shadow:0 0 0 4px var(--brand-soft);transition:height .15s ease,box-shadow .15s ease}.widget:hover .widget-resize,.widget.resizing .widget-resize{opacity:1}.widget-resize:hover i,.widget.resizing .widget-resize i{height:72px;box-shadow:0 0 0 5px var(--brand-soft)}.widget.resizing{outline:2px solid var(--brand-1);outline-offset:3px;box-shadow:var(--shadow-lg);transform:none!important;transition:none;z-index:7}.resize-badge{position:absolute;top:12px;right:14px;z-index:8;pointer-events:none;background:var(--brand-1);color:#fff;font-size:13.5px;font-weight:700;letter-spacing:.01em;padding:4px 11px;border-radius:999px;box-shadow:var(--shadow-md);animation:fadeIn .1s ease}body.resizing-widget,body.resizing-widget *{cursor:ew-resize!important;-webkit-user-select:none!important;user-select:none!important}.widget.shape-scalar{background:var(--scalar-grad)}.widget-head{position:relative;display:flex;align-items:center;gap:9px;margin-bottom:16px}.widget-head h3{margin:0;font-family:var(--font-display);font-size:18.5px;font-weight:600;cursor:text;flex:1;min-width:0;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drag-handle{position:absolute;left:-15px;top:50%;transform:translateY(-50%);cursor:grab;color:var(--text-subtle);font-size:14.5px;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity var(--dur-2) var(--ease),color .15s}.widget:hover .drag-handle,.widget:focus-within .drag-handle{opacity:1}.drag-handle:hover{color:var(--brand-1)}.drag-handle:active{cursor:grabbing}.title-edit{flex:1;min-width:0;font-size:16px;font-weight:600;border:1px solid var(--brand-1);border-radius:8px;padding:4px 8px;box-shadow:0 0 0 3px var(--brand-soft);outline:none;background:var(--surface-2);color:var(--text)}.widget-actions{position:absolute;top:50%;right:0;transform:translateY(-50%);display:flex;align-items:center;gap:5px;opacity:0;padding-left:26px;background:linear-gradient(90deg,transparent,var(--surface) 26px);transition:opacity var(--dur-2) var(--ease)}.widget:hover .widget-actions,.widget:focus-within .widget-actions{opacity:1}.icon{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:4px 8px;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.icon:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.icon.danger{color:var(--err);border-color:transparent;font-size:17px;line-height:1;padding:2px 7px}.icon.danger:hover{background:var(--err-soft);border-color:var(--err-border)}.toggle{display:flex;align-items:center;gap:5px;color:var(--text-muted);font-size:13.5px;cursor:pointer}.toggle input{accent-color:var(--brand-1)}.widget-loading{color:var(--text-subtle);padding:30px 0;text-align:center;font-size:14.5px}.widget-expl{margin:14px -6px 0;padding:4px 6px;font-size:15px;color:var(--text-subtle);cursor:text;border-radius:7px;transition:background .12s}.widget-expl:hover{background:var(--surface-2)}.widget-expl.empty{font-style:normal;opacity:.65}.widget-expl.empty:hover{opacity:1;color:var(--brand-ink)}.widget-expl-edit{margin:12px 0 0;width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;line-height:1.5;color:var(--text);background:var(--surface-2);border:1px solid var(--brand-1);border-radius:8px;padding:6px 8px;outline:none;box-shadow:0 0 0 3px var(--brand-soft);resize:vertical}.widget-expl-edit::placeholder{color:var(--text-subtle);font-style:normal}.widget-foot{display:flex;justify-content:flex-end;margin-top:8px}.filter-hint{color:var(--brand-ink);font-size:12.5px;font-weight:500;background:var(--brand-soft);padding:2px 8px;border-radius:6px}.scalar{text-align:center;padding:32px 0 28px}.scalar-value{font-family:var(--font-display);font-size:clamp(26px,15cqi,76px);font-weight:600;letter-spacing:-.035em;line-height:1.02;color:var(--brand-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 22px;padding:24px 4px 20px;align-items:end}.stat{text-align:center;min-width:0}.stat-value{font-family:var(--font-display);font-size:clamp(22px,11cqi,54px);font-weight:600;letter-spacing:-.035em;line-height:1.02;color:var(--brand-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-label{margin-top:9px;font-size:13.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle)}.delta-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px}.delta{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:700;padding:4px 12px;border-radius:999px;white-space:nowrap}.delta.up{color:var(--ok);background:var(--ok-soft)}.delta.down{color:var(--err-ink);background:var(--err-soft)}.delta.flat{color:var(--text-muted);background:var(--surface-3)}.delta-note{font-size:13px;font-weight:500;color:var(--text-subtle)}.scalar .delta-wrap{margin-top:16px}@keyframes shimmer{0%{background-position:-360px 0}to{background-position:360px 0}}.skeleton{background:linear-gradient(90deg,var(--skeleton-1) 25%,var(--skeleton-2) 37%,var(--skeleton-1) 63%);background-size:720px 100%;animation:shimmer 1.3s linear infinite;border-radius:8px}.rv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--text-subtle);font-size:13px}.rv-empty-ico{opacity:.4}.sk-wrap{padding:8px 2px 12px;display:flex;flex-direction:column;gap:12px}.sk-scalar{height:52px;width:56%;margin:16px auto 22px;border-radius:12px}.sk-bars{display:flex;align-items:flex-end;gap:12px;height:180px;padding-top:10px}.sk-bars>div{flex:1;border-radius:8px 8px 0 0}.sk-row{height:16px;border-radius:6px}.sk-row.head{height:22px;width:40%}.widget-recalc{position:relative}.widget-recalc-note{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.recalc-pill{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);padding:8px 15px;border-radius:999px;font-size:14px;font-weight:600;color:var(--text-muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:11px;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm)}.theme-toggle:hover{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:11px;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm);font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.04em}.lang-toggle:hover{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.tbl-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:10px}.tbl-search{flex:1;max-width:340px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:8px 12px;background:var(--surface-2);color:var(--text-subtle);transition:all .15s}.tbl-search:focus-within{background:var(--surface);border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.tbl-search input{border:none;outline:none;background:transparent;font:inherit;font-size:14.5px;flex:1;min-width:0;color:var(--text)}.table-wrap{--head-h: 42px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);max-height:440px}table{border-collapse:collapse;width:100%;font-size:15.5px}th,td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--border);white-space:nowrap}.table-wrap thead tr.head-row th{position:sticky;top:0;z-index:3;height:var(--head-h);padding:0 16px;vertical-align:middle;background:var(--surface-2);font-weight:600;color:var(--text-muted);font-size:14px;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 1.5px 0 0 var(--border)}.table-wrap thead tr.filter-row th{position:sticky;top:var(--head-h);z-index:2;box-shadow:inset 0 -1px 0 var(--border)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--brand-ink)}.sort-ind{color:var(--brand-1);font-size:11px}tr.filter-row th{padding:5px 8px;background:var(--surface)}tr.filter-row input{width:100%;min-width:72px;border:1px solid var(--border);border-radius:7px;padding:4px 8px;font:inherit;font-size:13.5px;font-weight:400;text-transform:none;letter-spacing:normal;background:var(--surface-2);color:var(--text)}tr.filter-row input::placeholder{color:var(--text-subtle)}tr.filter-row input:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 2px var(--brand-soft)}tbody tr{transition:background .1s}tbody tr:hover{background:var(--surface-2)}td.empty{text-align:center;color:var(--text-subtle);padding:22px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px;font-size:14.5px;color:var(--text-muted)}.pager button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:8px;width:30px;height:30px;cursor:pointer;color:var(--text-muted);transition:all .15s}.pager button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.upload-row{display:flex;align-items:center;gap:10px}.upload-panel{border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;margin-top:16px;background:var(--surface-2)}.up-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.up-file{font-size:15.5px;display:inline-flex;align-items:center;gap:7px}.up-file svg{color:var(--text-subtle)}.up-head .link-btn{margin-left:auto;border:none;background:none;color:var(--text-muted);text-decoration:underline;cursor:pointer;font-size:13.5px;padding:0}.up-head .link-btn:hover{color:var(--err)}.up-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto;margin-bottom:14px}.up-preview table{width:100%;border-collapse:collapse;font-size:14px}.up-preview th,.up-preview td{text-align:left;padding:6px 11px;border-bottom:1px solid var(--border);white-space:nowrap}.up-preview th{background:var(--surface-2);font-weight:600;text-transform:none;letter-spacing:normal;font-size:14px;color:var(--text)}.up-preview tr:last-child td{border-bottom:none}.up-more{padding:5px 11px}.up-q{font-weight:600;font-size:14.5px;margin-bottom:9px}.up-options{display:flex;flex-direction:column;gap:9px}.up-opt{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);transition:all .15s}.up-opt:hover{border-color:var(--brand-1)}.up-opt.on{border-color:var(--brand-1);background:var(--brand-soft);box-shadow:0 0 0 3px var(--brand-soft)}.up-opt-head{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;cursor:pointer}.up-opt-head input{margin-top:2px;accent-color:var(--brand-1)}.up-opt-title{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:8px}.up-opt-ico{display:inline-flex;color:var(--brand-ink);flex:0 0 auto}.up-opt.on .up-opt-ico{color:var(--brand-ink)}.up-opt-desc{color:var(--text-muted);font-size:13.5px;margin-top:2px}.up-opt-extra{padding:0 13px 13px 37px;font-size:13.5px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.up-opt-extra select{border:1px solid var(--border);border-radius:7px;padding:4px 7px;font:inherit;font-size:13.5px}.up-ok{color:var(--ok);font-weight:600}.widget-actions{gap:6px}.drag-handle{display:inline-flex;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;border:1px solid transparent;background:transparent;color:var(--text-subtle);border-radius:10px;cursor:pointer;transition:all .14s ease}.icon-btn:hover,.icon-btn.active{background:var(--surface-2);color:var(--text)}.icon-btn.is-on,.icon-btn.is-on:hover{color:var(--brand-ink);background:var(--brand-soft)}.icon-btn.danger:hover{color:var(--err);background:var(--err-soft)}.icon-btn svg{width:18px;height:18px}.dash-head-actions .icon-btn svg,.lock-toggle svg{width:20px;height:20px}.view-switch{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:2px;gap:2px}.view-switch button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:24px;border:none;background:transparent;color:var(--text-subtle);border-radius:7px;cursor:pointer;transition:all .14s}.view-switch button:hover{color:var(--text)}.view-switch button.on{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow-sm)}.ctmenu{display:inline-flex}.view-type-btn{display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 6px 0 8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);border-radius:9px;cursor:pointer;transition:all .14s ease}.view-type-btn:hover{color:var(--text);border-color:var(--border-strong)}.view-type-btn.on{color:var(--brand-ink);border-color:var(--brand-border);background:var(--brand-soft)}.ctmenu-pop{min-width:188px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;z-index:80;animation:popIn .12s ease}.ctmenu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--text);font:inherit;font-size:14.5px;text-align:left;padding:7px 10px;border-radius:8px;cursor:pointer;transition:background .12s}.ctmenu-item svg{color:var(--text-subtle);flex:0 0 auto}.ctmenu-item:hover{background:var(--surface-2)}.ctmenu-item.on{background:var(--brand-soft);color:var(--brand-ink)}.ctmenu-item.on svg{color:var(--brand-ink)}.ctmenu-sep{height:1px;background:var(--border);margin:5px 6px}.ctmenu-label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle);padding:5px 10px 4px}.ctmenu-check{flex:0 0 auto;width:16px;height:16px;display:grid;place-items:center}.ctmenu-check svg{color:var(--brand-ink)}.cols-pop{width:224px;max-height:340px;overflow:auto}.cols-head{font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);padding:4px 10px 8px}.cols-item{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:14.5px;text-align:left;padding:6px 10px;border-radius:8px;cursor:pointer;transition:background .12s}.cols-item:hover:not(:disabled){background:var(--surface-2)}.cols-item.on{color:var(--text)}.cols-item:disabled{cursor:default}.cols-check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1.5px solid var(--border-strong);border-radius:5px;flex:0 0 auto;color:#fff}.cols-item.on .cols-check{background:var(--brand-1);border-color:var(--brand-1)}.cols-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu{position:relative;display:inline-flex}.menu-pop{position:absolute;top:calc(100% + 6px);right:0;min-width:204px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;z-index:40;animation:popIn .12s ease}@keyframes popIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--text);font:inherit;font-size:14.5px;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .12s}.menu-item:hover{background:var(--surface-2)}.menu-item svg{color:var(--text-subtle);flex:0 0 auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;max-width:430px;padding:24px;animation:modalIn .18s cubic-bezier(.2,.7,.2,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-title{font-size:19px;font-weight:700;letter-spacing:-.01em;margin-bottom:14px}.modal-body{font-size:15.5px}.modal-message{margin:0;color:var(--text-muted);line-height:1.6}.modal-footer .guard-discard{margin-right:auto;color:var(--err)}.modal-footer .guard-discard:hover{background:var(--err-soft);color:var(--err)}.modal-label{display:block;font-size:13.5px;font-weight:600;color:var(--text-muted);margin-bottom:7px}.modal-input{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 13px;font:inherit;font-size:15.5px;background:var(--surface-2);color:var(--text);transition:border-color .15s,box-shadow .15s}.modal-input:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.modal-input::placeholder{color:var(--text-subtle)}textarea.modal-input{resize:vertical;min-height:46px;line-height:1.5}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.modal-wide{max-width:880px;width:92vw}.modal-wide .modal-body{max-height:64vh;overflow:auto}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a6b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:flex-end;animation:fadeIn .15s ease}.sheet{width:min(720px,94vw);max-width:96vw;height:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:-24px 0 60px #0f172a42;display:flex;flex-direction:column;animation:sheetIn .26s cubic-bezier(.2,.7,.2,1)}@keyframes sheetIn{0%{transform:translate(44px);opacity:.5}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 22px;border-bottom:1px solid var(--border);flex:0 0 auto}.sheet-title{font-size:18px;font-weight:700;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;flex:0 0 auto;transition:all .15s}.sheet-close:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.sheet-body{flex:1;min-height:0;overflow:hidden;padding:18px 22px;display:flex;flex-direction:column}.sheet-body .data-table{flex:1;min-height:0;display:flex;flex-direction:column}.sheet-body .data-table .table-wrap{flex:1;min-height:0;max-height:none}.sheet-body .pager{flex:0 0 auto;margin-top:12px}.sheet-body>.drill-state{margin:auto}.sheet-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--border);flex:0 0 auto}.drill-state{padding:30px 6px;text-align:center;font-size:15px}.edit-hints{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;min-height:30px;align-items:center}.edit-hints-loading{font-size:14px;color:var(--text-subtle);animation:pulse 1.3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.genloader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:var(--loader-veil);animation:fadeIn .2s ease}.genloader{display:flex;flex-direction:column;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:40px 50px;animation:modalIn .2s cubic-bezier(.2,.7,.2,1);min-width:380px}.genloader-logo{filter:drop-shadow(0 14px 34px rgba(37,99,235,.4));animation:glFloat 3s ease-in-out infinite}@keyframes glFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.gl-tile{transform-box:fill-box;transform-origin:center;animation:glPulse 1.5s ease-in-out infinite}.gl-t1{animation-delay:0s}.gl-t2{animation-delay:.18s}.gl-t3{animation-delay:.36s}@keyframes glPulse{0%,to{opacity:.42;transform:scale(.8)}45%{opacity:1;transform:scale(1)}}.genloader-title{font-size:21.5px;font-weight:800;letter-spacing:-.02em;color:var(--text);text-align:center}.genloader-steps{list-style:none;margin:4px auto 0;padding:0;display:flex;flex-direction:column;gap:11px;width:312px;max-width:82vw;text-align:left}.gl-step{display:flex;align-items:center;gap:11px;font-size:14.5px;line-height:1.3;animation:glStepIn .42s ease}.gl-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gl-mark{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:grid;place-items:center}.gl-done{color:var(--text-muted)}.gl-done .gl-mark{background:var(--ok-soft, rgba(22, 163, 74, .13));color:var(--ok, #16a34a)}.gl-active{color:var(--text);font-weight:600}.gl-active .gl-mark{box-shadow:inset 0 0 0 2px var(--brand-border)}.gl-active .gl-mark:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-1)}.gl-shimmer{background:linear-gradient(90deg,var(--text) 32%,var(--brand-1) 50%,var(--text) 68%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:glShimmer 2s linear infinite}@keyframes glShimmer{0%{background-position:220% 0}to{background-position:-220% 0}}@keyframes glStepIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.scalar.pickable,.stat.pickable{cursor:pointer;border-radius:12px;transition:background .12s}.scalar.pickable:hover,.stat.pickable:hover{background:var(--brand-soft)}.btn-danger{background:var(--err);color:#fff;border:none;box-shadow:0 8px 20px #e11d4847}.btn-danger:hover:not(:disabled){background:#be123c;box-shadow:0 10px 24px #e11d485c}.widget-head{gap:4px}.wstyle{position:relative;display:inline-flex;margin-right:1px}.widget-ico{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;border:none;color:var(--accent, var(--brand-ink));background:color-mix(in srgb,currentColor 15%,transparent);border-radius:9px;cursor:pointer;transition:all .14s;flex:0 0 auto}.widget-ico:hover{background:color-mix(in srgb,currentColor 26%,transparent)}.widget-ico.static{cursor:default}.widget-ico.static:hover{background:color-mix(in srgb,currentColor 15%,transparent)}.wstyle-pop{z-index:80;width:244px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:13px;animation:popIn .12s ease}.wstyle-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin:0 0 8px}.wstyle-icons{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}.wstyle-ico{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all .12s;padding:0}.wstyle-ico:hover{border-color:var(--brand-1);color:var(--brand-ink)}.wstyle-ico.on{background:var(--brand-soft);border-color:var(--brand-1);color:var(--brand-ink)}.wstyle-colors{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.wcolor{aspect-ratio:1;border-radius:50%;border:2px solid var(--surface);cursor:pointer;padding:0;box-shadow:0 0 0 1px var(--border);transition:transform .1s}.wcolor:hover{transform:scale(1.18)}.wcolor.on{box-shadow:0 0 0 2px var(--brand-1)}.wcolor.reset{background:var(--surface);position:relative}.wcolor.reset:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-subtle)}.widget.dragging{opacity:.4!important}.widget.dragging:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--border)}.widget.drag-over{border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft),var(--shadow-md)}.widget-dropzone{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:78px;border:2px dashed var(--border-strong);border-radius:var(--r-lg);color:var(--text-subtle);font-size:14.5px;font-weight:600;background:var(--surface-2);transition:border-color .15s,color .15s,background .15s;animation:fadeIn .15s ease}.widget-dropzone span{display:inline-flex;align-items:center;gap:7px}.widget-dropzone.over{border-color:var(--brand-1);color:var(--brand-ink);background:var(--brand-soft)}.colfilter{display:inline-flex;width:100%}.colfilter-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:4px;width:100%;min-width:60px;border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:4px 7px;font:inherit;font-size:13.5px;font-weight:400;color:var(--text-muted);cursor:pointer;transition:border-color .12s;text-transform:none;letter-spacing:normal}.colfilter-btn:hover{border-color:var(--brand-1)}.colfilter-btn.active{border-color:var(--brand-1);color:var(--brand-ink);background:var(--brand-soft)}.colfilter-pop{z-index:1500;min-width:168px;max-height:264px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;animation:popIn .12s ease}.recharts-wrapper:focus,.recharts-surface:focus,.recharts-wrapper :focus{outline:none}.recharts-sector,.recharts-rectangle,.recharts-dot{outline:none}.sql{background:#0f172a;color:#e2e8f0;padding:12px 14px;border-radius:var(--r-md);overflow-x:auto;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:14px;margin:0;white-space:pre-wrap;word-break:break-word}.tooltip{position:fixed;z-index:200;transform:translate(-50%,-100%);background:var(--tooltip-bg);color:#fff;font-size:13.5px;font-weight:500;line-height:1.3;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;box-shadow:0 8px 22px #0f172a4d;animation:tipIn .12s ease}.tooltip.below{transform:translate(-50%)}.tooltip:after{content:"";position:absolute;left:calc(50% + var(--tip-dx, 0px));margin-left:-5px;border:5px solid transparent}.tooltip:not(.below):after{top:100%;border-top-color:var(--tooltip-bg)}.tooltip.below:after{bottom:100%;border-bottom-color:var(--tooltip-bg)}@keyframes tipIn{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.sidebar{display:none}}@media (max-width: 760px){.widget-grid{grid-template-columns:1fr}.widget{grid-column:1 / -1}.widget-resize,.brand-tag,.db-kind,.db-count{display:none}.shell{padding:22px 16px 64px}.composer-actions{flex-direction:column;align-items:stretch}.right-actions{justify-content:flex-end}}.dash-build-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand-1);margin-right:6px;vertical-align:middle;animation:pulse 1.1s ease-in-out infinite}.refine-bar{margin-bottom:22px}.refine-bar .add-widget{margin:0}.refine-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;padding:0 2px}.rs-label{font-size:13.5px;font-weight:600;color:var(--text-muted);margin-right:1px}.rs-chip{font-size:13.5px}.insights-toggle{display:inline-flex;align-items:center;gap:7px;margin-bottom:18px;font:inherit;font-size:14px;font-weight:600;color:var(--text-muted);background:transparent;border:1px dashed var(--border);border-radius:9px;padding:7px 13px;cursor:pointer;transition:all .15s ease}.insights-toggle:hover:not(:disabled){color:var(--brand-ink);border-color:var(--brand-border);border-style:solid;background:var(--brand-soft)}.insights-toggle:disabled{opacity:.6;cursor:default}.insights-toggle svg{opacity:.85}.insights-card{margin-bottom:18px;padding:18px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.insights-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.insights-title{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-size:18.5px;font-weight:600;letter-spacing:-.02em;color:var(--text)}.ins-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:var(--accent-warm);background:color-mix(in srgb,var(--accent-warm) 16%,transparent);flex:0 0 auto}.insights-skeleton{display:flex;flex-direction:column;gap:11px;padding:2px 0 3px}.ins-sk{height:15px;border-radius:7px;display:block}.ins-sk:nth-child(1){width:93%}.ins-sk:nth-child(2){width:85%}.ins-sk:nth-child(3){width:68%}.insights-meta{display:inline-flex;align-items:center;gap:12px}.insights-time{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-subtle)}.insights-refresh{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13.5px;font-weight:600;color:var(--brand-ink);background:transparent;border:1px solid var(--brand-border);border-radius:8px;padding:5px 10px;cursor:pointer;transition:background .15s ease}.insights-refresh:hover:not(:disabled){background:var(--brand-soft)}.insights-refresh:disabled{opacity:.7;cursor:default}.insights-close{border:none;background:transparent;color:var(--text-subtle);font-size:21.5px;line-height:1;cursor:pointer;padding:0 3px}.insights-close:hover{color:var(--text)}.insights-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.insights-list li{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.5;color:var(--text)}.ins-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--brand-1);margin-top:7px}.refine-history{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.refine-chip{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px 3px 8px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refine-chip svg{color:var(--brand-ink);flex:0 0 auto}:root{--map-empty: #e7ebf4;--map-stroke: #ffffff}:root[data-theme=dark]{--map-empty: #1b2540;--map-stroke: #0e1424}.map-view{width:100%}.map-loading{display:flex;align-items:center;justify-content:center;min-height:180px}.map-region{outline:none}.map-region.pickable{cursor:pointer}.map-hover-outline{fill:none;stroke:var(--brand-1);stroke-width:1.6;pointer-events:none}.map-tip{position:absolute;transform:translate(-50%,calc(-100% - 12px));background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:6px 10px;box-shadow:var(--shadow-md);font-size:14px;white-space:nowrap;pointer-events:none;display:flex;flex-direction:column;gap:1px;z-index:5}.map-tip strong{font-weight:650}.map-tip span{color:var(--brand-ink);font-weight:600}.map-tip span.muted{color:var(--text-subtle);font-weight:400}.map-legend{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--text-subtle);flex-wrap:wrap}.map-legend-label{font-weight:600;color:var(--text-muted)}.map-legend-bar{display:inline-flex;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.map-legend-bar i{width:22px;height:11px;display:block}.map-legend-note{margin-left:auto;cursor:help}.heatmap{position:relative;width:100%}.hm-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:6px}.hm-grid{display:grid;gap:0;align-items:stretch;width:max-content;min-width:100%}.hm-corner{position:sticky;left:0;z-index:4;background:var(--surface)}.hm-xlabel{font-size:12.5px;color:var(--text-muted);text-align:center;padding:2px 1px 4px;margin:0 1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:end}.hm-ylabel{position:sticky;left:0;z-index:4;background:var(--surface);align-self:stretch;display:flex;align-items:center;justify-content:flex-end;padding:0 8px 0 2px;overflow:hidden}.hm-ylabel>span{font-size:12.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.hm-cell{min-height:22px;margin:1px;border-radius:3px;transition:filter .1s}.hm-cell.pickable{cursor:pointer}.hm-cell:hover{filter:brightness(1.12);outline:1.5px solid var(--brand-1);outline-offset:-1px}.cat{display:flex;flex-direction:column;gap:18px;flex:1;min-height:0;overflow-y:auto;margin-right:-22px;padding-right:22px}.cat-empty{color:var(--text-muted);padding:24px 4px}.cat-domain{margin:0;color:var(--text-muted);font-size:14.5px;line-height:1.5}.cat-stats{display:flex;flex-wrap:wrap;gap:8px}.cat-stat{font-size:12.5px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px 11px}.cat-stat b{color:var(--text);font-weight:700}.cat-stat-dialect{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700;color:var(--accent)}.cat-health{display:flex;align-items:center;gap:13px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.cat-ring{flex:0 0 auto}.cat-ring-pct{font-family:var(--font-display);font-size:12px;font-weight:700;fill:var(--text)}.cat-health-title{font-family:var(--font-display);font-weight:650;font-size:14px;color:var(--text)}.cat-health-cap{font-size:12px;color:var(--text-subtle);margin-top:1px}.cat-search{font:inherit;font-size:13.5px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 12px;outline:none;width:100%;box-sizing:border-box;margin-bottom:4px;transition:border-color .14s,box-shadow .14s}.cat-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.cat-search::placeholder{color:var(--text-subtle)}.cat-empty-sm{font-size:13px;color:var(--text-subtle);padding:10px 2px}.cat-hint{font-size:12.5px;color:var(--text-subtle);margin:-2px 0 9px}.cat-preview-row{display:flex;gap:8px;align-items:center}.cat-preview-in{flex:1 1 auto;margin-bottom:0}.cat-preview-out{margin:11px 0 0;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);font-size:12px;line-height:1.55;color:var(--text-muted);white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto}.cat-draft{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--surface));border-radius:12px;overflow:hidden}.cat-draft-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;font-size:14px}.cat-draft-actions{display:flex;gap:8px}.cat-draft-all{font:inherit;font-size:12.5px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:5px 12px;cursor:pointer}.cat-draft-close{font:inherit;font-size:12.5px;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:8px;padding:5px 12px;cursor:pointer}.cat-draft-list{max-height:340px;overflow:auto;border-top:1px solid var(--border)}.cat-draft-item{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border)}.cat-draft-item:last-child{border-bottom:0}.cat-draft-loc{flex:0 0 150px;display:flex;flex-direction:column;gap:1px;min-width:0}.cat-draft-loc b{font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-draft-loc span{font-size:10px;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em}.cat-draft-sugg{flex:1 1 auto;font-size:13px;color:var(--text-muted);min-width:0}.cat-draft-btns{flex:0 0 auto;display:flex;gap:6px}.cat-draft-yes,.cat-draft-no{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:16px;line-height:1}.cat-draft-yes{color:var(--ok)}.cat-draft-yes:hover{background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:var(--ok)}.cat-draft-no{color:var(--text-subtle)}.cat-draft-no:hover{color:#ef4444;border-color:#ef4444;background:color-mix(in srgb,#ef4444 10%,transparent)}.cat-drift{background:color-mix(in srgb,var(--accent-warm) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent-warm) 40%,var(--border));border-radius:var(--r-md);padding:11px 14px;font-size:13px;line-height:1.6}.cat-drift b{display:block;margin-bottom:3px}.cat-section{display:flex;flex-direction:column;gap:10px}.cat-h{margin:0;font-family:var(--font-display);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle)}.cat-metrics{display:flex;flex-direction:column;gap:9px}.cat-metric{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-md);padding:10px 13px}.cat-metric-top{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.cat-metric-name{font-family:var(--font-display);font-weight:600;font-size:15px}.cat-metric-sql{display:block;margin:5px 0 0;font-size:12.5px;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:5px;padding:3px 7px;width:fit-content;max-width:100%;overflow-x:auto}.cat-metric-desc{margin-top:6px;font-size:13px;color:var(--text-muted);line-height:1.5}.cat-syn{color:var(--text-subtle);font-size:12px;font-weight:500}.cat-table{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.cat-table+.cat-table{margin-top:8px}.cat-table-head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;background:var(--surface-2);border:0;cursor:pointer;color:inherit;text-align:left}.cat-table-head:hover{background:var(--surface-3)}.cat-table-name{font-family:var(--font-display);font-weight:600;font-size:15px}.cat-role-dots{display:inline-flex;gap:3px;margin-left:2px}.cat-dot{width:8px;height:8px;border-radius:2px}.cat-rows{margin-left:auto;font-size:12px;color:var(--text-subtle);font-variant-numeric:tabular-nums}.cat-chevron{color:var(--text-subtle);transition:transform .18s;flex:0 0 auto}.cat-table.open .cat-chevron{transform:rotate(180deg)}.cat-table-desc{padding:9px 13px;font-size:13px;color:var(--text-muted);line-height:1.5;border-top:1px solid var(--border)}.cat-cols{border-top:1px solid var(--border)}.cat-col{display:grid;grid-template-columns:10px minmax(96px,auto) auto 1fr;align-items:baseline;gap:8px;padding:7px 13px;font-size:13px}.cat-col+.cat-col{border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.cat-col-role{width:8px;height:8px;border-radius:2px;align-self:center}.cat-col-name{font-weight:600;font-family:var(--font-display)}.cat-col-type{font-size:11.5px;color:var(--text-subtle);text-transform:lowercase}.cat-col-fk{font-size:12px;color:#8b5cf6;font-weight:500}.cat-col-unit{font-size:11px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:4px;padding:0 5px}.cat-col-desc{grid-column:2 / -1;color:var(--text-muted);line-height:1.45}.cat-samples{grid-column:2 / -1;font-size:11.5px;color:var(--text-subtle);font-variant-numeric:tabular-nums}.cat-saveerr{background:color-mix(in srgb,#ef4444 12%,var(--surface));border:1px solid color-mix(in srgb,#ef4444 40%,var(--border));border-radius:var(--r-md);padding:8px 12px;font-size:13px;cursor:pointer}.cat-meta{font-size:14px;color:var(--text-muted);line-height:1.5}.cat-editable{cursor:text;border-radius:4px;padding:1px 4px;margin:-1px -4px;outline:none;transition:background .12s,box-shadow .12s}.cat-editable:hover,.cat-editable:focus{background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 0 -1.5px color-mix(in srgb,var(--accent) 45%,transparent)}.cat-placeholder{color:var(--text-subtle);font-style:italic}.cat-edit-input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:6px;padding:4px 7px;width:100%;box-sizing:border-box;outline:none;resize:vertical}.cat-edit-input.mono,.cat-editable.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.cat-syn-edit{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.cat-chip{display:inline-flex;align-items:center;gap:1px;font-size:11.5px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:1px 3px 1px 8px}.cat-chip-x{border:0;background:transparent;color:var(--text-subtle);cursor:pointer;font-size:15px;line-height:1;padding:0 3px;border-radius:50%}.cat-chip-x:hover{color:#ef4444}.cat-chip-add{border:1px dashed var(--border-strong);background:transparent;color:var(--text-subtle);border-radius:999px;padding:1px 9px;font-size:11.5px;cursor:pointer}.cat-chip-add:hover{color:var(--accent);border-color:var(--accent)}.cat-chip-input{font:inherit;font-size:11.5px;width:110px;border:1px solid var(--accent);border-radius:999px;padding:2px 9px;outline:none}.cat-col-edit{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px}.cat-col-edit .cat-col-desc,.cat-col-edit .cat-syn-edit,.cat-col-edit .cat-samples{flex-basis:100%}.cat-col-role-pick{display:inline-flex;align-items:center;gap:5px}.cat-role-select .dd-button{min-width:110px;padding:4px 10px;font-size:13px;border-radius:7px}.cat-col-unit-edit{font-size:11px;color:var(--accent)}.cat-table-desc .cat-syn-edit{margin-top:6px}.cat-metric-del{margin-left:auto;border:0;background:transparent;color:var(--text-subtle);cursor:pointer;padding:3px;border-radius:5px;display:inline-flex}.cat-metric-del:hover{color:#ef4444;background:color-mix(in srgb,#ef4444 10%,transparent)}.cat-metric .cat-editable.mono{display:block;margin:5px 0 0;color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);padding:3px 7px;border-radius:5px}.cat-add-btn{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--border-strong);background:transparent;color:var(--text-muted);border-radius:var(--r-md);padding:9px 14px;cursor:pointer;font:inherit;font-size:13px;width:100%;justify-content:center}.cat-add-btn:hover{color:var(--accent);border-color:var(--accent)}.cat-metric-new{display:flex;flex-direction:column;gap:8px}.cat-new-actions{display:flex;justify-content:flex-end;gap:8px}.btn-sm{padding:5px 13px;font-size:13px}.db-caret{color:var(--text-subtle);margin-left:1px;transition:transform .18s ease,color .15s}.db-pill:hover .db-caret,.db-pill.open .db-caret{color:var(--brand-1)}.db-pill.open .db-caret{transform:rotate(180deg)}.src-pop{z-index:200;min-width:268px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:7px;animation:fadeIn .12s ease}.src-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle);padding:5px 9px 7px}.src-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer;padding:8px 9px;border-radius:9px;font:inherit;font-size:14px}.src-item:hover:not(:disabled){background:var(--surface-2)}.src-item:disabled{opacity:.55;cursor:default}.src-check{flex:0 0 16px;display:inline-flex;justify-content:center;color:var(--accent)}.src-glyph{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:inset 0 0 0 1px #ffffff2e}.src-tag{flex:0 0 auto;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7c3aed;background:color-mix(in srgb,#7c3aed 13%,transparent);border-radius:5px;padding:2px 6px}.src-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.src-row{display:flex;align-items:center;border-radius:9px}.src-row:hover{background:var(--surface-2)}.src-row.on .src-name{font-weight:700}.src-pick{flex:1 1 auto;display:flex;align-items:center;gap:9px;min-width:0;border:0;background:transparent;color:inherit;cursor:pointer;padding:8px 9px;font:inherit;font-size:14px;text-align:left}.src-pick:disabled{opacity:.55;cursor:default}.src-icon{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:28px;height:28px;margin-right:2px;border:0;background:transparent;color:var(--text-subtle);border-radius:7px;cursor:pointer}.src-row:hover .src-icon{display:inline-flex}.src-icon:hover{background:var(--surface-3);color:var(--text)}.src-del:hover{color:#ef4444;background:color-mix(in srgb,#ef4444 12%,transparent)}.src-locked{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:2px;color:var(--text-subtle);opacity:.5}.src-errdot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#ef4444}.src-sep{height:1px;background:var(--border);margin:6px 4px}.src-action{color:var(--accent);font-weight:500}.rg{display:flex;flex-direction:column;gap:10px}.rg-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:var(--text-muted)}.rg-leg{display:inline-flex;align-items:center;gap:5px}.rg-leg-line{width:18px;height:3px;border-radius:2px;display:inline-block}.rg-leg-fk{background:#3b82f6}.rg-leg-curated{background:#10b981}.rg-leg-inferred{background-image:repeating-linear-gradient(90deg,#fb923c 0 5px,transparent 5px 9px)}.rg-spacer{flex:1 1 auto}.rg-focus .dd-button{min-width:120px;padding:4px 10px;font-size:12.5px;border-radius:7px}.rg-clear,.rg-add-toggle{font:inherit;font-size:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:7px;padding:3px 9px;cursor:pointer}.rg-add-toggle:hover,.rg-clear:hover{border-color:var(--accent);color:var(--accent)}.rg-addedge{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.rg-addedge .dd-button{min-width:104px;padding:4px 9px;font-size:12.5px}.rg-svg{width:100%;aspect-ratio:760 / 470;height:auto;min-height:360px;border-radius:var(--r-md);box-shadow:0 1px 3px #080c1466,inset 0 0 0 1px #94a3b81f}.rg-svg .rg-edge,.rg-svg .rg-node{cursor:pointer}.rg-node-label{fill:#e2e8f0;font-size:11.5px;font-weight:600;font-family:var(--font-display);pointer-events:none;paint-order:stroke;stroke:#080c14e6;stroke-width:3.5px;stroke-linejoin:round}.rg-edge-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:11px 13px}.rg-edge-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-family:var(--font-display);font-size:14px;font-weight:600}.rg-edge-dot{width:9px;height:9px;border-radius:3px}.rg-arrow{color:var(--text-subtle)}.rg-edge-kind{font-size:11px;font-weight:500;color:var(--text-subtle);border:1px solid var(--border);border-radius:999px;padding:1px 8px;margin-left:auto}.rg-edge-desc{margin-top:6px;font-size:13px;color:var(--text-muted)}.rg-edge-actions{display:flex;gap:7px;margin-top:10px}.rg-reject{color:#ef4444}.rg-reject:hover{border-color:#ef4444;background:color-mix(in srgb,#ef4444 8%,transparent)}.cat-h-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cat-ai-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:999px;padding:5px 12px;cursor:pointer;transition:background .12s}.cat-ai-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 15%,transparent)}.cat-ai-btn:disabled{opacity:.6;cursor:default}.cat-drift-btn{margin-top:9px}.cw{display:flex;flex-direction:column;gap:15px;min-width:min(470px,82vw);flex:1;min-height:0;overflow-y:auto;margin-right:-22px;padding-right:22px}.cw-intro{margin:-2px 0 0;font-size:14px;color:var(--text-muted);line-height:1.5}.cw .cw-lbl{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:5px;display:block}.cw-block{display:flex;flex-direction:column;gap:11px;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg)}.cw-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle)}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-lbl{font-size:12px;color:var(--text-subtle);margin-right:1px}.cw-preset{font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px 11px;cursor:pointer;transition:all .14s}.cw-preset:hover{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.cw-paste-ok{font-weight:600;color:var(--ok);text-transform:none;letter-spacing:0}.cw-progress{display:flex;flex-direction:column;gap:7px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.cw-progress-bar{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.cw-progress-fill{height:100%;min-width:6px;background:var(--accent);border-radius:999px;transition:width .25s ease}.cw-progress-label{font-size:12.5px;color:var(--text-muted)}.cw-engines{display:flex;gap:12px}.cw-engine{flex:1;display:flex;align-items:center;gap:14px;min-width:0;border:1.5px solid var(--border);background:var(--surface);border-radius:15px;padding:14px 15px;cursor:pointer;text-align:left;transition:border-color .16s,box-shadow .16s,background .16s,transform .16s}.cw-engine:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 10px 24px -14px #0f172a66}.cw-engine.on{border-color:var(--eng, var(--accent));background:color-mix(in srgb,var(--eng, var(--accent)) 7%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--eng, var(--accent)) 16%,transparent)}.cw-engine-tile{flex:0 0 auto;width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(155deg,color-mix(in srgb,var(--tile) 78%,#fff 22%),var(--tile) 76%);box-shadow:inset 0 1px #ffffff47,inset 0 0 0 1px #ffffff1a,0 5px 12px -4px color-mix(in srgb,var(--tile) 55%,transparent);transition:transform .16s}.cw-engine:hover .cw-engine-tile{transform:scale(1.04)}.cw-engine-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.cw-engine-name{font-family:var(--font-display);font-weight:650;font-size:15.5px;letter-spacing:-.01em}.cw-engine-hint{font-size:11.5px;color:var(--text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-field{display:flex;flex-direction:column}.cw-input{font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 12px;outline:none;width:100%;box-sizing:border-box;transition:border-color .14s,box-shadow .14s}.cw-input::placeholder{color:var(--text-subtle)}.cw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.cw-row{display:flex;gap:10px}.cw-test{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:2px}.cw-test-btn{font:inherit;font-size:13px;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:999px;padding:6px 15px;cursor:pointer;transition:background .14s}.cw-test-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 16%,transparent)}.cw-test-btn:disabled{opacity:.5;cursor:default}.cw-ok{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:#10b981;background:color-mix(in srgb,#10b981 13%,transparent);border-radius:999px;padding:4px 11px}.cw-bad{font-size:12.5px;color:#ef4444}.cw-error{font-size:13px;color:#ef4444;background:color-mix(in srgb,#ef4444 10%,transparent);border-radius:9px;padding:9px 12px}.cw-note{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:var(--text-muted);margin:0;line-height:1.5;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px}.cw-note-ico{flex:0 0 auto;color:var(--accent);margin-top:1px;display:inline-flex}.cat-io{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}.cat-io-label{font-size:12.5px;color:var(--text-subtle);margin-right:auto}.cat-io-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 13px;cursor:pointer;text-decoration:none}.cat-io-btn:hover{border-color:var(--accent);color:var(--accent)}.cat{font-size:15px}.cat-h{font-size:13.5px}.cat-meta,.cat-domain{font-size:15px}.cat-stat{font-size:14px}.cat-stat-dialect{font-size:12px}.cat-health-title{font-size:15.5px}.cat-health-cap{font-size:13.5px}.cat-search,.cat-edit-input{font-size:15px}.cat-search{padding:9px 13px}.cat-hint{font-size:14px}.cat-empty-sm,.cat-saveerr,.cat-drift{font-size:14.5px}.cat-preview-out{font-size:13px}.cat-draft-head{font-size:15px}.cat-draft-loc b{font-size:14px}.cat-draft-loc span{font-size:11.5px}.cat-draft-sugg{font-size:14.5px}.cat-metric-name{font-size:16px}.cat-metric-desc{font-size:14.5px}.cat-syn{font-size:13px}.cat-table-name{font-size:16.5px}.cat-table-desc{font-size:14.5px}.cat-rows{font-size:13.5px}.cat-col{font-size:14.5px}.cat-col-type{font-size:13px}.cat-col-fk{font-size:13.5px}.cat-col-unit,.cat-col-unit-edit{font-size:12.5px}.cat-samples,.cat-chip,.cat-chip-add,.cat-chip-input,.cat-io-label{font-size:13px}.cat-metric-sql,.cat-edit-input.mono,.cat-editable.mono{font-size:13.5px}.user-pill{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.2;padding:0 8px}.user-name{font-size:14px;font-weight:600;color:var(--text)}.user-email{font-size:12px;color:var(--text-subtle)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:11px;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm)}.icon-btn:hover{color:var(--brand-1);border-color:var(--brand-border);background:var(--brand-soft)}.country-switch{display:inline-flex;align-items:center;gap:3px;height:40px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 1px 2px #0f172a0d}.country-opt{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid transparent;background:transparent;color:var(--text-subtle);border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:700;letter-spacing:.03em;transition:all .16s ease}.country-opt .country-flag{filter:saturate(.25) opacity(.55);transition:filter .16s ease}.country-opt:hover{color:var(--text);background:var(--surface)}.country-opt:hover .country-flag{filter:none}.country-opt.is-active{background:var(--surface);color:var(--brand-ink);border-color:var(--brand-border);box-shadow:0 1px 2px #0f172a14,0 0 0 3px var(--brand-soft)}.country-opt.is-active .country-flag{filter:none}.country-flag{display:block;flex:0 0 auto;border-radius:3px}.hr-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px 20px}.hr-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.hr-card-title{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0;color:var(--text)}.hr-card-action{display:inline-flex;gap:8px;align-items:center}.hr-field{display:flex;flex-direction:column;gap:6px;min-width:0}.hr-field-label{font-size:14.5px;font-weight:600;color:var(--text-muted);letter-spacing:0}.hr-field-help{font-size:14px;color:var(--text-subtle)}.hr-field-error{font-size:12.5px;color:var(--err)}.hr-input,.hr-textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 13px;font:inherit;font-size:15px;line-height:1.5;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.hr-input:focus,.hr-textarea:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.hr-input::placeholder,.hr-textarea::placeholder{color:var(--text-subtle)}.hr-input.has-error{border-color:var(--err)}.hr-textarea{resize:vertical;min-height:160px;font-family:inherit}.hr-placeholder{color:var(--text-subtle)}.dd-clear{color:var(--text-subtle);font-size:16px;padding:0 4px;cursor:pointer}.dd-clear:hover{color:var(--text)}.hr-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:13.5px;font-weight:600;letter-spacing:0;border:1px solid transparent}.hr-badge.tone-neutral{background:var(--surface-3);color:var(--text-muted)}.hr-badge.tone-brand{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand-border)}.hr-badge.tone-ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.hr-badge.tone-warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-border)}.hr-badge.tone-err{background:var(--err-soft);color:var(--err-ink);border-color:var(--err-border)}.hr-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--border);border-radius:999px;font-size:14px;font-weight:500;background:var(--surface);color:var(--text-muted)}.hr-pill.is-active{background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-ink)}.hr-spinner{display:inline-block;border:2px solid var(--border);border-top-color:var(--brand-1);border-radius:50%;animation:spin .72s linear infinite}.btn-spinner{display:inline-block;width:16px;height:16px;box-sizing:border-box;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:.85;animation:spin .72s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hr-empty{text-align:center;padding:48px 24px;color:var(--text-muted)}.hr-empty-title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text);margin-bottom:6px}.hr-empty-hint{font-size:14px;color:var(--text-muted);margin-bottom:14px}.hr-toast-host{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;gap:12px;z-index:9000;pointer-events:none}.hr-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;min-width:300px;max-width:410px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 32px -8px #0f172a38,0 2px 6px #0f172a0f;padding:14px 16px;animation:toastIn .24s cubic-bezier(.2,.8,.2,1)}.hr-toast-icon{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center}.hr-toast.tone-ok .hr-toast-icon{background:var(--sem-green-soft);color:var(--sem-green-ink)}.hr-toast.tone-err .hr-toast-icon{background:var(--sem-red-soft);color:var(--sem-red-ink)}.hr-toast.tone-warn .hr-toast-icon{background:var(--sem-amber-soft);color:var(--sem-amber-ink)}.hr-toast-body{flex:1;min-width:0}.hr-toast-title{font-weight:600;font-size:15px;color:var(--text);line-height:1.3}.hr-toast-msg{font-size:14px;color:var(--text-muted);margin-top:2px;line-height:1.4}@keyframes toastIn{0%{transform:translate(20px);opacity:0}to{transform:none;opacity:1}}.queue-table{width:100%;border-collapse:separate;border-spacing:0}.queue-table thead th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-subtle);padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.queue-table thead th:first-child{border-top-left-radius:var(--r-lg)}.queue-table thead th:last-child{border-top-right-radius:var(--r-lg)}.queue-table tbody tr{transition:background .12s}.queue-table tbody tr:hover{background:var(--surface-2)}.queue-table tbody td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:14.5px;color:var(--text);vertical-align:top}.queue-table tbody tr:last-child td{border-bottom:none}.queue-table .qt-snippet{color:var(--text-muted);max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative}.login-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:32px;position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-title{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.12}.login-tag{font-size:14px;color:var(--text-muted);margin-top:1px}.login-form{display:flex;flex-direction:column;gap:14px;margin-top:8px}.login-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.login-divider{text-align:center;color:var(--text-subtle);font-size:12.5px;margin:4px 0;position:relative}.login-divider:before,.login-divider:after{content:"";position:absolute;top:50%;width:35%;border-top:1px solid var(--border)}.login-divider:before{left:0}.login-divider:after{right:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 980px){.detail-grid{grid-template-columns:1fr}}.detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.detail-section{margin-bottom:14px;font-size:14.5px;line-height:1.55}.detail-section strong{color:var(--text);margin-right:6px}.detail-divider{font-size:13.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle);margin:18px 0 8px;font-weight:700}.detail-quote{margin:0;padding:0;background:none;border:none;font-family:inherit;font-size:14.5px;line-height:1.6;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;justify-content:space-between}.detail-actions-group{display:flex;gap:8px;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-muted);text-decoration:none;padding:6px 10px;border-radius:8px;transition:background .12s,color .12s}.back-link:hover{background:var(--surface-2);color:var(--text)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-sm)}.kpi-label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:8px}.kpi-value{font-family:var(--font-display);font-size:30px;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.05}.kpi-sub{font-size:14px;color:var(--text-muted);margin-top:6px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 980px){.chart-grid{grid-template-columns:1fr}}.chart-wide{grid-column:1 / -1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 2px 18px;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.03em;margin:0;color:var(--text)}.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters-card{padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:16px;box-shadow:var(--shadow-sm)}.filters-search{position:relative;display:flex;align-items:center;margin-bottom:14px}.filters-search-icon{position:absolute;left:14px;color:var(--text-subtle);pointer-events:none}.filters-search-input{width:100%;height:44px;border:1px solid var(--border);border-radius:var(--r-md);padding:0 38px 0 42px;font:inherit;font-size:15px;color:var(--text);background:var(--surface-2);transition:border-color .15s,box-shadow .15s,background .15s}.filters-search-input::placeholder{color:var(--text-subtle)}.filters-search-input:focus{outline:none;background:var(--surface);border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.filters-search-clear{position:absolute;right:10px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:var(--surface-3);color:var(--text-subtle);border-radius:50%;font-size:17px;line-height:1;cursor:pointer;transition:background .15s,color .15s}.filters-search-clear:hover{background:var(--border);color:var(--text)}.filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.filters-row .hr-field{flex:1 1 220px;min-width:0;flex-direction:row;align-items:center;gap:9px}.filters-row .hr-field-label{flex:0 0 auto;margin:0;white-space:nowrap;font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-subtle)}.filters-row .dropdown{flex:1 1 auto;min-width:0}.filters-clear{flex:0 0 auto;margin-left:auto;border:none;background:none;color:var(--text-subtle);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;padding:6px 2px;transition:color .14s}.filters-clear:hover{color:var(--err)}@media (max-width: 680px){.filters-row .hr-field{flex-basis:100%}}.shell{width:100%}@media (max-width: 900px){.sidebar{display:flex!important;width:200px;flex-basis:200px}}@media (max-width: 600px){.sidebar{display:none!important}}.navrow-btn,.navrow-btn:hover{text-decoration:none}.sidebar{padding:18px 8px}.navrow-btn{padding:9px 12px}.navrow-label{font-size:14px}.page-actions{row-gap:8px}a.btn,.brand{text-decoration:none}.shell{animation:fadeUp .45s cubic-bezier(.2,.7,.2,1) both}.page-title{font-size:clamp(28px,3.5vw,38px);font-weight:600;letter-spacing:-.04em;padding:5px 0;line-height:1.04}.kpi-card{background:var(--scalar-grad);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm);position:relative;transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease);animation:widgetIn .5s var(--ease-spring) both;animation-delay:calc(min(var(--i, 0),8)*45ms)}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-3px)}.kpi-label{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:10px}.kpi-value{font-family:var(--font-display);font-size:clamp(28px,3.2vw,42px);font-weight:600;letter-spacing:-.035em;color:var(--brand-ink);line-height:1.02}.kpi-sub{font-size:12.5px;color:var(--text-muted);margin-top:8px}.hr-card{transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease);animation:widgetIn .5s var(--ease-spring) both;animation-delay:calc(min(var(--i, 0),8)*45ms)}.hr-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.detail-grid .hr-card{animation-delay:calc(min(var(--i, 0),8)*60ms)}.bulk-bar{position:sticky;top:calc(var(--topbar-h) + 6px);z-index:30;display:flex;align-items:center;gap:14px;background:var(--glass-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--brand-border);border-radius:var(--r-md);padding:12px 18px;margin-bottom:16px;box-shadow:var(--shadow-md);animation:bulkBarIn .2s cubic-bezier(.2,.7,.2,1)}.bulk-bar:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--grad);border-radius:4px 4px 0 0}.bulk-bar-count{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--brand-ink);letter-spacing:-.01em}.bulk-bar-hint{color:var(--text-muted);font-size:14px}.bulk-bar-actions{margin-left:auto;display:inline-flex;gap:8px}@keyframes bulkBarIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.cbx-cell{width:38px;padding-right:0!important}.cbx{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:background .12s,border-color .12s;flex:0 0 auto}.cbx:hover{border-color:var(--brand-1)}.cbx.on{background:var(--brand-1);border-color:var(--brand-1)}.cbx.on svg{color:#fff}.cbx.partial{background:var(--brand-1);border-color:var(--brand-1)}.cbx.partial:after{content:"";width:8px;height:2px;background:#fff;border-radius:1px}.queue-table tbody tr.is-selected,.queue-table tbody tr.is-selected:hover{background:var(--brand-soft)}.queue-wrap{--head-h: 48px;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.queue-wrap .queue-table thead th{height:var(--head-h);padding:0 14px;vertical-align:middle;background:var(--surface-2);border-bottom:1px solid var(--border)}.queue-wrap .queue-table thead th:first-child{border-top-left-radius:0}.queue-wrap .queue-table thead th:last-child{border-top-right-radius:0}.page-eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:2px}.page-eyebrow:before{content:"";display:inline-block;width:6px;height:6px;border-radius:2px;background:var(--brand-1);margin-right:8px;transform:translateY(-1px)}.dropdown{position:relative}.dropdown .dd-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:100%}.sidebar-list li{list-style:none}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.detail-divider{display:flex;align-items:center;gap:8px}.detail-divider:before{content:"";width:6px;height:6px;border-radius:2px;background:var(--brand-1);flex:0 0 auto}.detail-quote{animation:fadeIn .3s ease}.info-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px;background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);font-size:13px;color:var(--text-muted)}.info-row strong{color:var(--text);font-weight:600}.shell{padding:26px 30px 90px}@media (max-width: 900px){.shell{padding:18px 16px 60px}}.queue-table tbody td{font-size:14px;padding:11px 14px}.queue-table thead th{font-size:11.5px;letter-spacing:.08em}.qt-tmpl{font-family:var(--font-display);font-weight:600;font-size:13.5px;color:var(--brand-ink)}.qt-rating-cell{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:13.5px;color:var(--text)}.qt-rating-cell.low{color:var(--err)}.qt-rating-cell svg{color:var(--star)}.qt-rating-cell.low svg{color:var(--star)}.btn-mini{font-size:13px;font-weight:600;padding:5px 11px;border-radius:8px}.btn-mini.btn-primary{padding:5px 11px}:root[data-theme=dark] .recharts-cartesian-grid line{stroke:var(--chart-grid)}.semafor-dot{display:inline-block;border-radius:50%;flex:0 0 auto}.semafor-dot.is-red,.semafor-card.is-red .semafor-dot.is-current,.focus-answer-head.is-red .semafor-dot.is-current,.semafor-badge.is-red .semafor-dot.is-current{background:var(--err);box-shadow:0 0 0 3px var(--err-soft)}.semafor-dot.is-yellow,.semafor-card.is-yellow .semafor-dot.is-current,.focus-answer-head.is-yellow .semafor-dot.is-current,.semafor-badge.is-yellow .semafor-dot.is-current{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.semafor-dot.is-green,.semafor-card.is-green .semafor-dot.is-current,.focus-answer-head.is-green .semafor-dot.is-current,.semafor-badge.is-green .semafor-dot.is-current{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.semafor-dot.is-current{width:9px;height:9px}.semafor-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;font-size:13px;font-weight:600}.semafor-badge.is-red{background:var(--err-soft);color:var(--err-ink)}.semafor-badge.is-yellow{background:var(--warn-soft);color:var(--warn)}.semafor-badge.is-green{background:var(--ok-soft);color:var(--ok)}.semafor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}@media (max-width: 800px){.semafor-grid{grid-template-columns:1fr}}.semafor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease);animation:widgetIn .4s var(--ease-spring) both}.semafor-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.semafor-card.is-red:before{background:var(--err)}.semafor-card.is-yellow:before{background:var(--warn)}.semafor-card.is-green:before{background:var(--ok)}.semafor-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.semafor-card-head{display:flex;align-items:center;gap:8px}.semafor-card-label{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.semafor-card-count{font-family:var(--font-display);font-size:38px;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--text)}.semafor-card.is-red .semafor-card-count{color:var(--err-ink)}.semafor-card.is-yellow .semafor-card-count{color:var(--warn)}.semafor-card.is-green .semafor-card-count{color:var(--ok)}.semafor-card-hint{font-size:13px;color:var(--text-subtle);line-height:1.45;min-height:36px}.semafor-card-btn{margin-top:4px;justify-content:center}.semafor-card-link{margin-top:8px;border:none;background:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-subtle);text-decoration:underline;text-underline-offset:3px;transition:color .14s}.semafor-card-link:hover:not(:disabled){color:var(--brand-ink)}.semafor-card-link:disabled{opacity:.45;cursor:default;text-decoration:none}.attention-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--brand-soft);border:1px solid var(--brand-border);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:4px}.attention-title{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--brand-ink)}.attention-sub{font-size:13.5px;margin-top:2px}.queue-list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:11px 14px 11px 18px;background:var(--surface-2);border-bottom:1px solid var(--border)}.queue-list-title{font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-subtle)}.queue-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.queue-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);background:var(--surface);border-radius:999px;font:inherit;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.queue-chip:hover{background:var(--surface-2);color:var(--text)}.queue-chip.is-active{background:var(--brand-soft);border-color:var(--brand-1);color:var(--brand-ink)}.queue-chip-n{font-variant-numeric:tabular-nums;font-weight:700;opacity:.75}.queue-chip-red.is-active{background:var(--err-soft);border-color:var(--err);color:var(--sem-red-ink)}.queue-chip-yellow.is-active{background:var(--warn-soft);border-color:var(--warn);color:var(--sem-amber-ink)}.queue-chip-green.is-active{background:var(--ok-soft);border-color:var(--ok);color:var(--sem-green-ink)}.queue-list-empty{padding:22px 18px;font-size:15px;text-align:center}.queue-list-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);background:transparent;padding:11px 18px;cursor:pointer;font:inherit;transition:background .12s}.queue-list-row:last-child{border-bottom:none}.queue-list-row:hover{background:var(--surface-2)}.queue-list-tmpl{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--text);flex:0 0 210px;min-width:0;overflow:visible;white-space:nowrap}.queue-list-rating{display:inline-flex;align-items:center;gap:4px;font-size:14.5px;font-weight:600;color:var(--text-muted);flex:0 0 auto}.queue-list-rating svg{color:var(--star)}.queue-list-rating.low{color:var(--err)}.queue-list-rating.low svg{color:var(--star)}.queue-list-date{flex:0 0 auto;font-size:13.5px;color:var(--text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums}.queue-list-snippet{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;color:var(--text-muted)}.focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:24px;overflow-y:auto;animation:fadeIn .15s ease}.focus-shell{width:min(1180px,100%);margin:auto;display:flex;flex-direction:column;gap:16px}.focus-top{display:flex;align-items:center;gap:16px}.focus-exit{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:10px;padding:7px 12px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s}.focus-exit:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.focus-progress{flex:1;display:flex;align-items:center;gap:12px}.focus-progress-bar{flex:1;height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}.focus-progress-fill{height:100%;background-image:var(--grad);border-radius:999px;transition:width .3s var(--ease)}.focus-progress-label{font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--text-muted);flex:0 0 auto}.focus-card{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;min-height:440px;max-height:calc(100vh - 132px)}@media (max-width: 860px){.focus-card{grid-template-columns:1fr}}.focus-review{padding:22px 24px;border-right:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden}@media (max-width: 860px){.focus-review{border-right:none;border-bottom:1px solid var(--border)}}.focus-review-head{display:flex;align-items:center;justify-content:flex-start;gap:12px}.focus-review-date{margin-left:auto;font-size:13.5px;font-weight:600;color:var(--text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums}.focus-review-body{display:flex;flex-direction:column;gap:12px;font-size:15px;line-height:1.55;color:var(--text);overflow-y:auto;min-height:0;flex:1;overflow-wrap:anywhere}.focus-review-body p{margin:0}.focus-review-body strong{color:var(--text);margin-right:4px}.focus-answer{padding:22px 24px;display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto}.focus-answer-head{display:flex;align-items:center;gap:9px}.focus-answer-status{font-weight:700;font-size:14.5px}.focus-answer-head.is-red .focus-answer-status{color:var(--err-ink)}.focus-answer-head.is-yellow .focus-answer-status{color:var(--warn)}.focus-answer-head.is-green .focus-answer-status{color:var(--ok)}.focus-answer-tmpl{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--text-subtle);background:var(--surface-3);padding:3px 9px;border-radius:999px}.focus-answer-hint{margin:-2px 0 4px}.focus-textarea{flex:1;min-height:150px;border:1px solid var(--border);border-radius:var(--r-md);padding:13px 15px;font:inherit;font-size:15px;line-height:1.55;color:var(--text);background:var(--surface);resize:vertical;transition:border-color .15s,box-shadow .15s}.focus-textarea:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.focus-notes{font-size:15px}.focus-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.focus-actions-main{display:flex;align-items:center;gap:8px;margin-left:auto}.focus-kbd{font-family:inherit;font-size:11px;font-weight:600;background:#ffffff38;padding:1px 6px;border-radius:5px;margin-left:4px}.focus-done{margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px}.focus-done-check{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin-bottom:8px}.focus-done h2{font-family:var(--font-display);font-size:26px;font-weight:600;margin:0}.rev-table td{vertical-align:top}.rev-row{cursor:pointer}.rev-date{white-space:nowrap;color:var(--text-muted);font-size:14px;font-variant-numeric:tabular-nums}.rev-snippet{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:15px}.rev-src{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.03em;padding:1px 6px;border-radius:5px;margin-right:7px;vertical-align:middle}.rev-src-ai{background:var(--brand-soft);color:var(--brand-ink)}.rev-src-team{background:var(--surface-3);color:var(--text-muted)}.rev-expand td{background:var(--surface-2);padding:0;white-space:normal}.rev-expand-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:16px 18px}.rev-expand-grid>div{min-width:0}.rev-expand-grid>div:first-child{padding-right:28px}.rev-expand-grid>div:last-child{padding-left:28px;border-left:1px solid var(--border)}@media (max-width: 720px){.rev-expand-grid{grid-template-columns:minmax(0,1fr)}.rev-expand-grid>div:first-child{padding-right:0}.rev-expand-grid>div:last-child{padding-left:0;border-left:none}}.rev-expand-grid p{margin:0 0 8px;font-size:14px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.rev-expand-label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:10px}.rev-expand-label-row{display:flex;align-items:center;gap:12px}.rev-expand-label-row>span{flex:0 0 auto}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;font-size:14.5px;color:var(--text-muted)}.pager button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:8px;width:32px;height:32px;cursor:pointer;color:var(--text-muted);transition:all .15s}.pager button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.pager button:disabled{opacity:.4;cursor:default}.focus-answer-tools{display:flex;flex-direction:column;align-items:stretch;gap:9px}.focus-answer-tools .focus-answer-hint{margin:0}.focus-tmpl-picker{flex:0 0 auto}:root{--sem-red: #ef4444;--sem-red-soft: #fef2f2;--sem-red-ink: #dc2626;--sem-amber: #f59e0b;--sem-amber-soft: #fff7e6;--sem-amber-ink: #d97706;--sem-green: #22c55e;--sem-green-soft: #f0fdf4;--sem-green-ink: #15803d}:root[data-theme=dark]{--sem-red-soft: #2a1518;--sem-amber-soft: #2a2110;--sem-green-soft: #112318;--sem-amber-ink: #f59e0b}.semafor-dot.is-red,.semafor-card.is-red .semafor-dot.is-current,.focus-answer-head.is-red .semafor-dot.is-current,.semafor-badge.is-red .semafor-dot.is-current{background:var(--sem-red);box-shadow:0 0 0 3px var(--sem-red-soft)}.semafor-dot.is-yellow,.semafor-card.is-yellow .semafor-dot.is-current,.focus-answer-head.is-yellow .semafor-dot.is-current,.semafor-badge.is-yellow .semafor-dot.is-current{background:var(--sem-amber);box-shadow:0 0 0 3px var(--sem-amber-soft)}.semafor-dot.is-green,.semafor-card.is-green .semafor-dot.is-current,.focus-answer-head.is-green .semafor-dot.is-current,.semafor-badge.is-green .semafor-dot.is-current{background:var(--sem-green);box-shadow:0 0 0 3px var(--sem-green-soft)}.semafor-badge.is-red{background:var(--sem-red-soft);color:var(--sem-red-ink)}.semafor-badge.is-yellow{background:var(--sem-amber-soft);color:var(--sem-amber-ink)}.semafor-badge.is-green{background:var(--sem-green-soft);color:var(--sem-green-ink)}.semafor-card.is-red:before{background:var(--sem-red)}.semafor-card.is-yellow:before{background:var(--sem-amber)}.semafor-card.is-green:before{background:var(--sem-green)}.semafor-card.is-red .semafor-card-count{color:var(--sem-red-ink)}.semafor-card.is-yellow .semafor-card-count{color:var(--sem-amber-ink)}.semafor-card.is-green .semafor-card-count{color:var(--sem-green-ink)}.focus-answer-head.is-red .focus-answer-status{color:var(--sem-red-ink)}.focus-answer-head.is-yellow .focus-answer-status{color:var(--sem-amber-ink)}.focus-answer-head.is-green .focus-answer-status{color:var(--sem-green-ink)}.rev-scroll{overflow-x:auto;overflow-y:visible}.rev-table{width:100%;min-width:1072px;table-layout:fixed}.rev-table thead th:nth-child(1){width:108px}.rev-table thead th:nth-child(2){width:92px}.rev-table thead th:nth-child(3){width:110px}.rev-table thead th:nth-child(4){width:118px}.rev-table thead th:nth-child(7){width:192px}.rev-snippet{max-width:340px}.rev-skel-bar{display:block;height:13px;margin:8px 0 7px;max-width:100%}.th-sortable{padding:0!important}.th-sort-btn{display:inline-flex;align-items:center;gap:5px;width:100%;height:100%;padding:12px 14px;border:none;background:transparent;cursor:pointer;font:inherit;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-subtle);transition:color .14s}.th-sort-btn:hover{color:var(--text-muted)}.th-sortable.is-active .th-sort-btn{color:var(--brand-ink)}.th-sort-arrow{opacity:0;transition:opacity .14s,transform .14s;flex:0 0 auto}.th-sort-btn:hover .th-sort-arrow{opacity:.4}.th-sort-arrow.is-active{opacity:1}.th-sort-arrow.is-up{transform:rotate(180deg)}.rev-source-tag{display:inline-block;font-size:13px;font-weight:600;color:var(--text-muted);background:var(--surface-3);padding:2px 9px;border-radius:999px;white-space:nowrap}.kpi-link{text-decoration:none;display:block;cursor:pointer}.kpi-link:hover{border-color:var(--brand-border)}.kpi-cta{margin-top:10px;font-size:14.5px;font-weight:600;color:var(--brand-ink)}.kpi-cta-done{display:inline-flex;align-items:center;gap:6px;color:var(--sem-green-ink)}.sync-pill{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%}.sync-pill.is-synced{background:var(--sem-green-soft);color:var(--sem-green-ink)}.sync-pill.is-waiting{background:var(--brand-soft)}.tpl-intro{display:flex;align-items:flex-start;gap:10px;background:var(--brand-soft);border:1px solid var(--brand-border);border-radius:var(--r-md);padding:12px 16px;margin-bottom:18px;font-size:14px;line-height:1.5;color:var(--text)}.tpl-intro svg{color:var(--brand-ink);flex:0 0 auto;margin-top:2px}.tpl-desc{margin:4px 0 0;font-size:14.5px;color:var(--text-muted)}.tpl-variants{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.tpl-variant{border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;background:var(--surface-2);transition:opacity .15s}.tpl-variant.is-inactive{opacity:.55}.tpl-variant-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.tpl-variant-num{font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle)}.tpl-variant-actions{margin-left:auto;display:inline-flex;gap:4px}.tpl-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all .14s}.tpl-icon-btn:hover{color:var(--brand-ink);border-color:var(--brand-border);background:var(--brand-soft)}.tpl-icon-btn.is-del:hover{color:var(--err);border-color:var(--err-border);background:var(--err-soft)}.tpl-textarea{width:100%;border:1px solid var(--border);border-radius:9px;padding:11px 13px;font:inherit;font-size:14.5px;line-height:1.55;color:var(--text);background:var(--surface);resize:vertical;transition:border-color .15s,box-shadow .15s}.tpl-textarea:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.tpl-variant-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.hr-badge{border:none;font-weight:600}.semafor-badge,.dash-group-count,.brief-count,.qa-q,.badge{border:none}.hr-tip-anchor{display:inline-flex}.hr-tip{transform:translate(-50%,-100%);background:var(--tooltip-bg);color:#fff;font-size:12.5px;font-weight:500;line-height:1.4;padding:6px 10px;border-radius:8px;box-shadow:var(--shadow-lg);white-space:nowrap;z-index:9999;pointer-events:none;animation:tipIn .12s ease;max-width:280px;white-space:normal}.hr-tip:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--tooltip-bg)}@keyframes tipIn{0%{opacity:0;transform:translate(-50%,calc(-100% + 3px))}to{opacity:1;transform:translate(-50%,-100%)}}.hr-tip.is-below{transform:translate(-50%);animation:tipInBelow .12s ease}.hr-tip.is-below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--tooltip-bg)}@keyframes tipInBelow{0%{opacity:0;transform:translate(-50%,-3px)}to{opacity:1;transform:translate(-50%)}}.kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.kpi-head .kpi-label{margin:0}.kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--surface-3);color:var(--text-muted);flex:0 0 auto}.kpi-accent{background:var(--brand-soft);border-color:var(--brand-border)}.kpi-accent .kpi-icon{background:var(--brand-1);color:#fff;box-shadow:var(--shadow-brand)}.kpi-accent .kpi-value{color:var(--brand-1)}.kpi-accent .kpi-cta{color:var(--brand-ink)}.kpi-sub{line-height:1.5}.tpl-chip{display:inline-flex;align-items:center;gap:6px;font-weight:600;border-radius:999px;background:color-mix(in srgb,var(--tc) 14%,transparent);color:var(--tc);white-space:nowrap;line-height:1.2}.tpl-chip svg{flex:0 0 auto}.tpl-chip-md{font-size:13px;padding:5px 12px 5px 9px}.tpl-chip-sm{font-size:13px;padding:2px 9px 2px 7px}.tpl-card-title{display:flex;align-items:flex-start;gap:12px}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--tc) 15%,transparent);color:var(--tc);flex:0 0 auto}.count-badge{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:var(--text-muted)}.count-badge-num{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--brand-ink);background:var(--brand-soft);border:1px solid var(--brand-border);border-radius:999px;padding:3px 13px;line-height:1.25}.sync-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.sync-last{font-size:13.5px;color:var(--text-subtle);white-space:nowrap;min-height:1.2em}.queue-head-actions{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;justify-content:flex-end}.focus-answer-tools-actions{display:flex;align-items:center;gap:8px}.focus-answer-tools-actions .focus-tmpl-picker{flex:1;min-width:0}.rev-edit{display:flex;flex-direction:column;gap:10px}.rev-edit-textarea{width:100%;border:1px solid var(--border);border-radius:var(--r-md);padding:11px 13px;font:inherit;font-size:14.5px;line-height:1.55;color:var(--text);background:var(--surface);resize:vertical;min-height:140px}.rev-edit-textarea:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px var(--brand-soft)}.rev-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px;flex-wrap:wrap}
