:root{--red: #bb2027;--red-deep: #8f1519;--red-tint: #fbe4e4;--ink: #16181d;--ink-soft: #4a4f57;--muted: #7a8089;--line-strong: #c9ccc7;--line: #e0e2df;--paper: #f0f1ef;--surface: #ffffff;--pos: #1b7a3d;--neg: #b42318;--active: #1e5aa8;--active-tint: #e3edf9;--series-cap: #bb2027;--series-shares: #1e5aa8;--font-sans: "Archivo", -apple-system, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--radius: 10px;--radius-sm: 7px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-header{display:flex;align-items:center;gap:12px;padding:13px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.app-logo{width:28px;height:28px;object-fit:contain;flex-shrink:0}.app-title{font-size:15px;font-weight:700;margin:0;letter-spacing:-.01em}.app-subtitle{font-family:var(--font-mono);font-size:10px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1px 0 0}.app-header-spacer{flex:1}.page{max-width:1180px;margin:0 auto;padding:24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;overflow:hidden}.card-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:15px 20px;border-bottom:1px solid var(--line)}.card-title{font-size:14px;font-weight:700;margin:0;letter-spacing:-.01em}.card-note{font-size:12px;color:var(--muted);margin:0}.card-body{padding:20px}.card-foot{padding:13px 20px;border-top:1px solid var(--line);background:var(--paper)}.card-actions{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:5px}.field-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.input,.select{padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:150px}.input:focus,.select:focus{border-color:var(--ink-soft)}.input-ticker{font-family:var(--font-mono);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.input-ticker::placeholder{color:var(--muted);font-weight:400;letter-spacing:.06em}.input-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{padding:10px 22px;border:none;border-radius:var(--radius-sm);background:var(--ink);color:#fff;font-weight:600;letter-spacing:.01em}.btn:hover:not(:disabled){background:#000}.btn:disabled{opacity:.55;cursor:default}.btn-quiet{padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);font-size:12px;font-weight:600;white-space:nowrap}.btn-quiet:hover{border-color:var(--ink-soft);color:var(--ink)}.chip{padding:4px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em}.chip:hover{border-color:var(--red);color:var(--red);background:var(--red-tint)}.cache-stamp{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft);cursor:pointer}.toggle input{accent-color:var(--ink);width:14px;height:14px}.toggle-key{width:14px;height:3px;border-radius:2px;display:inline-block}.notice{display:flex;gap:10px;padding:12px 15px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);font-size:13px;line-height:1.5;margin-bottom:16px;color:var(--ink-soft)}.notice strong{color:var(--ink);font-weight:700}.notice-info{border-left:3px solid var(--line-strong)}.notice-warn{border-left:3px solid var(--red)}.notice-error{border-left:3px solid var(--red);background:var(--red-tint);color:var(--red-deep)}.notice-error strong{color:var(--red-deep)}.notice-mark{color:var(--muted);flex-shrink:0;font-weight:700}.notice-warn .notice-mark,.notice-error .notice-mark{color:var(--red)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line)}.stat{background:var(--surface);padding:15px 20px}.stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 5px}.stat-value{font-family:var(--font-mono);font-size:19px;font-weight:500;letter-spacing:-.01em;margin:0}.stat-hero{font-size:38px;line-height:1.1;font-weight:500;font-variant-numeric:normal}.stat-meta{font-size:12px;color:var(--muted);margin:4px 0 0}.delta-up{color:var(--pos)}.delta-down{color:var(--neg)}.table-scroll{overflow:auto;max-height:540px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{position:sticky;top:0;background:var(--surface);text-align:left;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line-strong);white-space:nowrap}thead th.num{text-align:right}tbody td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--paper)}.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.row-outside td{color:var(--muted);background:#fafbfa}a{color:var(--red);text-underline-offset:2px}a:hover{color:var(--red-deep)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-family:var(--font-mono);font-size:11px;font-weight:500;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap}.badge-warn{background:var(--red-tint);border-color:#f0cccc;color:var(--red-deep)}.badge-form{background:var(--active-tint);border-color:#c9dcf3;color:var(--active);font-weight:600}.hint{font-size:12px;color:var(--muted)}.chart-tooltip{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:0 4px 14px #16181d1a;padding:10px 12px;font-size:12px;min-width:190px}.chart-tooltip-date{font-weight:700;margin-bottom:6px}.chart-tooltip-row{display:flex;justify-content:space-between;gap:16px;color:var(--ink-soft)}.chart-tooltip-row strong{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.chart-tooltip-foot{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.panel-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:16px 0 0 4px}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.spinner{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;vertical-align:-2px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--paper)}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.login-band{background:var(--ink);padding:22px 28px;display:flex;align-items:center;gap:13px}.login-band img{width:30px;height:30px;object-fit:contain}.login-wordmark{color:#fff;font-size:15px;font-weight:700;letter-spacing:.02em;margin:0}.login-wordmark-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#9aa0a8;margin:2px 0 0}.login-body{padding:26px 28px 28px}.login-title{font-size:19px;font-weight:700;margin:0 0 6px;letter-spacing:-.015em}.login-copy{font-size:13px;color:var(--ink-soft);margin:0 0 20px;line-height:1.55}.login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-weight:600;color:var(--ink)}.login-btn:hover:not(:disabled){border-color:var(--ink-soft);background:var(--paper)}.login-btn:disabled{opacity:.6;cursor:default}.login-error{background:var(--red-tint);border-left:3px solid var(--red);border-radius:var(--radius-sm);padding:10px 13px;font-size:12.5px;color:var(--red-deep);margin-bottom:16px;line-height:1.45}.login-foot{margin:18px 0 0;text-align:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.login-spinner{width:14px;height:14px;border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}.app-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;border-radius:var(--radius-sm)}.app-brand:hover{color:inherit}.app-brand:hover .app-title{color:var(--red)}.tools-nav-wrap{position:relative}.tools-nav-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-soft);background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:color .15s,border-color .15s,background .15s}.tools-nav-btn:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--paper)}.tools-nav-arrow{width:12px;height:12px;transition:transform .15s}.tools-nav-arrow.open{transform:rotate(180deg)}.tools-nav-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:min(246px,calc(100vw - 24px));max-height:calc(100vh - 96px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 10px 25px #16181d1f;padding:6px 0;z-index:200}.tools-nav-home{display:block;padding:8px 16px;font-size:13px;font-weight:600;color:#4f46e5;text-decoration:none}.tools-nav-home:hover{background:#eef2ff;color:#4f46e5}.tools-nav-sep{margin:4px 0;border-top:1px solid var(--line)}.tools-nav-link{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;font-size:13px;color:var(--ink);text-decoration:none}.tools-nav-link:hover{background:var(--paper);color:var(--ink)}.tools-nav-link-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tools-nav-ext{width:10px;height:10px;opacity:.4;flex-shrink:0;margin-left:8px}.tools-nav-loading{padding:8px 16px;font-size:12px;color:var(--muted)}.user-menu-wrap{position:relative}.user-menu-btn{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 3px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:999px;transition:color .15s,border-color .15s,background .15s}.user-menu-btn:hover{color:var(--ink);border-color:var(--line);background:var(--paper)}.user-menu-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block;flex-shrink:0}.user-menu-initials{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:11px;letter-spacing:.02em}.user-menu-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:min(268px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 10px 25px #16181d1f;padding:16px;z-index:200}.user-menu-fullname{font-size:15px;font-weight:700;letter-spacing:-.01em;margin:0}.user-menu-email{font-size:12px;color:var(--muted);margin:3px 0 0;overflow-wrap:anywhere}.user-menu-signout{width:100%;margin-top:14px}:root{--ask-bg: var(--paper);--ask-surface: var(--surface);--ask-border: var(--line);--ask-text: var(--ink);--ask-text-secondary: var(--muted);--ask-blue: var(--active);--ask-blue-light: var(--active-tint);--ask-red: var(--neg);--ask-shadow-md: 0 4px 6px rgba(22, 24, 29, .07), 0 2px 4px rgba(22, 24, 29, .06);--ask-radius: var(--radius-sm);--ask-radius-lg: var(--radius)}.ask-launcher{position:fixed;right:20px;bottom:20px;z-index:900;display:flex;align-items:center;gap:7px;padding:10px 16px;border:1px solid var(--ask-border);border-radius:999px;background:var(--ask-surface);color:var(--ask-text);font-size:14px;font-weight:600;box-shadow:var(--ask-shadow-md);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.ask-launcher:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001f}.ask-launcher-spark{color:var(--ask-blue);font-size:15px;line-height:1}.ask-panel{position:fixed;top:0;right:0;bottom:0;z-index:950;width:min(var(--ask-panel-width, 420px),100vw);display:flex;flex-direction:column;background:var(--ask-surface);border-left:1px solid var(--ask-border);box-shadow:-4px 0 24px #00000014}.ask-panel-hidden{display:none}body.ask-open .ask-app{padding-right:min(var(--ask-panel-width, 420px),100vw)}body.ask-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.ask-resize-handle{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:1}.ask-resize-handle:hover{background:var(--ask-blue);opacity:.35}.ask-resize-handle:focus-visible{outline:2px solid var(--ask-blue);outline-offset:0;background:var(--ask-blue);opacity:.35}.ask-launcher-dot{width:7px;height:7px;border-radius:50%;background:var(--ask-blue)}.ask-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--ask-border);flex:0 0 auto}.ask-header-title{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700}.ask-header-actions{display:flex;align-items:center;gap:4px}.ask-text-button{border:none;background:none;color:var(--ask-text-secondary);font-size:13px;padding:4px 8px;border-radius:6px;cursor:pointer}.ask-text-button:hover:not(:disabled){background:var(--ask-bg);color:var(--ask-text)}.ask-text-button:disabled{opacity:.4;cursor:default}.ask-icon-button{border:none;background:none;color:var(--ask-text-secondary);font-size:15px;line-height:1;padding:5px 8px;border-radius:6px;cursor:pointer}.ask-icon-button:hover{background:var(--ask-bg);color:var(--ask-text)}.ask-scroll{flex:1 1 auto;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.ask-empty{color:var(--ask-text-secondary)}.ask-empty-lead{font-size:13px;line-height:1.6;margin-bottom:14px}.ask-suggestions{display:flex;flex-direction:column;gap:7px}.ask-suggestion{text-align:left;padding:9px 12px;border:1px solid var(--ask-border);border-radius:var(--ask-radius);background:var(--ask-bg);color:var(--ask-text);font-size:13px;cursor:pointer}.ask-suggestion:hover{border-color:var(--ask-blue);background:var(--ask-blue-light)}.ask-message{font-size:13.5px;line-height:1.65}.ask-message-user{align-self:flex-end;max-width:85%;padding:9px 13px;border-radius:var(--ask-radius-lg);background:var(--ask-blue);color:#fff;white-space:pre-wrap}.ask-message-assistant{color:var(--ask-text)}.ask-message-assistant>:first-child{margin-top:0}.ask-message-assistant p{margin:0 0 10px}.ask-message-assistant p:last-child{margin-bottom:0}.ask-message-assistant ul,.ask-message-assistant ol{margin:0 0 10px;padding-left:20px}.ask-message-assistant li{margin-bottom:4px}.ask-message-assistant h1,.ask-message-assistant h2,.ask-message-assistant h3{font-size:14px;margin:14px 0 7px}.ask-message-assistant code{background:var(--ask-bg);border:1px solid var(--ask-border);border-radius:4px;padding:1px 4px;font-size:12px}.ask-message-assistant pre{background:var(--ask-bg);border:1px solid var(--ask-border);border-radius:var(--ask-radius);padding:10px;overflow-x:auto;margin:0 0 10px}.ask-message-assistant pre code{border:none;padding:0;background:none}.ask-message-assistant table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:12.5px;display:block;overflow-x:auto}.ask-message-assistant th,.ask-message-assistant td{border:1px solid var(--ask-border);padding:5px 8px;text-align:left}.ask-message-assistant th{background:var(--ask-bg);font-weight:600}.ask-message-assistant a{color:var(--ask-blue)}.ask-status{color:var(--ask-text-secondary);font-size:12.5px;font-style:italic}.ask-caret{display:inline-block;width:2px;height:14px;margin-left:2px;background:var(--ask-blue);vertical-align:text-bottom;animation:ask-blink 1s steps(2,start) infinite}@keyframes ask-blink{to{visibility:hidden}}.ask-sources{margin-top:10px;padding-top:9px;border-top:1px solid var(--ask-border);display:flex;flex-direction:column;gap:3px}.ask-sources-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ask-text-secondary);margin-bottom:2px}.ask-sources a{font-size:12.5px;color:var(--ask-blue);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-sources a:hover{text-decoration:underline}.ask-error{padding:9px 12px;border:1px solid var(--ask-red);border-radius:var(--ask-radius);background:#fef2f2;color:var(--ask-red);font-size:12.5px}.ask-composer{flex:0 0 auto;display:flex;gap:8px;align-items:flex-end;padding:12px 16px 16px;border-top:1px solid var(--ask-border)}.ask-input{flex:1;resize:none;padding:9px 11px;border:1px solid var(--ask-border);border-radius:var(--ask-radius);font-family:inherit;font-size:13.5px;line-height:1.5;color:var(--ask-text)}.ask-input:focus{outline:none;border-color:var(--ask-blue)}.ask-input:disabled{background:var(--ask-bg)}.ask-send{padding:9px 16px;border:1px solid var(--ask-blue);background:var(--ask-blue);color:#fff;border-radius:var(--ask-radius);font-size:13px;font-weight:600;cursor:pointer}.ask-send:disabled{opacity:.45;cursor:default}.ask-send-stop{background:var(--ask-surface);color:var(--ask-text-secondary);border-color:var(--ask-border)}body.ask-overlay.ask-open .ask-app{padding-right:0}body.ask-overlay .ask-resize-handle{display:none}@media(max-width:640px){.ask-panel{width:100vw}}.ask-input{background:var(--ask-surface)}.ask-input::placeholder{color:var(--ask-text-secondary)}.ask-message-assistant code,.ask-message-assistant pre,.ask-message-assistant td,.ask-message-assistant th{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ask-persist-warning{flex:0 0 auto;padding:8px 16px;border-top:1px solid var(--ask-border);color:var(--ask-text-secondary);font-size:12px;line-height:1.4}
