@font-face{font-family:Lexend Deca Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-deca-vietnamese-wght-normal-C3eIQKNS.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend Deca Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-deca-latin-ext-wght-normal-YJp99__6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend Deca Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-deca-latin-wght-normal-Cz7ZdjVl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--tb-ground: #faf7f1;--tb-surface: #ffffff;--tb-line: #e8e0d2;--tb-line-strong: #d8cdbd;--tb-ink: #1d1812;--tb-ink-muted: #6b6257;--tb-nav: #000923;--tb-nav-ink: #b9c3d9;--tb-nav-ink-active: #ffffff;--tb-nav-active-bg: rgba(10, 104, 255, .22);--tb-primary: #0a68ff;--tb-primary-hover: #084fc2;--tb-primary-ink: #ffffff;--tb-accent: #0a68ff;--tb-accent-soft: #f0f6ff;--tb-good: #177a47;--tb-good-bg: #e9f8ef;--tb-warn: #8a7a32;--tb-warn-bg: #fffbe6;--tb-bad: #d64545;--tb-bad-bg: #fdecec;--tb-info: #1e5fc9;--tb-info-bg: #f0f6ff;--tb-neutral: #4a4238;--tb-neutral-bg: #f5f1ea;--tb-hover-tint: #f3eee3;--tb-selected-tint: #f0f6ff;--tb-toast-bg: #1d1812;--tb-toast-ink: #faf7f1;--tb-gold: #c79a18;--tb-good-text: #157040;--tb-bad-text: #b93838;--tb-warn-text: #75671f;--tb-accent-text: #0a5fe8;--tb-scrim: rgba(29, 24, 18, .45);--tb-font-ui: "Lexend Deca Variable", "Lexend Deca", system-ui, -apple-system, "Segoe UI", sans-serif;--tb-font-mono: "JetBrains Mono Variable", ui-monospace, Consolas, monospace;--tb-text-display: 600 26px/1.2 var(--tb-font-ui);--tb-text-h1: 600 22px/1.25 var(--tb-font-ui);--tb-text-h2: 600 16px/1.3 var(--tb-font-ui);--tb-text-h3: 600 13.5px/1.4 var(--tb-font-ui);--tb-text-body: 400 13.5px/1.5 var(--tb-font-ui);--tb-text-table: 400 12.5px/1.4 var(--tb-font-ui);--tb-text-label: 600 11px/1.3 var(--tb-font-ui);--tb-text-meta: 400 11.5px/1.45 var(--tb-font-ui);--tb-text-mono: 400 12.5px/1.4 var(--tb-font-mono);--tb-s1: 4px;--tb-s2: 8px;--tb-s3: 12px;--tb-s4: 16px;--tb-s5: 20px;--tb-s6: 24px;--tb-s8: 32px;--tb-s10: 40px;--tb-gutter: 24px;--tb-card-pad: 20px;--tb-grid-gap: 16px;--tb-r-tag: 8px;--tb-r-btn: 10px;--tb-r-card: 16px;--tb-r-dialog: 20px;--tb-r-pill: 999px;--tb-e1: 0 1px 2px rgba(29, 24, 18, .05), 0 1px 3px rgba(29, 24, 18, .08);--tb-e2: 0 4px 10px -2px rgba(29, 24, 18, .1), 0 2px 4px -2px rgba(29, 24, 18, .06);--tb-e3: 0 20px 28px -6px rgba(29, 24, 18, .14), 0 8px 10px -4px rgba(29, 24, 18, .05);--tb-target: 36px;--tb-target-dense: 30px;--tb-sidebar: 236px;--tb-sidebar-collapsed: 56px;--tb-topbar: 54px;--tb-focus-ring: 0 0 0 2px var(--tb-surface), 0 0 0 4px var(--tb-primary)}[data-theme=dark]{--tb-ground: #0b1220;--tb-surface: #111a2e;--tb-line: #243049;--tb-line-strong: #2f3d5c;--tb-ink: #e6eaf2;--tb-ink-muted: #9aa6b8;--tb-nav: #070e1c;--tb-primary: #5294ff;--tb-primary-hover: #0a68ff;--tb-primary-ink: #0b1220;--tb-accent: #5294ff;--tb-accent-soft: #14223a;--tb-good: #5bd19a;--tb-good-bg: #0f2a1f;--tb-warn: #f5b35b;--tb-warn-bg: #2e2010;--tb-bad: #f08a80;--tb-bad-bg: #331614;--tb-info: #8fb3e8;--tb-info-bg: #14223a;--tb-neutral: #c9d3e6;--tb-neutral-bg: #1b2740;--tb-hover-tint: #17233a;--tb-selected-tint: #14223a;--tb-good-text: #5bd19a;--tb-bad-text: #f08a80;--tb-warn-text: #f5b35b;--tb-accent-text: #5294ff}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:var(--tb-text-body);color:var(--tb-ink);background:var(--tb-ground);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1{font:var(--tb-text-h1);letter-spacing:-.01em;margin:0}h2{font:var(--tb-text-h2);margin:0}h3{font:var(--tb-text-h3);margin:0}a{color:var(--tb-accent-text);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--tb-primary-hover)}strong,b{font-weight:600}button,input,select,textarea{font:inherit}::placeholder{color:var(--tb-ink-muted);opacity:1}input[type=checkbox],input[type=radio],progress{accent-color:var(--tb-primary)}:focus-visible{outline:2px solid var(--tb-primary);outline-offset:2px}.tb-num{font-variant-numeric:tabular-nums;text-align:right}.tb-mono{font:var(--tb-text-mono)}.tb-meta{font:var(--tb-text-meta);color:var(--tb-ink-muted)}.tb-label{font:var(--tb-text-label);letter-spacing:.05em;text-transform:uppercase;color:var(--tb-ink-muted)}.tb-app{display:grid;grid-template-columns:var(--tb-sidebar) 1fr;grid-template-rows:var(--tb-topbar) 1fr;height:100%}.tb-app.collapsed{grid-template-columns:var(--tb-sidebar-collapsed) 1fr}.tb-sidebar{grid-row:1 / span 2;background:var(--tb-nav);color:var(--tb-nav-ink);display:flex;flex-direction:column;padding:10px var(--tb-s2);overflow:hidden}.tb-brand{display:flex;align-items:center;gap:var(--tb-s2);padding:6px var(--tb-s3) 10px;color:#fff;font-weight:600}.tb-brand-mark{width:24px;height:24px;border-radius:6px;background:var(--tb-accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.tb-nav-group{margin-top:10px;margin-bottom:2px;padding:0 var(--tb-s3);font:var(--tb-text-label);letter-spacing:.05em;color:#c9d3e68c}.tb-nav-item{display:flex;align-items:center;gap:var(--tb-s2);height:32px;margin-bottom:1px;padding:0 var(--tb-s3);border-radius:var(--tb-r-btn);color:var(--tb-nav-ink);font-size:13.5px;text-decoration:none}.tb-nav-item:hover{background:var(--tb-nav-active-bg);color:#fff}.tb-nav-item.active{background:var(--tb-nav-active-bg);color:var(--tb-nav-ink-active);font-weight:600}.tb-nav-item .lock{margin-left:auto;opacity:.6}.tb-sidebar-foot{margin-top:auto;min-width:0;padding:6px var(--tb-s3) 2px;font:var(--tb-text-meta);color:var(--tb-nav-ink);display:flex;align-items:center;gap:var(--tb-s2)}.tb-topbar{display:flex;align-items:center;gap:var(--tb-s3);padding:0 var(--tb-gutter);background:var(--tb-surface);border-bottom:1px solid var(--tb-line)}.tb-main{overflow:auto;padding:var(--tb-gutter)}.tb-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--tb-s4);margin-bottom:var(--tb-s5)}.tb-page-head .actions{display:flex;gap:var(--tb-s2)}.tb-grid{display:grid;gap:var(--tb-grid-gap)}.tb-grid.kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.tb-grid.two{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width: 1100px){.tb-grid.kpi{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.tb-grid.two{grid-template-columns:minmax(0,1fr)}}.tb-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tb-stack{display:flex;flex-direction:column;gap:var(--tb-s3)}.tb-row{display:flex;align-items:center;gap:var(--tb-s2)}.tb-kv{display:grid;grid-template-columns:120px 1fr;row-gap:var(--tb-s2);column-gap:var(--tb-s3)}.tb-kv dt{color:var(--tb-ink-muted)}.tb-kv dd{margin:0}.tb-sidebar-foot span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-grid>.tb-stack,.tb-grid-2>.tb-stack{gap:var(--tb-grid-gap)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--tb-line-strong);border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--tb-ink-muted)}.tb-print-only{display:none}@media print{@page{margin:14mm}body{background:#fff}.tb-app{display:block}.tb-main{padding:0;overflow:visible}.tb-sidebar,.tb-topbar,.tb-tabs,.tb-toolbar,.tb-page-head,.tb-pagination,.tb-toasts,.tb-drawer,.tb-drawer-backdrop,.tb-banner.info,.tb-no-print,button,input,select{display:none!important}.tb-print-only{display:block!important;font:600 14px/1.45 var(--tb-font-ui);color:#000;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #000}.tb-print-only .tb-meta{display:block;font-weight:400}.tb-card{box-shadow:none;border:1px solid #ccc;break-inside:auto}.tb-table th{position:static!important}.tb-table tr{break-inside:avoid}a{color:inherit;text-decoration:none}}.tb-btn{display:inline-flex;align-items:center;gap:var(--tb-s2);height:var(--tb-target);padding:0 var(--tb-s4);border-radius:var(--tb-r-btn);border:1px solid transparent;cursor:pointer;font-weight:500;white-space:nowrap}.tb-btn.sm{height:var(--tb-target-dense);padding:0 var(--tb-s3);font-size:12.5px}.tb-btn.primary{background:var(--tb-primary);color:var(--tb-primary-ink)}.tb-btn.primary:hover{background:var(--tb-primary-hover)}.tb-btn.secondary{background:var(--tb-surface);color:var(--tb-ink);border-color:var(--tb-line)}.tb-btn.secondary:hover{background:var(--tb-hover-tint)}.tb-btn.ai{background:var(--tb-accent-soft);color:var(--tb-accent-text);border-color:var(--tb-accent)}.tb-btn.destructive{background:var(--tb-surface);color:var(--tb-bad);border-color:var(--tb-bad)}.tb-btn.ghost{background:transparent;border-color:transparent;color:var(--tb-accent-text)}.tb-btn.ghost:hover{background:var(--tb-accent-soft)}.tb-btn:disabled{background:var(--tb-neutral-bg);color:var(--tb-ink-muted);border-color:var(--tb-line);cursor:not-allowed}.tb-btn.destructive:hover{background:var(--tb-bad-bg)}.tb-btn.ai:hover{background:color-mix(in srgb,var(--tb-accent) 12%,var(--tb-surface))}.tb-btn.busy{pointer-events:none;opacity:.75}.tb-btn.primary .tb-spinner{border-color:#ffffff59;border-top-color:#fff}.tb-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--tb-r-tag);font:var(--tb-text-meta);font-weight:500;white-space:nowrap}.tb-badge.ok{background:var(--tb-good-bg);color:var(--tb-good-text)}.tb-badge.warn{background:var(--tb-warn-bg);color:var(--tb-warn-text)}.tb-badge.bad{background:var(--tb-bad-bg);color:var(--tb-bad-text)}.tb-badge.info{background:var(--tb-info-bg);color:var(--tb-info)}.tb-badge.neutral{background:transparent;border:1px solid var(--tb-line);color:var(--tb-ink-muted)}.tb-badge.ai{background:var(--tb-accent-soft);color:var(--tb-accent-text)}.tb-badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.tb-pill{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:var(--tb-r-pill);font:var(--tb-text-meta);font-weight:500;border:1px solid var(--tb-line);background:var(--tb-surface)}.tb-pill.ok{background:var(--tb-good-bg);color:var(--tb-good-text);border-color:transparent}.tb-pill.warn{background:var(--tb-warn-bg);color:var(--tb-warn-text);border-color:transparent}.tb-pill.bad{background:var(--tb-bad-bg);color:var(--tb-bad-text);border-color:transparent}.tb-card{background:var(--tb-surface);border:1px solid var(--tb-line);border-radius:var(--tb-r-card);box-shadow:var(--tb-e1)}.tb-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--tb-s3);padding:var(--tb-s3) var(--tb-card-pad);border-bottom:1px solid var(--tb-line)}.tb-card-body{padding:var(--tb-card-pad)}.tb-card-body.flush{padding:0}.tb-kpi{padding:var(--tb-card-pad)}.tb-kpi .value{font:var(--tb-text-display);letter-spacing:-.02em;margin:var(--tb-s1) 0}.tb-kpi .label{font:var(--tb-text-label);letter-spacing:.05em;text-transform:uppercase;color:var(--tb-ink-muted)}.tb-table{width:100%;border-collapse:collapse;font:var(--tb-text-table)}.tb-table th{position:sticky;top:0;background:var(--tb-surface);text-align:left;font:var(--tb-text-label);letter-spacing:.05em;text-transform:uppercase;color:var(--tb-ink-muted);padding:10px 14px;border-bottom:1px solid var(--tb-line)}.tb-table th:first-child,.tb-table td:first-child{padding-left:var(--tb-card-pad)}.tb-table th:last-child,.tb-table td:last-child{padding-right:var(--tb-card-pad)}.tb-table td{padding:7px 14px;border-bottom:1px solid var(--tb-line);vertical-align:top}.tb-table tr:hover td{background:var(--tb-hover-tint)}.tb-table tr.selected td{background:var(--tb-selected-tint)}.tb-table tr.tb-row-group>td{font-weight:600}.tb-table tr.tb-row-child>td:first-child{padding-left:32px;color:var(--tb-ink-muted)}.tb-table tr.tb-row-child>td{border-bottom-color:color-mix(in srgb,var(--tb-line) 45%,var(--tb-surface))}.tb-table th.fit,.tb-table td.fit{width:1%;white-space:nowrap}.tb-table th.num,.tb-table td.num{text-align:right}.tb-banner{display:flex;align-items:flex-start;gap:var(--tb-s3);padding:var(--tb-s3) var(--tb-s4);border-radius:var(--tb-r-btn);border:1px solid transparent;margin-bottom:var(--tb-s4)}.tb-banner.stale,.tb-banner.warn{background:var(--tb-warn-bg);color:var(--tb-ink);border-color:color-mix(in srgb,var(--tb-warn) 35%,var(--tb-surface))}.tb-banner.error,.tb-banner.offline{background:var(--tb-bad-bg);color:var(--tb-ink);border-color:color-mix(in srgb,var(--tb-bad) 30%,var(--tb-surface))}.tb-banner.info{background:var(--tb-info-bg);color:var(--tb-ink);border-color:color-mix(in srgb,var(--tb-info) 30%,var(--tb-surface))}.tb-banner .body{flex:1}.tb-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--tb-s3);padding:var(--tb-s10) var(--tb-s6);color:var(--tb-ink-muted)}.tb-empty .icon{width:40px;height:40px;border-radius:10px;background:var(--tb-neutral-bg);display:grid;place-items:center;color:var(--tb-ink)}.tb-empty h3{color:var(--tb-ink)}.tb-skel{background:linear-gradient(90deg,#efe9de 25%,#f7f3eb,#efe9de 75%);background-size:200% 100%;animation:tb-shimmer 1.2s infinite;border-radius:6px;height:12px}@keyframes tb-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tb-stepper{display:flex;gap:var(--tb-s4);align-items:center}.tb-step{display:flex;align-items:center;gap:var(--tb-s2);color:var(--tb-ink-muted)}.tb-step .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:var(--tb-text-label);border:1px solid var(--tb-line)}.tb-step.done .n{background:var(--tb-good);color:#fff;border-color:transparent}.tb-step.active .n{border-color:var(--tb-primary);color:var(--tb-primary)}.tb-step.error .n{background:var(--tb-bad);color:#fff;border-color:transparent}.tb-sparkline{display:inline-flex;gap:2px;align-items:flex-end;height:18px}.tb-sparkline i{display:block;width:4px;border-radius:1px;background:var(--tb-good)}.tb-sparkline i.bad{background:var(--tb-bad)}.tb-sparkline i.slow{background:var(--tb-warn)}.tb-gate{height:100%;display:grid;place-items:center;padding:var(--tb-s6)}.tb-gate .tb-card{width:480px}.tb-field{display:flex;flex-direction:column;gap:4px}.tb-field label{font:var(--tb-text-meta);color:var(--tb-ink-muted)}.tb-input,.tb-select{height:var(--tb-target);padding:0 10px;border:1px solid var(--tb-line-strong);border-radius:var(--tb-r-btn);background:var(--tb-surface);color:var(--tb-ink);min-width:140px}.tb-input.error{border-color:var(--tb-bad)}.tb-field .err{font:var(--tb-text-meta);color:var(--tb-bad-text)}.tb-filters{display:flex;flex-wrap:wrap;gap:var(--tb-s3);align-items:flex-end;margin-bottom:var(--tb-s4)}.tb-pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--tb-s2) var(--tb-card-pad);border-top:1px solid var(--tb-line);font:var(--tb-text-meta);color:var(--tb-ink-muted)}.tb-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--tb-scrim);z-index:40}.tb-drawer{position:fixed;top:0;right:0;bottom:0;width:460px;background:var(--tb-surface);box-shadow:var(--tb-e3);z-index:41;display:flex;flex-direction:column}.tb-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--tb-s4) var(--tb-s5);border-bottom:1px solid var(--tb-line)}.tb-drawer-body{padding:var(--tb-s5);overflow:auto}.tb-progress{height:6px;border-radius:3px;background:var(--tb-neutral-bg);overflow:hidden}.tb-progress>i{display:block;height:100%;background:var(--tb-primary);transition:width .3s}.tb-clickable{cursor:pointer}.tb-dropzone{display:flex;align-items:center;gap:14px;padding:22px 20px;border:1.5px dashed var(--tb-line-strong);border-radius:10px;background:var(--tb-ground);color:var(--tb-ink);cursor:pointer;transition:border-color .12s,background .12s}.tb-dropzone:hover,.tb-dropzone.over{border-color:var(--tb-accent);background:color-mix(in srgb,var(--tb-accent) 6%,var(--tb-surface))}.tb-dropzone.busy{cursor:progress;opacity:.7}.tb-dropzone svg{color:var(--tb-accent);flex:none}.tb-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0 16px}.tb-summary .tb-kpi{padding:10px 12px}.tb-summary .tb-kpi .value{font-size:18px}.tb-chips{display:flex;gap:6px;flex-wrap:wrap}.tb-chip{border:1px solid var(--tb-line);background:var(--tb-surface);color:var(--tb-ink-muted);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;cursor:default}.tb-chip b{color:var(--tb-ink);font-weight:600;margin-left:4px}.tb-chip.active{border-color:var(--tb-accent-text);background:color-mix(in srgb,var(--tb-primary) 10%,var(--tb-surface));color:var(--tb-primary)}.tb-issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tb-issues li{display:flex;gap:10px;align-items:flex-start}.tb-select.error{border-color:var(--tb-bad)}.tb-mapping td{vertical-align:top}.tb-check{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--tb-ink-muted);cursor:pointer}.tb-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--tb-scrim);z-index:40}.tb-dialog{position:fixed;z-index:41;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));background:var(--tb-surface);border:1px solid var(--tb-line);border-radius:12px;padding:20px 22px;box-shadow:var(--tb-e3);display:flex;flex-direction:column;gap:12px}.tb-dialog h3{margin:0;font:var(--tb-text-h2)}.tb-dialog p{margin:0}.tb-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.tb-review tr.tb-held td{color:var(--tb-ink-muted);text-decoration:line-through}.tb-review tr.tb-held td:first-child,.tb-review tr.tb-held td:last-child{text-decoration:none}.tb-toasts{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;flex-direction:column;gap:8px;max-width:360px}.tb-toast{background:var(--tb-surface);border:1px solid var(--tb-line);border-left:4px solid var(--tb-info);border-radius:var(--tb-r-btn);padding:10px 12px;box-shadow:var(--tb-e2);cursor:pointer}.tb-toast.ok{border-left-color:var(--tb-good)}.tb-toast.warn{border-left-color:var(--tb-warn)}.tb-toast.bad{border-left-color:var(--tb-bad)}.tb-tabs{display:flex;gap:4px;border-bottom:1px solid var(--tb-line);margin:0 0 16px}.tb-tab{padding:8px 14px;font-weight:500;color:var(--tb-ink-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0}.tb-tab:hover{color:var(--tb-ink);background:var(--tb-hover-tint)}.tb-tab.active{color:var(--tb-accent-text);border-bottom-color:var(--tb-primary)}.tb-tab.locked{opacity:.7;cursor:not-allowed}.tb-grid-2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:var(--tb-grid-gap);align-items:start}.tb-bad{color:var(--tb-bad)}.tb-fill{display:flex;flex-direction:column;min-height:0;height:calc(100vh - var(--tb-topbar) - 2 * var(--tb-gutter))}.tb-fill .tb-page-head{margin-bottom:var(--tb-s3)}.tb-assistant{display:grid;grid-template-columns:240px minmax(0,1fr) 320px;grid-template-rows:minmax(0,1fr);gap:var(--tb-grid-gap);flex:1;min-height:0}@media (max-width: 1280px){.tb-assistant{grid-template-columns:220px minmax(0,1fr) 280px}}@media (max-width: 1100px){.tb-assistant{grid-template-columns:minmax(0,1fr) 280px}.tb-assistant .tb-conv-list{display:none}}.tb-conv-list,.tb-evidence{overflow:auto}.tb-conv-list{background:var(--tb-surface);border:1px solid var(--tb-line);border-radius:var(--tb-r-card);padding:8px}.tb-conv{position:relative;padding:8px 28px 8px 10px;border-radius:10px;cursor:pointer}.tb-conv .title{font-weight:500;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.tb-conv:hover{background:var(--tb-hover-tint)}.tb-conv.active{background:var(--tb-selected-tint)}.tb-conv .del{position:absolute;right:6px;top:8px;border:0;background:transparent;color:var(--tb-ink-muted);cursor:pointer;opacity:0}.tb-conv:hover .del{opacity:1}.tb-chat{display:flex;flex-direction:column;background:var(--tb-surface);border:1px solid var(--tb-line);border-radius:var(--tb-r-card);min-width:0;min-height:0;overflow:hidden}.tb-chat-scroll{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:var(--tb-s4)}.tb-chat-empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}.tb-msg{display:flex;gap:10px;align-items:flex-start}.tb-msg.user{justify-content:flex-end}.tb-msg.assistant.selected .tb-bubble{box-shadow:0 0 0 2px var(--tb-accent-soft),0 0 0 3px var(--tb-primary)}.tb-bubble{max-width:78%;padding:12px 14px;border-radius:16px;line-height:1.5}.tb-bubble.user{background:var(--tb-primary);color:var(--tb-primary-ink);border-bottom-right-radius:6px;white-space:pre-wrap}.tb-bubble.assistant{background:var(--tb-ground);border:1px solid var(--tb-line);border-top-left-radius:6px;max-width:92%;cursor:pointer}.tb-avatar{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--tb-accent-soft);color:var(--tb-primary)}.tb-avatar.big{width:48px;height:48px}.tb-answer p{margin:0 0 8px}.tb-answer p:last-child{margin-bottom:0}.tb-answer ul,.tb-answer ol{margin:4px 0 8px 18px;padding:0}.tb-answer h4{margin:8px 0 4px;font:var(--tb-text-h3)}.tb-answer-table .tb-table td,.tb-answer-table .tb-table th{padding:6px 8px}.tb-chip.follow{border-color:var(--tb-accent-soft);background:var(--tb-accent-soft);color:var(--tb-accent-text)}.tb-chip.follow:hover{background:var(--tb-primary);color:#fff}.tb-composer{border-top:1px solid var(--tb-line);padding:var(--tb-s3) var(--tb-s5);display:flex;flex-direction:column;gap:8px}.tb-composer textarea{resize:none;min-height:48px;max-height:140px;border-radius:12px}.tb-evidence-item{border:1px solid var(--tb-line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.tb-live{display:flex;align-items:center;gap:8px;color:var(--tb-ink-muted);flex-wrap:wrap}.tb-spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--tb-accent-soft);border-top-color:var(--tb-primary);animation:tb-spin .8s linear infinite;flex:none}@keyframes tb-spin{to{transform:rotate(360deg)}}.tb-answer.streaming{margin-top:8px}.tb-answer.streaming:after{content:"▍";color:var(--tb-primary);animation:tb-blink 1s steps(2) infinite}@keyframes tb-blink{50%{opacity:0}}.tb-starters{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;width:min(640px,100%)}.tb-starter{display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border:1px solid var(--tb-line);border-radius:12px;background:var(--tb-surface);color:var(--tb-ink);font:inherit;cursor:pointer}.tb-starter svg{color:var(--tb-primary);flex:none}.tb-starter>span{display:flex;flex-direction:column}.tb-starter .q{font-weight:500}.tb-starter:hover:not(:disabled){border-color:var(--tb-primary);background:var(--tb-accent-soft)}.tb-starter:disabled{opacity:.55;cursor:not-allowed}.tb-iconbtn{border:0;background:transparent;color:var(--tb-ink-muted);cursor:pointer;padding:2px 4px;border-radius:6px}.tb-iconbtn:hover{background:var(--tb-hover-tint);color:var(--tb-ink)}.tb-select.sm{height:28px;padding:0 8px;font-size:12.5px;min-height:28px}.tb-segment{height:28px;align-items:center;display:inline-flex;border:1px solid var(--tb-line);border-radius:999px;overflow:hidden}.tb-segment button{border:0;background:transparent;padding:0 12px;font:inherit;font-size:12.5px;color:var(--tb-ink-muted);cursor:pointer}.tb-segment button.active{background:var(--tb-accent-soft);color:var(--tb-primary);font-weight:600}.tb-md-table{margin:6px 0}.tb-md-table td,.tb-md-table th{padding:5px 8px}.tb-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--tb-surface);border:1px solid var(--tb-line);border-radius:var(--tb-r-card);padding:10px 12px;margin-bottom:var(--tb-s4)}.tb-toolbar .tb-input,.tb-toolbar .tb-select{height:32px;min-width:0}.tb-search{position:relative;flex:1;min-width:200px;display:flex}.tb-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--tb-ink-muted);pointer-events:none}.tb-search .tb-input{width:100%;padding-left:32px}.tb-statement-head{display:flex;flex-wrap:wrap;gap:18px;padding:var(--tb-s3) var(--tb-card-pad);border-bottom:1px solid var(--tb-line);color:var(--tb-ink-muted)}.tb-statement-head b{color:var(--tb-ink);margin-left:4px}button.tb-tab{background:none;border:0;border-bottom:2px solid transparent;font:inherit;cursor:pointer}button.tb-tab.active{border-bottom-color:var(--tb-accent-text)}.tb-reminder-list{display:flex;flex-direction:column}.tb-reminder{display:flex;align-items:flex-start;gap:12px;padding:var(--tb-s3) var(--tb-card-pad);border-bottom:1px solid var(--tb-line)}.tb-reminder:last-child{border-bottom:0}.tb-reminder-date{flex:none;width:110px}.tb-reminder-main{flex:1;min-width:0}.tb-reminder-main svg{color:var(--tb-primary);flex:none}.tb-reminder-actions{display:flex;gap:6px;flex:none}.tb-card-head h3,.tb-drawer-head h3{font:var(--tb-text-h2)}button.tb-chip{cursor:pointer}button.tb-chip:hover{border-color:var(--tb-primary);color:var(--tb-accent-text)}.tb-segment button:hover:not(.active){background:var(--tb-hover-tint);color:var(--tb-ink)}.tb-linklike{border:0;background:none;padding:0;font:inherit;font-size:12.5px;color:var(--tb-accent-text);cursor:pointer;text-align:left}.tb-linklike:hover{text-decoration:underline}.tb-walink{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--tb-good);border-radius:999px;background:var(--tb-good-bg);color:var(--tb-good-text);font:inherit;font-size:11.5px;font-weight:500;padding:2px 10px;cursor:pointer}.tb-walink:hover{background:var(--tb-good);color:#fff}.tb-auth{min-height:100vh;display:grid;grid-template-columns:minmax(400px,43%) 1fr;background:var(--tb-surface)}.tb-auth-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:var(--tb-s8);padding:56px 48px 28px;background:linear-gradient(165deg,#0c1c3c 0%,#071230 55%,var(--tb-nav) 100%);color:#fff}.tb-auth-hero:after{content:"";position:absolute;left:-40px;bottom:-150px;width:420px;height:420px;border:56px solid rgba(10,104,255,.08);border-left:0;border-top:0;transform:rotate(45deg);pointer-events:none}.tb-auth-label{font:var(--tb-text-label);letter-spacing:.08em;text-transform:uppercase;color:#7fb0ff;margin-bottom:var(--tb-s4)}.tb-auth-h1{font:600 38px/1.18 var(--tb-font-ui);letter-spacing:-.015em;margin:0 0 var(--tb-s4);max-width:420px}.tb-auth-sub{margin:0;max-width:400px;font:400 15px/1.6 var(--tb-font-ui);color:var(--tb-nav-ink)}.tb-auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tb-s3) var(--tb-s4);max-width:440px;margin-top:var(--tb-s4)}.tb-auth-chip{display:flex;align-items:center;gap:var(--tb-s3);font:600 13.5px/1.3 var(--tb-font-ui);color:#fff}.tb-auth-chip .icon{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:var(--tb-r-btn);background:#0a68ff47;color:#cfe2ff}.tb-auth-foot{margin:var(--tb-s4) 0 0;font:var(--tb-text-meta);color:var(--tb-nav-ink);max-width:420px}.tb-auth-foot.bottom{position:relative;z-index:1}.tb-auth-form{display:flex;flex-direction:column;align-items:center;padding:36px clamp(24px,6vw,72px) 20px}.tb-auth-brand{display:flex;align-items:center;gap:var(--tb-s2);font:600 16px/1 var(--tb-font-ui);color:var(--tb-ink);margin-bottom:var(--tb-s6);align-self:center}.tb-auth-card{width:min(400px,100%);margin:auto 0}.tb-auth-card h2{font:600 24px/1.25 var(--tb-font-ui);letter-spacing:-.01em;margin:0 0 var(--tb-s2)}.tb-auth-card .tb-auth-cardsub{margin:0 0 var(--tb-s5);color:var(--tb-ink-muted);font:var(--tb-text-body)}.tb-auth-fieldrow{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.tb-auth-fieldrow label{font:600 12.5px/1.3 var(--tb-font-ui);color:var(--tb-ink)}.tb-auth-fieldrow .hint{font:var(--tb-text-meta)}.tb-auth-card .tb-input{width:100%;height:40px;border:1px solid var(--tb-line-strong);border-radius:var(--tb-r-btn);padding:0 var(--tb-s3);background:var(--tb-surface);color:var(--tb-ink)}.tb-auth-card .tb-input:focus{outline:none;border-color:var(--tb-primary);box-shadow:0 0 0 3px #0a68ff2e}.tb-auth-field{margin-bottom:var(--tb-s4)}.tb-auth-err{margin:6px 0 0;font:var(--tb-text-meta);color:var(--tb-bad-text)}.tb-auth-help{margin:0 0 var(--tb-s4);padding:var(--tb-s3) var(--tb-s4);border:1px solid var(--tb-line);border-radius:var(--tb-r-btn);background:var(--tb-accent-soft)}.tb-auth-help ol{margin:0;padding-left:18px;font:var(--tb-text-meta);color:var(--tb-ink);line-height:1.8}.tb-auth-card .tb-btn.primary{width:100%;height:42px;font-weight:600}.tb-auth-below{margin-top:var(--tb-s4);text-align:center;font:var(--tb-text-meta);color:var(--tb-ink-muted)}.tb-auth-footer{width:min(400px,100%);align-self:center;display:flex;justify-content:space-between;gap:var(--tb-s4);padding-top:var(--tb-s6);font:var(--tb-text-meta);color:var(--tb-ink-muted)}@media (max-width: 920px){.tb-auth{grid-template-columns:1fr}.tb-auth-hero{padding:32px 24px;gap:var(--tb-s5);justify-content:flex-start}.tb-auth-h1{font-size:28px}.tb-auth-hero:after{display:none}.tb-auth-form{padding:28px 20px 16px}}
