:root,[data-theme=light]{color:#1a1a17;--canvas:#fafaf7;--surface:#fff;--surface-sunk:#f4f3ee;--ink:#1a1a17;--ink-soft:#6b6b62;--ink-faint:#6e6e68;--hairline:#e4e3dc;--hairline-strong:#cfcec5;--border:var(--hairline);--accent:#f5c518;--accent-strong:#e0b000;--accent-text:#8a6d00;--accent-soft:#fff6d2;--on-accent:#1a1a17;--data-auto:#ecf4ff;--data-auto-bd:#c7dbf5;--data-derived:#f4f3ee;--data-manual:#fff1e0;--data-manual-bd:#f0cfa6;--data-missing:#fdeded;--data-missing-bd:#f2b8b8;--buy:#15803d;--buy-bg:#dcfce7;--caution:#b45309;--caution-bg:#fef3c7;--watch:#1d4ed8;--watch-bg:#dbeafe;--reject:#b91c1c;--reject-bg:#fee2e2;--expensive:#7f1d1d;--expensive-bg:#fbd5d5;--success:#15803d;--danger:#b91c1c;--info:#1d4ed8;--shadow-1:0 6px 20px #1a1a171a;--shadow-pop:var(--shadow-1);--shadow-2:0 16px 48px #1a1a1738;--shadow-knob:0 1px 3px #0003;--ring-focus:0 0 0 3px var(--accent-soft);--ring-error:0 0 0 3px color-mix(in srgb, var(--danger) 15%, transparent);--row-hover:#00000005;--on-signal:#fff;--on-strong:#fff;--chart-pos:#2ea05c;--chart-neg:#d05252;--chart-warn:#b48214;--chart-blue:#5b8ff9;--scrim:#0f0f0d80;--scrim-strong:#0a0a0894;--shimmer:#ffffff8c;--hatch:#ffffff47;--shade-line:#0000000f;--shade-strong:#0000004d;--text-shadow-on-fill:0 1px 2px #00000059;--toast-err:#f87171}[data-theme=dark],.admin-card{color:#f2f0e6;--canvas:#15140f;--surface:#1e1d17;--surface-sunk:#26241c;--ink:#f2f0e6;--ink-soft:#ada995;--ink-faint:#948f76;--hairline:#34322a;--hairline-strong:#46443a;--border:var(--hairline);--accent:#ffce27;--accent-strong:#ffd94f;--accent-text:var(--accent-strong);--accent-soft:#3a3214;--on-accent:#15140f;--data-auto:#182536;--data-auto-bd:#2c415e;--data-derived:#26241c;--data-manual:#38291a;--data-manual-bd:#5e4628;--data-missing:#3a1e1e;--data-missing-bd:#6b3434;--buy:#4ade80;--buy-bg:#15301f;--caution:#fbbf24;--caution-bg:#352711;--watch:#60a5fa;--watch-bg:#16263f;--reject:#f87171;--reject-bg:#361717;--expensive:#fca5a5;--expensive-bg:#3d1313;--success:#4ade80;--danger:#f87171;--info:#60a5fa;--shadow-1:0 4px 20px #00000080;--shadow-pop:var(--shadow-1);--shadow-2:0 16px 48px #0009;--row-hover:#ffffff08;--on-signal:#15140f;--chart-pos:#4ade80;--chart-neg:#f87171;--chart-warn:#fbbf24;--shimmer:#ffffff12;--toast-err:#b91c1c}:root{--print-ink:#111;--print-paper:#fff;--print-muted:#555;--print-faint:#777;--print-rule:#ddd;--print-band:#f3f3ee;--print-brand:#c99a00;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fs-24:24px;--fs-32:32px;--fs-44:44px}html[data-density=compact]{--fs-13:12px;--fs-14:13px;--fs-16:14px;--fs-20:16px;--fs-24:20px;--fs-32:24px;--fs-44:32px}:root{--sp-0-5:2px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-pill:999px;--up:var(--buy);--down:var(--reject)}[data-market=TW]{--up:var(--reject);--down:var(--buy)}:root{--accent-bg:#f5c5182e;--chip-bg:var(--hairline);--line:var(--hairline);--manual:#b45309;--mono:"IBM Plex Mono", ui-monospace, monospace;--signal:#f5c518;--signal-ink:var(--ink-soft);--surface-2:#7f7f7f0f;--warn:#b76e00}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--canvas);color:inherit;font-family:IBM Plex Sans TC,system-ui,sans-serif;font-size:var(--fs-14);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5;transition:background .25s,color .25s}::view-transition-old(root){animation-duration:.22s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-new(root){animation-duration:.22s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-family:IBM Plex Mono,ui-monospace,monospace}button,input,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}#root{min-height:100%;color:var(--ink);flex-direction:column;display:flex}.topbar{z-index:40;align-items:center;gap:var(--sp-5);height:56px;padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--hairline);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--sp-2);cursor:pointer;flex-shrink:0;display:flex}.brand-mark{border-radius:var(--r-sm);background:var(--accent);width:22px;height:22px;font-weight:700;font-size:var(--fs-13);color:var(--on-accent);box-shadow:inset 0 0 0 1px var(--shade-line);place-items:center;display:grid}.brand-name{letter-spacing:.16em;font-weight:600;font-size:var(--fs-16)}.brand-name span{color:var(--accent-strong)}.brand-radar{color:var(--ink);flex-shrink:0}.topbar-search{flex:1;max-width:520px;position:relative}.topbar-search .field-search{width:100%}.topbar-right{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.icon-btn{border-radius:var(--r-md);width:34px;height:34px;color:var(--ink-soft);border:1px solid #0000;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-sunk);color:var(--ink)}.lang-btn{font-size:var(--fs-12);letter-spacing:.02em;font-weight:700}.notif-wrap{display:flex;position:relative}.notif-badge{min-width:15px;height:15px;padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--reject);color:var(--on-signal);font-size:var(--fs-11);text-align:center;font-weight:700;line-height:15px;position:absolute;top:1px;right:1px}.notif-backdrop{z-index:45;position:fixed;inset:0}.notif-pop{z-index:46;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);width:320px;max-height:60vh;box-shadow:var(--shadow-1);padding:var(--sp-2);position:absolute;top:42px;right:0;overflow-y:auto}.notif-head{font-size:var(--fs-12);color:var(--ink-soft);padding:var(--sp-2) var(--sp-2);font-weight:600}.notif-empty{padding:var(--sp-4) var(--sp-2);text-align:center;color:var(--ink-faint);font-size:var(--fs-13)}.notif-item{padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md)}.notif-item:hover{background:var(--surface-sunk)}.notif-item.unread{background:var(--accent-soft)}.ni-title{font-size:var(--fs-13);color:var(--ink);font-weight:600}.ni-body{font-size:var(--fs-14);color:var(--ink-soft);white-space:pre-wrap;margin-top:var(--sp-0-5)}.ni-time{font-size:var(--fs-12);color:var(--ink-faint);margin-top:var(--sp-1)}@media (width<=480px){.notif-pop{width:calc(100vw - 24px);right:-8px}}.csv-tools{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);display:flex}.csv-prog{font-size:var(--fs-12)}.kbd-modal{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);width:320px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-2);padding:var(--sp-2);height:max-content}.kbd-head{font-size:var(--fs-13);color:var(--ink-soft);padding:var(--sp-2) var(--sp-3) var(--sp-3);font-weight:600}.kbd-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--hairline);display:flex}.kbd-key{text-align:center;min-width:56px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--fs-12);color:var(--ink);background:var(--surface-sunk);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-1) var(--sp-2);flex-shrink:0;font-weight:600}.kbd-desc{font-size:var(--fs-13);color:var(--ink-soft)}.onb-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-2);padding:var(--sp-6) var(--sp-6) var(--sp-4);text-align:center;height:max-content;margin-top:4vh;position:relative}.onb-skip{font-size:var(--fs-13);color:var(--ink-faint);position:absolute;top:12px;right:14px}.onb-skip:hover{color:var(--ink-soft)}.onb-icon{width:52px;height:52px;margin:var(--sp-1) auto var(--sp-4);border-radius:var(--r-lg);color:var(--accent-text);background:var(--accent-soft);place-items:center;display:grid}.onb-title{font-size:var(--fs-16);color:var(--ink);margin-bottom:var(--sp-2);font-weight:700}.onb-body{font-size:var(--fs-14);color:var(--ink-soft);min-height:72px;line-height:1.7}.onb-dots{justify-content:center;gap:var(--sp-2);margin:var(--sp-4) 0;display:flex}.onb-dot{background:var(--hairline-strong);border-radius:50%;width:7px;height:7px;transition:background .2s}.onb-dot.on{background:var(--accent-strong)}.onb-actions{justify-content:center;gap:var(--sp-3);display:flex}.onb-actions .btn{justify-content:center;min-width:96px}.share-modal{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);width:440px;max-width:calc(100vw - 32px);max-height:86vh;box-shadow:var(--shadow-2);padding:var(--sp-5);height:max-content;margin-top:6vh;position:relative;overflow-y:auto}.share-head{margin-bottom:var(--sp-3);align-items:center;display:flex}.share-title{font-size:var(--fs-16);color:var(--ink);font-weight:700}.share-head .onb-skip{margin-left:auto;position:static}.share-privacy{gap:var(--sp-2);font-size:var(--fs-14);color:var(--ink-soft);background:var(--accent-soft);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-3);margin-bottom:var(--sp-4);align-items:flex-start;line-height:1.6;display:flex}.share-privacy svg{margin-top:var(--sp-0-5);color:var(--accent-text);flex-shrink:0}.share-field{margin-bottom:var(--sp-4)}.share-field label{font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:var(--sp-2);display:block}.share-days{gap:var(--sp-2);display:flex}.share-days .chip{cursor:pointer}.share-days .chip.on{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-strong)}.share-input{box-sizing:border-box;width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink)}.share-create{width:100%;margin-top:var(--sp-1);justify-content:center}.share-url-row{gap:var(--sp-2);align-items:center;display:flex}.share-url-row .share-input{font-size:var(--fs-12)}.share-hint{font-size:var(--fs-14);margin-top:var(--sp-2)}.share-list{margin-top:var(--sp-4);border-top:1px solid var(--hairline);padding-top:var(--sp-3)}.share-list-title{font-size:var(--fs-12);color:var(--ink-soft);margin-bottom:var(--sp-2);font-weight:600}.share-li{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;font-size:var(--fs-13);display:flex}.share-li.dead{opacity:.5}.share-li-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-revoke{font-size:var(--fs-12);color:var(--reject);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-md);flex-shrink:0;margin-left:auto}.share-revoke:hover{background:var(--surface-sunk)}.pub-wrap{max-width:720px;padding:var(--sp-4) var(--sp-4) 60px;margin:0 auto}.pub-top{margin-bottom:var(--sp-5);align-items:center;display:flex}.pub-brand{align-items:center;gap:var(--sp-2);color:var(--ink);text-decoration:none;display:flex}.pub-brand .brand-name{letter-spacing:.5px;font-weight:800}.pub-brand .brand-name span{color:var(--accent-strong)}.pub-top .lang-btn{margin-left:auto}.pub-msg{text-align:center;padding:60px var(--sp-4);color:var(--ink-soft)}.pub-gone-title{font-size:var(--fs-20);color:var(--ink);margin-bottom:var(--sp-2);font-weight:700}.pub-gone-sub{font-size:var(--fs-13);margin-bottom:var(--sp-5)}.pub-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-5)}.pub-title{font-size:var(--fs-20);color:var(--ink);margin:0 0 var(--sp-1);font-weight:700}.pub-frozen{font-size:var(--fs-12);color:var(--ink-faint);margin-bottom:var(--sp-4)}.pub-table{flex-direction:column;display:flex}.pub-row{gap:var(--sp-3);padding:var(--sp-3) var(--sp-1);border-top:1px solid var(--hairline);font-size:var(--fs-13);grid-template-columns:1fr auto 72px 56px;align-items:center;display:grid}.pub-row.pub-head{font-size:var(--fs-12);color:var(--ink-faint);padding-bottom:var(--sp-2);border-top:none}.pub-c-irr,.pub-c-score{text-align:right}.pub-c-name{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.pub-tk{color:var(--ink);font-weight:700}.pub-nm{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pub-c-irr.gain{color:var(--buy)}.pub-c-irr.loss{color:var(--reject)}.pub-note{font-size:var(--fs-14);color:var(--ink-faint);margin-top:var(--sp-4);line-height:1.6}.pub-make{margin-top:var(--sp-4);justify-content:center;display:inline-flex}.wl-page{padding-top:var(--sp-4)}.wl-head{align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.wl-head .page-title{font-size:var(--fs-20);color:var(--ink);margin:0;font-weight:700}@media (width<=560px){.wl-head{align-items:flex-start;gap:var(--sp-0-5);flex-direction:column}}.wl-msg,.wl-empty{text-align:center;color:var(--ink-soft);padding:56px var(--sp-4)}.wl-empty{align-items:center;gap:var(--sp-2);flex-direction:column;display:flex}.wl-empty svg{color:var(--ink-faint)}.wl-empty-title{font-size:var(--fs-16);color:var(--ink);font-weight:600}.wl-empty-sub{font-size:var(--fs-14);max-width:420px;line-height:1.7}.wl-table{padding:var(--sp-1) var(--sp-2)}.wl-row{gap:var(--sp-3);padding:var(--sp-2) var(--sp-2);border-top:1px solid var(--hairline);font-size:var(--fs-13);cursor:pointer;grid-template-columns:1fr 110px 90px 56px 80px 32px;align-items:center;display:grid}.wl-row:first-child,.wl-thead{border-top:none}.wl-row:not(.wl-thead):hover{background:var(--surface-sunk);border-radius:var(--r-md)}.wl-thead{cursor:default;font-size:var(--fs-12);color:var(--ink-faint);padding-bottom:var(--sp-2)}.wl-sortbtn{text-align:right;color:var(--ink-faint);font-size:var(--fs-12)}.wl-sortbtn:hover{color:var(--ink-soft)}.wl-sortbtn.on{color:var(--accent-text);font-weight:600}.wl-c-irr,.wl-c-score,.wl-c-cheap{text-align:right}.wl-c-name{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.wl-tk{color:var(--ink);white-space:nowrap;font-weight:700}.wl-nm{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wl-c-irr.gain,.wl-c-cheap.gain{color:var(--buy)}.wl-c-irr.loss{color:var(--reject)}.wl-remove{color:var(--ink-faint);place-items:center;display:grid}.wl-remove:hover{color:var(--reject)}@media (width<=640px){.wl-row{row-gap:var(--sp-1);grid-template-columns:1fr 72px 64px 28px;grid-template-areas:"name name name x""sig irr cheap x"}.wl-c-name{grid-area:name}.wl-c-sig{grid-area:sig}.wl-c-irr{grid-area:irr}.wl-c-cheap{grid-area:cheap}.wl-c-x{grid-area:x}.wl-c-score{display:none}}.scr-page{padding-top:var(--sp-4)}.scr-filters{align-items:center;gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);font-size:var(--fs-13);flex-wrap:wrap;display:flex}.scr-filters .spacer{flex:1}.scr-seg{border:1px solid var(--hairline-strong);border-radius:var(--r-md);display:inline-flex;overflow:hidden}.scr-seg button{padding:var(--sp-1) var(--sp-3);font-size:var(--fs-13);color:var(--ink-soft);background:var(--surface)}.scr-seg button.on{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.scr-field{align-items:center;gap:var(--sp-2);color:var(--ink-soft);display:inline-flex}.scr-num{width:56px;padding:var(--sp-1) var(--sp-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink);font-size:var(--fs-13)}.scr-check{align-items:center;gap:var(--sp-2);color:var(--ink-soft);cursor:pointer;display:inline-flex}.scr-select{padding:var(--sp-1) var(--sp-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink);font-size:var(--fs-13)}.scr-count{margin-top:var(--sp-3);font-size:var(--fs-12);text-align:right}.scr-age{margin-left:var(--sp-2);padding:0 var(--sp-1);border-radius:var(--r-md);font-size:var(--fs-12);white-space:nowrap;color:var(--ink-faint);border:1px solid var(--hairline)}.scr-age-stale{color:var(--ink-soft);border-color:var(--hairline-strong);background:var(--hairline)}.scr-why{margin-top:var(--sp-1);font-size:var(--fs-14);grid-column:1/-1;line-height:1.4}@media (prefers-reduced-motion:reduce){.onb-dot{transition:none}}.portfolio-switch{align-items:center;gap:var(--sp-2);height:34px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--hairline);color:var(--ink-soft);font-size:var(--fs-13);font-weight:500;display:flex}.portfolio-switch:hover{border-color:var(--hairline-strong);color:var(--ink)}.avatar{background:var(--surface-sunk);border:1px solid var(--hairline);width:32px;height:32px;font-size:var(--fs-13);color:var(--ink-soft);border-radius:50%;place-items:center;font-weight:600;display:grid}.crumbs{align-items:center;gap:var(--sp-2);font-size:var(--fs-13);color:var(--ink-faint);margin-bottom:var(--sp-3);display:flex}.crumbs b{color:var(--ink-soft);font-weight:500}.crumbs .sep{color:var(--hairline-strong)}.field-search{align-items:center;gap:var(--sp-2);height:38px;padding:0 var(--sp-3);border-radius:var(--r-md);background:var(--canvas);border:1px solid var(--hairline);transition:border-color .15s,box-shadow .15s;display:flex}.field-search:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--surface)}.field-search input{background:0 0;border:none;outline:none;flex:1}.field-search input::placeholder{color:var(--ink-faint)}.field-search svg{color:var(--ink-faint);flex-shrink:0}.search-marketbadge{flex-shrink:0}.search-pop{z-index:50;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-1);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}.search-pop-head{padding:var(--sp-2) var(--sp-4);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--hairline)}.search-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);cursor:pointer;display:flex}.search-row:hover{background:var(--surface-sunk)}.search-row .code{font-weight:600}.search-row .nm{color:var(--ink-soft);font-size:var(--fs-13)}.search-row .px{color:var(--ink-soft);margin-left:auto}.page{flex:1;width:100%}.wrap{max-width:1340px;padding:var(--sp-5) var(--sp-5) 80px;margin:0 auto}html[data-density=compact] .wrap{padding:var(--sp-4) var(--sp-4) 60px}html[data-density=compact] .panel-head,html[data-density=compact] .ptable th,html[data-density=compact] .ptable td{padding:var(--sp-2) var(--sp-3)}html[data-density=compact] .pf-summary{gap:var(--sp-2)}html[data-density=compact] .col-stack,html[data-density=compact] .analysis-grid{gap:var(--sp-3)}.wrap-narrow{max-width:1040px}.btn{justify-content:center;align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-4);border-radius:var(--r-md);font-weight:500;font-size:var(--fs-14);white-space:nowrap;border:1px solid var(--hairline-strong);color:var(--ink);background:var(--surface);transition:background .12s,border-color .12s,transform 40ms;display:inline-flex}.btn:hover{background:var(--surface-sunk)}.btn:active{transform:translateY(.5px)}.btn-sm{height:28px;padding:0 var(--sp-3);font-size:var(--fs-13);border-radius:var(--r-md)}.btn-lg{height:44px;padding:0 var(--sp-5);font-size:var(--fs-16)}.btn-accent{background:var(--accent);color:var(--on-accent);border-color:var(--accent-strong);font-weight:600}.btn-accent:hover{background:var(--accent-strong)}.btn-danger{background:var(--reject);color:var(--on-signal);border-color:var(--reject);font-weight:600}.btn-danger:hover{filter:brightness(.92)}.btn-ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-sunk);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{flex-shrink:0}.auth-upgrade-cta{width:100%;margin-top:var(--sp-2)}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden}.panel-pad{padding:var(--sp-4)}.panel-head{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--hairline);background:var(--surface);display:flex}.panel-title{font-weight:600;font-size:var(--fs-14)}.panel-sub{font-size:var(--fs-12);color:var(--ink-faint)}.panel-head .spacer{flex:1}.pill{align-items:center;gap:var(--sp-1);height:22px;padding:0 var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-12);white-space:nowrap;font-weight:600;display:inline-flex}.pill-buy{color:var(--buy);background:var(--buy-bg)}.pill-caution{color:var(--caution);background:var(--caution-bg)}.pill-watch{color:var(--watch);background:var(--watch-bg)}.pill-reject{color:var(--reject);background:var(--reject-bg)}.pill-neutral{color:var(--ink-soft);background:var(--surface-sunk)}.pill-note{color:var(--ink-soft);border:1px dashed var(--hairline-strong);background:0 0;font-weight:500}.pill-note.pill-caution,.pill-note.pill-reject{color:var(--caution);border-color:var(--caution);background:0 0}.badge{align-items:center;gap:var(--sp-1);height:20px;padding:0 var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-12);white-space:nowrap;font-weight:500;line-height:1;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge svg{width:12px;height:12px}.mkt-tw{color:var(--buy);background:var(--buy-bg)}.mkt-us{color:var(--watch);background:var(--watch-bg)}.st-auto{color:var(--info);background:var(--data-auto)}.st-pending{color:var(--caution);background:var(--caution-bg)}.st-manual{color:var(--ink-soft);background:var(--surface-sunk)}.st-formula{color:var(--ink-faint);background:var(--data-derived);border:1px solid var(--hairline)}.st-missing{color:var(--reject);background:var(--data-missing)}.sig{align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);border-radius:var(--r-pill);height:24px;font-weight:600;font-size:var(--fs-13);white-space:nowrap;display:inline-flex}.sig .dot{width:7px;height:7px}.sig-buy{color:var(--buy);background:var(--buy-bg)}.sig-caution{color:var(--caution);background:var(--caution-bg)}.sig-watch{color:var(--watch);background:var(--watch-bg)}.sig-reject{color:var(--reject);background:var(--reject-bg)}.sig-expensive{color:var(--expensive);background:var(--expensive-bg)}.sig-lg{height:34px;padding:0 var(--sp-4);font-size:var(--fs-16)}.sig-lg .dot{width:9px;height:9px}.na-count{font-size:var(--fs-11);color:var(--on-signal);background:var(--reject);border-radius:var(--r-pill);padding:var(--sp-0-5) var(--sp-2);margin-left:var(--sp-2);font-weight:700}.na-list{gap:var(--sp-1);padding:var(--sp-1) 0 var(--sp-0-5);flex-direction:column;display:flex}.na-item{align-items:center;gap:var(--sp-2);text-align:left;background:var(--surface-sunk);border-radius:var(--r-md);width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);color:var(--ink);cursor:pointer;border:1px solid #0000;display:flex}.na-item:hover{border-color:var(--border)}.na-dot{border-radius:50%;flex:none;width:8px;height:8px}.na-dot.k-weak,.na-detail.k-weak{color:var(--reject)}.na-dot.k-weak{background:var(--reject)}.na-dot.k-drift{background:var(--accent)}.na-detail.k-drift{color:var(--accent)}.na-dot.k-concentrated{background:var(--signal)}.na-detail.k-concentrated{color:var(--ink-soft)}.na-dot.k-cheap{background:var(--buy)}.na-detail.k-cheap{color:var(--buy)}.na-name{color:var(--ink-soft);font-size:var(--fs-12)}.na-detail{font-size:var(--fs-12);white-space:nowrap}.data-health{padding:var(--sp-3) var(--sp-4);background:var(--surface-sunk);border-radius:var(--r-md)}.dh-head{align-items:center;gap:var(--sp-3);display:flex}.dh-title{font-size:var(--fs-13);color:var(--ink-soft);white-space:nowrap;font-weight:600}.dh-bar{border-radius:var(--r-sm);background:var(--border);flex:1;height:6px;overflow:hidden}.dh-fill{background:var(--buy);border-radius:var(--r-sm);height:100%}.dh-fill.partial{background:var(--signal)}.dh-pct{font-size:var(--fs-13);color:var(--ink);font-weight:700}.dh-fields{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.dh-chip{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--border);color:var(--ink-soft);white-space:nowrap}.dh-chip.ok{color:var(--buy);border-color:color-mix(in srgb, var(--buy) 35%, transparent)}.dh-chip.miss{color:var(--reject);border-color:color-mix(in srgb, var(--reject) 35%, transparent)}.dh-chip.ov{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.dh-blocker{margin-top:var(--sp-2);font-size:var(--fs-12);color:var(--reject)}.dh-ovnote{margin-top:var(--sp-1);font-size:var(--fs-12)}.signal-why{margin-top:var(--sp-2);font-size:var(--fs-14);color:var(--ink-soft);max-width:320px;line-height:1.5}.signal-why .why-label{color:var(--ink-faint)}.sig.sig-wrap{white-space:normal;height:auto;min-height:24px;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-lg);text-align:center;vertical-align:middle;min-width:72px;max-width:104px;line-height:1.32;display:inline-block}.sig.sig-wrap .dot{display:none}.gridwrap{overflow-x:auto}table.sheet{border-collapse:collapse;width:100%}table.sheet th,table.sheet td{border:1px solid var(--hairline);text-align:right;white-space:nowrap;padding:0}table.sheet thead th{background:var(--surface-sunk);border-bottom:2px solid var(--hairline-strong);padding:var(--sp-2) var(--sp-3);font-weight:600;font-size:var(--fs-12);color:var(--ink-soft);text-align:right;letter-spacing:.01em;position:relative}table.sheet thead th .zh{font-weight:400;font-size:var(--fs-12);color:var(--ink-faint);margin-top:var(--sp-0-5);display:block}table.sheet thead th:first-child,table.sheet td:first-child{text-align:center}table.sheet tbody td{height:38px}table.sheet tbody tr:hover{background:var(--row-hover)}.cell{height:100%;min-height:38px;padding:0 var(--sp-3);justify-content:flex-end;align-items:center;gap:var(--sp-2);display:flex;position:relative}.cell .cell-badge{border-radius:50%;width:6px;height:6px;position:absolute;top:3px;left:3px}.cb-auto{background:var(--info)}.cb-formula{background:var(--ink-faint)}.cb-manual{background:var(--caution)}.cb-missing{background:var(--reject);box-shadow:0 0 0 2px var(--data-missing)}.cell.is-auto{background:var(--data-auto)}.cell.is-formula{background:var(--data-derived);color:var(--ink-soft)}.cell.is-manual{background:var(--data-manual);box-shadow:inset 0 0 0 1px var(--data-manual-bd)}.cell.is-missing{background:var(--data-missing);box-shadow:inset 0 0 0 1px var(--data-missing-bd)}.cell.editable{cursor:text}.cell.editable:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}.cell input{text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;width:100%;font-family:IBM Plex Mono,monospace}.cell-val{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.cell-missing-ph{color:var(--ink-faint);font-size:var(--fs-12);font-family:IBM Plex Sans TC,sans-serif}.cell .revert{border-radius:var(--r-sm);width:18px;height:18px;color:var(--caution);place-items:center;display:none;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.cell.is-manual .revert{display:grid}.cell.is-manual{padding-right:var(--sp-5)}.cell .revert:hover{background:var(--data-manual-bd)}.year-cell{color:var(--ink-soft);font-weight:600}.trend-up{color:var(--buy)}.trend-down{color:var(--reject)}.sk{background:var(--surface-sunk);border-radius:var(--r-sm);width:70%;height:13px;margin-left:auto;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg, transparent, var(--shimmer), transparent);animation:1.3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}[data-theme=dark] .sk:after{background:linear-gradient(90deg, transparent, var(--shimmer), transparent)}@keyframes shimmer{to{transform:translate(100%)}}.params{grid-template-columns:1fr 1fr;gap:0;display:grid}.param{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--hairline);display:flex}.param:nth-child(odd){border-right:1px solid var(--hairline)}.param-label{font-size:var(--fs-12);color:var(--ink-soft)}.param-label .zh{color:var(--ink-faint);font-size:var(--fs-12);margin-left:var(--sp-1)}.param-val{font-variant-numeric:tabular-nums;align-items:center;gap:var(--sp-2);margin-left:auto;font-family:IBM Plex Mono,monospace;font-weight:500;display:flex}.param-val input{text-align:right;border:1px solid var(--hairline);background:var(--canvas);border-radius:var(--r-sm);width:76px;padding:var(--sp-1) var(--sp-2);outline:none;font-family:IBM Plex Mono,monospace}.param-val input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}.param.locked .param-val{color:var(--ink-faint)}.param.manual-need{background:var(--data-missing)}.irr4{gap:var(--sp-0-5);background:var(--hairline);grid-template-columns:repeat(2,1fr);display:grid}.irr-card{background:var(--surface);padding:var(--sp-3) var(--sp-4)}.irr-card .lbl{font-size:var(--fs-12);color:var(--ink-soft);min-height:30px;line-height:1.35}.irr-card .lbl .zh{color:var(--ink-faint)}.irr-card .pct{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:var(--fs-24);margin-top:var(--sp-1);font-weight:600}.irr-card.is-correct-src{box-shadow:inset 3px 0 0 var(--accent)}.conclusion{background:var(--accent-soft);border:1px solid var(--accent);border-left:5px solid var(--accent);border-radius:var(--r-md);padding:var(--sp-5) var(--sp-5)}.conclusion .ck-label{font-size:var(--fs-12);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.conclusion .ck-num{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:var(--fs-44);margin:var(--sp-2) 0 var(--sp-4);font-weight:700;line-height:1.05}.conclusion .ck-num.expensive{color:var(--expensive)}.conclusion .ck-sub{font-size:var(--fs-12);color:var(--ink-soft);margin-top:var(--sp-3);align-items:center;gap:var(--sp-2);display:flex}[data-theme=dark] .conclusion{background:var(--accent-soft);border-color:var(--accent-strong)}.fat-table{border-collapse:collapse;width:100%}.fat-table th{background:var(--surface-sunk);border-bottom:2px solid var(--hairline-strong);font-size:var(--fs-12);color:var(--ink-soft);padding:var(--sp-2) var(--sp-3);text-align:left;white-space:nowrap;font-weight:600}.fat-table th.num,.fat-table td.num{text-align:right}.fat-table th.ctr,.fat-table td.ctr{text-align:center}.fat-table td{border-bottom:1px solid var(--hairline);padding:var(--sp-2) var(--sp-3);vertical-align:middle}.fat-table tr:hover td{background:var(--row-hover)}.fat-pt{align-items:baseline;gap:var(--sp-2);display:flex}.fat-pt .no{color:var(--accent-text);flex-shrink:0;width:18px;font-family:IBM Plex Mono,monospace;font-weight:600}.fat-pt .ttl{font-size:var(--fs-13);line-height:1.35}.fat-max{color:var(--ink-faint);font-family:IBM Plex Mono,monospace;font-size:var(--fs-12)}.fat-data{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:var(--fs-12);color:var(--ink-soft)}.fat-data .hint{color:var(--ink-faint);font-family:IBM Plex Sans TC,sans-serif;font-size:var(--fs-14)}.seg{border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface);display:inline-flex;overflow:hidden}.seg button{padding:var(--sp-1) var(--sp-2);font-family:IBM Plex Mono,monospace;font-size:var(--fs-12);color:var(--ink-soft);border-right:1px solid var(--hairline);min-width:30px}.seg button:last-child{border-right:none}.seg button:hover{background:var(--surface-sunk)}.seg button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.seg.overridden button.on{background:var(--data-manual);color:var(--caution);box-shadow:inset 0 0 0 1px var(--data-manual-bd)}.fat-total{align-items:center;gap:var(--sp-4);padding:var(--sp-4);background:var(--accent-soft);border-top:2px solid var(--accent);flex-wrap:wrap;display:flex}.fat-total .tlbl{font-weight:600;font-size:var(--fs-14)}.fat-total .tnum{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:var(--fs-32);font-weight:700}.fat-total .tnum small{font-size:var(--fs-16);color:var(--ink-soft);font-weight:500}.fat-total .thint{font-size:var(--fs-12);color:var(--ink-soft);margin-left:auto}.banner{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-13);margin-bottom:var(--sp-4);display:flex}.banner-warn{background:var(--caution-bg);color:var(--caution);border:1px solid var(--data-manual-bd)}.banner-warn .btn{margin-left:auto}.banner-err{background:var(--reject-bg);color:var(--reject)}.toast-wrap{z-index:80;gap:var(--sp-2);flex-direction:column;align-items:center;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--ink);color:var(--canvas);border-radius:var(--r-md);box-shadow:var(--shadow-1);font-size:var(--fs-13);font-weight:500;animation:.3s cubic-bezier(.2,.8,.2,1) toastin;display:flex}.toast svg{color:var(--accent)}.toast.err{box-shadow:var(--shadow-1), inset 3px 0 0 var(--toast-err)}.toast.err svg{color:var(--toast-err)}[data-theme=dark] .toast.err{box-shadow:var(--shadow-1), inset 3px 0 0 var(--toast-err)}[data-theme=dark] .toast.err svg{color:var(--toast-err)}@keyframes toastin{0%{opacity:0;transform:translateY(12px)}}.empty{text-align:center;padding:70px var(--sp-6)}.empty .ph-art{width:120px;height:84px;margin:0 auto var(--sp-5);border-radius:var(--r-md);border:1px dashed var(--hairline-strong);background:repeating-linear-gradient(45deg, var(--surface-sunk) 0 8px, transparent 8px 16px);color:var(--ink-faint);place-items:center;display:grid}.empty h3{font-size:var(--fs-16);margin-bottom:var(--sp-2);font-weight:600}.empty p{color:var(--ink-soft);margin-bottom:var(--sp-4)}.chips{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.chip{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--hairline-strong);font-family:IBM Plex Mono,monospace;font-size:var(--fs-13);color:var(--ink-soft)}.chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.ptable{border-collapse:collapse;background:var(--surface);width:100%}.ptable th{background:var(--surface-sunk);border-bottom:2px solid var(--hairline-strong);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-12);color:var(--ink-soft);text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:600}.ptable th.num,.ptable td.num{text-align:right}.ptable th.sortable{cursor:pointer}.ptable th.sortable:hover{color:var(--ink)}.ptable th .arr{color:var(--accent-text);margin-left:var(--sp-1)}.ptable td{border-bottom:1px solid var(--hairline);padding:var(--sp-3) var(--sp-4)}.ptable td.gain{color:var(--up)}.ptable td.loss{color:var(--down)}.ptable tbody tr{cursor:pointer}.ptable tbody tr:hover td{background:var(--row-hover)}.ptable .code{font-weight:600}.ptable .nm{color:var(--ink-soft);font-size:var(--fs-13)}.ptable .mono{font-weight:500}.ptable .rowact{gap:var(--sp-2);opacity:0;transition:opacity .12s;display:flex}.ptable tbody tr:hover .rowact{opacity:1}.rowact button{font-size:var(--fs-12);color:var(--ink-soft)}.rowact button:hover{color:var(--ink);text-decoration:underline}.rowact button.del:hover{color:var(--danger)}.pf-tabs{gap:var(--sp-1);margin-bottom:var(--sp-4);border-bottom:1px solid var(--hairline);display:flex}.pf-tab{cursor:pointer;padding:var(--sp-2) var(--sp-4) var(--sp-3);font-size:var(--fs-14);color:var(--ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.pf-tab:hover{color:var(--ink)}.pf-tab.on{color:var(--ink);border-bottom-color:var(--accent-strong);font-weight:600}.pf-tab-n{font-size:var(--fs-12);color:var(--ink-faint);margin-left:var(--sp-1)}.pf-tab.on .pf-tab-n{color:var(--accent-text)}.toolbar{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.toolbar .spacer{flex:1}.seg-filter{border:1px solid var(--hairline);border-radius:var(--r-md);display:inline-flex;overflow:hidden}.seg-filter button{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);color:var(--ink-soft);border-right:1px solid var(--hairline)}.seg-filter button:last-child{border-right:none}.seg-filter button.on{background:var(--surface-sunk);color:var(--ink);font-weight:500}.auth-shell{padding:var(--sp-10) var(--sp-5);flex:1;place-items:center;display:grid}.auth-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);width:100%;max-width:400px;padding:var(--sp-8);position:relative}.auth-lang{min-width:36px;height:28px;padding:0 var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-12);letter-spacing:.02em;color:var(--ink-soft);border:1px solid var(--hairline);background:0 0;font-weight:700;position:absolute;top:14px;right:14px}.auth-lang:hover{background:var(--surface-sunk);color:var(--ink)}.auth-brand{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-1);display:flex}.auth-slogan{color:var(--ink-soft);font-size:var(--fs-13);margin-bottom:var(--sp-6)}.field{margin-bottom:var(--sp-4)}.field label{font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:var(--sp-2);font-weight:500;display:block}.field input{width:100%;height:40px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--canvas);outline:none}.field input:focus{border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--surface)}.field .err-msg{color:var(--danger);font-size:var(--fs-14);margin-top:var(--sp-2);align-items:center;gap:var(--sp-1);display:flex}.auth-foot{text-align:center;margin-top:var(--sp-4);font-size:var(--fs-13);color:var(--ink-soft);line-height:1.9}.auth-foot a{color:var(--accent-text);font-weight:500}.otp-input{text-align:center;width:100%;font-family:var(--mono,ui-monospace, monospace);font-size:var(--fs-24);letter-spacing:14px;padding-left:var(--sp-4);font-weight:700}.otp-input::placeholder{letter-spacing:12px;color:var(--hairline)}.otp{place-items:center;height:74px;display:grid;position:relative}.otp-cells{gap:var(--sp-3);display:flex}.otp-cell{border-radius:var(--r-lg);background:var(--surface-sunk);border:1.5px solid var(--hairline);width:46px;height:58px;font-size:var(--fs-24);color:var(--ink);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;transition:border-color .25s,box-shadow .25s,transform .45s cubic-bezier(.7,0,.25,1),opacity .4s;display:grid;position:relative}.otp-d{animation:.42s cubic-bezier(.34,1.7,.5,1) otp-pop;display:inline-block}@keyframes otp-pop{0%{opacity:0;transform:translateY(8px)scale(.4)}60%{opacity:1;transform:translateY(0)scale(1.16)}to{transform:scale(1)}}.otp-cell.active{border-color:var(--accent-strong);background:var(--surface);box-shadow:var(--ring-focus)}.otp-cell.active:after{content:"";background:var(--accent-strong);border-radius:var(--r-sm);width:2px;height:24px;animation:1.05s step-end infinite otp-caret;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes otp-caret{0%,50%{opacity:1}51%,to{opacity:0}}.otp.otp-verifying .otp-cell{opacity:.55}.otp.otp-ok .otp-cell{transform:translateX(calc((2.5 - var(--i)) * 56px)) scale(.34) rotate(calc((var(--i) - 2.5) * 7deg));opacity:0;transition-delay:calc(var(--i) * 16ms);border-color:#0000}.otp.otp-verifying .otp-cell:after,.otp.otp-ok .otp-cell:after,.otp.otp-err .otp-cell:after{display:none}.otp-check{border-radius:var(--r-lg);background:var(--surface-sunk);border:2px solid var(--success);opacity:0;pointer-events:none;place-items:center;width:58px;height:58px;margin:auto;display:grid;position:absolute;inset:0;transform:scale(.2)}.otp-check svg{width:27px;height:27px;stroke:var(--success);stroke-width:3.2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.otp-check svg path{stroke-dasharray:32;stroke-dashoffset:32px}.otp.otp-ok .otp-check{animation:.5s cubic-bezier(.34,1.6,.5,1) .42s forwards otp-okin}.otp.otp-ok .otp-check svg path{animation:.34s cubic-bezier(.6,0,.3,1) .76s forwards otp-draw}@keyframes otp-okin{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes otp-draw{to{stroke-dashoffset:0}}.otp-glow{background:radial-gradient(circle, color-mix(in srgb, var(--success) 45%, transparent) 0%, transparent 62%);opacity:0;pointer-events:none;border-radius:50%;width:200px;height:200px;margin:auto;position:absolute;inset:-50px;transform:scale(.3)}.otp.otp-ok .otp-glow{animation:.7s ease-out .4s forwards otp-glow}@keyframes otp-glow{0%{opacity:0;transform:scale(.3)}45%{opacity:1}to{opacity:.8;transform:scale(1)}}.otp.otp-err .otp-cells{animation:.42s cubic-bezier(.36,.07,.44,.9) otp-shake}.otp.otp-err .otp-cell{border-color:var(--danger);box-shadow:var(--ring-error)}@keyframes otp-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.otp-hidden{opacity:0;caret-color:#0000;cursor:text;width:100%;height:100%;font-size:var(--fs-16);background:0 0;border:0;position:absolute;inset:0}.otp.otp-verifying .otp-hidden,.otp.otp-ok .otp-hidden,.otp.otp-err .otp-hidden{pointer-events:none}.otp-hint{margin:-6px 0 var(--sp-4);text-align:center;font-size:var(--fs-12);color:var(--ink-faint)}.mail-wrap{position:relative}.mail-pop{z-index:40;padding:var(--sp-1);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-1);max-height:244px;margin:0;list-style:none;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto}.mail-opt{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-14);text-align:left;color:var(--ink);background:0 0;border:0;display:flex}.mail-opt.on{background:var(--accent-soft)}.mail-local{text-overflow:ellipsis;white-space:nowrap;max-width:42%;color:var(--ink-soft);overflow:hidden}.mail-dom{white-space:nowrap;font-weight:600}.field .trust-row{align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font-size:var(--fs-13);color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;display:flex}.field .trust-row input[type=checkbox]{flex-shrink:0;width:17px;height:17px;padding:0}@media (prefers-reduced-motion:reduce){.otp-d,.otp.otp-ok .otp-cell,.otp-glow,.otp-check,.otp-check svg path,.otp.otp-err .otp-cells,.otp-cell.active:after{transition:opacity .2s!important;animation:none!important}}.trust-row{align-items:center;gap:var(--sp-2);margin:var(--sp-0-5) 0 var(--sp-4);font-size:var(--fs-13);color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.trust-row input{width:15px;height:15px;accent-color:var(--accent-text);cursor:pointer}.turnstile{margin:var(--sp-0-5) 0 var(--sp-4);justify-content:center;min-height:0;display:flex}.switch{cursor:pointer;display:inline-flex}.switch input{display:none}.switch-track{border-radius:var(--r-pill);background:var(--hairline-strong);width:42px;height:23px;transition:background .16s;position:relative}.switch input:checked+.switch-track{background:var(--buy)}.switch input:disabled+.switch-track{opacity:.6}.switch-thumb{background:var(--on-strong);width:19px;height:19px;box-shadow:var(--shadow-knob);border-radius:50%;transition:transform .16s cubic-bezier(.22,1,.36,1);position:absolute;top:2px;left:2px}.switch input:checked+.switch-track .switch-thumb{transform:translate(19px)}.pw-meter{border-radius:var(--r-sm);background:var(--hairline);height:4px;margin-top:var(--sp-2);overflow:hidden}.pw-meter i{height:100%;transition:width .2s,background .2s;display:block}.pw-hint{font-size:var(--fs-14);color:var(--ink-faint);margin-top:var(--sp-1)}.form-error{background:var(--reject-bg);color:var(--reject);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-14);margin-bottom:var(--sp-4);align-items:center;gap:var(--sp-2);display:flex}.acct-sec{margin-bottom:var(--sp-4)}.acct-row{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--hairline);display:flex}.acct-row:last-child{border-bottom:none}.acct-row .k{width:160px;color:var(--ink-soft);font-size:var(--fs-13)}.acct-row .v{font-weight:500}.plan-badge{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--hairline);font-size:var(--fs-13);font-weight:600;display:inline-flex}.sec-h{align-items:baseline;gap:var(--sp-3);margin:0 0 var(--sp-4);display:flex}.sec-h h1{font-size:var(--fs-24);letter-spacing:-.01em;font-weight:700}.sec-h h2{font-size:var(--fs-16);font-weight:600}.sec-h .sub{color:var(--ink-faint);font-size:var(--fs-13)}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.row{align-items:center;gap:var(--sp-3);display:flex}.gap6,.gap8{gap:var(--sp-2)}.gap12{gap:var(--sp-3)}.mt8{margin-top:var(--sp-2)}.mt16{margin-top:var(--sp-4)}.mt24{margin-top:var(--sp-6)}.flex1{flex:1}.analysis-grid{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.col-stack{gap:var(--sp-4);flex-direction:column;display:flex}.anl-head{align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.anl-head .stockname{font-size:var(--fs-20);font-weight:700}.anl-head .upd{font-size:var(--fs-12);color:var(--ink-faint);align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.anl-head .upd .src-chip.src-basis{white-space:normal}.anl-head .upd button{color:var(--ink-soft);display:inline-flex}.anl-head .upd button:hover{color:var(--accent-text)}.anl-sticky{z-index:30;justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex;position:sticky;top:56px}.anl-verdict{align-items:center;gap:var(--sp-4);font-size:var(--fs-13);color:var(--ink-soft);flex-wrap:wrap;min-height:30px;display:flex}.anl-verdict b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.anl-verdict .v-irr b{font-size:var(--fs-16)}.anl-verdict .v-irr b.expensive{color:var(--expensive)}.anl-verdict .v-den{color:var(--ink-faint);font-weight:400}.anl-tabs{gap:var(--sp-0-5);background:var(--surface-sunk);border-radius:var(--r-md);padding:var(--sp-1);display:flex}.anl-tabs button{font-size:var(--fs-13);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);color:var(--ink-soft);white-space:nowrap;transition:color .15s,background .15s}.anl-tabs button:hover{color:var(--ink)}.anl-tabs button.on{background:var(--surface);color:var(--ink);font-weight:600}.anl-tab{gap:var(--sp-4);flex-direction:column;display:flex}.anl-tab[hidden]{display:none}.health-radar .panel-head{margin-bottom:var(--sp-1)}.health-radar .hr-score{font-size:var(--fs-20);color:var(--ink);font-weight:700}.health-radar .hr-den{font-size:var(--fs-12);color:var(--ink-faint);font-weight:400}.hr-svg{width:100%;max-width:360px;height:auto;margin:var(--sp-0-5) auto var(--sp-1);display:block}.hr-ring{fill:none;stroke:var(--hairline)}.hr-spoke{stroke:var(--hairline);stroke-width:1px}.hr-poly{fill:color-mix(in srgb, var(--accent) 18%, transparent);stroke:var(--accent-strong);stroke-width:2px;stroke-linejoin:round;transition:all var(--dur-snap) var(--ease-spring)}.hr-dot{fill:var(--accent-strong)}.hr-lab{fill:var(--ink-soft);font-size:var(--fs-12);font-weight:500}@media (prefers-reduced-motion:reduce){.hr-poly{transition:none}}.rf-panel{margin-top:var(--sp-3)}.rf-good{color:var(--buy)}.rf-warn{color:var(--caution)}.rf-bad{color:var(--reject)}.rf-na{padding:var(--sp-4) var(--sp-4)}.rf-na-line{font-size:var(--fs-13);color:var(--ink-soft);font-weight:600}.rf-na-sub{margin-top:var(--sp-1);font-size:var(--fs-14);color:var(--ink-faint)}.rf-body{gap:var(--sp-5);padding:var(--sp-4) var(--sp-4);grid-template-columns:1fr 150px;display:grid}@media (width<=560px){.rf-body{gap:var(--sp-4);grid-template-columns:1fr}}.rf-sec-title{font-size:var(--fs-12);letter-spacing:.05em;color:var(--ink-soft);font-weight:700}.rf-f-head{align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.rf-f-score{font-size:var(--fs-20);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.rf-f-score small{font-size:var(--fs-13);color:var(--ink-faint);margin-left:var(--sp-0-5);font-weight:600}.rf-verdict{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);font-weight:700}.rf-verdict.rf-good{background:var(--buy-bg)}.rf-verdict.rf-warn{background:var(--caution-bg)}.rf-verdict.rf-bad{background:var(--reject-bg)}.rf-verdict-tag{font-size:var(--fs-12);opacity:.75;font-weight:600}.rf-nodata{font-size:var(--fs-14);color:var(--ink-faint);padding:var(--sp-2) 0}.rf-lowconf{font-size:var(--fs-14);color:var(--caution);margin-bottom:var(--sp-1)}.rf-partial{font-size:var(--fs-14);color:var(--ink-faint);margin-bottom:var(--sp-1)}.rf-groups{gap:var(--sp-2) var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=560px){.rf-groups{grid-template-columns:1fr}}.rf-group-label{font-size:var(--fs-12);color:var(--ink-faint);margin-bottom:var(--sp-0-5)}.rf-crit-row{align-items:baseline;gap:var(--sp-1);font-size:var(--fs-13);line-height:1.75;display:flex}.rf-crit-row.rf-unk{color:var(--ink-faint)}.rf-ic{text-align:center;flex:none;width:13px;font-weight:700}.rf-crit-na{font-size:var(--fs-12);color:var(--ink-faint)}.rf-z{gap:var(--sp-2);flex-direction:column;display:flex}.rf-big{align-items:baseline;gap:var(--sp-2);font-variant-numeric:tabular-nums;line-height:1;display:flex}.rf-big-num{font-size:var(--fs-32);font-weight:800}.rf-zbadge{padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-12);align-self:flex-start;font-weight:700;line-height:1.5}.rf-zbadge.rf-good{background:var(--buy-bg)}.rf-zbadge.rf-warn{background:var(--caution-bg)}.rf-zbadge.rf-bad{background:var(--reject-bg)}.rf-zscale{border-radius:var(--r-sm);height:6px;margin-top:var(--sp-2);background:linear-gradient(90deg, var(--reject-bg) 0 22%, var(--caution-bg) 22% 52%, var(--buy-bg) 52% 100%);position:relative}.rf-zmark{background:var(--ink);width:2px;height:12px;position:absolute;top:-3px;transform:translate(-1px)}.rf-zticks{height:13px;margin-top:var(--sp-0-5);position:relative}.rf-zticks span{font-size:var(--fs-11);color:var(--ink-faint);font-variant-numeric:tabular-nums;position:absolute;transform:translate(-50%)}.pf-health{margin-bottom:var(--sp-5)}.hl-badge{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-3);border-radius:var(--r-pill);font-weight:600}.hl-diversified{color:var(--buy);background:var(--buy-bg)}.hl-moderate{color:var(--accent-text);background:var(--accent-soft)}.hl-concentrated{color:var(--reject);background:var(--reject-bg)}.hl-grid{gap:var(--sp-3);margin:var(--sp-3) 0 var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.hl-stat{background:var(--surface-sunk);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.hl-k{font-size:var(--fs-12);color:var(--ink-faint);margin-bottom:var(--sp-0-5)}.hl-v{font-size:var(--fs-20);color:var(--ink);font-weight:700}.hl-v.warn{color:var(--reject)}.hl-sub{font-size:var(--fs-12);color:var(--ink-faint);margin-top:var(--sp-0-5)}.hl-fxbar{border-radius:var(--r-sm);height:6px;margin:var(--sp-2) 0 var(--sp-1);background:var(--hairline);display:flex;overflow:hidden}.hl-fxtw{background:var(--accent)}.hl-fxus{background:var(--chart-blue)}.hl-warn{align-items:center;gap:var(--sp-2);font-size:var(--fs-12);color:var(--reject);background:var(--reject-bg);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);display:flex}.hl-warn.ok{color:var(--buy);background:var(--buy-bg)}@media (width<=640px){.hl-grid{grid-template-columns:repeat(2,1fr)}}.per-band .panel-head{margin-bottom:var(--sp-3)}.pb-track{border-radius:var(--r-pill);background:linear-gradient(90deg, color-mix(in srgb, var(--buy) 35%, transparent), color-mix(in srgb, var(--accent) 30%, transparent) 50%, color-mix(in srgb, var(--reject) 40%, transparent));height:8px;margin:var(--sp-1) 0 var(--sp-2);position:relative}.pb-dot{background:var(--ink);border:2px solid var(--surface);width:14px;height:14px;box-shadow:0 0 0 2px var(--hairline-strong);border-radius:50%;transition:left .5s cubic-bezier(.34,1.4,.6,1);position:absolute;top:50%;transform:translate(-7px,-50%)}.pb-labels{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-12);color:var(--ink-faint);display:flex}.pb-cur{color:var(--ink-soft);font-size:var(--fs-12);text-align:center}.pb-cur b{color:var(--ink);font-weight:700}@media (prefers-reduced-motion:reduce){.pb-dot{transition:none}}.dec-add{gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.dec-action{flex-shrink:0;height:34px}.dec-note-in{min-width:0;height:34px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface);color:var(--ink);font-size:var(--fs-13);flex:1}.dec-timeline{flex-direction:column;display:flex}.dec-empty{padding:var(--sp-4) var(--sp-1);text-align:center;color:var(--ink-faint);font-size:var(--fs-13)}.dec-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--hairline);font-size:var(--fs-13);display:flex}.dec-row:first-child{border-top:none}.dec-badge{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);text-align:center;flex-shrink:0;min-width:40px;font-weight:600}.dec-buy{color:var(--buy);background:var(--buy-bg)}.dec-sell{color:var(--reject);background:var(--reject-bg)}.dec-watch{color:var(--accent-text);background:var(--accent-soft)}.dec-hold{color:var(--ink-soft);background:var(--surface-sunk)}.dec-snap{color:var(--ink-faint);border:1px dashed var(--hairline-strong);background:0 0;font-weight:400}.dec-meta{color:var(--ink-soft);white-space:nowrap}.dec-note{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dec-snaprow{opacity:.72}.dec-del{color:var(--ink-faint);padding:var(--sp-1);border-radius:var(--r-md);flex-shrink:0;margin-left:auto;display:inline-flex}.dec-del:hover{color:var(--reject);background:var(--surface-sunk)}.ledger-stats{gap:var(--sp-2);margin-bottom:var(--sp-4);grid-template-columns:repeat(6,1fr);display:grid}.ls-stat{background:var(--surface-sunk);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.ls-k{font-size:var(--fs-12);color:var(--ink-faint);margin-bottom:var(--sp-1)}.ls-v{font-size:var(--fs-14);color:var(--ink);font-weight:600}.ls-xirr{background:var(--accent-soft)}.ls-v.gain{color:var(--up)}.ls-v.loss{color:var(--down)}.ledger-add{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.la-seg{border:1px solid var(--hairline-strong);border-radius:var(--r-md);display:inline-flex;overflow:hidden}.la-seg button{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);color:var(--ink-soft)}.la-seg button.on{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.la-in{padding:var(--sp-2) var(--sp-2);font-size:var(--fs-13);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink);width:92px}.la-in[type=date]{width:130px}.ledger-list{flex-direction:column;display:flex}.ll-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-0-5);border-top:1px solid var(--hairline);font-size:var(--fs-13);display:flex}.ll-row:first-child{border-top:none}.ll-act{text-align:center;min-width:44px;font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);flex-shrink:0;font-weight:600}.ll-buy{color:var(--buy);background:color-mix(in srgb, var(--buy) 14%, transparent)}.ll-sell{color:var(--reject);background:color-mix(in srgb, var(--reject) 12%, transparent)}.ll-dividend{color:var(--accent-text);background:var(--accent-soft)}.ll-date{color:var(--ink-soft)}.ll-qp{color:var(--ink);margin-right:auto}.ledger-empty{padding:var(--sp-3) var(--sp-1);text-align:center;color:var(--ink-faint);font-size:var(--fs-13)}@media (width<=640px){.ledger-stats{grid-template-columns:repeat(3,1fr)}}.div-yield{font-size:var(--fs-12);color:var(--ink-soft)}.div-yield b{color:var(--buy);font-weight:700}.div-empty{padding:var(--sp-4) var(--sp-1);text-align:center;color:var(--ink-faint);font-size:var(--fs-13)}.div-list{flex-direction:column;display:flex}.div-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--hairline);font-size:var(--fs-13);display:flex}.div-row:first-child{border-top:none}.div-badge{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);text-align:center;min-width:44px;color:var(--ink-soft);background:var(--surface-sunk);flex-shrink:0;font-weight:600}.div-badge.next{color:var(--accent-text);background:var(--accent-soft)}.div-date{color:var(--ink);font-weight:600}.div-amt{color:var(--ink-soft);margin-left:auto}.div-note{font-size:var(--fs-12);margin-left:auto}.div-next{background:var(--surface-sunk);border-radius:var(--r-md)}.twl{overflow:visible}.twl-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.twl-card{background:var(--surface-sunk);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-3);min-width:0}.twl-k{font-size:var(--fs-12);color:var(--ink-soft);margin-bottom:var(--sp-2)}.twl-big{font-size:var(--fs-20);color:var(--ink);font-weight:700;line-height:1.1}.twl-u{font-size:var(--fs-12);color:var(--ink-faint);font-weight:400}.twl-sub2{font-size:var(--fs-12);margin-top:var(--sp-1);color:var(--ink-soft)}.twl-sub2.gain{color:var(--buy)}.twl-sub2.loss{color:var(--reject)}.twl-rows{gap:var(--sp-1);flex-direction:column;display:flex}.twl-rows span{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-12);color:var(--ink-soft);display:flex}.twl-rows b{font-size:var(--fs-13);color:var(--ink);margin-left:auto}.twl-rows b.gain{color:var(--buy)}.twl-rows b.loss{color:var(--reject)}.twl-rows i{font-style:normal;font-size:var(--fs-12)}.twl-rows i.gain{color:var(--buy)}.twl-rows i.loss{color:var(--reject)}.twl-spark{width:100%;height:22px;margin-top:var(--sp-2);display:block}@media (width<=760px){.twl-grid{grid-template-columns:repeat(2,1fr)}}.ai-card .panel-head{align-items:center}.ai-badge{font-size:var(--fs-12);letter-spacing:.02em;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:var(--r-pill);padding:var(--sp-0-5) var(--sp-2);margin-left:var(--sp-2);font-weight:700}.ai-gen{font-size:var(--fs-13);white-space:nowrap}.ai-note{font-size:var(--fs-14);color:var(--ink-soft);padding:var(--sp-0-5) 0 var(--sp-0-5);line-height:1.6}.ai-err{color:var(--reject)}.ai-body{font-size:var(--fs-14);color:var(--ink);line-height:1.72}.ai-body strong{color:var(--ink);font-weight:700}.ai-p{margin:var(--sp-2) 0 var(--sp-0-5)}.ai-li{gap:var(--sp-2);margin:var(--sp-1) 0;display:flex}.ai-dot{color:var(--accent);flex:none}.ai-gap{height:4px}.ai-disc{margin-top:var(--sp-3);font-size:var(--fs-14);color:var(--ink-faint);font-style:italic}.ai-skel{gap:var(--sp-2);padding:var(--sp-2) 0;flex-direction:column;display:flex}.ai-skel-l{border-radius:var(--r-md);background:linear-gradient(90deg, var(--surface-sunk) 25%, var(--border) 50%, var(--surface-sunk) 75%);background-size:200% 100%;height:11px;animation:1.3s ease-in-out infinite ai-shimmer}.ai-skel-l.short{width:55%}@keyframes ai-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ai-skel-l{animation:none}}.risk-grid{gap:var(--sp-3);grid-template-columns:repeat(5,1fr);display:grid}.risk-cell{background:var(--surface-sunk);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-3);min-width:0}.risk-k{font-size:var(--fs-12);color:var(--ink-soft);margin-bottom:var(--sp-1)}.risk-v{font-size:var(--fs-20);color:var(--ink);font-weight:700;line-height:1.1}.risk-v.gain{color:var(--buy)}.risk-v.loss{color:var(--reject)}.risk-sub{font-size:var(--fs-12);margin-top:var(--sp-1)}.risk-foot{font-size:var(--fs-12);margin-top:var(--sp-2)}.risk-note{font-size:var(--fs-14);color:var(--ink-soft);padding:var(--sp-0-5) 0}@media (width<=760px){.risk-grid{grid-template-columns:repeat(2,1fr)}.anl-sticky{align-items:stretch;gap:var(--sp-2);flex-direction:column;top:56px}.anl-tabs{width:100%}.anl-tabs button{text-align:center;padding:var(--sp-2) var(--sp-2);flex:1}.topbar-search{display:none}.params{grid-template-columns:1fr}.param:nth-child(odd){border-right:none}.irr4{grid-template-columns:1fr}.wrap{padding:var(--sp-4) var(--sp-4) 60px}.hide-sm{display:none}}.howto{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);margin-top:var(--sp-4)}.howto summary{padding:var(--sp-3) var(--sp-4);cursor:pointer;font-weight:500;font-size:var(--fs-14);align-items:center;gap:var(--sp-2);list-style:none;display:flex}.howto summary::-webkit-details-marker{display:none}.howto[open] summary{border-bottom:1px solid var(--hairline)}.howto .body{padding:var(--sp-4) var(--sp-4);color:var(--ink-soft);font-size:var(--fs-14);line-height:1.7}.howto .body ol{padding-left:var(--sp-5)}.tip{vertical-align:middle;align-items:center;display:inline-flex;position:relative}.tip .tip-q{border:1px solid var(--hairline-strong);width:14px;min-width:14px;height:14px;color:var(--ink-faint);font-size:var(--fs-11);cursor:help;margin-left:var(--sp-1);border-radius:50%;flex:0 0 14px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tip{cursor:help;outline:none}.tip:focus-visible .tip-q{border-color:var(--accent-strong);color:var(--accent-text)}.tip-pop{background:var(--ink);max-width:min(260px,100vw - 24px);color:var(--canvas);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-14);z-index:1200;box-shadow:var(--shadow-1);text-align:left;pointer-events:none;animation:p0FadeIn var(--dur-micro) var(--ease-out-std);line-height:1.5;position:fixed}.admin-shell{padding:var(--sp-12) var(--sp-5);background:radial-gradient(120% 120% at 72% 0%, var(--surface-sunk), var(--canvas));flex:1;place-items:center;display:grid;position:relative;overflow:hidden}.admin-backdrop{color:var(--ink);opacity:.06;pointer-events:none;position:absolute;top:-90px;right:-130px}.admin-card{z-index:1;background:var(--canvas);width:100%;max-width:420px;color:var(--ink);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-8);box-shadow:var(--shadow-2);position:relative}.admin-card .brand-name,.admin-card .brand-radar{color:var(--ink)}.admin-card .auth-brand{margin-bottom:var(--sp-2)}.admin-tag{letter-spacing:.22em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:var(--fs-12);color:var(--accent);margin-bottom:var(--sp-5)}.admin-card label{color:var(--ink-soft)}.admin-card input{background:var(--surface);border-color:var(--hairline);color:var(--ink)}.admin-card input::placeholder{color:var(--ink-faint)}.admin-card input:focus{border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--surface-sunk)}.admin-card .form-error{background:var(--reject-bg);color:var(--reject)}.admin-card .auth-foot{color:var(--ink-soft)}.admin-back{color:var(--accent-text);cursor:pointer}.tm-wrap{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-sunk);width:100%;position:relative;overflow:hidden}.tm-cell{box-sizing:border-box;border:1px solid var(--canvas);justify-content:center;align-items:center;transition:filter .1s;display:flex;position:absolute;overflow:hidden}.tm-cell:hover{filter:brightness(1.08);z-index:2;box-shadow:inset 0 0 0 2px var(--shade-strong)}.tm-label{align-items:center;gap:var(--sp-0-5);padding:var(--sp-0-5);box-sizing:border-box;text-align:center;width:100%;min-width:0;max-width:100%;color:var(--on-strong);text-shadow:var(--text-shadow-on-fill);flex-direction:column;line-height:1.12;display:flex}.tm-ticker{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:var(--fs-14);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tm-name{font-size:var(--fs-12);opacity:.92;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tm-pnl{font-family:IBM Plex Mono,monospace;font-size:var(--fs-12);font-weight:600}.tm-cell--sm .tm-ticker,.tm-cell--sm .tm-pnl{font-size:var(--fs-11)}.src-chip{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--hairline);color:var(--ink-soft);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.src-chip.src-ok{color:var(--buy);background:var(--buy-bg);border-color:#0000}.src-chip.src-warn{color:var(--caution);background:var(--caution-bg);border-color:#0000}.src-chip.src-manual{color:var(--manual)}.guard-panel{padding:56px var(--sp-8);text-align:center;max-width:660px;margin:var(--sp-6) auto 0}.guard-icon{font-size:var(--fs-44);margin-bottom:var(--sp-4)}.guard-panel h2{font-size:var(--fs-20);margin:0 0 var(--sp-3)}.guard-panel p{font-size:var(--fs-14);color:var(--ink-soft);margin:0 0 var(--sp-3);line-height:1.7}.guard-actions{gap:var(--sp-3);margin-top:var(--sp-5);justify-content:center;display:flex}.obs-chip{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);background:var(--surface-sunk);border:1px dashed var(--hairline-strong);color:var(--ink-soft);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.ci-body{padding:var(--sp-4) var(--sp-4) var(--sp-4)}.ci-tags{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.ci-tag{font-size:var(--fs-12);color:var(--ink);background:var(--surface-sunk);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-3);font-weight:600}.ci-desc{font-size:var(--fs-14);color:var(--ink-soft);white-space:pre-line;margin:0;line-height:1.62}.ci-desc:not(.open){-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ci-more{margin-top:var(--sp-2);font-size:var(--fs-13);color:var(--accent-text);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.ci-more:hover{text-decoration:underline}.ci-empty{font-size:var(--fs-14);margin:0}.tm-empty{padding:var(--sp-8) var(--sp-6);text-align:center;color:var(--ink-soft);border:1px dashed var(--hairline-strong);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-14)}.pf-summary{gap:var(--sp-6);padding:var(--sp-4) var(--sp-4);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);flex-wrap:wrap;align-items:flex-start;display:flex}.pf-stat{flex-direction:column;display:flex}.pf-stat .k{font-size:var(--fs-12);color:var(--ink-faint);letter-spacing:.04em;white-space:nowrap}.pf-stat .v{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:var(--fs-20);margin-top:var(--sp-1);font-weight:600;line-height:1.2}.pf-stat .v small{font-size:var(--fs-12);margin-left:var(--sp-1);font-weight:500}.pf-stat .v.gain,.pf-stat .v small.gain{color:var(--up)}.pf-stat .v.loss,.pf-stat .v small.loss{color:var(--down)}.pf-fx{font-size:var(--fs-14);color:var(--ink-faint);white-space:nowrap;align-self:center;margin-left:auto}.pf-ccybar{margin:0 0 var(--sp-3);justify-content:flex-end;display:flex}.ccy-toggle button{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3)}.pos-edit{cursor:pointer;border-bottom:1px dashed var(--hairline-strong);padding-bottom:var(--sp-0-5);font-family:IBM Plex Mono,monospace}.pos-edit:hover{border-bottom-color:var(--accent);color:var(--accent-text)}.pos-edit.empty{color:var(--ink-faint)}.pos-input{text-align:right;border:1px solid var(--accent);border-radius:var(--r-sm);width:76px;padding:var(--sp-0-5) var(--sp-1);background:var(--surface);outline:none;font-family:IBM Plex Mono,monospace}.gain{color:var(--buy)}.loss{color:var(--reject)}.section-sub{font-size:var(--fs-13);color:var(--ink-soft);margin:0 0 var(--sp-3)}.show-sm{display:none}@media (width<=760px){.show-sm{display:grid}}.mobile-menu{z-index:39;background:var(--surface);border-bottom:1px solid var(--hairline);box-shadow:var(--shadow-1);padding:var(--sp-3);gap:var(--sp-1);flex-direction:column;display:flex;position:absolute;top:56px;left:0;right:0}.mobile-menu .topbar-search{max-width:none;margin-bottom:var(--sp-2);display:block}.mm-item{text-align:left;padding:var(--sp-3) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-14);color:var(--ink)}.mm-item:hover{background:var(--surface-sunk)}.pf-switch{position:relative}.pf-switch-menu{z-index:50;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);min-width:230px;box-shadow:var(--shadow-1);padding:var(--sp-1);position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.pf-switch-item{align-items:center;gap:var(--sp-2);text-align:left;width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-14);color:var(--ink);justify-content:space-between;display:flex}.pf-switch-item:hover{background:var(--surface-sunk)}.pf-switch-item.on{background:var(--accent-soft);font-weight:600}.pf-switch-item.del{color:var(--danger)}.pf-switch-sep{background:var(--hairline);height:1px;margin:var(--sp-1) 0}.mono,.ptable td.num,.sheet .cell-val,.ck-num,.pf-stat .v{font-variant-numeric:tabular-nums}@keyframes rr-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rr-sweep{transform-origin:50px 50px;animation:1.6s linear infinite rr-rotate}@keyframes recalcFlash{0%{box-shadow:inset 0 0 #0000}35%{box-shadow:inset 0 0 0 2px var(--accent)}to{box-shadow:inset 0 0 #0000}}.recalc-flash{animation:.7s ease-out both recalcFlash}.trust-strip{align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-12);color:var(--ink-soft);background:var(--surface-sunk);border:1px solid var(--hairline);border-radius:var(--r-md);flex-wrap:wrap;display:flex}.trust-strip .spacer{flex:1}.trust-item{align-items:center;gap:var(--sp-1);display:inline-flex}.trust-item b{color:var(--ink);font-weight:600}.trust-conf{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);font-weight:600}.trust-conf.c-live{color:var(--buy);background:color-mix(in srgb, var(--buy) 14%, transparent)}.trust-conf.c-manual{color:var(--signal-ink);background:var(--surface);border:1px solid var(--hairline-strong)}.trust-conf.c-demo{color:var(--reject);background:color-mix(in srgb, var(--reject) 12%, transparent)}.trust-action b{color:var(--ink);font-weight:600}@media (width<=640px){.trust-strip .spacer{display:none}.trust-action{flex-basis:100%}}.concl-banner{gap:var(--sp-6);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-5) var(--sp-6);border-top:3px solid var(--accent);grid-template-columns:minmax(250px,.9fr) minmax(300px,1.3fr) minmax(200px,.8fr);align-items:center;display:grid}.cb-left{align-items:center;gap:var(--sp-4);display:flex}.cb-radar{color:var(--ink);flex:none}.cb-result{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.cb-result .ck-label{margin-bottom:0}.cb-result .ck-num{line-height:1.05}.cb-mid{min-width:0}.cb-mid .ck-sub{margin-top:var(--sp-3)}.cb-right{align-items:flex-end;gap:var(--sp-3);flex-direction:column;justify-self:end;display:flex}@media (width<=1180px){.concl-banner{grid-template-columns:1fr 1fr}.cb-right{flex-direction:row;grid-column:1/-1;justify-content:space-between;justify-self:stretch;align-items:center}}@media (width<=760px){.concl-banner{gap:var(--sp-4);padding:var(--sp-4);grid-template-columns:1fr}.cb-right{flex-direction:column;align-items:stretch}}.sg{width:100%}.sg-head{align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex}.sg-title{font-size:var(--fs-12);letter-spacing:.05em;color:var(--ink-soft);font-weight:700}.sg-zone{font-size:var(--fs-12);font-weight:700}.sg-zone--cheap{color:var(--buy)}.sg-zone--mid{color:var(--caution)}.sg-zone--expensive{color:var(--expensive)}.sg-track{border-radius:var(--r-pill);background:var(--surface-sunk);height:10px;position:relative;overflow:visible}.sg-band{position:absolute;top:0;bottom:0}.sg-band--cheap{background:var(--buy-bg);border-radius:var(--r-pill) 0 0 var(--r-pill);left:0}.sg-band--mid{background:linear-gradient(90deg, var(--caution-bg), var(--expensive-bg))}.sg-band--exp{background:var(--expensive-bg);border-radius:0 var(--r-pill) var(--r-pill) 0}.sg-tick{background:var(--hairline-strong);width:2px;position:absolute;top:-3px;bottom:-3px;transform:translate(-1px)}.sg-dot{background:var(--accent);border:2.5px solid var(--ink);width:16px;height:16px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;transition:left .5s cubic-bezier(.34,1.4,.6,1);position:absolute;top:50%;transform:translate(-8px,-50%)}@keyframes sgPulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 12%, transparent)}}.sg-dot--cheap{animation:1.8s ease-in-out infinite sgPulse}.sg-labels{height:18px;margin-top:var(--sp-2);position:relative}.sg-lab{font-size:var(--fs-12);color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;position:absolute;transform:translate(-50%)}.sg-cap{font-size:var(--fs-12)}.hist{width:100%;max-width:240px}.hist-title{font-size:var(--fs-12);letter-spacing:.05em;color:var(--ink-soft);margin-bottom:var(--sp-2);font-weight:700}.hist-row{gap:var(--sp-2);font-size:var(--fs-13);padding:var(--sp-1) 0;border-bottom:1px dashed var(--hairline);grid-template-columns:44px 1fr 52px 44px;align-items:baseline;display:grid}.hist-row:last-child{border-bottom:none}.hist-date{color:var(--ink-soft);font-size:var(--fs-12)}.hist-irr{text-align:right;font-weight:600}.hist-delta{text-align:right;font-size:var(--fs-11)}.hist-delta.gain{color:var(--buy)}.hist-delta.loss{color:var(--reject)}.hist-total{text-align:right;font-size:var(--fs-12)}@media (width<=1180px){.hist{flex:1;max-width:none}}.kbd-hint{font-family:IBM Plex Mono,monospace;font-size:var(--fs-11);color:var(--ink-soft);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);padding:var(--sp-0-5) var(--sp-2);opacity:.8;border-bottom-width:2px;flex:none;margin-left:auto}.bottombar{display:none}@media (width<=760px){.bottombar{z-index:60;background:var(--surface);border-top:1px solid var(--hairline-strong);padding:var(--sp-2) var(--sp-2) calc(var(--sp-2) + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottombar button{align-items:center;gap:var(--sp-1);font-size:var(--fs-12);color:var(--ink-soft);padding:var(--sp-1) var(--sp-1);border-radius:var(--r-md);flex-direction:column;flex:1 1 0;display:flex}.bottombar button.on{color:var(--ink);font-weight:700}.bottombar button.on svg{color:var(--accent-text)}.page{padding-bottom:132px}}.mobile-savebar{display:none}@media (width<=760px){.mobile-savebar{left:12px;right:12px;bottom:calc(58px + env(safe-area-inset-bottom));z-index:59;display:block;position:fixed}.mobile-savebar .btn{box-shadow:var(--shadow-1)}}.pf-cards{display:none}@media (width<=760px){.pf-cards{gap:var(--sp-3);display:grid}}.pf-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer}.pf-card:active{background:var(--row-hover)}.pfc-top{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.pfc-top .code{font-weight:700}.pfc-top .nm{color:var(--ink-soft);font-size:var(--fs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pfc-mid{margin-bottom:var(--sp-2);justify-content:space-between;align-items:baseline;display:flex}.pfc-price{font-size:var(--fs-20);font-weight:700}.pfc-pnl{font-size:var(--fs-16);font-weight:700}.pfc-pnl.gain{color:var(--up)}.pfc-pnl.loss{color:var(--down)}.pfc-bot{align-items:center;gap:var(--sp-3);font-size:var(--fs-12);justify-content:space-between;display:flex}.snt{margin-left:var(--sp-2);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-12);vertical-align:middle;align-items:center;font-weight:700;display:inline-flex}.snt-in{color:var(--buy);background:var(--buy-bg)}.snt-near{color:var(--caution);background:var(--caution-bg)}.sentinel-banner{border-left:3px solid var(--buy)}.sentinel-banner b{color:var(--buy)}@media (prefers-reduced-motion:reduce){.rr-sweep,.recalc-flash,.sg-dot--cheap{animation:none!important}.sg-dot{transition:none}}.modal-backdrop{z-index:90;background:var(--scrim);padding:var(--sp-6);place-items:center;display:grid;position:fixed;inset:0}.modal-sheet{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);width:100%;max-height:90vh;box-shadow:var(--shadow-1);flex-direction:column;animation:.16s ease-out modalIn;display:flex;overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}.modal-head{padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--fs-16);font-weight:600}.modal-body{padding:var(--sp-4);overflow:auto}.modal-foot{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-top:1px solid var(--hairline);display:flex}.sc-sheet{max-width:600px}.sc-preview{padding:var(--sp-3);background:var(--surface-sunk);border:1px solid var(--hairline);border-radius:var(--r-md);justify-content:center;align-items:center;min-height:180px;max-height:56vh;display:flex;overflow:hidden}.sc-preview canvas{border-radius:var(--r-sm);width:auto;max-width:100%;height:auto;max-height:calc(56vh - 20px);display:block}.sc-hint{font-size:var(--fs-14);color:var(--ink-faint)}.sc-controls{gap:var(--sp-3);margin-top:var(--sp-4);flex-direction:column;display:flex}.sc-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.sc-label{font-size:var(--fs-13);color:var(--ink-soft);flex:none;width:64px}.sc-seg{height:30px}.sc-seg button{font-size:var(--fs-13);padding:0 var(--sp-4)}.sc-toggles{gap:var(--sp-2);flex-wrap:wrap;display:flex}.sc-toggle{align-items:center;gap:var(--sp-2);height:30px;padding:0 var(--sp-3) 0 var(--sp-2);border:1px solid var(--hairline-strong);border-radius:var(--r-pill);font-size:var(--fs-13);color:var(--ink-soft);display:inline-flex}.sc-toggle.on{color:var(--ink);border-color:var(--accent-strong);background:var(--accent-soft)}.sc-tick{border-radius:var(--r-sm);background:var(--surface-sunk);width:16px;height:16px;color:var(--ink-faint);place-items:center;display:grid}.sc-toggle.on .sc-tick{background:var(--accent);color:var(--on-accent)}.sc-status{font-size:var(--fs-13);color:var(--buy);min-height:18px;margin-right:auto}@media (width<=760px){.modal-backdrop{place-items:end stretch;padding:0}.modal-sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;max-width:none;max-height:94vh;padding-bottom:env(safe-area-inset-bottom)}}@media (prefers-reduced-motion:reduce){.modal-sheet{animation:none}}.pfc-share{color:var(--ink-soft);padding:var(--sp-0-5) var(--sp-1);place-items:center;margin-left:auto;display:inline-grid}.pfc-share:active{color:var(--ink)}.comp-card{margin-top:var(--sp-4)}.comp-sub{font-size:var(--fs-14);margin-left:var(--sp-2)}.comp-list{gap:var(--sp-3);padding:var(--sp-4);flex-wrap:wrap;display:flex}.comp-chip{gap:var(--sp-0-5);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface);padding:var(--sp-2) var(--sp-3);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;min-width:130px;transition:border-color .12s,transform .12s;display:flex}.comp-chip:hover{border-color:var(--accent-strong);transform:translateY(-1px)}.comp-tk{font-weight:700;font-size:var(--fs-14);color:var(--ink)}.comp-nm{font-size:var(--fs-12);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.comp-meta{gap:var(--sp-2);font-size:var(--fs-12);color:var(--ink);margin-top:var(--sp-0-5);align-items:baseline;display:flex}.comp-meta .faint{font-size:var(--fs-12)}.cmdk-backdrop{z-index:1000;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12vh var(--sp-4) var(--sp-4);justify-content:center;align-items:flex-start;animation:.12s cmdkFade;display:flex;position:fixed;inset:0}@keyframes cmdkFade{0%{opacity:0}to{opacity:1}}.cmdk{background:var(--surface);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--shadow-2);flex-direction:column;max-height:64vh;animation:.14s cubic-bezier(.22,1,.36,1) cmdkPop;display:flex;overflow:hidden}@keyframes cmdkPop{0%{opacity:.6;transform:translateY(-8px)scale(.985)}to{opacity:1;transform:none}}.cmdk-search{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--hairline);color:var(--ink-soft);display:flex}.cmdk-search input{font:inherit;font-size:var(--fs-16);color:var(--ink);background:0 0;border:none;outline:none;flex:1}.cmdk-esc{font-size:var(--fs-11);color:var(--ink-faint);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);padding:var(--sp-0-5) var(--sp-2)}.cmdk-list{padding:var(--sp-2);overflow-y:auto}.cmdk-empty{padding:var(--sp-5);text-align:center;color:var(--ink-soft);font-size:var(--fs-13)}.cmdk-item{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--ink);font:inherit;font-size:var(--fs-14);background:0 0;border:none;display:flex}.cmdk-item.on{background:var(--hairline)}.cmdk-item .cmdk-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cmdk-item .cmdk-hint{font-size:var(--fs-12);color:var(--ink-soft);flex:none}.cmdk-item>svg{color:var(--ink-soft);flex:none}.cmdk-item.on>svg{color:var(--accent-text)}.dlg-backdrop{z-index:1000;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--sp-4);justify-content:center;align-items:center;animation:.12s cmdkFade;display:flex;position:fixed;inset:0}.dlg{background:var(--surface);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);width:100%;max-width:420px;box-shadow:var(--shadow-2);padding:var(--sp-4) var(--sp-5) var(--sp-4);animation:.14s cubic-bezier(.22,1,.36,1) cmdkPop}.dlg-head{justify-content:space-between;align-items:center;display:flex}.dlg-title{font-weight:700;font-size:var(--fs-16);color:var(--ink)}.dlg-x{color:var(--ink-soft);cursor:pointer;padding:var(--sp-1);border-radius:var(--r-md);background:0 0;border:none;display:inline-flex}.dlg-x:hover{background:var(--hairline);color:var(--ink)}.dlg-desc{margin:var(--sp-2) 0 0;font-size:var(--fs-14);color:var(--ink-soft)}.dlg-body{margin-top:var(--sp-4)}.dlg-label{font-size:var(--fs-12);color:var(--ink-soft);margin-bottom:var(--sp-2);display:block}.dlg-input{width:100%;padding:var(--sp-3) var(--sp-3);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-14)}.dlg-input:focus{border-color:var(--accent-strong);box-shadow:var(--ring-focus);outline:none}.dlg-err{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-14);color:var(--reject);display:flex}.dlg-actions{justify-content:flex-end;gap:var(--sp-3);margin-top:var(--sp-4);display:flex}.btn-on{border-color:var(--buy);color:var(--buy)}.cmp-fab{z-index:900;align-items:center;gap:var(--sp-2);background:var(--accent-strong);color:var(--on-accent);border-radius:var(--r-pill);padding:var(--sp-3) var(--sp-4);font-weight:700;font-size:var(--fs-14);cursor:pointer;box-shadow:var(--shadow-1);border:none;display:inline-flex;position:fixed;bottom:18px;right:18px}.cmp-fab:hover{filter:brightness(1.05)}.cmp-backdrop{z-index:1000;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--sp-4);justify-content:center;align-items:center;animation:.12s cmdkFade;display:flex;position:fixed;inset:0}.cmp-modal{background:var(--surface);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);width:100%;max-width:720px;max-height:80vh;box-shadow:var(--shadow-2);flex-direction:column;animation:.14s cubic-bezier(.22,1,.36,1) cmdkPop;display:flex;overflow:hidden}.cmp-head{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--hairline);display:flex}.cmp-title{font-weight:700;font-size:var(--fs-16)}.cmp-head .spacer{flex:1}.cmp-scroll{overflow:auto}.cmp-table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}.cmp-table th,.cmp-table td{padding:var(--sp-2) var(--sp-3);text-align:right;border-bottom:1px solid var(--hairline);white-space:nowrap}.cmp-table thead th{background:var(--surface);vertical-align:top;position:sticky;top:0}.cmp-table th:first-child,.cmp-table td:first-child{text-align:left}.cmp-lbl{color:var(--ink-soft);font-size:var(--fs-12)}.cmp-tk{cursor:pointer;font-weight:700;font-size:var(--fs-14);color:var(--ink);background:0 0;border:none;padding:0;font-family:IBM Plex Mono,monospace}.cmp-tk:hover{color:var(--accent-text)}.cmp-rm{cursor:pointer;color:var(--ink-faint);padding:0 0 0 var(--sp-1);background:0 0;border:none}.cmp-rm:hover{color:var(--reject)}.cmp-nm{font-size:var(--fs-12);color:var(--ink-soft);text-overflow:ellipsis;max-width:110px;font-weight:400;overflow:hidden}.print-sheet{display:none}@media print{#root{display:none!important}.print-sheet{color:var(--print-ink);background:var(--print-paper);font-family:IBM Plex Sans TC,sans-serif;font-size:var(--fs-13);line-height:1.75;display:block!important}@page{margin:20mm 18mm}.ps-head{border-bottom:2px solid var(--print-ink);padding-bottom:var(--sp-3);margin-bottom:var(--sp-6);justify-content:space-between;align-items:baseline;display:flex}.ps-brand{letter-spacing:2px;font-weight:800;font-size:var(--fs-16)}.ps-brand span{color:var(--print-brand)}.ps-date{font-size:var(--fs-11);color:var(--print-muted)}.ps-title{font-size:var(--fs-16);margin-bottom:var(--sp-4);font-weight:700}.ps-concl{font-size:var(--fs-14);margin-bottom:var(--sp-8);padding:var(--sp-4) var(--sp-4);background:var(--print-band);border-radius:var(--r-md);line-height:1.8}.ps-sec{margin-bottom:var(--sp-8)}.ps-sec h4{font-size:var(--fs-13);letter-spacing:.5px;margin:0 0 var(--sp-4);color:var(--print-muted);border-bottom:1px solid var(--print-rule);padding-bottom:var(--sp-2)}.ps-grid{gap:var(--sp-4) var(--sp-8);font-size:var(--fs-14);flex-wrap:wrap;line-height:1.9;display:flex}.ps-table{border-collapse:collapse;width:100%;font-size:var(--fs-12)}.ps-table th,.ps-table td{border:1px solid var(--print-rule);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);text-align:right}.ps-table th:first-child,.ps-table td:first-child{text-align:left}.ps-foot{margin-top:var(--sp-8);font-size:var(--fs-12);color:var(--print-faint);border-top:1px solid var(--print-rule);padding-top:var(--sp-3);line-height:1.7}}.sr-body{gap:var(--sp-5);padding:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.sr-svg{flex:none}.sr-legend{gap:var(--sp-2);flex-direction:column;flex:200px;min-width:180px;display:flex}.sr-leg{align-items:center;gap:var(--sp-2);font-size:var(--fs-13);display:flex}.sr-dot{border-radius:var(--r-sm);flex:none;width:10px;height:10px}.sr-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sr-pct{color:var(--ink-soft);margin-left:auto;font-weight:600}.conc-flag{align-items:center;gap:var(--sp-1);font-size:var(--fs-12);color:var(--reject);background:var(--reject-bg);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);font-weight:600;display:inline-flex}.conc-flag .dot{background:var(--reject);border-radius:50%;width:6px;height:6px}.sr-warn{padding:0 var(--sp-4) var(--sp-3);font-size:var(--fs-14);color:var(--reject)}.book-spark{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg)}.bs-head{align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex}.bs-head .spacer{flex:1}.bs-title{font-weight:600;font-size:var(--fs-14);color:var(--ink)}.bs-meta{font-size:var(--fs-12)}.bs-val{font-size:var(--fs-16);font-weight:700}.bs-val small{font-size:var(--fs-11);font-weight:500}.bs-val.gain{color:var(--up)}.bs-val.loss{color:var(--down)}.bs-plot{position:relative}.bs-svg{cursor:crosshair;width:100%;height:56px;display:block}.bs-cursor{background:var(--ink-faint);opacity:.6;pointer-events:none;width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}.bs-dot{background:var(--accent-strong);border:1.5px solid var(--surface);pointer-events:none;border-radius:50%;width:7px;height:7px;position:absolute;transform:translate(-50%,-50%)}.bs-tip{align-items:baseline;gap:var(--sp-2);padding:var(--sp-0-5) var(--sp-2);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-knob);white-space:nowrap;pointer-events:none;z-index:2;display:inline-flex;position:absolute;top:2px}.bs-tip.a-c{transform:translate(-50%)}.bs-tip.a-l{transform:translate(0)}.bs-tip.a-r{transform:translate(-100%)}.bs-tip-date{font-size:var(--fs-11);color:var(--ink-soft)}.bs-tip-irr{font-size:var(--fs-13);color:var(--ink);font-weight:700}.bs-axis{height:13px;margin-top:var(--sp-1);position:relative}.bs-ax-tk{font-size:var(--fs-11);color:var(--ink-faint);white-space:nowrap;font-variant-numeric:tabular-nums;position:absolute;top:0;transform:translate(-50%)}.bs-ax-tk.first{transform:translate(0)}.bs-ax-tk.last{transform:translate(-100%)}.bs-line{fill:none;stroke:var(--accent-strong);stroke-width:2px;vector-effect:non-scaling-stroke}.bs-ref{stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.bs-ref.sweet{stroke:var(--buy);opacity:.55}.bs-ref.floor{stroke:var(--ink-faint);opacity:.5}.bs-bench{align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-12);color:var(--ink-soft);display:flex}.bs-bench .spacer{flex:1}.bs-leg{align-items:center;gap:var(--sp-1);display:inline-flex}.bs-swatch{border-top:2px dashed var(--ink-faint);width:12px;height:0;display:inline-block}.bs-swatch.sweet{border-top-color:var(--buy)}.bs-swatch.floor{border-top-color:var(--ink-faint)}.bs-status{padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);background:var(--surface-sunk);font-weight:600}.bs-status.above{color:var(--buy)}.bs-status.between{color:var(--accent-text)}.bs-status.below{color:var(--reject)}.perf-vs{justify-content:center;align-items:center;gap:var(--sp-4);padding:var(--sp-4) 0 var(--sp-4);display:flex}.pv-side{text-align:center;min-width:96px}.pv-k{font-size:var(--fs-12);color:var(--ink-soft);margin-bottom:var(--sp-1)}.pv-xirr{font-size:var(--fs-24);font-weight:700}.pv-xirr.gain{color:var(--up)}.pv-xirr.loss{color:var(--down)}.pv-verdict{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-weight:700}.pv-verdict.beat{color:var(--buy);background:color-mix(in srgb, var(--buy) 14%, transparent)}.pv-verdict.lag{color:var(--ink-soft);background:var(--surface-sunk)}.perf-totals{gap:var(--sp-2);border-top:1px solid var(--hairline);padding-top:var(--sp-3);grid-template-columns:repeat(5,1fr);display:grid}.perf-totals>div{gap:var(--sp-1);flex-direction:column;display:flex}.perf-totals span{font-size:var(--fs-12);color:var(--ink-faint)}.perf-totals b{font-size:var(--fs-14);color:var(--ink);font-weight:600}.perf-totals b.gain{color:var(--up)}.perf-totals b.loss{color:var(--down)}.perf-fxnote{font-size:var(--fs-14);margin-top:var(--sp-3);line-height:1.5}@media (width<=640px){.perf-totals{grid-template-columns:repeat(3,1fr)}}@keyframes rowFadeIn{0%{opacity:0}to{opacity:1}}@keyframes rowUpIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.ptable tbody tr{animation:.3s both rowFadeIn}.ptable tbody tr:nth-child(2){animation-delay:30ms}.ptable tbody tr:nth-child(3){animation-delay:60ms}.ptable tbody tr:nth-child(4){animation-delay:90ms}.ptable tbody tr:nth-child(5){animation-delay:.12s}.ptable tbody tr:nth-child(6){animation-delay:.15s}.ptable tbody tr:nth-child(n+7){animation-delay:.18s}.search-pop .search-row{animation:.22s both rowUpIn}.search-pop .search-row:nth-child(2){animation-delay:30ms}.search-pop .search-row:nth-child(3){animation-delay:60ms}.search-pop .search-row:nth-child(4){animation-delay:90ms}.search-pop .search-row:nth-child(n+5){animation-delay:.12s}@media (prefers-reduced-motion:reduce){.ptable tbody tr,.search-pop .search-row{animation:none}.anl-tabs button{transition:none}}.cockpit{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg)}.cock-head{margin-bottom:var(--sp-2);font-size:var(--fs-13);justify-content:space-between;align-items:baseline;display:flex}.cock-title{font-weight:600;font-size:var(--fs-14);color:var(--ink)}.cock-bar{gap:var(--sp-1);height:26px;display:flex}.cock-seg{border-radius:var(--r-sm);cursor:pointer;min-width:24px;color:var(--on-signal);font-size:var(--fs-12);opacity:.92;border:none;justify-content:center;align-items:center;padding:0;font-weight:700;transition:opacity .12s;display:flex}.cock-seg:hover{opacity:1}.cock-seg.on{outline:2px solid var(--ink);outline-offset:1px;opacity:1}.cock-seg-n{text-shadow:var(--text-shadow-on-fill)}.cock-seg.sig-buy{color:var(--on-signal)}.cock-seg.sig-buy .cock-seg-n{text-shadow:none}.cock-legend{gap:var(--sp-4);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.cock-leg{cursor:pointer;font-size:var(--fs-12);color:var(--ink-soft);align-items:center;gap:var(--sp-2);background:0 0;border:none;padding:0;display:inline-flex}.cock-leg.on{color:var(--ink);font-weight:600}.cock-leg b{color:var(--ink);margin-left:var(--sp-0-5)}.cock-dot{border-radius:var(--r-sm);flex:none;width:9px;height:9px;display:inline-block}.cock-seg.sig-buy,.cock-dot.sig-buy{background:var(--buy)}.cock-seg.sig-caution,.cock-dot.sig-caution{background:var(--caution)}.cock-seg.sig-watch,.cock-dot.sig-watch{background:var(--watch)}.cock-seg.sig-expensive,.cock-dot.sig-expensive{background:var(--expensive)}.cock-seg.sig-reject,.cock-dot.sig-reject{background:var(--reject)}.il-bars{position:relative}.il-col{cursor:pointer;position:relative}.il-tip{background:var(--ink);color:var(--surface);font-size:var(--fs-14);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md);white-space:nowrap;pointer-events:none;z-index:6;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-1);line-height:1.5;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-4px)}.il-tip b{color:var(--accent)}.il-tip-cum{color:var(--ink-faint);font-size:var(--fs-12)}.scn-explain{font-size:var(--fs-14);color:var(--ink-faint);margin:var(--sp-0-5) 0 var(--sp-3);line-height:1.55}.il-meta{font-size:var(--fs-12);color:var(--ink-soft)}.il-body{gap:var(--sp-4);padding:var(--sp-4);flex-wrap:wrap;align-items:stretch;display:flex}.il-bars{align-items:flex-end;gap:var(--sp-2);height:164px;padding-top:var(--sp-10);flex:280px;display:flex}.il-col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.il-bar-wrap{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.il-bar{border-radius:var(--r-sm) var(--r-sm) 0 0;background:linear-gradient(180deg, var(--accent-strong), var(--accent));transform-origin:bottom;width:70%;min-height:3px;animation:.36s cubic-bezier(.22,1,.36,1) both ilGrow}.il-x{margin-top:var(--sp-1);font-size:var(--fs-11);color:var(--ink-soft)}@keyframes ilGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.il-bar{animation:none}}.il-stats{gap:var(--sp-2);flex-direction:column;flex:200px;justify-content:center;display:flex}.il-stat{justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-13);display:flex}.il-stat .k{color:var(--ink-soft)}.il-stat .v{font-weight:600}.il-foot{padding:0 var(--sp-4) var(--sp-3);font-size:var(--fs-14);color:var(--ink-soft)}.thesis-panel{gap:var(--sp-4);display:grid}.thesis-panel .panel-head{align-items:center}.pillar-status{cursor:pointer;font:inherit;white-space:nowrap;border:none}.pillar-status.strong{background:color-mix(in srgb, var(--buy) 14%, transparent);color:var(--buy)}.pillar-status.weak{background:color-mix(in srgb, var(--reject) 14%, transparent);color:var(--danger)}.pillar-status.hold{background:color-mix(in srgb, var(--ink-faint) 14%, transparent);color:var(--ink-soft)}.thesis-panel input:not([type=checkbox]),.thesis-panel select,.thesis-panel textarea{width:100%;height:38px;padding:0 var(--sp-3);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--canvas);color:inherit;font:inherit;outline:none}.thesis-panel textarea{height:auto;min-height:60px;padding:var(--sp-3) var(--sp-3);resize:vertical;line-height:1.6}.thesis-panel input:not([type=checkbox]):focus,.thesis-panel select:focus,.thesis-panel textarea:focus{border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--surface)}input[type=checkbox]{appearance:none;border:1.5px solid var(--hairline-strong);border-radius:var(--r-sm);background:var(--canvas);cursor:pointer;vertical-align:middle;flex-shrink:0;width:17px;height:17px;position:relative}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";border:solid var(--on-accent);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:1.5px;left:5px;transform:rotate(45deg)}.sel{display:inline-block;position:relative}.sel-btn{align-items:center;gap:var(--sp-2);width:100%;height:38px;padding:0 var(--sp-3) 0 var(--sp-3);border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--canvas);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:flex}.sel.open .sel-btn,.sel-btn:focus-visible{border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--surface);outline:none}.sel-val{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sel-chev{color:var(--ink-faint);flex-shrink:0;transition:transform .16s}.sel-chev.open{transform:rotate(180deg)}.sel-menu{z-index:200;padding:var(--sp-1);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-1);max-width:92vw;max-height:264px;overflow-y:auto}.sel-opt{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md);color:inherit;font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;display:flex}.sel-opt:hover{background:var(--surface-sunk)}.sel-opt.on{color:var(--accent-strong);font-weight:600}.sel-check{width:14px;color:var(--accent);flex-shrink:0;display:inline-flex}.dtf{display:inline-block}.dtf-btn{width:100%}.dtf-ph{color:var(--ink-faint)}.dtf-pop{z-index:200;width:248px;padding:var(--sp-3);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.dtf-head{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.dtf-title{font-size:var(--fs-14);font-weight:600}.dtf-nav{border-radius:var(--r-md);width:28px;height:28px;color:var(--ink-soft);justify-content:center;align-items:center;display:inline-flex}.dtf-nav:hover{background:var(--surface-sunk)}.dtf-grid{gap:var(--sp-0-5);grid-template-columns:repeat(7,1fr);display:grid}.dtf-wd{text-align:center;font-size:var(--fs-12);color:var(--ink-faint);padding:var(--sp-0-5) 0 var(--sp-1)}.dtf-day{aspect-ratio:1;border-radius:var(--r-md);font-size:var(--fs-13);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.dtf-day:hover{background:var(--surface-sunk)}.dtf-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.dtf-day.sel{background:var(--accent);color:var(--on-accent);font-weight:600}.dtf-foot{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--hairline);justify-content:space-between;display:flex}.dtf-foot-btn{font-size:var(--fs-13);color:var(--accent-strong);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md)}.dtf-foot-btn:hover{background:var(--surface-sunk)}.thesis-input{resize:vertical;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface);width:100%;min-height:64px;color:var(--ink);padding:var(--sp-3) var(--sp-3);font:inherit;font-size:var(--fs-14);line-height:1.6}.thesis-input:focus{border-color:var(--accent-strong);outline:none}.thesis-foot{margin-top:var(--sp-2);font-size:var(--fs-12);color:var(--ink-soft)}.thesis-drift{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);background:var(--chip-bg);color:var(--ink-soft);white-space:nowrap}.thesis-drift.dn{color:var(--reject);background:var(--reject-bg)}.thesis-drift.up{color:var(--buy);background:var(--buy-bg)}.prov{align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.prov-seg{align-items:center;gap:var(--sp-1);display:inline-flex}.prov-sep{color:var(--hairline-strong);font-size:var(--fs-13)}.prov-chip{font-size:var(--fs-13);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--hairline);color:var(--ink-soft)}.prov-chip.sig-buy{color:var(--buy);background:var(--buy-bg);border-color:#0000}.prov-chip.sig-caution{color:var(--caution);background:var(--caution-bg);border-color:#0000}.prov-chip.sig-watch{color:var(--watch);background:var(--watch-bg);border-color:#0000}.prov-chip.sig-reject{color:var(--reject);background:var(--reject-bg);border-color:#0000}.prov-chip.sig-expensive{color:var(--expensive);background:var(--expensive-bg);border-color:#0000}.dtools-row{gap:var(--sp-3);grid-template-columns:1.4fr 1fr;display:grid}@media (width<=760px){.dtools-row{grid-template-columns:1fr}}.whatif,.solver{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.dt-title{font-size:var(--fs-12);letter-spacing:.04em;color:var(--ink-soft);font-weight:700}.whatif-head{margin-bottom:var(--sp-2);justify-content:space-between;align-items:baseline;display:flex}.whatif-slider{width:100%;margin:var(--sp-2) 0 var(--sp-1);accent-color:var(--accent-text)}.whatif-foot{font-size:var(--fs-14);justify-content:space-between;align-items:center;display:flex}.link-btn{font-size:var(--fs-12);color:var(--accent-text);text-underline-offset:2px;font-weight:600;text-decoration:underline}.link-btn:hover{text-decoration:underline}.spark{width:100%;height:54px;display:block}.spark-line{fill:none;stroke:var(--accent-strong);stroke-width:2px;vector-effect:non-scaling-stroke}.spark-12{stroke:var(--ink-faint);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.spark-cur{stroke:var(--accent-strong);stroke-width:1.5px;vector-effect:non-scaling-stroke}.spark-base{stroke:var(--ink-faint);stroke-width:1px;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.whatif-base{color:var(--ink-faint);margin-left:var(--sp-2)}.solver{gap:var(--sp-1);flex-direction:column;justify-content:center;display:flex}.solver-val{font-size:var(--fs-24);align-items:baseline;font-weight:700;display:flex}.solver-req{font-size:var(--fs-12);color:var(--ink-soft)}.solver-req.raised{color:var(--caution);font-weight:600}.solver-conf{font-weight:400}@keyframes cbCelebrate{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}to{box-shadow:0 0 0 16px #0000}}@keyframes pillSpring{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}.concl-banner.celebrate{animation:.9s ease-out cbCelebrate}.concl-banner.celebrate .sig-lg{animation:.5s ease-out pillSpring}@media (prefers-reduced-motion:reduce){.concl-banner.celebrate,.concl-banner.celebrate .sig-lg{animation:none}}.scr-sort-chips{gap:var(--sp-2);display:inline-flex}.scr-sort-chips .chip{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer}.scr-sort-chips .chip.on{background:var(--signal);border-color:var(--signal);color:var(--on-accent);font-weight:600}.scr-saved{align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-1);flex-wrap:wrap;display:flex}.scr-saved-lbl{font-size:var(--fs-12)}.scr-chip{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-sunk);align-items:center;display:inline-flex;overflow:hidden}.scr-chip-load{color:var(--ink);font-size:var(--fs-12);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3);cursor:pointer;background:0 0;border:none}.scr-chip-x{color:var(--ink-soft);font-size:var(--fs-12);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-1);cursor:pointer;background:0 0;border:none}.scr-chip-x:hover{color:var(--reject)}.scr-save-in{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--ink);width:160px}.scr-save-btn{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer}.scr-save-btn:disabled{opacity:.45;cursor:default}.scr-batch{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;border-radius:var(--r-md);background:var(--surface-sunk);border:1px solid var(--border);font-size:var(--fs-13);display:flex}.scr-batch-add{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-4);border-radius:var(--r-md);background:var(--signal);color:var(--on-accent);cursor:pointer;border:none;font-weight:600}.scr-batch-clear{font-size:var(--fs-12);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);color:var(--ink-soft);cursor:pointer;background:0 0}.scr-batch-msg{font-size:var(--fs-13);margin:var(--sp-1) 0 var(--sp-2)}.scr-row-ck{margin-right:var(--sp-2);cursor:pointer;vertical-align:middle}.scenario-card{padding:var(--sp-4) var(--sp-4)}.scn-head{align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.scn-title{font-weight:600;font-size:var(--fs-14)}.scn-sub{font-size:var(--fs-12)}.scn-rows{gap:var(--sp-2);display:flex}.scn-row{align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-2);border-radius:var(--r-md);background:var(--surface-sunk);border:1px solid #0000;flex-direction:column;flex:1;display:flex}.scn-row.scn-base{border-color:var(--signal)}.scn-lbl{font-size:var(--fs-12);color:var(--ink-soft)}.scn-val{font-size:var(--fs-20);font-weight:700}.scn-note{font-size:var(--fs-14);margin-top:var(--sp-2);line-height:1.5}.valuation-card{padding:var(--sp-4) var(--sp-4)}.val-head{align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.val-title{font-weight:600;font-size:var(--fs-14)}.val-sub{font-size:var(--fs-12)}.val-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--border);font-size:var(--fs-13);grid-template-columns:1fr auto 56px;display:grid}.val-row:first-of-type{border-top:none}.val-lbl{color:var(--ink-soft)}.val-fair{text-align:right;font-weight:600}.val-diff{text-align:right;font-size:var(--fs-12)}.val-diff.gain{color:var(--up)}.val-diff.loss{color:var(--down)}.val-note{font-size:var(--fs-14);margin-top:var(--sp-2);line-height:1.5}.ca-section{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--border)}.ca-title{font-size:var(--fs-13);margin-bottom:var(--sp-2);font-weight:600}.ca-add{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.ca-hint{font-size:var(--fs-14);margin:var(--sp-2) 0;line-height:1.5}.ca-section .sr-warn{margin-top:var(--sp-2);padding:0}.ll-act.ll-split{background:var(--accent);color:var(--on-accent)}.thesis-check{padding:var(--sp-4) var(--sp-4)}.tc-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.tc-title{font-weight:600;font-size:var(--fs-14)}.tc-verdict{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-3);border-radius:var(--r-pill);font-weight:700}.tcv-intact{background:color-mix(in srgb, var(--buy) 18%, transparent);color:var(--buy)}.tcv-watch{background:color-mix(in srgb, var(--signal) 22%, transparent);color:var(--ink)}.tcv-challenged{background:color-mix(in srgb, var(--reject) 18%, transparent);color:var(--reject)}.tc-lines{gap:var(--sp-2);flex-direction:column;display:flex}.tc-line{align-items:center;gap:var(--sp-2);font-size:var(--fs-13);grid-template-columns:12px 1fr auto;display:grid}.tc-dot{background:var(--ink-soft);border-radius:50%;width:8px;height:8px}.tcs-ok .tc-dot{background:var(--buy)}.tcs-warn .tc-dot{background:var(--signal)}.tcs-breach .tc-dot{background:var(--reject)}.tcs-breach .tc-lbl{color:var(--reject)}.tc-val{font-size:var(--fs-12);color:var(--ink-soft)}.tc-note{font-size:var(--fs-14);margin-top:var(--sp-2);line-height:1.5}.tw-news{padding:var(--sp-4) var(--sp-4)}.twn-head{align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.twn-title{font-weight:600;font-size:var(--fs-14)}.twn-sub{font-size:var(--fs-12)}.twn-list{flex-direction:column;display:flex}.twn-row{align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--border);font-size:var(--fs-13);color:var(--ink);text-decoration:none;display:flex}.twn-row:first-child{border-top:none}a.twn-link:hover .twn-text{color:var(--accent);text-decoration:underline}.twn-date{font-size:var(--fs-12);color:var(--ink-soft);flex:none;width:36px}.twn-text{flex:1;line-height:1.4}.twn-src{font-size:var(--fs-12);flex:none}.pf-page{gap:var(--sp-4);flex-direction:column;display:flex}.pf-page>.sec-h{margin-bottom:0}html[data-density=compact] .anl-tab,html[data-density=compact] .pf-page{gap:var(--sp-3)}.twl>:not(.panel-head),.ai-card>:not(.panel-head),.risk-card>:not(.panel-head),.ledger>:not(.panel-head),.div-cal>:not(.panel-head),.decision-journal>:not(.panel-head),.per-band>:not(.panel-head),.next-actions>:not(.panel-head),.perf-card>:not(.panel-head),.pf-health>:not(.panel-head){padding-left:var(--sp-4);padding-right:var(--sp-4)}.twl>.panel-head+*,.ai-card>.panel-head+*,.risk-card>.panel-head+*,.ledger>.panel-head+*,.div-cal>.panel-head+*,.decision-journal>.panel-head+*,.next-actions>.panel-head+*,.perf-card>.panel-head+*,.pf-health>.panel-head+*{padding-top:var(--sp-4)}.twl>:last-child,.ai-card>:last-child,.risk-card>:last-child,.ledger>:last-child,.div-cal>:last-child,.decision-journal>:last-child,.per-band>:last-child,.next-actions>:last-child,.perf-card>:last-child,.pf-health>:last-child{padding-bottom:var(--sp-4)}.per-band>.pb-track{margin-left:var(--sp-4);margin-right:var(--sp-4);padding-left:0;padding-right:0}.pf-toolbar{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.pf-toolbar .csv-tools{margin-bottom:0}.pricing-grid{gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.pricing-grid{grid-template-columns:1fr}}.pricing-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);background:var(--surface);flex-direction:column;display:flex}.pricing-card.pro{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.pricing-card.is-current{background:var(--surface-2)}.pricing-name{font-weight:700;font-size:var(--fs-16);margin-bottom:var(--sp-2);align-items:center;gap:var(--sp-2);display:flex}.pricing-cur{font-size:var(--fs-12);color:var(--accent);border:1px solid var(--accent);border-radius:var(--r-pill);padding:var(--sp-0-5) var(--sp-2);font-weight:600}.pricing-list{gap:var(--sp-2);font-size:var(--fs-13);color:var(--ink-soft);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.pricing-list li:before{content:"✓ ";color:var(--accent);font-weight:700}.up-dlg .up-perks{margin:var(--sp-1) 0 var(--sp-2);padding:0 var(--sp-4);gap:var(--sp-2);font-size:var(--fs-14);color:var(--ink);flex-direction:column;list-style:none;display:flex}.up-dlg .up-perks li{align-items:center;gap:var(--sp-2);display:flex}.up-dlg .up-perks li svg{color:var(--accent);flex:none}.ai-quota{font-size:var(--fs-12);color:var(--ink-soft);align-items:center;gap:var(--sp-2);display:inline-flex}.ai-quota .bar{border-radius:var(--r-pill);background:var(--line);width:56px;height:5px;overflow:hidden}.ai-quota .bar>i{background:var(--accent);border-radius:var(--r-pill);height:100%;display:block}.ai-quota.is-full{color:var(--danger)}.ai-quota.is-full .bar>i{background:var(--danger)}:root{--ease-spring:cubic-bezier(.34, 1.4, .6, 1);--ease-out-std:cubic-bezier(.2, .8, .2, 1);--dur-micro:.15s;--dur-snap:.5s;--dur-reveal:.8s}@keyframes p0FadeIn{0%{opacity:0}to{opacity:1}}@keyframes p0PopIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.dlg-backdrop{animation:p0FadeIn var(--dur-micro) var(--ease-out-std)}.dlg{animation:p0PopIn .25s var(--ease-spring)}.mobile-menu{animation:p0PopIn .2s var(--ease-out-std)}.anl-tab:not([hidden]){animation:p0TabIn .18s var(--ease-out-std)}@keyframes p0TabIn{0%{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}.score-flash{animation:p0ScoreFlash .7s var(--ease-out-std);border-radius:var(--r-md)}@keyframes p0ScoreFlash{0%{background:color-mix(in srgb, var(--accent) 45%, transparent)}to{background:0 0}}.dirty-dot{background:var(--accent-strong);width:7px;height:7px;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;margin-inline-start:var(--sp-2);display:inline-block}.trust-fresh{white-space:nowrap}.trust-stale{color:var(--warn);font-weight:600}.thesis-draft{color:var(--ink-soft)}.site-foot{max-width:1200px;margin:var(--sp-6) auto 90px;padding:0 var(--sp-5);font-size:var(--fs-14);color:var(--ink-soft);opacity:.75;text-align:center;line-height:1.6}.demo-banner{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--accent-soft);color:var(--accent-text);border-bottom:1px solid var(--accent);font-size:var(--fs-14);text-align:center;line-height:1.4;display:flex}.demo-banner svg{flex:none}.auth-disc{margin:var(--sp-4) 0 0;font-size:var(--fs-14);color:var(--ink-soft);opacity:.8;text-align:center;line-height:1.6}.scr-live-count{font-size:var(--fs-13);color:var(--ink-soft);white-space:nowrap}.wl-skel{pointer-events:none}.wl-skel .sk{height:13px;display:inline-block}.up-more{margin:0 var(--sp-4) var(--sp-1);color:var(--accent-strong);font-size:var(--fs-13);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;display:block}.up-more:hover{text-decoration:underline}.pricing-page .wrap{padding-top:var(--sp-5)}.pr-top{margin-bottom:var(--sp-3);align-items:center;display:flex}.pr-brand{margin:var(--sp-2) 0 var(--sp-0-5);justify-content:center;display:flex}.pr-sub{max-width:560px;margin:var(--sp-2) auto var(--sp-5);text-align:center;font-size:var(--fs-14);color:var(--ink-soft);line-height:1.7}.pr-grid{padding:0}.pr-card-sub{font-size:var(--fs-14);color:var(--ink-soft);margin:-4px 0 var(--sp-3)}.pr-uc{font-size:var(--fs-14);color:var(--ink-soft);margin:var(--sp-0-5) 0 var(--sp-0-5) var(--sp-4);display:block}.pr-cta{width:100%;margin-top:var(--sp-3);justify-content:center}.pr-honest{max-width:640px;margin:var(--sp-5) auto 0;font-size:var(--fs-14);color:var(--ink-soft);line-height:1.7}.pr-disc{max-width:640px;margin:var(--sp-3) auto var(--sp-8);font-size:var(--fs-14);color:var(--ink-soft);opacity:.75;line-height:1.6}@media (prefers-reduced-motion:reduce){.dlg-backdrop,.dlg,.mobile-menu,.anl-tab:not([hidden]),.score-flash{animation:none}}.pr-grid{max-width:860px;margin-inline:auto}.pr-grid .pricing-card{position:relative}.pr-grid .pr-cta{padding-top:var(--sp-3);margin-top:auto}.pr-badge{background:var(--accent);color:var(--on-accent);font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-3);border-radius:var(--r-pill);letter-spacing:1px;font-weight:700;position:absolute;top:-11px;right:14px}.pr-ai-foot{max-width:860px;margin:var(--sp-4) auto 0;text-align:center;font-size:var(--fs-14);color:var(--ink-soft)}.pvb-body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.pvb-svg{width:100%;height:auto;display:block}.pvb-zone-exp{fill:color-mix(in srgb, var(--chart-neg) 7%, transparent)}.pvb-zone-cheap{fill:color-mix(in srgb, var(--chart-pos) 9%, transparent)}.pvb-riv-cheap{fill:color-mix(in srgb, var(--chart-pos) 16%, transparent)}.pvb-riv-fair{fill:color-mix(in srgb, var(--chart-pos) 7%, transparent)}.pvb-riv-warn{fill:color-mix(in srgb, var(--chart-warn) 13%, transparent)}.pvb-riv-exp{fill:color-mix(in srgb, var(--chart-neg) 11%, transparent)}[data-theme=dark] .pvb-riv-cheap{fill:color-mix(in srgb, var(--chart-pos) 15%, transparent)}[data-theme=dark] .pvb-riv-fair{fill:color-mix(in srgb, var(--chart-pos) 6%, transparent)}[data-theme=dark] .pvb-riv-warn{fill:color-mix(in srgb, var(--chart-warn) 13%, transparent)}[data-theme=dark] .pvb-riv-exp{fill:color-mix(in srgb, var(--chart-neg) 13%, transparent)}.pvb-riv-lbl{fill:var(--ink-faint);font-size:var(--fs-11);font-variant-numeric:tabular-nums}.pvb-rivers{animation:scanReveal var(--dur-reveal) var(--ease-out-std)}@media (prefers-reduced-motion:reduce){.pvb-rivers{animation:none}}.pvb-grid{stroke:var(--hairline);stroke-width:1px}.pvb-tick{fill:var(--ink-faint);font-size:var(--fs-11);text-anchor:middle}.pvb-line-cheap{stroke:var(--chart-pos);stroke-width:1.2px;stroke-dasharray:5 4}.pvb-line-exp{stroke:var(--chart-neg);stroke-width:1.2px;stroke-dasharray:5 4}.pvb-lbl{font-size:var(--fs-11)}.pvb-lbl.cheap{fill:var(--chart-pos)}.pvb-lbl.exp{fill:var(--chart-neg)}.pvb-lbl.now{fill:var(--ink);stroke:var(--surface);stroke-width:3px;paint-order:stroke;stroke-linejoin:round;font-weight:700}.pvb-riv-lbl{paint-order:stroke;stroke:var(--surface);stroke-width:2.5px;stroke-linejoin:round}.pvb-price{fill:none;stroke:var(--accent-strong);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:pvbDraw var(--dur-reveal) var(--ease-out-std)}.pvb-price-halo{fill:none;stroke:var(--surface);stroke-width:5px;stroke-linejoin:round;stroke-linecap:round;opacity:.9}@keyframes pvbDraw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.pvb-dot{fill:var(--accent-strong);stroke:var(--surface);stroke-width:1.5px}.pvb-note{margin-top:var(--sp-2);font-size:var(--fs-12);color:var(--ink-soft);line-height:1.6}.pvb-hit{fill:#0000}.pvb-svg{cursor:crosshair}.pvb-cursor{stroke:var(--ink-faint);stroke-width:1px;stroke-dasharray:3 3}.pvb-hover-dot{fill:var(--accent-strong);stroke:var(--surface);stroke-width:1.5px}.pvb-tip-box{fill:var(--surface);stroke:var(--hairline);stroke-width:1px;filter:drop-shadow(var(--shadow-knob))}.pvb-tip-date{fill:var(--ink-soft);font-size:var(--fs-11)}.pvb-tip-price{fill:var(--ink);font-size:var(--fs-12);font-variant-numeric:tabular-nums;font-weight:700}.pvb-tip-per{fill:var(--ink-soft);font-size:var(--fs-12);font-variant-numeric:tabular-nums}@keyframes scanReveal{0%{clip-path:inset(0 100% 0 0);opacity:.4}to{clip-path:inset(0);opacity:1}}.scan-in{animation:scanReveal var(--dur-reveal) var(--ease-out-std)}.wl-row{animation:p0TabIn .25s var(--ease-out-std) backwards}.wl-row:nth-child(2){animation-delay:30ms}.wl-row:nth-child(3){animation-delay:60ms}.wl-row:nth-child(4){animation-delay:90ms}.wl-row:nth-child(5){animation-delay:.12s}.wl-row:nth-child(6){animation-delay:.15s}@media (prefers-reduced-motion:reduce){.pvb-price,.scan-in,.wl-row{animation:none}}.scn-slider{align-items:center;gap:var(--sp-3);margin:var(--sp-1) 0 var(--sp-2);font-size:var(--fs-13);color:var(--ink-soft);flex-wrap:wrap;display:flex}.scn-slider label{align-items:center;gap:var(--sp-2);display:inline-flex}.scn-slider input[type=range]{width:150px;accent-color:var(--accent-strong)}.scn-custom{align-items:center;gap:var(--sp-2);display:inline-flex}.scn-reset{border:1px solid var(--hairline-strong);border-radius:var(--r-md);padding:var(--sp-0-5) var(--sp-2);font-size:var(--fs-12);color:var(--ink-soft);cursor:pointer;background:0 0}.conf-badge{font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--hairline-strong);color:var(--ink-soft);white-space:nowrap}.conf-badge.c-hi{color:var(--buy);border-color:color-mix(in srgb, var(--buy) 45%, transparent)}.conf-badge.c-mid{color:var(--caution);border-color:color-mix(in srgb, var(--caution) 40%, transparent)}.conf-badge.c-lo{color:var(--reject);border-color:color-mix(in srgb, var(--reject) 45%, transparent)}.ai-evidence{padding:0 var(--sp-4) var(--sp-3);font-size:var(--fs-14);color:var(--ink-soft);opacity:.85;line-height:1.6}.scr-chip-bell{cursor:pointer;font-size:var(--fs-12);opacity:.55;padding:0 var(--sp-0-5);background:0 0;border:0}.scr-chip-bell.on{opacity:1}.price-snt{align-items:center;gap:var(--sp-2);white-space:nowrap;display:inline-flex}.price-snt .snt{margin-left:0}.dr-card{overflow:visible}.dr-body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.dr-total{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.dr-num{font-size:var(--fs-24);font-weight:700}.dr-lbl{font-size:var(--fs-12);color:var(--ink-soft)}.dr-yields{gap:var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-13);display:flex}.dr-yq{color:var(--ink-soft)}.dr-yc{color:var(--buy);align-items:center;display:inline-flex}.dr-yq b,.dr-yc b{font-weight:700}.dr-help{border:1px solid var(--hairline-strong);width:14px;height:14px;color:var(--ink-faint);font-size:var(--fs-12);margin-left:var(--sp-1);cursor:help;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.dr-months{gap:var(--sp-1);margin:var(--sp-4) 0 var(--sp-1);align-items:flex-end;height:58px;display:flex;position:relative}.dr-mcol{align-items:center;gap:var(--sp-1);cursor:pointer;flex-direction:column;flex:1;justify-content:flex-end;display:flex}.dr-mbar{background:var(--accent);border-radius:var(--r-sm) var(--r-sm) 0 0;width:100%;max-width:24px;transition:background .12s}.dr-mcol:hover .dr-mbar{background:var(--accent-strong)}.dr-mlbl{font-size:var(--fs-12);color:var(--ink-faint)}.dr-bartip{background:var(--ink);color:var(--surface);font-size:var(--fs-12);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);white-space:nowrap;pointer-events:none;z-index:6;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-1);line-height:1.55;position:absolute;bottom:100%;transform:translate(-50%,-6px)}.dr-bartip-h b{color:var(--accent)}.dr-bartip-r{justify-content:space-between;gap:var(--sp-4);display:flex}.dr-cap{font-size:var(--fs-14);color:var(--ink-faint)}.dr-contrib{margin:var(--sp-4) 0;border-top:1px solid var(--hairline);padding-top:var(--sp-3)}.dr-ch{font-size:var(--fs-12);color:var(--ink-faint);letter-spacing:.03em;margin-bottom:var(--sp-2);font-weight:600}.dr-cbar{align-items:center;gap:var(--sp-2);margin:var(--sp-1) 0;width:100%;padding:var(--sp-1) var(--sp-1);cursor:pointer;text-align:left;border-radius:var(--r-sm);color:inherit;background:0 0;border:none;display:flex}button.dr-cbar:hover{background:var(--row-hover)}.dr-cbar-rest{cursor:default}.dr-nm{width:72px;font-size:var(--fs-13);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-weight:600;overflow:hidden}.dr-track{background:var(--surface-sunk);border-radius:var(--r-sm);flex:1;height:8px;overflow:hidden}.dr-fill{background:var(--accent);border-radius:var(--r-sm);height:100%;display:block}.dr-amt{text-align:right;width:122px;font-size:var(--fs-12);color:var(--ink-soft);flex-shrink:0}.dr-amt b{color:var(--ink);font-weight:700}.dr-drip{border-top:1px solid var(--hairline);padding-top:var(--sp-3);margin-top:var(--sp-1)}.dr-drip-lbl{font-size:var(--fs-13);margin-bottom:var(--sp-2);align-items:center;font-weight:600;display:flex}.dr-drip-row{align-items:center;gap:var(--sp-3);display:flex}.dr-drip-row input[type=range]{accent-color:var(--accent-strong);flex:1;height:4px}.dr-drip-yr{font-size:var(--fs-13);color:var(--accent-text);text-align:right;width:48px;font-weight:700}.dr-drip-out{margin-top:var(--sp-3);font-size:var(--fs-14);background:var(--accent-soft);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);line-height:1.7}.dr-drip-plus{color:var(--buy);font-weight:700}.dr-note{margin-top:var(--sp-3);font-size:var(--fs-14);line-height:1.6}@media (prefers-reduced-motion:reduce){.dr-mbar{transition:none}}.gd-h2{font-size:var(--fs-16);margin:var(--sp-6) 0 var(--sp-3)}.gd-p{font-size:var(--fs-14);color:var(--ink-soft);margin:0 0 var(--sp-3);line-height:1.75}.gd-cards{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.gd-cards{grid-template-columns:1fr}}.gd-card{padding:var(--sp-4) var(--sp-4)}.gd-card-name{font-weight:700;font-size:var(--fs-14);margin-bottom:var(--sp-2)}.gd-card-desc{font-size:var(--fs-14);color:var(--ink-soft);margin:0;line-height:1.7}.gd-bands{gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-1);flex-wrap:wrap;display:flex}.gd-band{font-size:var(--fs-13);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--hairline-strong)}.gd-band.b-exp{color:var(--reject);border-color:color-mix(in srgb, var(--reject) 45%, transparent)}.gd-band.b-watch{color:var(--caution);border-color:color-mix(in srgb, var(--caution) 40%, transparent)}.gd-band.b-sweet{color:var(--buy);border-color:color-mix(in srgb, var(--buy) 45%, transparent)}.gd-fat{padding-left:var(--sp-5);gap:var(--sp-3);flex-direction:column;margin:0;display:flex}.gd-fat li{font-size:var(--fs-13);line-height:1.7}.gd-fat-exp{font-size:var(--fs-14);color:var(--ink-soft);display:block}.perf-split{gap:var(--sp-4);padding:0 var(--sp-4) var(--sp-1);font-size:var(--fs-13);color:var(--ink-soft);flex-wrap:wrap;align-items:center;display:flex}.perf-split b.gain{color:var(--up)}.perf-split b.loss{color:var(--down)}.pv-bench-sel{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);border-radius:var(--r-md);font-size:var(--fs-12);padding:var(--sp-0-5) var(--sp-1);margin-left:var(--sp-1)}.scr-presets{gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-0-5);flex-wrap:wrap;align-items:center;display:flex}.thesis-challenge{align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-14);flex-wrap:wrap;display:flex}.chal-out{margin-top:var(--sp-3);border:1px dashed var(--hairline-strong);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-1) 0;background:var(--surface-sunk)}.ai-chat{padding:0 var(--sp-4) var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.ai-chat-q{font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:var(--sp-1)}.ai-chat-a{border-left:2px solid var(--hairline-strong);padding-left:var(--sp-3)}.ai-chat-in{align-items:center;gap:var(--sp-3);font-size:var(--fs-14);display:flex}.ai-chat-in input{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-13);flex:1}[data-cvd="1"] .tm-cell.tm-neg:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg, var(--hatch) 0 3px, transparent 3px 9px);border-radius:inherit;position:absolute;inset:0}.tax-body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.tax-grid{gap:var(--sp-6);flex-wrap:wrap;display:flex}.tax-grid>div{gap:var(--sp-1);font-size:var(--fs-12);color:var(--ink-soft);flex-direction:column;display:flex}.tax-grid b{font-size:var(--fs-16);color:var(--ink)}.tax-body .sr-warn{padding:0}.tax-note{margin-top:var(--sp-3);font-size:var(--fs-14);line-height:1.6}.ca-sugs{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 var(--sp-3);font-size:var(--fs-14);flex-wrap:wrap;display:flex}.tr10{padding:var(--sp-4) var(--sp-4);border-top:1px solid var(--hairline);margin-top:var(--sp-3)}.tr10-title{font-size:var(--fs-13);margin-bottom:var(--sp-0-5);font-weight:700}.tr10-sub{font-size:var(--fs-14);color:var(--ink-faint);margin-bottom:var(--sp-3);line-height:1.5}.tr10-bars{position:relative}.tr10-mcol{cursor:pointer;flex:1;justify-content:center;align-items:flex-end;max-width:22px;display:flex;position:relative}.tr10-tip{background:var(--ink);color:var(--surface);font-size:var(--fs-14);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md);white-space:nowrap;pointer-events:none;z-index:6;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-1);line-height:1.5;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px)}.tr10-tip b{color:var(--accent)}.tr10-row{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.tr10-lbl{font-size:var(--fs-12);color:var(--ink-soft);flex:0 0 150px}.tr10-bars{gap:var(--sp-1);flex:1;align-items:flex-end;display:flex}.tr10-bar{background:var(--accent);opacity:.85;border-radius:var(--r-sm) var(--r-sm) 0 0;flex:1;max-width:22px}.tr10-bar.neg{background:var(--chart-neg)}.tr10-bar.miss{background:var(--hairline-strong);height:2px}.tr10-years{font-size:var(--fs-11);flex:none}.tr10-note{margin-top:var(--sp-1);font-size:var(--fs-14);line-height:1.6}.cmdk-backdrop.onb-clear{background:0 0}.onb-spot{border-radius:var(--r-lg);box-shadow:0 0 0 9999px var(--scrim-strong), 0 0 0 2px var(--accent);pointer-events:none;transition:left .3s var(--ease-out-std), top .3s var(--ease-out-std), width .3s var(--ease-out-std), height .3s var(--ease-out-std);z-index:0;position:fixed}@media (prefers-reduced-motion:reduce){.onb-spot{transition:none}}:focus-visible{outline:2px solid var(--watch);outline-offset:2px}.wl-row:focus-visible,.search-row:focus-visible,.pf-card:focus-visible,.ptable tbody tr:focus-visible{outline-offset:-2px;border-radius:var(--r-md)}.ptable tbody tr:focus-within .rowact{opacity:1}.px-stale{margin-left:var(--sp-2);padding:0 var(--sp-1);border-radius:var(--r-sm);font-size:var(--fs-12);white-space:nowrap;color:var(--caution);background:var(--caution-bg)}.items-center{align-items:center}.justify-end{justify-content:flex-end}.ml-auto{margin-inline-start:auto}.ml8{margin-inline-start:var(--sp-2)}.mt12{margin-top:var(--sp-3)}.mb12{margin-bottom:var(--sp-3)}.mb16{margin-bottom:var(--sp-4)}.mb20{margin-bottom:var(--sp-5)}.pad16{padding:var(--sp-4)}.fs12{font-size:var(--fs-12)}.fs13{font-size:var(--fs-13)}.fs16{font-size:var(--fs-16)}.cursor-pointer{cursor:pointer}.scroll-x{overflow-x:auto}.is-dim{opacity:.55}.rot-90{transform:rotate(90deg)}.rot-270{transform:rotate(-90deg)}.sk-inline{display:inline-block}.field-flush{margin:0}.cell-msg,.ptable td.cell-msg,html[data-density=compact] .ptable td.cell-msg{padding:var(--sp-5)}.btn-block{width:100%}.btn.btn-field{height:40px}.btn.btn-danger-text,.btn.btn-danger-text:hover{color:var(--danger)}.icon-btn.icon-btn-sm{width:24px;height:24px}.portfolio-switch.portfolio-switch-sm{height:30px}.link-action{cursor:pointer}.link-action.is-accent{color:var(--accent-text)}.link-action.is-disabled{color:var(--ink-soft);cursor:default}.admin-back.is-disabled{cursor:default}.form-error.is-ok{background:var(--buy-bg);color:var(--buy)}.is-done{opacity:.6;text-decoration:line-through}.is-expensive{color:var(--expensive)}.edit-inline{cursor:pointer}.edit-inline.is-manual{color:var(--caution)}.edit-inline.is-missing{color:var(--reject)}.revert.revert-inline,.cell .revert.revert-inline{display:inline-grid;position:static}.sec-h.is-center{text-align:center;display:block}.guide-cta{text-align:center;margin:var(--sp-2) 0 var(--sp-8)}.domain-logo{flex:none;width:18px;height:18px;display:block}.rf-zticks .rf-z-11{left:22%}.rf-zticks .rf-z-26{left:52%}.fat-seg-wrap{align-items:center;gap:var(--sp-2);display:inline-flex}.section-sub-row{align-items:center;gap:var(--sp-3);display:flex}.anl-pos{font-size:var(--fs-13);color:var(--ink-soft)}.panel-body-tight{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.thesis-form{padding:var(--sp-4);gap:var(--sp-3);display:grid}.thesis-form-row{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end}.thesis-f-date{flex:0 0 120px}.thesis-f-grow{flex:200px}.thesis-list{padding:var(--sp-4);gap:var(--sp-2);display:grid}.admin-form{padding:var(--sp-4);gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;display:flex}.admin-f-wide{flex:220px}.admin-f{flex:180px}.admin-check{font-size:var(--fs-13);color:var(--ink-soft);cursor:pointer;padding-bottom:var(--sp-2)}.form-error.admin-form-error{margin:0 var(--sp-4) var(--sp-4)}.admin-note-cell{max-width:320px}.admin-tag.admin-tag-tight{margin-top:calc(-1 * var(--sp-1))}.auth-sec-body{padding:0 var(--sp-4) var(--sp-4);font-size:var(--fs-14);color:var(--ink-soft);line-height:1.6}.auth-sec-body.is-tight{padding-bottom:var(--sp-2)}.auth-pane{padding:var(--sp-4);max-width:360px}
