:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #fbfbfd;--surface-3: #f3f4f8;--ink: #14161a;--ink-2: #4a505a;--ink-3: #858d9a;--line: #e7e9ee;--line-2: #eef0f4;--brand: #2f5bea;--brand-ink: #1c3fb0;--brand-wash: #eef2fe;--brand-focus: rgba(47, 91, 234, .12);--brand-ring: rgba(47, 91, 234, .22);--brand-btn-ink: #ffffff;--accent: #0fa37f;--accent-wash: #eafaf4;--accent-line: #c4ecdd;--danger: #d8453b;--danger-wash: #fff3f2;--danger-line: #f0c4c0;--warn-bg: #fff7e6;--warn-line: #f0d8a0;--overlay-bg: rgba(20, 22, 26, .5);--table-stripe: rgba(0, 0, 0, .018);--table-hover: var(--brand-wash);--table-totals-bg: #f3f5fb;--table-totals-ink: var(--brand-ink);--topbar-bg: rgba(255, 255, 255, .72);--topbar-blur: saturate(180%) blur(10px);--body-gradient-a: radial-gradient(1200px 600px at 80% -10%, #eef2fe 0%, rgba(238,242,254,0) 55%);--body-gradient-b: radial-gradient(900px 500px at -10% 0%, #eefaf6 0%, rgba(238,250,246,0) 50%);--code-bg: #0f1320;--code-ink: #cdd6f4;--code-line: #1c2030;--chart-1: #2f5bea;--chart-2: #0fa37f;--chart-3: #f59e0b;--chart-4: #8b5cf6;--chart-5: #ef4444;--chart-6: #06b6d4;--chart-7: #ec4899;--chart-8: #84cc16;--font-sans: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display: "DM Serif Display", Georgia, "Times New Roman", serif;--sans: var(--font-sans);--mono: var(--font-mono);--radius-xs: 6px;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(20, 22, 26, .04), 0 1px 3px rgba(20, 22, 26, .06);--shadow-md: 0 4px 14px rgba(20, 22, 26, .06), 0 2px 6px rgba(20, 22, 26, .05);--shadow-lg: 0 18px 50px rgba(20, 22, 26, .1), 0 6px 18px rgba(20, 22, 26, .06);--density-topbar-v: 18px;--density-content-gap: 24px;--density-widget-head-v: 12px;--density-widget-head-h: 14px;--density-widget-body-v: 14px;--density-widget-body-h: 14px;--density-kpi-v: 18px;--density-cell-v: 11px;--density-cell-h: 14px;--density-db-gap: 20px}[data-density=compact]{--density-topbar-v: 12px;--density-content-gap: 16px;--density-widget-head-v: 8px;--density-widget-head-h: 12px;--density-widget-body-v: 10px;--density-widget-body-h: 12px;--density-kpi-v: 12px;--density-cell-v: 7px;--density-cell-h: 12px;--density-db-gap: 12px}[data-theme=terminal]{--bg: #080b12;--surface: #0d1117;--surface-2: #0f1621;--surface-3: #141c2a;--ink: #e2e8f0;--ink-2: #94a3b8;--ink-3: #475569;--line: #1e2d3d;--line-2: #162030;--brand: #00df82;--brand-ink: #00b868;--brand-wash: rgba(0, 223, 130, .1);--brand-focus: rgba(0, 223, 130, .15);--brand-ring: rgba(0, 223, 130, .28);--brand-btn-ink: #080b12;--accent: #38bdf8;--accent-wash: rgba(56, 189, 248, .12);--accent-line: rgba(56, 189, 248, .3);--danger: #fb7185;--danger-wash: rgba(251, 113, 133, .12);--danger-line: rgba(251, 113, 133, .3);--warn-bg: rgba(251, 191, 36, .1);--warn-line: rgba(251, 191, 36, .3);--overlay-bg: rgba(0, 0, 0, .8);--table-stripe: rgba(255, 255, 255, .025);--table-hover: rgba(0, 223, 130, .07);--table-totals-bg: #060a0f;--table-totals-ink: #00df82;--topbar-bg: rgba(8, 11, 18, .94);--topbar-blur: saturate(120%) blur(12px);--body-gradient-a: none;--body-gradient-b: none;--code-bg: #030508;--code-ink: #00df82;--code-line: #0a1510;--chart-1: #00df82;--chart-2: #38bdf8;--chart-3: #fbbf24;--chart-4: #a78bfa;--chart-5: #fb7185;--chart-6: #34d399;--chart-7: #f472b6;--chart-8: #60a5fa;--font-sans: "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-mono: "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display: "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: var(--font-sans);--mono: var(--font-mono);--radius-xs: 2px;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .6), 0 0 0 1px rgba(0, 223, 130, .04);--shadow-md: 0 4px 14px rgba(0, 0, 0, .75), 0 1px 4px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .85), 0 0 40px rgba(0, 223, 130, .04)}[data-theme=terminal] body{background-image:linear-gradient(rgba(0,223,130,.015) 1px,transparent 1px);background-size:100% 20px}[data-theme=terminal] .brand-mark{background:linear-gradient(150deg,#00b868,#00df82 60%,#00df82);box-shadow:0 0 20px #00df8259,0 4px 8px #0009;border:1px solid rgba(0,223,130,.3);font-family:var(--font-mono);font-size:13px;letter-spacing:0}[data-theme=terminal] .main-nav{border-color:var(--line)}[data-theme=terminal] .nav-tab.active{color:var(--brand);text-shadow:0 0 8px rgba(0,223,130,.5)}[data-theme=terminal] .status-dot.ready{box-shadow:0 0 0 3px #00df8233,0 0 12px #00df8266}[data-theme=hospitality]{--bg: #fbf7f3;--surface: #ffffff;--surface-2: #fdf9f5;--surface-3: #f5ede5;--ink: #1c1410;--ink-2: #5c4a3e;--ink-3: #9b8b81;--line: #e8dbd4;--line-2: #f0e8e2;--brand: #c0614a;--brand-ink: #a04f3a;--brand-wash: rgba(192, 97, 74, .08);--brand-focus: rgba(192, 97, 74, .12);--brand-ring: rgba(192, 97, 74, .24);--brand-btn-ink: #ffffff;--accent: #6a9e5e;--danger: #b83a2d;--warn-bg: #fef9ec;--warn-line: #edd9a0;--table-stripe: rgba(92, 74, 62, .03);--table-hover: rgba(192, 97, 74, .06);--table-totals-bg: #f5ede5;--table-totals-ink: var(--brand-ink);--topbar-bg: rgba(255, 255, 255, .85);--topbar-blur: saturate(150%) blur(12px);--body-gradient-a: radial-gradient(1200px 600px at 80% -10%, rgba(192, 97, 74, .05) 0%, rgba(192, 97, 74, 0) 55%);--body-gradient-b: radial-gradient(900px 500px at -10% 0%, rgba(106, 158, 94, .06) 0%, rgba(106, 158, 94, 0) 50%);--code-bg: #1c1410;--code-ink: #f0d4c4;--code-line: #2e2018;--chart-1: #c0614a;--chart-2: #6a9e5e;--chart-3: #c9923a;--chart-4: #7c6497;--chart-5: #e06c42;--chart-6: #4a8a7a;--chart-7: #b05a78;--chart-8: #8a9e4a;--font-sans: "Lato", "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--font-display: "Cormorant Garamond", "Playfair Display", Georgia, serif;--sans: var(--font-sans);--mono: var(--font-mono);--radius-xs: 5px;--radius-sm: 9px;--radius: 12px;--radius-lg: 18px;--shadow-sm: 0 1px 3px rgba(28, 20, 16, .07), 0 1px 2px rgba(28, 20, 16, .1);--shadow-md: 0 4px 16px rgba(28, 20, 16, .08), 0 2px 6px rgba(28, 20, 16, .07);--shadow-lg: 0 20px 54px rgba(28, 20, 16, .12), 0 6px 20px rgba(28, 20, 16, .08)}[data-theme=hospitality] .db-title,[data-theme=hospitality] .report-title,[data-theme=hospitality] .empty-state h2,[data-theme=hospitality] .db-empty h2{font-style:italic;letter-spacing:-.01em}[data-theme=hospitality] .brand-mark{background:linear-gradient(150deg,#d4735a,#c0614a 60%,#a04f3a);box-shadow:0 4px 14px #c0614a59}[data-theme=hospitality] .topbar{border-bottom-color:var(--line)}[data-theme=hospitality] .report-table tbody tr:hover td{background:#c0614a0d}[data-theme=midnight]{--bg: #0c0b14;--surface: #13111e;--surface-2: #18162a;--surface-3: #1e1b34;--ink: #f0eeff;--ink-2: #9490b8;--ink-3: #524e6e;--line: #2a2640;--line-2: #221f38;--brand: #7c3aed;--brand-ink: #6d28d9;--brand-wash: rgba(124, 58, 237, .12);--brand-focus: rgba(124, 58, 237, .18);--brand-ring: rgba(124, 58, 237, .3);--brand-btn-ink: #ffffff;--accent: #10b981;--accent-wash: rgba(16, 185, 129, .12);--accent-line: rgba(16, 185, 129, .3);--danger: #ef4444;--danger-wash: rgba(239, 68, 68, .12);--danger-line: rgba(239, 68, 68, .3);--warn-bg: rgba(234, 179, 8, .1);--warn-line: rgba(234, 179, 8, .25);--overlay-bg: rgba(0, 0, 0, .82);--table-stripe: rgba(255, 255, 255, .028);--table-hover: rgba(124, 58, 237, .09);--table-totals-bg: #100e1c;--table-totals-ink: #a78bfa;--topbar-bg: rgba(12, 11, 20, .9);--topbar-blur: saturate(160%) blur(16px);--body-gradient-a: radial-gradient(1200px 600px at 80% -10%, rgba(124, 58, 237, .08) 0%, rgba(124, 58, 237, 0) 55%);--body-gradient-b: radial-gradient(900px 500px at -10% 0%, rgba(16, 185, 129, .05) 0%, rgba(16, 185, 129, 0) 50%);--code-bg: #08071a;--code-ink: #a78bfa;--code-line: #14113a;--chart-1: #7c3aed;--chart-2: #10b981;--chart-3: #f59e0b;--chart-4: #ec4899;--chart-5: #3b82f6;--chart-6: #a78bfa;--chart-7: #34d399;--chart-8: #f472b6;--font-sans: "DM Sans", "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--font-display: "Space Grotesk", "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--sans: var(--font-sans);--mono: var(--font-mono);--radius-xs: 6px;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .6), 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .75), 0 0 60px rgba(124, 58, 237, .07)}[data-theme=midnight] .brand-mark{background:linear-gradient(150deg,#9d5af5,#7c3aed 60%,#6d28d9);box-shadow:0 4px 16px #7c3aed73,0 0 30px #7c3aed26}[data-theme=midnight] .generate-btn{background:linear-gradient(150deg,#9d5af5,#7c3aed 70%);box-shadow:0 6px 20px #7c3aed73}[data-theme=midnight] .generate-btn:hover:not(:disabled){box-shadow:0 8px 28px #7c3aed99}[data-theme=midnight] .nav-tab.active{color:#a78bfa}[data-theme=midnight] .status-dot.ready{background:var(--accent);box-shadow:0 0 0 3px #10b98133,0 0 12px #10b9814d}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--ink);background:var(--body-gradient-a),var(--body-gradient-b),var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.kpi-value,.report-range,.report-table td,.report-table th,.db-subtitle,.widget-body,[class*=kpi],time,data{font-variant-numeric:tabular-nums}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--density-topbar-v) 32px;border-bottom:1px solid var(--line);background:var(--topbar-bg);-webkit-backdrop-filter:var(--topbar-blur);backdrop-filter:var(--topbar-blur);position:sticky;top:0;z-index:30;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:contain}.brand-mark{width:36px;height:36px;border-radius:var(--radius-sm);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;color:var(--brand-btn-ink);font-size:18px;background:linear-gradient(150deg,color-mix(in srgb,var(--brand) 70%,white),var(--brand) 60%,var(--brand-ink));box-shadow:0 4px 12px var(--brand-ring);transition:box-shadow .15s}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:-.01em}.brand-sub{font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.loc-chip{font-size:12px;font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);padding:6px 12px;border-radius:999px}.loc-chip.muted{color:var(--ink-3);background:var(--surface-2);border-color:var(--line);font-weight:500}.content{width:100%;max-width:1080px;margin:0 auto;padding:32px;display:flex;flex-direction:column;gap:var(--density-content-gap);flex:1}.prompt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px}.prompt-form{display:flex;flex-direction:column;gap:14px}.prompt-input-wrap{display:flex;gap:12px}.prompt-input{flex:1;font-family:var(--font-sans);font-size:15px;color:var(--ink);padding:14px 16px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);transition:border-color .15s,box-shadow .15s,background .15s}.prompt-input::placeholder{color:var(--ink-3)}.prompt-input:focus{outline:none;background:var(--surface);border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-focus)}.pos-select{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--ink);padding:14px 38px 14px 16px;border-radius:11px;border:1px solid var(--line);background-color:var(--surface-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s}.pos-select:hover:not(:disabled){background-color:var(--surface)}.pos-select:focus{outline:none;background-color:var(--surface);border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-focus)}.pos-select:disabled{opacity:.6;cursor:default}.pos-select option{background:var(--surface);color:var(--ink)}.generate-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-weight:600;font-size:14px;color:var(--brand-btn-ink);padding:0 22px;border:none;border-radius:11px;cursor:pointer;background:linear-gradient(150deg,color-mix(in srgb,var(--brand) 70%,white),var(--brand) 70%);box-shadow:0 6px 16px var(--brand-ring);transition:transform .08s ease,box-shadow .15s,filter .15s;white-space:nowrap}.generate-btn:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 8px 22px var(--brand-ring)}.generate-btn:active:not(:disabled){transform:translateY(1px)}.generate-btn:disabled{opacity:.7;cursor:default}.prompt-examples{display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:var(--font-sans);font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:7px 12px;border-radius:999px;cursor:pointer;transition:all .12s}.chip:hover:not(:disabled){color:var(--brand-ink);background:var(--brand-wash);border-color:color-mix(in srgb,var(--brand) 35%,transparent)}.chip:disabled{opacity:.5;cursor:default}.empty-state{text-align:center;padding:56px 24px;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}.empty-illo{width:76px;height:76px;margin:0 auto 18px;border-radius:calc(var(--radius) + 4px);display:grid;place-items:center;color:var(--brand);background:var(--brand-wash);border:1px solid color-mix(in srgb,var(--brand) 25%,transparent)}.empty-state h2{margin:0 0 8px;font-size:20px;font-weight:700;font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em}.empty-state p{margin:0 auto;max-width:440px;font-size:14px;line-height:1.55;color:var(--ink-3)}.loading-state{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px}.skeleton-head{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.sk{background:linear-gradient(90deg,var(--line-2) 25%,var(--surface-2) 37%,var(--line-2) 63%);background-size:400% 100%;animation:shimmer 1.3s infinite;border-radius:7px}.sk-title{width:280px;height:22px}.sk-sub{width:160px;height:13px}.skeleton-table{display:flex;flex-direction:column;gap:10px}.sk-row{height:38px}.loading-label{margin-top:18px;font-size:13px;color:var(--ink-3);text-align:center}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.report{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.report-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;gap:16px;border-bottom:1px solid var(--line-2)}.report-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-family:var(--font-display)}.report-range{margin-top:5px;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}.report-range .dot{margin:0 8px;color:var(--line)}.export-actions{display:flex;gap:10px}.export-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ink-2);padding:9px 14px;border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:all .12s}.export-btn:hover:not(:disabled){color:var(--brand-ink);border-color:color-mix(in srgb,var(--brand) 40%,transparent);background:var(--brand-wash)}.export-btn:active:not(:disabled){transform:translateY(1px)}.export-btn:disabled{opacity:.55;cursor:default}.export-btn svg{color:var(--ink-3)}.export-btn:hover:not(:disabled) svg{color:var(--brand)}.sample-banner{margin:16px 24px 0;padding:11px 14px;font-size:13px;color:var(--ink-2);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-sm)}.sample-banner code{font-family:var(--font-mono);font-size:12px}.sample-err{color:var(--danger);opacity:.8}.spec-panel{margin:16px 24px 0}.spec-toggle{display:flex;align-items:center;gap:9px;width:100%;font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:10px 13px;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.spec-toggle:hover{background:var(--surface-3)}.chevron{display:inline-block;transition:transform .15s;color:var(--ink-3);font-size:16px;transform:rotate(0)}.chevron.down{transform:rotate(90deg)}.spec-hint{margin-left:auto;font-weight:500;color:var(--ink-3);font-size:12px}.spec-json{margin:10px 0 0;padding:16px;border-radius:var(--radius-sm);background:var(--code-bg);color:var(--code-ink);font-family:var(--font-mono);font-size:12px;line-height:1.6;overflow-x:auto;border:1px solid var(--code-line)}.table-wrap{padding:var(--density-cell-v) 24px 24px;overflow-x:auto}.table-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:48px 24px 52px;color:var(--ink-2)}.table-empty-illo{display:grid;place-items:center;width:64px;height:64px;margin-bottom:4px;border-radius:50%;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line)}.table-empty-title{margin:0;font-size:15px;font-weight:700;color:var(--ink)}.table-empty-sub{margin:0;font-size:13px;max-width:460px;line-height:1.5;color:var(--ink-2)}.table-notes{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.table-note{font-size:12.5px;line-height:1.45;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--brand);padding:8px 12px;border-radius:var(--radius-sm)}.report-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;font-variant-numeric:tabular-nums;font-family:var(--font-sans)}.report-table thead th{position:sticky;top:0;z-index:2;background:var(--surface);text-align:left;font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:var(--density-cell-v) var(--density-cell-h);border-bottom:2px solid var(--line);white-space:nowrap}.report-table th.num,.report-table td.num{text-align:right;font-variant-numeric:tabular-nums}.report-table tbody td{padding:var(--density-cell-v) var(--density-cell-h);border-bottom:1px solid var(--line-2);color:var(--ink)}.report-table tbody td.dim{color:var(--ink);font-weight:500}.report-table tbody td.num{color:var(--ink-2)}.report-table tbody td.collapsed{color:var(--ink-3)}.report-table tbody tr:nth-child(2n) td{background:var(--table-stripe)}.report-table tbody tr:hover td{background:var(--table-hover)}.report-table tfoot .totals-row td{position:sticky;bottom:0;padding:13px var(--density-cell-h);font-weight:700;color:var(--ink);background:var(--table-totals-bg);border-top:2px solid var(--line)}.report-table tfoot .totals-row td.num{color:var(--table-totals-ink)}.error-state{text-align:center;padding:44px 24px;background:var(--surface);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--radius)}.error-state h2{margin:0 0 8px;font-size:18px;color:var(--danger);font-family:var(--font-display)}.error-state p{margin:0 auto 18px;max-width:520px;font-size:13.5px;color:var(--ink-2);word-break:break-word}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:var(--brand-btn-ink);animation:spin .7s linear infinite;display:inline-block}.spinner.small{width:13px;height:13px;border-color:color-mix(in srgb,var(--brand) 30%,transparent);border-top-color:var(--brand)}@keyframes spin{to{transform:rotate(360deg)}}.main-nav{display:flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:calc(var(--radius-sm) + 4px);padding:4px}.nav-tab{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink-2);padding:7px 14px;border-radius:var(--radius-sm);border:none;cursor:pointer;background:transparent;transition:all .12s;white-space:nowrap}.nav-tab:hover{color:var(--ink);background:var(--surface)}.nav-tab.active{color:var(--brand-ink);background:var(--surface);font-weight:600;box-shadow:var(--shadow-sm)}.db-shell{width:100%;max-width:1280px;margin:0 auto;padding:28px 32px 48px;display:flex;flex-direction:column;gap:var(--density-db-gap)}.db-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.db-title-area{display:flex;flex-direction:column;gap:4px}.db-title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-family:var(--font-display)}.db-subtitle{margin:0;font-size:13px;color:var(--ink-3);display:flex;align-items:center;gap:0;font-variant-numeric:tabular-nums}.db-subtitle .dot{margin:0 8px;color:var(--line)}.db-header-actions{display:flex;align-items:center;gap:10px;padding-top:4px}.db-load-status{display:flex;align-items:center;font-size:12.5px;color:var(--ink-3);font-weight:500}.status-dot{width:7px;height:7px;border-radius:50%;margin-right:7px;display:inline-block}.status-dot.ready{background:var(--accent);box-shadow:0 0 0 3px #0fa37f2e}.nl-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:18px 22px}.nl-form{display:flex;flex-direction:column;gap:12px}.nl-input-row{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:0 0 0 14px;transition:border-color .15s,box-shadow .15s}.nl-input-row:focus-within{background:var(--surface);border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-focus)}.nl-sparkle{font-size:14px;color:var(--brand);flex-shrink:0;-webkit-user-select:none;user-select:none}.nl-input{flex:1;font-family:var(--font-sans);font-size:14.5px;color:var(--ink);padding:13px 8px;border:none;background:transparent;outline:none;min-width:0}.nl-input::placeholder{color:var(--ink-3)}.nl-input-row .generate-btn{border-radius:0 9px 9px 0;padding:0 20px}.nl-error{margin:0;font-size:12.5px;color:var(--danger)}.nl-success{margin:0;font-size:12.5px;color:var(--accent);font-weight:500}.db-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}@keyframes widget-appear{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.widget{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:box-shadow .15s,transform .1s,border-color .15s;cursor:default;animation:widget-appear .22s ease-out both}.widget:hover{box-shadow:var(--shadow-md)}.widget.drag-over{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-focus),var(--shadow-md)}.widget[draggable]:active{opacity:.8}.widget-sm{grid-column:span 1}.widget-md{grid-column:span 2}.widget-lg{grid-column:span 3}.widget-xl{grid-column:span 4}.widget-resize-handle{position:absolute;right:0;top:0;bottom:0;width:14px;display:flex;align-items:center;justify-content:center;cursor:col-resize;border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-3);opacity:0;transition:opacity .12s,background .12s}.widget:hover .widget-resize-handle{opacity:1}.widget-resize-handle:hover{color:var(--brand);background:var(--brand-focus)}.widget-head{display:flex;align-items:center;gap:8px;padding:var(--density-widget-head-v) var(--density-widget-head-h);border-bottom:1px solid var(--line-2)}.widget-drag-handle{color:var(--ink-3);cursor:grab;flex-shrink:0;display:flex;align-items:center;opacity:0;transition:opacity .12s}.widget:hover .widget-drag-handle{opacity:1}.widget-title{flex:1;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.widget-controls{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .12s}.widget:hover .widget-controls{opacity:1}.widget-ctrl-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-xs);border:none;cursor:pointer;background:transparent;color:var(--ink-3);transition:background .1s,color .1s;font-size:11px}.widget-ctrl-btn:hover{background:var(--surface-2);color:var(--ink)}.widget-ctrl-btn.danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.size-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:-.02em}.type-menu-wrap{position:relative}.type-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:5px;min-width:120px;display:flex;flex-direction:column;gap:1px}.type-menu-item{display:flex;align-items:center;gap:9px;font-family:var(--font-sans);font-size:13px;color:var(--ink-2);padding:8px 10px;border-radius:var(--radius-xs);border:none;cursor:pointer;background:transparent;text-align:left;transition:background .1s,color .1s}.type-menu-item:hover{background:var(--surface-2);color:var(--ink)}.type-menu-item.active{background:var(--brand-wash);color:var(--brand-ink);font-weight:600}.widget-body{flex:1;padding:var(--density-widget-body-v) var(--density-widget-body-h);min-height:80px;display:flex;flex-direction:column}.widget-body .table-wrap{padding:0}.kpi-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--density-kpi-v) 8px;text-align:center;gap:6px}.kpi-value{font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-family:var(--font-display);line-height:1;font-variant-numeric:tabular-nums}.widget-sm .kpi-value{font-size:34px}.kpi-label{font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em}.widget-skeleton{flex:1;display:flex;flex-direction:column;gap:10px}.widget-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;color:var(--ink-3)}.widget-error svg{color:color-mix(in srgb,var(--danger) 60%,var(--ink-3))}.widget-error p{margin:0;font-size:12.5px;line-height:1.4;max-width:200px}.retry-btn{font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);padding:6px 12px;border-radius:var(--radius-xs);cursor:pointer;transition:all .1s}.retry-btn:hover{background:color-mix(in srgb,var(--brand) 18%,transparent)}.db-empty{text-align:center;padding:56px 24px;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}.db-empty h2{margin:0 0 8px;font-size:19px;color:var(--ink);font-family:var(--font-display);font-weight:700}.db-empty p{margin:0 auto;max-width:420px;font-size:14px;line-height:1.55;color:var(--ink-3)}.db-empty .empty-illo{width:76px;height:76px;margin:0 auto 18px;border-radius:calc(var(--radius) + 4px);display:grid;place-items:center;color:var(--brand);background:var(--brand-wash);border:1px solid color-mix(in srgb,var(--brand) 25%,transparent)}.dash-save-wrap{display:flex;align-items:center;gap:4px}.dash-picker-wrap{position:relative}.dash-picker-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:300px;padding:6px}.dash-picker-head{font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;padding:6px 8px 4px}.dash-picker-empty{padding:12px 8px;font-size:13px;color:var(--ink-3);text-align:center}.dash-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;max-height:280px;overflow-y:auto}.dash-picker-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:var(--radius-sm);transition:background .1s}.dash-picker-item:hover{background:var(--surface-2)}.dash-picker-item.current{background:var(--brand-wash)}.dash-picker-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.dash-picker-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-picker-meta{font-size:11.5px;color:var(--ink-3)}.dash-picker-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.dash-picker-load{font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);padding:5px 10px;border-radius:var(--radius-xs);cursor:pointer;transition:all .1s;white-space:nowrap;min-width:44px;text-align:center}.dash-picker-load:hover{background:color-mix(in srgb,var(--brand) 18%,transparent)}.dash-picker-load:disabled{opacity:.6;cursor:default}.dash-picker-del{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--ink-3);cursor:pointer;transition:background .1s,color .1s}.dash-picker-del:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}@media (max-width: 720px){.content{padding:18px;gap:18px}.topbar{padding:12px 20px}.report-head,.prompt-input-wrap{flex-direction:column}.db-shell{padding:20px 20px 48px}}@media (max-width: 1100px){.db-grid{grid-template-columns:repeat(2,1fr)}.widget-sm,.widget-md{grid-column:span 1}.widget-lg,.widget-xl{grid-column:span 2}}@media (max-width: 520px){.topbar{padding:10px 16px}.brand{gap:9px}.brand-mark{width:30px;height:30px;border-radius:var(--radius-xs);font-size:15px}.brand-name{font-size:13.5px}.brand-sub,.topbar-meta{display:none}.main-nav{padding:3px;gap:1px}.nav-tab{font-size:0;padding:8px 12px;gap:0;min-height:36px}.nav-tab svg{width:17px;height:17px}.db-shell{padding:14px 14px 48px;gap:14px}.db-header{flex-direction:column;gap:8px}.db-header-actions{align-self:flex-start}.db-title{font-size:20px}.db-subtitle{font-size:12px;flex-wrap:wrap}.db-grid{grid-template-columns:repeat(2,1fr);gap:10px}.widget-sm{grid-column:span 1}.widget-md,.widget-lg,.widget-xl{grid-column:span 2}.widget-head{padding:9px 12px 8px}.widget-body{padding:8px 10px 10px;min-height:0}.kpi-body{padding:12px 6px;gap:3px}.kpi-value{font-size:28px}.widget-sm .kpi-value{font-size:24px}.kpi-label{font-size:11px}.nl-bar{padding:12px 14px}.nl-input-row{flex-wrap:wrap;overflow:hidden}.nl-input-row .generate-btn{flex:0 0 100%;border-radius:0;box-shadow:none;padding:12px 16px;justify-content:center;border-top:1px solid rgba(255,255,255,.18);min-height:44px}.nl-bar .chip{font-size:12px;padding:7px 10px;min-height:36px}.content{padding:14px;gap:14px}.report-head{padding:14px 16px 12px}.report-title{font-size:17px}.export-actions{flex-wrap:wrap;gap:7px}.export-btn{min-height:40px}.table-wrap{padding:10px 12px 14px}.prompt-input{font-size:15px}.generate-btn{min-height:44px}.chip{min-height:36px}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg, #0e1116);padding:24px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;padding:32px;border-radius:14px;background:var(--surface, #171b22);border:1px solid var(--border, #2a3038);box-shadow:0 12px 40px #00000059}.login-brand{font-size:22px;font-weight:700;letter-spacing:-.01em}.login-sub{font-size:13px;opacity:.65;margin-bottom:6px}.login-field{display:flex;flex-direction:column;gap:6px;font-size:13px}.login-field span{opacity:.8}.login-field input{padding:10px 12px;border-radius:8px;border:1px solid var(--border, #2a3038);background:var(--bg, #0e1116);color:inherit;font-size:14px}.login-field input:focus{outline:none;border-color:var(--accent, #4f8cff)}.login-submit{margin-top:6px;width:100%;justify-content:center}.login-error{font-size:13px;color:#ff6b6b;background:#ff6b6b14;border:1px solid rgba(255,107,107,.25);border-radius:8px;padding:8px 10px}.user-chip{display:inline-flex;align-items:center;gap:8px;font-size:12px}.user-chip .user-email{opacity:.85;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip .user-role{text-transform:uppercase;font-size:10px;letter-spacing:.04em;padding:2px 6px;border-radius:999px;background:var(--accent-soft, rgba(79, 140, 255, .15));color:var(--accent, #4f8cff)}.saved-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px}.link-btn{background:none;border:none;padding:0;margin:0 0 8px;color:var(--brand-ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.link-btn:hover{text-decoration:underline}.no-ai-pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-wash);border:1px solid var(--accent-line);padding:4px 10px;border-radius:999px}.saved-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.saved-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s,transform .05s}.saved-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand-ring)}.saved-card-main{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:16px 18px 14px;font:inherit;color:inherit}.saved-card-name{font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--ink)}.saved-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.saved-tag{font-size:11px;font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border:1px solid var(--brand-ring);padding:2px 8px;border-radius:999px}.saved-tag.muted{color:var(--ink-3);background:var(--surface-2);border-color:var(--line)}.saved-card-date{font-size:12px;color:var(--ink-3)}.saved-del{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.saved-del:hover{color:var(--danger);border-color:var(--danger-line);background:var(--danger-wash)}.run-panel{padding:18px 20px}.run-row{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.date-field{display:flex;flex-direction:column;gap:6px}.date-field span{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.date-field input{font:inherit;font-size:14px;color:var(--ink);padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.date-field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.run-hint{font-size:12px;color:var(--ink-3);margin-top:12px}@media (max-width: 640px){.saved-head,.run-row{flex-direction:column;align-items:stretch}}.sched-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--overlay-bg);display:grid;place-items:center;padding:20px}.sched-modal{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;overflow:auto}.sched-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--line-2)}.sched-modal-head h2{font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:0}.sched-x{background:none;border:none;font-size:24px;line-height:1;color:var(--ink-3);cursor:pointer;padding:0 4px}.sched-x:hover{color:var(--ink)}.sched-form{padding:18px 20px;display:flex;flex-direction:column;gap:16px}.sched-field{display:flex;flex-direction:column;gap:7px}.sched-field>span{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.sched-field input,.sched-field select,.sched-field textarea{font:inherit;font-size:14px;color:var(--ink);padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);width:100%;box-sizing:border-box}.sched-field textarea{resize:vertical}.sched-field input:focus,.sched-field select:focus,.sched-field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.sched-hint{font-size:12px;color:var(--ink-3)}.sched-row{display:flex;gap:14px;flex-wrap:wrap}.sched-row .sched-field{flex:1;min-width:140px}.sched-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px}.sched-seg-btn{font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);background:none;border:none;border-radius:7px;padding:7px 14px;cursor:pointer;transition:background .12s,color .12s}.sched-seg-btn.active{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow-sm)}.sched-error{font-size:13px;color:var(--danger);background:var(--danger-wash);border:1px solid var(--danger-line);border-radius:10px;padding:9px 12px}.sched-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--line-2)}.sched-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.sched-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 18px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,border-color .15s}.sched-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand-ring)}.sched-card.disabled{opacity:.62}.sched-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.sched-card-name{font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--ink)}.sched-card-meta{display:flex;flex-wrap:wrap;gap:6px}.sched-card-recipients{font-size:12.5px;color:var(--ink-2);word-break:break-word}.sched-card-runinfo{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;color:var(--ink-3);border-top:1px dashed var(--line-2);margin-top:2px;padding-top:8px}.sched-card-runinfo strong{color:var(--ink-2);font-weight:600}.sched-run-result{font-size:12.5px;border-radius:8px;padding:8px 10px}.sched-run-result.ok{color:var(--accent);background:var(--accent-wash);border:1px solid var(--accent-line)}.sched-run-result.fail{color:var(--danger);background:var(--danger-wash);border:1px solid var(--danger-line)}.sched-card-actions{display:flex;align-items:center;gap:8px;margin-top:2px}.saved-del.inline{position:static}.sched-toggle{display:inline-flex;align-items:center;cursor:pointer}.sched-toggle input{position:absolute;opacity:0;width:0;height:0}.sched-toggle-track{display:inline-block;width:40px;height:23px;border-radius:999px;background:var(--line);position:relative;transition:background .16s}.sched-toggle-thumb{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .16s}.sched-toggle input:checked+.sched-toggle-track{background:var(--accent)}.sched-toggle input:checked+.sched-toggle-track .sched-toggle-thumb{transform:translate(17px)}@media (max-width: 640px){.sched-list{grid-template-columns:1fr}.sched-row{flex-direction:column}}.settings-panel{margin:14px 0 18px;padding:16px 18px;background:var(--surface, #fff);border:1px solid var(--line, #e7e9ee);border-radius:var(--radius, 14px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(20, 22, 26, .05))}.settings-head{display:flex;align-items:center;gap:9px;margin-bottom:14px;color:var(--ink, #14161a)}.settings-head svg{color:var(--brand, #2f5bea);flex:0 0 auto}.settings-title{font-family:var(--sans, system-ui);font-size:13px;font-weight:650;letter-spacing:.01em}.settings-sub{font-size:11.5px;color:var(--ink-3, #858d9a);font-weight:500}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 16px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-label{font-size:11.5px;font-weight:600;color:var(--ink-2, #4a505a);letter-spacing:.01em}.settings-control{position:relative;display:flex;align-items:center}.settings-input{width:100%;box-sizing:border-box;padding:9px 11px;font-family:var(--sans, system-ui);font-size:13.5px;color:var(--ink, #14161a);background:var(--surface-2, #fbfbfd);border:1px solid var(--line, #e7e9ee);border-radius:9px;outline:none;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.settings-control.numeric .settings-input{padding-right:28px;font-variant-numeric:tabular-nums}.settings-input:focus{border-color:var(--brand, #2f5bea);background:var(--surface);box-shadow:0 0 0 3px var(--brand-wash, #eef2fe)}.settings-input:disabled{opacity:.55;cursor:not-allowed}.settings-unit{position:absolute;right:11px;font-size:12.5px;font-weight:600;color:var(--ink-3, #858d9a);pointer-events:none}.multi-section{display:flex;flex-direction:column;gap:28px}.ms-section{display:flex;flex-direction:column;gap:10px}.ms-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:4px;border-bottom:2px solid var(--line, #e5e7eb)}.ms-section-title{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink, #111827)}.ms-section-count{font-size:12px;color:var(--ink-3, #9ca3af);white-space:nowrap}.ms-section-chart{padding:8px 4px 0;background:var(--surface, #fff);border:1px solid var(--line, #e5e7eb);border-radius:var(--radius, 12px)}.ms-section-notes{margin:2px 0 0;padding-left:18px;font-size:11.5px;color:var(--ink-3, #9ca3af);line-height:1.45}.section-chart-empty{padding:32px;text-align:center;color:var(--ink-3, #9ca3af);font-size:13px}.add-setting{margin:14px 0 18px;padding:14px 16px;background:var(--surface, #fff);border:1px solid var(--line, #e7e9ee);border-radius:var(--radius, 14px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(20, 22, 26, .05))}.add-setting-form{display:flex;flex-direction:column;gap:10px}.add-setting-input-wrap{position:relative;display:flex;align-items:center;gap:8px}.add-setting-icon{position:absolute;left:12px;color:var(--brand, #2f5bea);pointer-events:none}.add-setting-input{flex:1 1 auto;box-sizing:border-box;padding:10px 12px 10px 34px;font-family:var(--sans, system-ui);font-size:13.5px;color:var(--ink, #14161a);background:var(--surface-2, #fbfbfd);border:1px solid var(--line, #e7e9ee);border-radius:10px;outline:none;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.add-setting-input:focus{border-color:var(--brand, #2f5bea);background:var(--surface);box-shadow:0 0 0 3px var(--brand-wash, #eef2fe)}.add-setting-input:disabled{opacity:.55;cursor:not-allowed}.add-setting-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:10px 16px;font-family:var(--sans, system-ui);font-size:13px;font-weight:650;color:var(--brand-btn-ink);background:var(--brand, #2f5bea);border:1px solid var(--brand, #2f5bea);border-radius:10px;cursor:pointer;transition:filter .12s ease,opacity .12s ease}.add-setting-btn:hover:not(:disabled){filter:brightness(1.05)}.add-setting-btn:disabled{opacity:.5;cursor:not-allowed}.add-setting-examples{display:flex;flex-wrap:wrap;gap:7px}.add-setting-chip{padding:5px 11px;font-family:var(--sans, system-ui);font-size:11.5px;font-weight:550;color:var(--ink-2, #4a505a);background:var(--surface-2, #fbfbfd);border:1px solid var(--line, #e7e9ee);border-radius:999px;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.add-setting-chip:hover:not(:disabled){border-color:var(--brand, #2f5bea);color:var(--brand, #2f5bea);background:var(--brand-wash, #eef2fe)}.add-setting-chip:disabled{opacity:.5;cursor:not-allowed}.add-setting-error{margin-top:10px;padding:8px 11px;font-size:12px;color:var(--danger, #b42318);background:var(--danger-wash, #fef3f2);border:1px solid var(--danger-line, #fda29b);border-radius:9px}.add-setting-spinner{width:13px;height:13px;border:2px solid color-mix(in srgb,var(--brand-btn-ink) 40%,transparent);border-top-color:var(--brand-btn-ink);border-radius:50%;animation:add-setting-spin .7s linear infinite}@keyframes add-setting-spin{to{transform:rotate(360deg)}}.filterbar{position:relative;margin:12px 0 4px}.filterbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filterbar-add{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border:1px solid var(--brand-ring);border-radius:999px;padding:6px 12px;cursor:pointer;transition:background .12s,border-color .12s}.filterbar-add:hover:not(:disabled){border-color:var(--brand-ink)}.filterbar-add:disabled{opacity:.5;cursor:default}.filterbar-clear{font:inherit;font-size:12px;font-weight:600;color:var(--ink-3);background:none;border:none;cursor:pointer;padding:4px 6px}.filterbar-clear:hover{text-decoration:underline;color:var(--ink)}.filter-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--surface-2, #f4f6fb);border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 10px}.filter-chip-dim{font-weight:700;color:var(--ink)}.filter-chip-dim:after{content:":";margin-left:1px;color:var(--ink-3)}.filter-chip-vals{color:var(--ink-2, #4a5568);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chip-x{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:none;background:transparent;color:var(--ink-3);font-size:15px;line-height:1;cursor:pointer}.filter-chip-x:hover{background:var(--line);color:var(--ink)}.filter-pop{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(420px,92vw);background:var(--surface, #fff);border:1px solid var(--line);border-radius:var(--radius, 12px);box-shadow:var(--shadow-md, 0 8px 30px rgba(20, 30, 60, .14));padding:14px}.filter-pop-head{display:flex;gap:10px;align-items:flex-end;margin-bottom:10px}.filter-dim-label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}.filter-dim-select{font:inherit;font-size:13px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.filter-search{flex:1;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.filter-values{max-height:260px;overflow-y:auto;display:grid;gap:1px;border:1px solid var(--line);border-radius:8px;padding:4px}.filter-value{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:6px 8px;border-radius:6px;cursor:pointer}.filter-value:hover{background:var(--surface-2, #f4f6fb)}.filter-value input{accent-color:var(--brand-ink, #3b5bdb)}.filter-status{font-size:12px;color:var(--ink-3);padding:8px 4px}.filter-status.err{color:var(--danger)}.filter-pop-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.filter-count{font-size:12px;font-weight:600;color:var(--ink-3)}.filter-foot-actions{display:flex;align-items:center;gap:10px}.filter-link{font:inherit;font-size:12px;font-weight:600;color:var(--ink-3);background:none;border:none;cursor:pointer}.filter-link:hover{text-decoration:underline}.filter-apply{font:inherit;font-size:13px;font-weight:700;color:var(--brand-btn-ink);background:var(--brand-ink, #3b5bdb);border:none;border-radius:8px;padding:8px 16px;cursor:pointer}.filter-apply:hover:not(:disabled){filter:brightness(1.06)}.filter-apply:disabled{opacity:.5;cursor:default}.edit-convo{display:flex;flex-direction:column;max-height:540px;margin:14px 0 18px;background:var(--surface, #fff);border:1px solid var(--line, #e7e9ee);border-radius:var(--radius, 14px);box-shadow:var(--shadow-md, 0 4px 16px rgba(20, 22, 26, .08));overflow:hidden;font-family:var(--sans, system-ui, sans-serif)}.edit-convo-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line, #e7e9ee);background:var(--surface-2, #f7f8fa)}.edit-convo-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--ink, #14161a)}.edit-convo-title svg{color:var(--brand, #4338ca)}.edit-convo-close{border:none;background:transparent;color:var(--ink-2, #5b606b);font-size:15px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px}.edit-convo-close:hover{background:var(--line, #e7e9ee);color:var(--ink, #14161a)}.edit-convo-thread{flex:1;min-height:120px;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}.edit-convo-empty{color:var(--ink-2, #5b606b);font-size:13px;margin:auto 0;text-align:center}.edit-convo-empty-sub{color:var(--ink-3, #8a8f9a);font-size:12px;margin-top:4px}.edit-convo-msg{max-width:85%;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.edit-convo-msg-user{align-self:flex-end;background:var(--brand, #4338ca);color:var(--brand-btn-ink);border-bottom-right-radius:4px}.edit-convo-msg-ack{align-self:flex-start;background:var(--brand-wash, #eef0fb);color:var(--brand-ink, #2d2a8c);border-bottom-left-radius:4px}.edit-convo-msg-error{align-self:flex-start;background:var(--danger-wash, #fdecec);color:var(--danger, #b42318);border:1px solid var(--danger-line, #f5c6c2);border-bottom-left-radius:4px}.edit-convo-thinking{display:inline-flex;align-items:center;gap:7px;opacity:.85}.edit-convo-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line, #e7e9ee);background:var(--surface, #fff)}.edit-convo-input{flex:1;padding:9px 12px;border:1px solid var(--line, #e7e9ee);border-radius:10px;font-size:13px;font-family:inherit;color:var(--ink, #14161a);background:var(--surface-2, #f7f8fa)}.edit-convo-input:focus{outline:none;border-color:var(--brand, #4338ca);background:var(--surface, #fff)}.edit-convo-input:disabled{opacity:.6}.edit-convo-send{min-width:60px;padding:9px 14px;border:none;border-radius:10px;background:var(--brand, #4338ca);color:var(--brand-btn-ink);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.edit-convo-send:disabled{opacity:.5;cursor:not-allowed}.edit-convo-examples{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 14px}.edit-convo-chip{padding:5px 10px;border:1px solid var(--line, #e7e9ee);border-radius:999px;background:var(--surface-2, #f7f8fa);color:var(--ink-2, #5b606b);font-size:12px;cursor:pointer}.edit-convo-chip:hover:not(:disabled){border-color:var(--brand, #4338ca);color:var(--brand, #4338ca)}.edit-convo-chip:disabled{opacity:.5;cursor:not-allowed}.edit-convo-spinner{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:edit-convo-spin .6s linear infinite}@keyframes edit-convo-spin{to{transform:rotate(360deg)}}.usage-meter{display:flex;align-items:center;gap:14px;padding:6px 12px;border-radius:var(--radius, 12px);background:var(--surface, #fff);border:1px solid var(--line, #e6e8ef);box-shadow:var(--shadow-sm, 0 1px 2px rgba(16, 24, 40, .05))}.usage-tier{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;color:var(--accent, #0e9f6e);background:var(--accent-wash, color-mix(in srgb, var(--accent, #0e9f6e) 12%, transparent));border:1px solid var(--accent-line, color-mix(in srgb, var(--accent, #0e9f6e) 28%, transparent))}.usage-item{display:flex;flex-direction:column;gap:4px;min-width:88px}.usage-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.usage-label{font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted, var(--ink-3, #8a93a6))}.usage-count{font-size:12px;font-weight:700;color:var(--text, var(--ink, #1a2233));font-variant-numeric:tabular-nums}.usage-sep{margin:0 1px;color:var(--text-muted, var(--ink-3, #8a93a6));font-weight:400}.usage-limit{color:var(--text-muted, var(--ink-3, #8a93a6));font-weight:600}.usage-track{height:4px;border-radius:999px;background:var(--surface-2, var(--track, #eef0f5));overflow:hidden}.usage-fill{height:100%;border-radius:999px;background:var(--accent, #0e9f6e);transition:width .25s ease}.usage-fill[data-level=warn]{background:var(--warning, #d9920a)}.usage-fill[data-level=critical]{background:var(--danger, #e0483b)}@media (max-width: 720px){.usage-meter{gap:10px;padding:5px 10px}.usage-item{min-width:64px}}.ts-wrap{position:relative;flex-shrink:0}.ts-trigger{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink-2);padding:7px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:all .12s;white-space:nowrap}.ts-trigger:hover{color:var(--ink);background:var(--surface);border-color:var(--line)}.ts-trigger-label{font-size:12.5px}.ts-chevron{color:var(--ink-3);transition:transform .15s;flex-shrink:0}.ts-chevron.open{transform:rotate(180deg)}.ts-dropdown{position:absolute;top:calc(100% + 7px);right:0;z-index:100;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:220px;padding:6px}.ts-section-head{font-size:10.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;padding:5px 9px 4px}.ts-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;text-align:left;transition:background .1s;color:var(--ink-2)}.ts-option:hover{background:var(--surface-2);color:var(--ink)}.ts-option.active{background:var(--brand-wash);color:var(--ink)}.ts-option.active svg{color:var(--brand)}.ts-option-text{flex:1;display:flex;flex-direction:column;gap:1px}.ts-option-label{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ink);line-height:1}.ts-option-desc{font-family:var(--font-sans);font-size:11.5px;color:var(--ink-3)}.ts-swatch{width:18px;height:18px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,.08)}.ts-swatch[data-tid=default]{background:linear-gradient(135deg,#4f74f0,#0fa37f)}.ts-swatch[data-tid=terminal]{background:linear-gradient(135deg,#0d1117,#00df82)}.ts-swatch[data-tid=hospitality]{background:linear-gradient(135deg,#fbf7f3,#c0614a);border-color:#0000001f}.ts-swatch[data-tid=midnight]{background:linear-gradient(135deg,#0c0b14,#7c3aed)}.ts-divider{height:1px;background:var(--line-2);margin:5px 0}.ts-density-row{display:flex;gap:4px;padding:2px 4px 4px}.ts-density-btn{flex:1;font-family:var(--font-sans);font-size:12.5px;font-weight:500;color:var(--ink-2);padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-xs);background:transparent;cursor:pointer;transition:all .1s;text-align:center}.ts-density-btn:hover{color:var(--ink);background:var(--surface-2)}.ts-density-btn.active{color:var(--brand-ink);background:var(--brand-wash);border-color:transparent;font-weight:600}.bs-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:20px 22px;display:flex;flex-direction:column;gap:18px}.bs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bs-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.bs-hint{margin-top:3px;font-size:12.5px;color:var(--ink-3)}.bs-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--ink-3);cursor:pointer;flex-shrink:0;transition:background .1s,color .1s}.bs-close:hover{background:var(--surface-2);color:var(--ink)}.bs-fields{display:flex;flex-direction:column;gap:13px}.bs-field{display:flex;flex-direction:column;gap:5px}.bs-field-label{font-size:12px;font-weight:600;color:var(--ink-2)}.bs-field-opt{font-weight:400;color:var(--ink-3)}.bs-input{font-family:var(--font-sans);font-size:13.5px;color:var(--ink);padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.bs-input::placeholder{color:var(--ink-3)}.bs-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-focus);background:var(--surface)}.bs-color-row{display:flex;align-items:center;gap:8px}.bs-color-swatch{width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--line);cursor:pointer;padding:2px;background:var(--surface);flex-shrink:0}.bs-actions{display:flex;gap:8px;padding-top:2px}.bs-apply-btn{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--brand-btn-ink);background:var(--brand);border:none;border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;transition:filter .12s,opacity .12s}.bs-apply-btn:hover:not(:disabled){filter:brightness(1.06)}.bs-apply-btn:disabled{opacity:.55;cursor:default}.bs-reset-btn{font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink-2);background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 14px;cursor:pointer;transition:all .1s}.bs-reset-btn:hover{color:var(--danger);border-color:var(--danger);background:#d8453b0f}.tpl-gallery{max-width:1100px;margin:0 auto;padding:28px 24px 48px;display:flex;flex-direction:column;gap:28px}.tpl-gallery-head{display:flex;flex-direction:column;gap:4px}.tpl-gallery-title{margin:0;font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.tpl-gallery-sub{margin:0;font-size:14px;color:var(--ink-2);max-width:60ch}.tpl-error{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--ink);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px}.tpl-group{display:flex;flex-direction:column;gap:12px}.tpl-group-head{display:flex;align-items:center;gap:8px}.tpl-group-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.tpl-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--surface-3);color:var(--ink-2);font-size:11px;font-weight:700}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.tpl-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.tpl-card:hover{border-color:var(--brand-ring);box-shadow:var(--shadow-md);transform:translateY(-1px)}.tpl-card-skeleton{min-height:150px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:tpl-shimmer 1.2s ease-in-out infinite;border-color:var(--line-2)}@keyframes tpl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tpl-card-body{display:flex;flex-direction:column;gap:6px}.tpl-card-name{margin:0;font-size:16px;font-weight:650;color:var(--ink);letter-spacing:-.005em}.tpl-card-desc{margin:0;font-size:13px;line-height:1.45;color:var(--ink-2)}.tpl-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.tpl-card-cat{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.tpl-use-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;background:var(--brand);color:var(--brand-btn-ink);font:inherit;font-size:13px;font-weight:600;padding:8px 14px;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:background .15s ease,box-shadow .15s ease,opacity .15s ease}.tpl-use-btn:hover:not(:disabled){background:var(--brand-ink);box-shadow:var(--shadow-md)}.tpl-use-btn:focus-visible{outline:2px solid var(--brand-ring);outline-offset:2px}.tpl-use-btn:disabled{opacity:.6;cursor:default}.tpl-empty{padding:40px;text-align:center;color:var(--ink-3);font-size:14px}
