:root{color-scheme:light;--bg: #f4f6f8;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--surface-hover: #f8fafc;--border: #e4e8ee;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--text-3: #8493a8;--accent: #2f6fed;--accent-hover: #2258c9;--accent-fg: #ffffff;--accent-bg: #eaf1ff;--accent-border: #bfd6ff;--positive-fg: #0f9d63;--positive-bg: #e7f8f0;--positive-border: #bdebd4;--negative-fg: #dc3545;--negative-bg: #fdecee;--negative-border: #f6c6cc;--warning-fg: #b8710a;--warning-bg: #fff6e5;--warning-border: #f3dda6;--info-fg: #2f6fed;--info-bg: #eaf1ff;--info-border: #bfd6ff;--neutral-fg: #55627a;--neutral-bg: #eef1f5;--neutral-border: #dbe1e9;--group-1-fg: #1c7a4d;--group-1-bg: #e6f6ee;--group-2-fg: #1a5fb4;--group-2-bg: #e7f0fd;--group-3-fg: #8a3ea1;--group-3-bg: #f3e8f8;--group-4-fg: #b3620a;--group-4-bg: #fdf0e0;--group-5-fg: #0e7c86;--group-5-bg: #e2f6f7;--group-6-fg: #9c3b3b;--group-6-bg: #fbe9e9;--group-7-fg: #5a5fb0;--group-7-bg: #ececfb;--group-8-fg: #556070;--group-8-bg: #eef1f5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-full: 999px;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--fs-2xl: 1.5rem;--lh-tight: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.7;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .07), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 10px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .05);--shadow-lg: 0 12px 24px rgba(15, 23, 42, .1), 0 4px 8px rgba(15, 23, 42, .06);--dur-fast: .12s;--dur: .18s;--ease: cubic-bezier(.2, .8, .2, 1);--ring-color: #2f6fed;--ring: 0 0 0 3px rgba(47, 111, 237, .35);--z-sticky: 10;--z-appbar: 100;--z-dropdown: 200;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--cell-py: 8px;--cell-px: 10px;--row-h: 36px;--table-fs: var(--fs-sm);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--primary: var(--accent);--primary-hover: var(--accent-hover);--primary-bg: var(--accent-bg);--primary-border: var(--accent-border);--positive: var(--positive-fg);--positive-hover: #0c8455;--negative: var(--negative-fg);--negative-hover: #c22836;--warning: var(--warning-fg);--text-secondary: var(--text-2);--text-muted: var(--text-3);--border-light: var(--surface-3);--border-color: var(--border);--bg-subtle: var(--surface-2);--text-primary: var(--text);--radius: var(--r-md);--radius-sm: var(--r-sm);--radius-xs: var(--r-xs);--transition: var(--dur) var(--ease)}[data-density=compact]{--cell-py: 4px;--cell-px: 7px;--row-h: 28px;--table-fs: var(--fs-xs)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0a0f1a;--surface: #111827;--surface-2: #161f2e;--surface-3: #1e293b;--surface-hover: #1a2434;--border: #263243;--border-strong: #334155;--text: #e6ebf2;--text-2: #9aa8bb;--text-3: #6b7a8f;--accent: #6ea2ff;--accent-hover: #8ab1ff;--accent-fg: #071229;--accent-bg: #16233d;--accent-border: #2c4d84;--positive-fg: #34d399;--positive-bg: #0e2b22;--positive-border: #1f5a44;--negative-fg: #f87171;--negative-bg: #33181a;--negative-border: #6c2b2f;--warning-fg: #fbbf24;--warning-bg: #322508;--warning-border: #6b4f10;--info-fg: #6ea2ff;--info-bg: #16233d;--info-border: #2c4d84;--neutral-fg: #b7c1d1;--neutral-bg: #1b2331;--neutral-border: #2c3648;--group-1-fg: #4ad999;--group-1-bg: #10291f;--group-2-fg: #6ea2ff;--group-2-bg: #142136;--group-3-fg: #c78ce0;--group-3-bg: #251c2e;--group-4-fg: #f0a544;--group-4-bg: #2c2110;--group-5-fg: #4fd0da;--group-5-bg: #0f2729;--group-6-fg: #ef8a8a;--group-6-bg: #2c1717;--group-7-fg: #a3a8ef;--group-7-bg: #1e1f34;--group-8-fg: #aab4c4;--group-8-bg: #1b2331;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 10px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 32px rgba(0, 0, 0, .55), 0 4px 10px rgba(0, 0, 0, .4);--ring-color: #6ea2ff;--ring: 0 0 0 3px rgba(110, 162, 255, .4)}}[data-theme=dark]{color-scheme:dark;--bg: #0a0f1a;--surface: #111827;--surface-2: #161f2e;--surface-3: #1e293b;--surface-hover: #1a2434;--border: #263243;--border-strong: #334155;--text: #e6ebf2;--text-2: #9aa8bb;--text-3: #6b7a8f;--accent: #6ea2ff;--accent-hover: #8ab1ff;--accent-fg: #071229;--accent-bg: #16233d;--accent-border: #2c4d84;--positive-fg: #34d399;--positive-bg: #0e2b22;--positive-border: #1f5a44;--negative-fg: #f87171;--negative-bg: #33181a;--negative-border: #6c2b2f;--warning-fg: #fbbf24;--warning-bg: #322508;--warning-border: #6b4f10;--info-fg: #6ea2ff;--info-bg: #16233d;--info-border: #2c4d84;--neutral-fg: #b7c1d1;--neutral-bg: #1b2331;--neutral-border: #2c3648;--group-1-fg: #4ad999;--group-1-bg: #10291f;--group-2-fg: #6ea2ff;--group-2-bg: #142136;--group-3-fg: #c78ce0;--group-3-bg: #251c2e;--group-4-fg: #f0a544;--group-4-bg: #2c2110;--group-5-fg: #4fd0da;--group-5-bg: #0f2729;--group-6-fg: #ef8a8a;--group-6-bg: #2c1717;--group-7-fg: #a3a8ef;--group-7-bg: #1e1f34;--group-8-fg: #aab4c4;--group-8-bg: #1b2331;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 10px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 32px rgba(0, 0, 0, .55), 0 4px 10px rgba(0, 0, 0, .4);--ring-color: #6ea2ff;--ring: 0 0 0 3px rgba(110, 162, 255, .4)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:15px;margin:0;padding:0;background:var(--bg);color:var(--text);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}h1,h2,h3,h4,h5{font-family:var(--font);color:var(--text)}h1{font-size:var(--fs-2xl);font-weight:var(--fw-bold);margin:0;letter-spacing:-.01em}h2{font-size:var(--fs-xl);font-weight:var(--fw-semibold);margin:0 0 4px}h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin:var(--space-4) 0 var(--space-2);color:var(--text-2)}h4{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin:var(--space-3) 0 var(--space-1);color:var(--text)}p{margin:0 0 var(--space-3)}a{color:var(--accent)}::selection{background:var(--accent-bg);color:var(--text)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,.sym-link:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-xs)}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){box-shadow:none}.skip-link{position:fixed;top:-100px;left:var(--space-3);z-index:1000;background:var(--accent);color:var(--accent-fg);padding:var(--space-2) var(--space-4);border-radius:var(--r-sm);font-weight:var(--fw-semibold);font-size:var(--fs-sm);transition:top var(--dur-fast) var(--ease)}.skip-link:focus{top:var(--space-3)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);border:2px solid var(--surface)}*::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.num,.data-table td.num,.data-table td[data-numeric=true],.stat-value,.price-value,.price-change{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-container{width:100%;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.app-bar{position:sticky;top:0;z-index:var(--z-appbar);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);height:52px;background:var(--surface);border-bottom:1px solid var(--border);transition:box-shadow var(--dur) var(--ease)}.app-bar.scrolled{box-shadow:var(--shadow-sm)}.app-brand{display:flex;align-items:center;gap:8px;font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--text);flex-shrink:0;white-space:nowrap}.app-brand-mark{width:26px;height:26px;border-radius:var(--r-sm);object-fit:contain;flex-shrink:0}.nav-arrows{display:flex;gap:2px;flex-shrink:0}.tablist{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none}.tablist::-webkit-scrollbar{display:none}.tab-btn{font-family:var(--font);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:8px 14px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap;position:relative;display:inline-flex;align-items:center;gap:6px}.tab-btn:hover{color:var(--text);background:var(--surface-3)}.tab-btn[aria-selected=true]{color:var(--accent);font-weight:var(--fw-semibold)}.tab-btn[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--accent);border-radius:var(--r-full)}.app-bar-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;flex-shrink:0}.status-strip{display:flex;align-items:center;gap:var(--space-3);padding:6px var(--space-4);background:var(--surface-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);flex-wrap:wrap;min-height:34px}.status-strip-left{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.status-strip-center{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.status-strip-center::-webkit-scrollbar{display:none}.status-strip-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;flex-shrink:0}.health-dot{width:8px;height:8px;border-radius:50%;background:var(--positive-fg);flex-shrink:0}.health-dot.down{background:var(--negative-fg)}.symbol-search{position:relative;display:flex;align-items:center}.symbol-search-input{width:160px;font-size:var(--fs-sm);padding:6px 10px 6px 30px;text-transform:uppercase}.symbol-search-icon{position:absolute;left:9px;color:var(--text-3);pointer-events:none;display:flex}.icon-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-toggle-btn:hover{background:var(--surface-3);color:var(--text)}.user-menu-trigger{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-full);padding:3px 10px 3px 3px;cursor:pointer;color:var(--text);font-size:var(--fs-sm)}.user-menu-trigger:hover{background:var(--surface-3)}.user-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:var(--fw-bold);flex-shrink:0}.user-info{font-size:var(--fs-sm);color:var(--text-3);white-space:nowrap;flex-shrink:0}.logout-link{color:var(--accent);text-decoration:none;margin-left:4px;font-weight:var(--fw-medium)}.logout-link:hover{text-decoration:underline}.popover-user-header{padding:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:4px}.popover-user-name{font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--text)}.popover-user-meta{font-size:var(--fs-2xs);color:var(--text-3);margin-top:2px}.content-box{border-radius:0;background:var(--surface);padding:var(--space-4);flex:1}.content-box.text-tab{max-width:1200px;margin:0 auto;width:100%}.tabpanel:focus-visible{outline:none;box-shadow:none}.version-footer-inline{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-2xs);color:var(--text-3);padding:6px 8px;border-top:1px solid var(--border);margin-top:4px}.snapshot-box{display:flex;align-items:center;gap:2px;flex-shrink:0}.snapshot-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--text);font-size:var(--fs-xs);cursor:pointer;font-family:var(--font)}.snapshot-chip:hover{background:var(--surface);border-color:var(--border)}.snapshot-sym{font-weight:var(--fw-semibold)}.snapshot-sep{color:var(--border-strong);-webkit-user-select:none;user-select:none}.snapshot-row{display:flex;align-items:center;gap:4px}.snapshot-time{font-size:var(--fs-2xs);color:var(--text-3);white-space:nowrap}@media (max-width: 900px){.app-bar{flex-wrap:wrap;height:auto;padding:8px var(--space-3);row-gap:6px}.tablist{order:3;flex-basis:100%;width:100%;border-top:1px solid var(--border);padding-top:6px;-webkit-overflow-scrolling:touch}.status-strip{row-gap:6px}.status-strip-center{order:3;flex-basis:100%;width:100%;min-width:0;-webkit-overflow-scrolling:touch}.progress-time{display:none}.tablist,.status-strip-center{-webkit-mask-image:linear-gradient(to right,transparent,black 10px,black calc(100% - 10px),transparent);mask-image:linear-gradient(to right,transparent,black 10px,black calc(100% - 10px),transparent)}}@media (max-width: 640px){.app-brand-text{display:none}.status-strip{padding:4px var(--space-2)}.symbol-search-input{width:110px}.user-info{display:none}.content-box{padding:var(--space-2)}}@media (max-width: 380px){.last-trade-date{display:none}}@media (max-width: 400px){.symbol-search-input{width:88px}}.btn{font-family:var(--font);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:7px 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;line-height:1.2}.btn:hover{background:var(--surface-hover);border-color:var(--text-3)}.btn:active{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:var(--fw-semibold)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-success{background:var(--positive-fg);color:#fff;border-color:var(--positive-fg);font-weight:var(--fw-semibold)}.btn-success:hover{background:var(--positive-hover);border-color:var(--positive-hover)}.btn-danger{color:var(--negative-fg);border-color:var(--negative-border);background:var(--surface)}.btn-danger:hover{background:var(--negative-bg);border-color:var(--negative-fg)}.btn-danger.btn-primary{background:var(--negative-fg);color:#fff;border-color:var(--negative-fg)}.btn-danger.btn-primary:hover{background:var(--negative-hover);border-color:var(--negative-hover)}.btn-sm{font-size:var(--fs-xs);padding:5px 10px}.btn-icon{padding:6px;width:30px;height:30px;justify-content:center;border-radius:var(--r-sm)}.btn-icon.btn-sm{width:26px;height:26px;padding:4px}.buy-btn{font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:5px 12px;background:var(--positive-fg);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.buy-btn:hover{background:var(--positive-hover);box-shadow:var(--shadow-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-4);box-shadow:var(--shadow-xs)}.flex-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.section-card{border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto;margin-bottom:var(--space-3);background:var(--surface);box-shadow:var(--shadow-xs)}.section-header{cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-2) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);font-weight:var(--fw-semibold);font-size:var(--fs-base);display:flex;align-items:center;gap:var(--space-2);color:var(--text);transition:background var(--dur) var(--ease)}.section-header:hover{background:var(--surface-hover)}.section-header:focus-visible{box-shadow:var(--ring);outline:none}.section-arrow{font-size:var(--fs-xs);transition:transform var(--dur) var(--ease);color:var(--text-3);display:inline-flex}.section-arrow.collapsed{transform:rotate(-90deg)}.analyzer-box{border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-2);max-width:100%;background:var(--surface-2)}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-group{display:flex;gap:4px;align-items:center;flex-wrap:wrap;max-width:100%}.filter-group label{font-size:var(--fs-sm);white-space:normal}input,select,textarea{font-family:var(--font);font-size:var(--fs-sm);padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);max-width:100%;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2f6fed24}input::placeholder,textarea::placeholder{color:var(--text-3)}label{font-size:var(--fs-sm);font-weight:var(--fw-medium);display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}input[type=checkbox],input[type=radio]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-2);text-transform:uppercase;letter-spacing:.03em}.field-help{font-size:var(--fs-xs);color:var(--text-3)}.field-error{font-size:var(--fs-xs);color:var(--negative-fg)}.field-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3) var(--space-4);align-items:end}.field-row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.field-divider{width:1px;align-self:stretch;background:var(--border);margin:0 2px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px 9px;border-radius:var(--r-full);border:1px solid transparent;white-space:nowrap;line-height:1.5}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-solid.badge-positive{background:var(--positive-fg);color:#fff}.badge-solid.badge-negative{background:var(--negative-fg);color:#fff}.badge-solid.badge-warning{background:var(--warning-fg);color:#fff}.badge-solid.badge-info{background:var(--accent);color:var(--accent-fg)}.badge-solid.badge-neutral{background:var(--neutral-fg);color:#fff}.badge-soft.badge-positive{background:var(--positive-bg);color:var(--positive-fg);border-color:var(--positive-border)}.badge-soft.badge-negative{background:var(--negative-bg);color:var(--negative-fg);border-color:var(--negative-border)}.badge-soft.badge-warning{background:var(--warning-bg);color:var(--warning-fg);border-color:var(--warning-border)}.badge-soft.badge-info{background:var(--info-bg);color:var(--info-fg);border-color:var(--info-border)}.badge-soft.badge-neutral{background:var(--neutral-bg);color:var(--neutral-fg);border-color:var(--neutral-border)}.badge-outline{background:transparent}.badge-outline.badge-positive{color:var(--positive-fg);border-color:var(--positive-border)}.badge-outline.badge-negative{color:var(--negative-fg);border-color:var(--negative-border)}.badge-outline.badge-warning{color:var(--warning-fg);border-color:var(--warning-border)}.badge-outline.badge-info{color:var(--info-fg);border-color:var(--info-border)}.badge-outline.badge-neutral{color:var(--neutral-fg);border-color:var(--neutral-border)}.pattern-badge{display:inline-block;font-size:var(--fs-sm);padding:2px 8px;border-radius:var(--r-xs);margin-right:3px;font-weight:var(--fw-semibold)}.pattern-badge-bullish{background:var(--positive-bg);color:var(--positive-fg)}.pattern-badge-bearish{background:var(--negative-bg);color:var(--negative-fg)}.halal-badge{font-size:var(--fs-xs);padding:1px 6px;border-radius:var(--r-xs);font-weight:var(--fw-semibold);white-space:nowrap;flex-shrink:0}.halal-yes{background:var(--positive-bg);color:var(--positive-fg);border:1px solid var(--positive-border)}.halal-no{background:var(--negative-bg);color:var(--negative-fg);border:1px solid var(--negative-border)}.current-filter-badge{display:inline-flex;align-items:center;gap:4px;background:var(--accent);color:var(--accent-fg);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px 8px;border-radius:var(--r-full)}.current-filter-clear{background:none;border:none;color:inherit;font-size:1rem;cursor:pointer;padding:0 2px;line-height:1;opacity:.8}.current-filter-clear:hover{opacity:1}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:4px}.stat-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text)}.stat-delta{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.stat-delta.positive{color:var(--positive-fg)}.stat-delta.negative{color:var(--negative-fg)}.stat-delta.neutral{color:var(--text-3)}.holdings-summary{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.holdings-stat{font-size:var(--fs-sm)}.holdings-stat-label{color:var(--text-3);margin-right:3px}.holdings-stat-value{font-weight:var(--fw-bold)}.progress-bar{display:flex;align-items:center;gap:var(--space-2);padding:5px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);white-space:nowrap;flex-shrink:0}.progress-track{width:80px;height:8px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden;flex-shrink:0}.progress-fill{height:100%;border-radius:var(--r-full);background:var(--accent);transition:width .4s var(--ease)}.progress-fill.done{background:var(--positive-fg)}.last-trade-date{font-weight:var(--fw-semibold);white-space:nowrap;font-size:var(--fs-sm)}.progress-pct{font-weight:var(--fw-bold);white-space:nowrap}.progress-time{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap}.segmented{display:inline-flex;padding:3px;background:var(--surface-3);border-radius:var(--r-sm);gap:2px}.segmented-btn{border:none;background:transparent;color:var(--text-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:6px 14px;border-radius:calc(var(--r-sm) - 2px);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.segmented-btn:hover{color:var(--text)}.segmented-btn[aria-checked=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs);font-weight:var(--fw-semibold)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1a80;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:var(--z-modal);animation:fade-in var(--dur) var(--ease)}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);width:100%;max-width:var(--modal-max-width, 480px);max-height:90vh;display:flex;flex-direction:column;animation:modal-in var(--dur) var(--ease)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border)}.modal-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin:0}.modal-body{padding:var(--space-4);overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}.modal-close{background:transparent;border:none;color:var(--text-3);cursor:pointer;padding:4px;border-radius:var(--r-sm);display:inline-flex}.modal-close:hover{background:var(--surface-3);color:var(--text)}.modal-danger-icon{color:var(--negative-fg);background:var(--negative-bg);border-radius:50%;padding:8px;display:inline-flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.popover{position:fixed;z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--space-2);min-width:200px;animation:pop-in var(--dur-fast) var(--ease)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.popover-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--r-xs);font-size:var(--fs-sm);cursor:pointer;color:var(--text)}.popover-item:hover{background:var(--surface-3)}.popover-section-label{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;padding:6px 8px 2px}.popover-divider{height:1px;background:var(--border);margin:4px 0}.popover-footer{display:flex;justify-content:space-between;gap:6px;padding-top:6px;margin-top:4px;border-top:1px solid var(--border)}.toast-stack{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:360px}.toast{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--neutral-fg);border-radius:var(--r-sm);padding:var(--space-3);box-shadow:var(--shadow-md);font-size:var(--fs-sm);animation:toast-in var(--dur) var(--ease)}.toast-success{border-left-color:var(--positive-fg)}.toast-error{border-left-color:var(--negative-fg)}.toast-warning{border-left-color:var(--warning-fg)}.toast-icon{flex-shrink:0;margin-top:1px}.toast-success .toast-icon{color:var(--positive-fg)}.toast-error .toast-icon{color:var(--negative-fg)}.toast-warning .toast-icon{color:var(--warning-fg)}.toast-body{flex:1;color:var(--text)}.toast-close{background:none;border:none;color:var(--text-3);cursor:pointer;padding:2px;flex-shrink:0}.toast-close:hover{color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.message{padding:10px 14px;border-radius:var(--r-sm);font-size:var(--fs-base);margin-bottom:10px;background:var(--info-bg);color:var(--info-fg);border:1px solid var(--info-border);display:flex;align-items:center;gap:8px}.message-error{background:var(--negative-bg);color:var(--negative-fg);border-color:var(--negative-border)}.message-success{background:var(--positive-bg);color:var(--positive-fg);border-color:var(--positive-border)}.message-warning{background:var(--warning-bg);color:var(--warning-fg);border-color:var(--warning-border)}.alert-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--fs-sm);background:var(--negative-bg);color:var(--negative-fg);border-bottom:1px solid var(--negative-border)}.alert-banner-dismiss{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;padding:2px}.empty-state{text-align:center;padding:var(--space-7);color:var(--text-3);font-size:var(--fs-base);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.empty-state-icon{color:var(--text-3);opacity:.6}.empty-state-title{font-weight:var(--fw-semibold);color:var(--text-2);font-size:var(--fs-md)}.error-state{text-align:center;padding:var(--space-6);color:var(--negative-fg);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.loading-state{padding:var(--space-7);font-size:var(--fs-lg);color:var(--text-3);text-align:center}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-hover) 37%,var(--surface-3) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--r-xs)}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton-text{height:.9em;margin-bottom:6px}.skeleton-line{height:14px}.skeleton-row{height:var(--row-h)}.skeleton-card{height:90px;border-radius:var(--r-md)}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;opacity:.6}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:4px;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--border);opacity:.7}}.tooltip-container{position:fixed;z-index:var(--z-tooltip);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);overflow:hidden}.tooltip-header{padding:8px 12px;font-weight:var(--fw-semibold);font-size:var(--fs-md);color:var(--accent);border-bottom:1px solid var(--surface-3);background:var(--surface)}.tooltip-profile{padding:8px 12px;border-bottom:1px solid var(--surface-3);background:var(--surface)}.tooltip-company-name{font-weight:var(--fw-semibold);font-size:var(--fs-base);color:var(--text);margin-bottom:4px}.tooltip-profile-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px;font-size:var(--fs-xs);color:var(--text-3)}.tooltip-profile-meta span{white-space:nowrap}.tooltip-description{font-size:var(--fs-sm);color:var(--text-3);line-height:var(--lh-normal);max-height:120px;overflow-y:auto}.filter-help-wrap{position:relative;display:inline-flex;align-items:center;margin-left:2px;vertical-align:middle;flex-shrink:0}.filter-help-icon{font-size:var(--fs-2xs);line-height:1;color:var(--text-2);cursor:help;opacity:.75}.filter-help-icon:hover,.filter-help-icon:focus{opacity:1;color:var(--accent);outline:none}.filter-help-popup{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);width:min(300px,70vw);padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);font-size:var(--fs-xs);line-height:1.45;color:var(--text);z-index:var(--z-tooltip);white-space:normal;text-align:left}.filter-help-wrap:hover .filter-help-popup,.filter-help-wrap:focus-within .filter-help-popup{display:block}.filter-help-popup:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border)}.wizard-stepper{display:flex;align-items:center;gap:0;margin-bottom:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:4px;box-shadow:var(--shadow-xs)}.wizard-step-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:none;background:var(--surface-3);cursor:pointer;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-3);border-radius:calc(var(--r-md) - 2px);transition:all var(--dur) var(--ease);position:relative}.wizard-step-btn:hover{background:var(--surface-hover);color:var(--text)}.wizard-step-btn.active{background:var(--accent-bg);color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-border)}.wizard-step-btn.completed{color:var(--positive-fg)}.wizard-step-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:var(--fs-xs);font-weight:var(--fw-bold);background:var(--border);color:var(--text-3);flex-shrink:0}.wizard-step-btn.active .wizard-step-number{background:var(--accent);color:var(--accent-fg)}.wizard-step-btn.completed .wizard-step-number{background:var(--positive-fg);color:#fff}.wizard-step-connector{width:32px;height:2px;background:var(--border);flex-shrink:0}.wizard-step-connector.done{background:var(--positive-fg)}.wizard-nav{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3);padding:0 4px}.wizard-nav .btn{min-width:100px}.wizard-summary{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:10px;font-size:var(--fs-xs)}.wizard-summary-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);color:var(--text-2);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.wizard-summary-chip:hover{background:var(--accent-bg);border-color:var(--accent-border)}.wizard-summary-chip .chip-label{font-weight:var(--fw-semibold);color:var(--text-3);margin-right:2px}.wizard-summary-chip .chip-value{color:var(--text)}.wizard-summary-chip.screener-chip{background:var(--group-1-bg);border-color:var(--group-1-fg)}.wizard-summary-chip.screener-chip .chip-label{color:var(--group-1-fg)}.wizard-summary-chip.simulator-chip{background:var(--group-2-bg);border-color:var(--group-2-fg)}.wizard-summary-chip.simulator-chip .chip-label{color:var(--group-2-fg)}.wizard-summary-section-label{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-weight:var(--fw-bold);font-size:var(--fs-2xs);letter-spacing:.02em;white-space:nowrap}.sim-summary{display:flex;gap:20px;flex-wrap:wrap;padding:10px 14px;background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--surface-3);font-size:var(--fs-base)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 20%,var(--accent-bg),var(--bg) 60%);padding:var(--space-4)}.login-container{width:100%;max-width:380px;padding:var(--space-7);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}.login-mark{width:44px;height:44px;border-radius:var(--r-md);object-fit:contain}.login-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0;color:var(--text);text-align:center}.login-tagline{font-size:var(--fs-sm);color:var(--text-3);text-align:center;margin:0}.login-error{color:var(--negative-fg);margin-bottom:var(--space-3);padding:8px 12px;background:var(--negative-bg);border:1px solid var(--negative-border);border-radius:var(--r-sm);font-size:var(--fs-sm);display:flex;align-items:center;gap:6px}.login-field{margin-bottom:var(--space-3)}.login-input{width:100%}.login-input-wrap{position:relative;display:flex;align-items:center}.login-password-toggle{position:absolute;right:6px;background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px;display:inline-flex}.login-password-toggle:hover{color:var(--text)}.login-btn{width:100%;justify-content:center;margin-top:var(--space-1)}.login-footer-row{display:flex;justify-content:center;margin-top:var(--space-5)}.chart-container{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.chart-controls{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 12px;margin-bottom:var(--space-2)}.price-info{display:inline-flex;gap:8px;margin-left:var(--space-5);align-items:center}.company-name{font-weight:var(--fw-normal);color:var(--text-3);font-size:.9em}.price-value{font-weight:var(--fw-bold);font-size:var(--fs-xl)}.price-change{font-size:var(--fs-lg)}.chart-ohlc-legend{display:inline-flex;gap:12px;align-items:center;padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-sm);font-family:var(--font-mono);color:var(--text-2)}.chart-ohlc-legend .positive{color:var(--positive-fg)}.chart-ohlc-legend .negative{color:var(--negative-fg)}.manual-buy-row{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.manual-buy-label{font-weight:var(--fw-semibold);font-size:var(--fs-base)}.sell-yes{color:var(--negative-fg);font-weight:var(--fw-bold)}.sell-no{color:var(--text-3)}.filter-pass{outline:2px solid var(--positive-fg);outline-offset:1px}.filter-fail{outline:2px solid var(--negative-fg);outline-offset:1px}.details-container{padding:var(--space-4)}.details-header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2)}.details-header-info{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.details-logo{height:32px;width:32px;border-radius:var(--r-sm);object-fit:contain;background:var(--surface-2);border:1px solid var(--border)}.details-actions{display:flex;gap:var(--space-2);margin-left:auto;flex-wrap:wrap}.details-price-row{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--space-4)}.details-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:var(--space-4);align-items:start}.details-groups{display:flex;flex-direction:column;gap:var(--space-3)}.details-group-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:6px}.details-dl{display:grid;grid-template-columns:auto 1fr;column-gap:var(--space-3);row-gap:6px;margin:0}.details-dl dt{font-size:var(--fs-sm);color:var(--text-3);font-weight:var(--fw-medium)}.details-dl dd{font-size:var(--fs-sm);color:var(--text);margin:0;font-weight:var(--fw-medium)}.details-side{display:flex;flex-direction:column;gap:var(--space-3)}.details-freshness{font-size:var(--fs-xs);color:var(--text-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}@media (max-width: 900px){.details-body{grid-template-columns:1fr}}.analysis-container{display:flex;flex-direction:column;gap:var(--space-3)}.analysis-nav{display:flex;gap:4px;flex-wrap:wrap;position:sticky;top:0;background:var(--surface);z-index:2;padding-bottom:4px}.analysis-nav-btn{font-size:var(--fs-xs);padding:4px 10px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer}.analysis-nav-btn:hover{background:var(--surface-3);color:var(--text)}.suggestion-buy{border-left:4px solid var(--positive-fg)}.suggestion-sell{border-left:4px solid var(--negative-fg)}.suggestion-hold{border-left:4px solid var(--warning-fg)}.recommendation-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-full);font-weight:var(--fw-bold);font-size:var(--fs-sm)}.recommendation-pill.buy{background:var(--positive-fg);color:#fff}.recommendation-pill.sell{background:var(--negative-fg);color:#fff}.recommendation-pill.hold{background:var(--warning-fg);color:#fff}.table-scroll{position:relative;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);max-width:100%}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);font-size:var(--table-fs);table-layout:auto;color:var(--text)}.table-scroll .data-table{border:none;border-radius:0}.data-table thead{background:var(--surface-2)}.data-table th{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:var(--cell-py) var(--cell-px);text-align:left;-webkit-user-select:none;user-select:none;white-space:pre-line;line-height:1.2;border-bottom:1px solid var(--border);background:var(--surface-2);vertical-align:bottom;position:sticky;top:0;z-index:var(--z-sticky)}.data-table th .th-label{display:inline;white-space:pre-line;font-size:var(--fs-2xs)}.angled-header th{min-width:24px}.angled-header th .th-label{display:inline;white-space:pre-line;font-size:var(--fs-xs)}.th-sort-btn{display:inline-flex;align-items:center;gap:3px;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;width:100%;text-align:inherit}.th-sort-btn:hover{color:var(--text)}.th-sort-icon{opacity:.35;flex-shrink:0;display:inline-flex}.th-sort-btn[aria-sort=ascending] .th-sort-icon,.th-sort-btn[aria-sort=descending] .th-sort-icon{opacity:1;color:var(--accent)}.data-table td{padding:var(--cell-py) var(--cell-px);border-bottom:1px solid var(--surface-3);font-size:var(--table-fs);white-space:nowrap}.data-table td.wrap{white-space:normal}.data-table td:first-child{white-space:nowrap}.data-table td.num{text-align:right}.data-table tbody tr:nth-child(2n){background:var(--surface-hover)}.data-table tbody tr:hover{background:var(--accent-bg)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.row-selected{background:var(--accent-bg)}.data-table tbody tr[tabindex]:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ring-color)}.data-table .sticky-col{position:sticky;left:0;z-index:2;background:inherit}.data-table th.sticky-col{z-index:calc(var(--z-sticky) + 1);background:var(--surface-2)}.table-scroll.has-sticky-col .data-table td.sticky-col,.table-scroll.has-sticky-col .data-table th.sticky-col{box-shadow:2px 0 4px -2px #0f172a26}.sym-link{color:var(--accent);background:none;border:none;padding:0;font:inherit;text-decoration:none;font-weight:var(--fw-semibold);cursor:pointer;transition:color var(--dur) var(--ease)}.sym-link:hover{color:var(--accent-hover);text-decoration:underline}.positive{color:var(--positive-fg);font-weight:var(--fw-semibold)}.negative{color:var(--negative-fg);font-weight:var(--fw-semibold)}.data-table td.lr-arrow{text-align:center;font-size:1.1rem;line-height:1;padding:2px 4px}.lr-up{color:var(--positive-fg)}.lr-down{color:var(--negative-fg)}.data-table .group-header-row th{text-align:center;font-size:var(--fs-2xs);padding:4px var(--cell-px);border-bottom:1px solid var(--border)}.data-table .thead-tier-1 th{top:0;z-index:calc(var(--z-sticky) + 2)}.data-table .thead-tier-2 th{top:var(--th-tier1-h, 22px);z-index:calc(var(--z-sticky) + 1)}.data-table .thead-tier-3 th{top:var(--th-tier2-h, 44px);z-index:var(--z-sticky)}.group-1{background:var(--group-1-bg);color:var(--group-1-fg)}.group-2{background:var(--group-2-bg);color:var(--group-2-fg)}.group-3{background:var(--group-3-bg);color:var(--group-3-fg)}.group-4{background:var(--group-4-bg);color:var(--group-4-fg)}.group-5{background:var(--group-5-bg);color:var(--group-5-fg)}.group-6{background:var(--group-6-bg);color:var(--group-6-fg)}.group-7{background:var(--group-7-bg);color:var(--group-7-fg)}.group-8{background:var(--group-8-bg);color:var(--group-8-fg)}.data-table tfoot td,.data-table tfoot th{position:sticky;bottom:0;background:var(--surface-2);font-weight:var(--fw-bold);border-top:2px solid var(--border);z-index:var(--z-sticky)}.table-toolbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap}.table-toolbar-spacer{flex:1}.table-pagination{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--fs-xs);color:var(--text-2);border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}.table-pagination-spacer{flex:1}.column-chooser-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.column-chooser-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--r-xs);font-size:var(--fs-sm)}.column-chooser-item:hover{background:var(--surface-3)}@media (max-width: 480px){.data-table{font-size:var(--fs-xs)}.data-table th{font-size:.62rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prose{max-width:72ch;line-height:var(--lh-relaxed);color:var(--text-2)}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 var(--space-3)}.prose li{margin-bottom:var(--space-1)}.prose h4,.prose h5{color:var(--text)}.text-muted{color:var(--text-3)}.text-secondary{color:var(--text-2)}.mono{font-family:var(--font-mono)}.visually-hidden-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media (max-width: 768px){input,select,textarea{font-size:16px!important}}@media (max-width: 480px){body{font-size:14px}.content-box{padding:var(--space-2)}h1{font-size:1.2rem}h2{font-size:1.05rem}h3{font-size:1rem;margin:10px 0 6px}.flex-row{gap:4px}.btn{font-size:var(--fs-xs);padding:6px 10px}input,select,textarea{font-size:var(--fs-xs);padding:6px 8px}label{font-size:var(--fs-xs)}input[type=checkbox]{width:14px;height:14px}.filter-bar{flex-direction:column;gap:6px;padding:8px 10px;align-items:stretch}.filter-group{flex-wrap:wrap}.field-group{grid-template-columns:1fr}.table-scroll{-webkit-overflow-scrolling:touch}.data-table th{font-size:.62rem;padding:4px}.data-table td{font-size:var(--fs-xs);padding:4px}.data-table td.lr-arrow{font-size:.9rem;padding:1px 2px}.section-header{font-size:var(--fs-sm);padding:6px 8px}.price-info{margin-left:6px;gap:4px;flex-wrap:wrap}.price-value{font-size:1rem}.price-change{font-size:.9rem}.stat-grid{grid-template-columns:1fr 1fr}.holdings-summary{flex-direction:column;gap:4px;align-items:flex-start}.manual-buy-row{flex-direction:column;align-items:stretch;padding:8px}.sim-summary{gap:10px;padding:8px 10px}.pattern-badge{font-size:var(--fs-xs);padding:2px 5px}.chart-container{max-width:100%;overflow-x:auto}.empty-state{padding:20px;font-size:.9rem}.loading-state{padding:20px;font-size:1rem}.message{padding:8px 10px;font-size:.9rem}.buy-btn{font-size:var(--fs-2xs);padding:4px 8px}.login-container{padding:var(--space-5)}.modal{max-width:100%;margin:0;border-radius:var(--r-md)}.modal-backdrop{padding:0;align-items:flex-end}.modal-backdrop .modal{max-height:92vh;width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0}}@media (min-width: 481px) and (max-width: 768px){.content-box{padding:var(--space-3)}.btn{font-size:var(--fs-sm);padding:7px 12px}input,select,textarea{font-size:var(--fs-sm);padding:7px 10px}.filter-bar{padding:8px 12px;gap:8px}.stat-grid{grid-template-columns:repeat(3,1fr)}.data-table th{font-size:var(--fs-2xs);padding:5px 6px}.data-table td{font-size:var(--fs-xs);padding:5px 6px}}
