@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Manrope:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap";:root{--bg-base: #f4f1ea;--bg-elevated: #fffdf8;--bg-surface: #ffffff;--bg-tint: #ecf3ff;--text-primary: #1f2a37;--text-secondary: #5a6678;--text-muted: #7f8a9b;--brand: #0d5f89;--brand-strong: #0a4e72;--brand-soft: #deedf7;--positive: #0f7a48;--negative: #b6252f;--neutral: #5f6d80;--border-strong: #d3dbe6;--border-subtle: #e3e8ef;--shadow-card: 0 18px 42px rgba(17, 35, 58, .1);--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text-primary);font-family:Manrope,sans-serif;background:radial-gradient(circle at 0% 0%,#f9ead2,#f9ead200 28%),radial-gradient(circle at 92% 2%,#d6e7f4,#d6e7f400 26%),var(--bg-base)}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-strong);text-decoration:underline}button,select{font:inherit}.stock-page{width:100%;margin:0;padding:0;border:none;border-radius:0;background:var(--bg-elevated);box-shadow:none;display:flex;flex-direction:column;min-height:100vh}.stock-list-page{padding:var(--space-8)}.stock-detail-header{position:sticky;top:0;z-index:10;background:var(--bg-elevated);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:64px;flex-shrink:0}.stock-detail-header-left,.stock-detail-header-right{display:flex;align-items:center;gap:var(--space-2)}.stock-detail-header-button{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s ease}.stock-detail-header-button:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.stock-detail-header h1{margin:0;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;line-height:1.2;color:var(--text-primary);flex:1}.stock-detail-content{flex:1;padding:var(--space-8);overflow-y:auto}.stock-detail-layout{display:flex;gap:0;width:100%;margin:0;min-height:100vh}.stock-sidebar{flex-shrink:0;width:280px;max-height:100vh;position:sticky;top:0;display:flex;flex-direction:column;border:none;border-right:1px solid var(--border-strong);border-radius:0;background:var(--bg-elevated);box-shadow:none;overflow:hidden}.stock-sidebar-hidden{width:0;min-width:0;border:none;padding:0;opacity:0;pointer-events:none}.stock-sidebar-collapsed{width:48px}.stock-sidebar-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);min-height:64px}.stock-sidebar-back{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s ease}.stock-sidebar-back:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.stock-sidebar-toggle{flex-shrink:0;height:32px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s ease;margin-left:auto}.stock-sidebar-toggle:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.stock-sidebar-title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap;flex:1}.stock-sidebar-list{flex:1;overflow-y:auto;padding:var(--space-2)}.stock-sidebar-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-radius:0;text-decoration:none;color:var(--text-primary);transition:background .2s ease}.stock-sidebar-item:hover{background:var(--brand-soft);text-decoration:none}.stock-sidebar-item-active{background:var(--brand-soft);font-weight:600}.stock-sidebar-item-code{font-family:JetBrains Mono,monospace;font-size:.875rem;color:var(--brand)}.stock-sidebar-item-name{font-size:.875rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-sidebar-status{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-size:.875rem}.stock-sidebar-error{color:var(--negative)}.insight-toc-panel{flex-shrink:0;width:280px;max-height:100vh;position:sticky;top:0;display:flex;flex-direction:column;border:none;border-left:1px solid var(--border-strong);border-radius:0;background:var(--bg-elevated);box-shadow:none;overflow:hidden}.insight-toc-panel-hidden{width:0;min-width:0;border:none;padding:0;opacity:0;pointer-events:none}.insight-toc-panel-collapsed{width:48px}.insight-toc-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);min-height:64px}.insight-toc-toggle{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s ease;margin-left:auto}.insight-toc-toggle:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.insight-toc-title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.insight-toc{flex:1;overflow-y:auto;padding:var(--space-4)}.insight-toc ol{margin:0;padding-left:0;list-style:none;display:grid;gap:var(--space-3)}.insight-toc li{font-size:1rem;line-height:1.6;color:var(--text-secondary)}.insight-toc li a{color:inherit;text-decoration:none;display:block}.insight-toc li a:hover{color:var(--brand-strong);text-decoration:none}.insight-toc .toc-active>a{color:var(--brand);font-weight:600}.insight-toc .toc-level-2{padding-left:1rem}.insight-toc .toc-level-3{padding-left:2rem}.stock-detail-layout .stock-page{flex:1;margin:0;min-width:0;border:none;border-radius:0}@media (max-width: 1400px){.insight-toc-panel{display:none}}.link-preview-wrapper{position:relative;display:inline}.link-preview-panel{position:fixed;z-index:100;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:1px solid var(--border-strong);box-shadow:0 4px 16px #11233a1f;max-width:480px;min-width:240px;pointer-events:none}.link-preview-favicon{flex-shrink:0;width:20px;height:20px;margin-top:2px;object-fit:contain}.link-preview-text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.link-preview-title{font-size:.9rem;font-weight:600;color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere}.link-preview-url{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-muted);word-break:break-all;overflow-wrap:anywhere}@media (max-width: 1024px){.stock-detail-layout{flex-direction:column}.stock-sidebar{position:relative;top:0;width:100%;max-height:400px}.stock-sidebar-collapsed{width:100%;max-height:48px}}.stock-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.stock-page-header h1{margin:0;font-family:Newsreader,serif;font-size:clamp(1.8rem,2.5vw,2.8rem);font-weight:600;line-height:1.1}.stock-page-header p{margin:var(--space-2) 0 0;color:var(--text-secondary)}.stock-search-bar{margin-bottom:var(--space-4)}.stock-search-input{width:100%;max-width:400px;padding:var(--space-2) var(--space-4);font-size:.95rem;font-family:inherit;border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-primary);outline:none}.stock-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.stock-search-input::placeholder{color:var(--text-muted)}.stock-page-meta{display:inline-flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);color:var(--text-muted);font-size:.85rem;font-family:JetBrains Mono,monospace}.stock-table-scroller{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface)}.stock-table{width:100%;min-width:1380px;border-collapse:separate;border-spacing:0;font-size:.86rem}.stock-table thead th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f8fbff,#f2f7fc);border-bottom:1px solid var(--border-strong);padding:var(--space-3) var(--space-3);text-align:left;white-space:nowrap}.stock-sort-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;border:0;background:transparent;color:var(--text-primary);cursor:pointer;font-weight:600}.stock-sort-button:hover{color:var(--brand)}.stock-sort-icon{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:.78rem}.stock-sort-icon-inactive{color:#97a6bb}.stock-table tbody td{border-bottom:1px solid var(--border-subtle);padding:var(--space-3) var(--space-3);white-space:nowrap;vertical-align:middle}.stock-table tbody tr:hover{background:#f8fbff}.stock-table tbody tr:last-child td{border-bottom:0}.stock-col-price,.stock-col-changePercent,.stock-col-peTtm,.stock-col-peStatic,.stock-col-peDynamic,.stock-col-pb,.stock-col-totalMv100M,.stock-col-circulatingMv100M,.stock-col-turnoverRate,.stock-col-conceptCount,.stock-col-insightDate,.stock-col-hasInsight{text-align:right;font-family:JetBrains Mono,monospace;font-size:.8rem}.stock-col-name,.stock-col-code{font-weight:600}.stock-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#f8fbff}.stock-pagination-page-size{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-secondary)}.stock-pagination-page-size select,.stock-pagination-controls button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);padding:var(--space-2) var(--space-3)}.stock-pagination-controls{display:inline-flex;align-items:center;gap:var(--space-3)}.stock-pagination-controls button{cursor:pointer}.stock-pagination-controls button:disabled{cursor:not-allowed;opacity:.45}.stock-pagination-controls span{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.82rem}.stock-page-status,.stock-empty-state{width:min(980px,calc(100% - 2 * var(--space-6)));margin:var(--space-10) auto;padding:var(--space-8);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:#fbfdff;color:var(--text-secondary);text-align:center}.stock-page-status-error{border-color:#f2c6cb;background:#fff6f6;color:#8e1e27}.stock-back-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-weight:600}.stock-detail-header{position:sticky;top:0;z-index:10;background:var(--bg-elevated);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-3);min-height:64px}.stock-detail-expand-sidebar{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-strong);border-radius:0;background:var(--bg-surface);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .2s ease}.stock-detail-expand-sidebar:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.stock-detail-header h1{margin:0;font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;line-height:1.2;color:var(--text-primary)}.stock-detail-code{margin-left:var(--space-2);font-family:JetBrains Mono,monospace;color:var(--text-secondary);font-size:.875rem;font-weight:400}.stock-summary-card{border:1px solid var(--border-subtle);border-radius:0;background:var(--bg-surface);padding:var(--space-5);margin-bottom:var(--space-6)}.stock-summary-price-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.stock-summary-meta{color:var(--text-secondary);font-size:.9rem}.stock-summary-meta span{display:inline}.stock-summary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.stock-summary-header h1{margin:0;font-family:Newsreader,serif;font-size:clamp(1.4rem,2vw,2rem);line-height:1.2}.stock-summary-header h1 span{font-family:JetBrains Mono,monospace;color:var(--text-secondary);font-size:.8em}.stock-summary-header p{margin:var(--space-2) 0 0;color:var(--text-secondary)}.stock-summary-dot{margin:0 var(--space-2);color:#a2afbf}.stock-summary-price{display:grid;justify-items:end;gap:var(--space-1)}.stock-summary-price span{color:var(--text-muted);font-size:.84rem}.stock-summary-price strong{font-family:JetBrains Mono,monospace;font-size:1.4rem}.stock-summary-price em{font-style:normal;font-family:JetBrains Mono,monospace;font-size:.9rem}.stock-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin:0}.stock-summary-item{padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#fcfdff}.stock-summary-item dt{margin:0;color:var(--text-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.stock-summary-item dd{margin:var(--space-2) 0 0;font-family:JetBrains Mono,monospace;font-size:.95rem}.stock-concepts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.stock-concept-tag{display:inline-flex;align-items:center;border:1px solid #c8dae9;border-radius:999px;padding:.35rem .8rem;background:#eef5fc;font-size:.78rem;color:var(--brand-strong)}.stock-concept-empty{color:var(--text-muted);font-size:.84rem}.stock-insight-section{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);padding:var(--space-5)}.stock-insight-section .stock-page-status,.stock-insight-section .stock-empty-state{width:100%;margin:0;padding:var(--space-5)}.insight-markdown-shell{display:grid;grid-template-columns:minmax(220px,260px) 1fr;gap:var(--space-5)}.insight-toc{position:sticky;top:var(--space-4);align-self:start;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#f8fbff;padding:var(--space-4)}.insight-toc h2{margin:0 0 var(--space-3);font-size:.95rem;font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.insight-toc ol{margin:0;padding-left:1rem;display:grid;gap:var(--space-2)}.insight-toc li{font-size:.84rem;color:var(--text-secondary)}.insight-toc .toc-level-2{margin-left:.4rem}.insight-toc .toc-level-3{margin-left:.9rem}.insight-markdown{min-width:0;line-height:1.75;font-family:Newsreader,serif;font-size:1.08rem;color:#2b3543}.insight-markdown h1,.insight-markdown h2,.insight-markdown h3{margin-top:1.3em;margin-bottom:.55em;font-family:Manrope,sans-serif;line-height:1.3}.insight-markdown h1{font-size:1.7rem}.insight-markdown h2{font-size:1.32rem}.insight-markdown h3{font-size:1.08rem}.insight-markdown p,.insight-markdown ul,.insight-markdown ol{margin:0 0 .9em}.insight-markdown code{border:1px solid var(--border-subtle);border-radius:6px;background:#f5f8fc;padding:.08rem .35rem;font-family:JetBrains Mono,monospace;font-size:.82em}.insight-markdown pre code{border:0;background:transparent;padding:0}.insight-markdown table{width:100%;border-collapse:collapse;margin:1em 0}.insight-markdown th,.insight-markdown td{border:1px solid var(--border-subtle);padding:var(--space-2) var(--space-3)}.insight-markdown th{background:#f6f9fd;font-family:Manrope,sans-serif;font-size:.86rem}.insight-mermaid{margin:1rem 0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);overflow-x:auto;background:#fff}.insight-mermaid svg{display:block;margin:0 auto}.insight-mermaid-error{border-color:#efc8cf;background:#fff3f5}.insight-mermaid-error-title{margin-bottom:var(--space-2);color:#9a1f2a;font-weight:600;font-family:Manrope,sans-serif}.insight-mermaid-error pre{margin:0;overflow-x:auto}.is-positive{color:var(--positive)}.is-negative{color:var(--negative)}.is-neutral{color:var(--neutral)}@media (max-width: 1280px){.stock-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-markdown-shell{grid-template-columns:1fr}.insight-toc{position:static}}@media (max-width: 920px){.stock-page{width:calc(100% - 2 * var(--space-4));margin:var(--space-5) auto;padding:var(--space-5)}.stock-page-header{flex-direction:column;align-items:flex-start}.stock-page-meta{align-items:flex-start}.stock-pagination,.stock-summary-price-row{flex-direction:column;align-items:flex-start}.stock-summary-price{justify-items:start}}
