:root{color-scheme:light;--page: #f6f6f3;--surface-1: #fcfcfb;--surface-2: #f0efec;--border: #e1e0d9;--border-strong: #c3c2b7;--text: #0b0b0b;--text-secondary: #52514e;--text-muted: #6e6c66;--accent: #2a78d6;--accent-hover: #256abf;--accent-soft: #e6f0fc;--on-accent: #ffffff;--on-dark: #ffffff;--series-1: #2a78d6;--series-2: #eb6834;--grid: #e1e0d9;--axis: #c3c2b7;--seq-1: #e6f0fc;--seq-2: #b7d3f6;--seq-3: #6da7ec;--seq-4: #2a78d6;--seq-5: #184f95;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--good-text: #006300;--bad-text: #b42828;--warn-text: #8a5a00;--good-soft: #e3f5e3;--bad-soft: #fbe5e5;--warn-soft: #fff3d6;--info-soft: #e6f0fc;--info-text: #1c5cab;--radius: 8px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(11, 11, 11, .05), 0 1px 1px rgba(11, 11, 11, .03);--shadow-lg: 0 12px 40px rgba(11, 11, 11, .18);--sidebar-w: 220px;--topbar-h: 52px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0d0d0d;--surface-1: #1a1a19;--surface-2: #232321;--border: #2c2c2a;--border-strong: #45453f;--text: #f0efec;--text-secondary: #c3c2b7;--text-muted: #9a988f;--accent: #3987e5;--accent-hover: #5598e7;--accent-soft: #15253a;--series-1: #3987e5;--series-2: #d95926;--grid: #2c2c2a;--axis: #383835;--seq-1: #1b2533;--seq-2: #184f95;--seq-3: #256abf;--seq-4: #3987e5;--seq-5: #86b6ef;--good-text: #3fcf3f;--bad-text: #f08080;--warn-text: #f5c451;--good-soft: #10260f;--bad-soft: #2e1414;--warn-soft: #2c230c;--info-soft: #15253a;--info-text: #86b6ef;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:.92em}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:22px;font-weight:650}h2{font-size:15px;font-weight:600}h3{font-size:14px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.muted{color:var(--text-muted)}.small{font-size:12px}.strong{font-weight:600}.nowrap{white-space:nowrap}.wrap{white-space:normal;word-break:break-word}.truncate{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.pad{padding:8px}.text-bad{color:var(--bad-text)}.text-good{color:var(--good-text)}.text-warn{color:var(--warn-text)}.note{margin:12px 0 0}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"top top" "side main";min-height:100%}.topbar{grid-area:top;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--surface-1);border-bottom:1px solid var(--border)}.topbar-spacer{flex:1}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.02em}.brand-lg{font-size:20px}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;background:var(--accent);color:var(--on-accent);font-size:14px}.user-chip{display:inline-flex;align-items:center;gap:8px;min-width:0}.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.nav-toggle{display:none}.sidebar{grid-area:side;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:12px 8px 24px;background:var(--surface-1);border-right:1px solid var(--border)}.nav-section+.nav-section{margin-top:16px}.nav-heading{padding:4px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.nav-link{display:block;padding:7px 12px;border-radius:var(--radius-sm);color:var(--text-secondary)}.nav-link:hover{background:var(--surface-2);text-decoration:none;color:var(--text)}.nav-link.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.scrim{display:none}.content{grid-area:main;min-width:0;padding:20px 24px 48px;max-width:1440px;width:100%}@media (max-width: 900px){.shell{grid-template-columns:1fr;grid-template-areas:"top" "main"}.nav-toggle{display:inline-grid}.sidebar{position:fixed;left:0;top:var(--topbar-h);z-index:30;width:260px;transform:translate(-100%);transition:transform .18s ease;box-shadow:var(--shadow-lg)}.nav-open .sidebar{transform:none}.nav-open .scrim{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;z-index:25;background:#0000004d}.content{padding:16px 16px 40px}.user-name{display:none}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.page-header p{margin:4px 0 0;max-width:820px}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crumbs{margin-bottom:8px;font-size:13px;color:var(--text-muted)}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:16px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-2>.card{margin-bottom:0}.grid-2+.card{margin-top:16px}@media (max-width: 1100px){.grid-2{grid-template-columns:minmax(0,1fr)}}.banner{margin:0 0 12px}.filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.card .filterbar{margin-bottom:12px}.daterange{display:inline-flex;align-items:center;gap:6px}.daterange .input{width:150px}.inline-form{display:inline-flex;align-items:center;gap:6px}.inline-label{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary)}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}.kpis-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.kpi-accent{border-style:dashed;border-color:var(--border-strong);background:var(--surface-2)}.kpi-label{font-size:12px;color:var(--text-secondary);font-weight:500}.kpi-value{font-size:24px;font-weight:650;line-height:1.2;overflow-wrap:anywhere}.kpi-sub{font-size:12px;color:var(--text-muted)}.input{width:100%;min-width:0;height:34px;padding:6px 10px;font:inherit;color:var(--text);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.filterbar .input,.card-actions .input,.inline-form .input,.inline-label .input{width:auto}textarea.input{height:auto;resize:vertical;line-height:1.45}select.input{padding-right:28px}.input:focus,.btn:focus-visible,.ms-trigger:focus-visible,.segmented button:focus-visible,.th-sort:focus-visible,.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input:disabled{opacity:.65}.input.is-invalid{border-color:var(--status-critical)}.input-sm{height:30px;font-size:13px;padding:4px 8px}.form{display:flex;flex-direction:column;gap:12px;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 900px){.form-grid-3,.form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.form-grid,.form-grid-3,.form-grid-4{grid-template-columns:minmax(0,1fr)}}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.field-hint{font-size:12px;color:var(--text-muted)}.field-error,.form-error{font-size:12px;color:var(--bad-text);margin:0}.form-error{font-size:13px;padding:8px 10px;background:var(--bad-soft);border-radius:var(--radius-sm)}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.settings{border:0;padding:0;margin:0;min-width:0}.toggles{display:flex;flex-direction:column;gap:10px;margin-top:14px}.code-editor{font-family:var(--mono);font-size:12.5px;-moz-tab-size:2;tab-size:2}.issues{margin:8px 0 0;padding-left:18px;font-size:13px}.issues-bad{color:var(--bad-text)}.issues-warn{color:var(--warn-text)}h3.sub{margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-track{position:relative;flex:none;width:34px;height:20px;border-radius:10px;background:var(--border-strong);transition:background .15s}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0000004d}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.toggle.is-disabled{cursor:default;opacity:.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;font:inherit;font-weight:500;color:var(--text);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover:not(:disabled){background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-xs{height:24px;padding:0 8px;font-size:12px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{color:var(--bad-text);border-color:color-mix(in srgb,var(--status-critical) 50%,var(--border-strong))}.btn-danger:hover:not(:disabled){background:var(--bad-soft)}.modal-foot .btn-danger{background:var(--status-critical);color:#fff;border-color:var(--status-critical)}.btn-ghost{border-color:transparent;background:transparent}.btn-block{width:100%}.btn-icon{display:inline-grid;place-items:center;width:32px;height:32px;font-size:18px;background:transparent;color:var(--text);border:0;border-radius:var(--radius-sm);cursor:pointer}.btn-icon:hover{background:var(--surface-2)}.link-btn{padding:0;font:inherit;font-weight:600;color:var(--accent);background:none;border:0;cursor:pointer;text-align:left}.link-btn:hover{text-decoration:underline}.row-actions{display:inline-flex;gap:6px}.segmented{display:inline-flex;flex-wrap:wrap;padding:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.segmented button{height:28px;padding:0 10px;font:inherit;font-size:13px;color:var(--text-secondary);background:transparent;border:0;border-radius:4px;cursor:pointer}.segmented button:hover{color:var(--text)}.segmented button.is-active{background:var(--surface-1);color:var(--text);font-weight:600;box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:500;line-height:18px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}.badge-good{background:var(--good-soft);color:var(--good-text);border-color:transparent}.badge-bad{background:var(--bad-soft);color:var(--bad-text);border-color:transparent}.badge-warn{background:var(--warn-soft);color:var(--warn-text);border-color:transparent}.badge-info{background:var(--info-soft);color:var(--info-text);border-color:transparent}.chips{display:flex;flex-wrap:wrap;gap:6px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.table th,.table td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.table th{font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--surface-1);position:sticky;top:0}.table tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.table tfoot td{font-weight:600;border-top:2px solid var(--border-strong);border-bottom:0}.table-dense th,.table-dense td{padding:6px 8px;font-size:13px}.al-right{text-align:right!important}.al-center{text-align:center!important}.al-left{text-align:left!important}.th-sort{display:inline-flex;align-items:center;gap:4px;padding:0;font:inherit;color:inherit;background:none;border:0;cursor:pointer}.al-right .th-sort{flex-direction:row}.th-sort.is-active{color:var(--text)}.sort-ind{font-size:10px;opacity:.55}.th-sort.is-active .sort-ind{opacity:1}.table td .wrap{display:inline-block;max-width:380px}.key-cell{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.err-cell{display:inline-flex;align-items:center;gap:6px;white-space:normal;max-width:420px}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}.is-fetching{opacity:.6;transition:opacity .15s}pre.details{max-width:480px;max-height:240px;overflow:auto;margin:0 0 6px;padding:8px;font:12px/1.4 var(--mono);background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre-wrap}.heat-cell{transition:background .1s}.heat-legend{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding-top:10px}.heat-swatch{width:22px;height:12px;border-radius:2px;border:1px solid var(--border)}.rate-cell{display:inline-flex;align-items:center;gap:8px}.rate-bar{display:inline-block;width:70px;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.rate-fill{display:block;height:100%}.rate-good{background:var(--status-good)}.rate-warn{background:var(--status-warning)}.rate-bad{background:var(--status-critical)}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:32px 16px;text-align:center;color:var(--text-secondary)}.state-loading{flex-direction:row}.state-error{color:var(--bad-text);background:var(--bad-soft);border-radius:var(--radius);margin-bottom:16px}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ms{position:relative}.ms-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:180px;max-width:280px;height:34px;padding:0 10px;font:inherit;color:var(--text);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.field .ms-trigger{width:100%;max-width:none}.ms-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;width:min(320px,calc(100vw - 32px));padding:6px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.ms-search{margin-bottom:6px}.ms-clear{width:100%;padding:6px 8px;font:inherit;text-align:left;color:var(--accent);background:none;border:0;border-bottom:1px solid var(--border);cursor:pointer}.ms-clear:disabled{color:var(--text-muted);cursor:default}.ms-list{max-height:280px;overflow-y:auto}.ms-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer}.ms-opt:hover{background:var(--surface-2)}.ms-opt.is-disabled{opacity:.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:16px;background:#00000073}.modal{display:flex;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 32px);background:var(--surface-1);border-radius:10px;box-shadow:var(--shadow-lg);outline:none}.modal-wide{width:min(1040px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-body{padding:16px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.secret-box{display:flex;align-items:center;gap:8px;padding:10px 12px;margin:12px 0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.secret-box code{flex:1;word-break:break-all}.warn-text{margin-top:0;padding:8px 10px;background:var(--warn-soft);color:var(--warn-text);border-radius:var(--radius-sm)}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px}.kv code{word-break:break-all}.result-url{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.partner-editor{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px}@media (max-width: 800px){.partner-editor{grid-template-columns:minmax(0,1fr)}}.macro-help{align-self:start;position:sticky;top:0;padding:12px;background:var(--surface-2);border-radius:var(--radius)}.macro-help ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.macro-help li{display:flex;flex-direction:column}.macro-line{display:flex;align-items:center;justify-content:space-between;gap:6px}.tpl{display:flex;flex-direction:column;gap:6px}.tpl-row{display:flex;gap:6px;align-items:center}.input-method{width:90px;flex:none}.input-event{max-width:240px}.event-tpl{padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:6px}.bits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:10px}.bit{display:flex;flex-direction:column;padding:6px 8px;background:var(--accent-soft);border-radius:4px;min-width:0}.bit-free{background:var(--surface-2)}.bit-n{font-size:11px;color:var(--text-muted)}.bit-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart{width:100%;min-width:0}.chart-tip{padding:8px 10px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:12px;min-width:160px}.chart-tip-title{font-weight:600;margin-bottom:4px}.chart-tip-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:6px;color:var(--text-secondary)}.chart-tip-row strong{color:var(--text);font-variant-numeric:tabular-nums}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;padding-top:6px;font-size:12px;color:var(--text-secondary)}.ctit-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}@media (max-width: 1000px){.ctit-layout{grid-template-columns:minmax(0,1fr)}}.explain{padding:12px 14px;background:var(--surface-2);border-radius:var(--radius);font-size:13px}.explain p{margin:8px 0 0}.recharts-legend-item-text{color:var(--text-secondary)!important}.login-page{display:grid;place-items:center;min-height:100%;padding:16px}.login-card{display:flex;flex-direction:column;gap:14px;width:min(380px,100%);padding:28px 24px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.login-card p{margin:0}@media (max-width: 600px){.daterange{width:100%}.daterange .input{flex:1;width:auto}.ms,.ms-trigger{width:100%;max-width:none}.kpi-value{font-size:20px}.truncate{max-width:180px}}.link-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:10px}.link-meta .muted{margin-right:4px}.link-url{display:block;max-width:100%}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px 28px}.breakdown-title{font-weight:600;margin-bottom:8px}.breakdown ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.breakdown-row{display:flex;justify-content:space-between;gap:12px;min-width:0}.breakdown-bar{height:6px;margin-top:3px;border-radius:3px;background:var(--grid);overflow:hidden}.breakdown-bar>span{display:block;height:100%;border-radius:3px;background:var(--series-1, var(--accent))}
