:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090909;--surface:#111110;--surface-raised:#171716;--surface-muted:#1d1d1b;--surface-strong:#292927;--line:#343330;--line-strong:#66645e;--text:#f4f2ec;--muted:#aaa69c;--subtle:#7c7971;--accent:#ff3b30;--accent-hover:#ff5a50;--on-accent:#090909;--positive:#42dc93;--negative:#ff6761;--neutral:#66bdf1;--warning:#ffd15c;--positive-bg:#10261a;--negative-bg:#2c1715;--neutral-bg:#10232e;--market-bg:#191918;--focus:#ff766f;--overlay:#000000b8;--grid-line:#f4f2ec06;--shadow-modal:0 28px 80px #00000094;--content-max:1600px;--ease:cubic-bezier(.2, .8, .2, 1)}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eeede6;--surface:#f8f7f1;--surface-raised:#fffef9;--surface-muted:#e8e7e0;--surface-strong:#dddcd4;--line:#cecdc5;--line-strong:#85847d;--text:#111110;--muted:#5e5d57;--subtle:#7d7b74;--accent:#df3027;--accent-hover:#bd261f;--on-accent:#fff;--positive:#087a49;--negative:#c62f28;--neutral:#176f9f;--warning:#8f6500;--positive-bg:#e0f1e7;--negative-bg:#f6e2df;--neutral-bg:#e0edf4;--market-bg:#efeee8;--focus:#c92921;--overlay:#11110f75;--grid-line:#11111009;--shadow-modal:0 28px 70px #1d1c1833}*{box-sizing:border-box}html,body{min-height:100%}html{background:var(--bg)}body{background-color:var(--bg);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);color:var(--text);font-feature-settings:"kern" 1, "tnum" 1;font-variant-numeric:tabular-nums lining-nums;letter-spacing:0;transition:background-color .18s var(--ease), color .18s var(--ease);background-size:80px 80px;margin:0;font-family:Neue Haas Grotesk Text,Helvetica Neue,Helvetica,Arial,Noto Sans JP,Yu Gothic UI,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}select option{color:var(--text);background:var(--surface)}html[data-theme=light] select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible,[role=slider]:focus-visible,[draggable=true]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}h1,h2,p{margin:0}.app-shell{min-height:100vh;padding:clamp(16px,2.2vw,36px)}.workspace-bar,.control-strip,.market-grid{width:min(100%, var(--content-max));margin-left:auto;margin-right:auto}.workspace-bar{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(320px,4fr) minmax(540px,8fr);align-items:stretch;gap:clamp(24px,4vw,72px);padding:18px 0 24px;display:grid}.brand-block{grid-template-columns:74px minmax(0,1fr);align-items:stretch;gap:18px;min-width:0;display:grid}.brand-mark{background:var(--accent);min-height:74px;color:var(--on-accent);flex-direction:column;justify-content:space-between;padding:10px;line-height:1;display:flex}.brand-mark span{letter-spacing:-.08em;font-size:20px;font-weight:850}.brand-mark small{letter-spacing:.08em;align-self:flex-end;font-size:11px;font-weight:800}.brand-copy{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.eyebrow,.section-index{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:750;line-height:1.2}h1{letter-spacing:-.075em;text-transform:uppercase;margin:2px 0 3px;font-size:clamp(42px,4.4vw,68px);font-weight:850;line-height:.88}h1 span{color:#0000;-webkit-text-stroke:2px var(--text);paint-order:stroke fill}.scramble-text,.scramble-text>span{white-space:pre;display:inline-block}.scramble-character{color:inherit;transition:color .12s,opacity .12s,text-shadow .12s;display:inline-block;position:relative}.scramble-character-size{visibility:hidden}.scramble-character-face{text-align:center;position:absolute;inset:0}.scramble-character.is-noise{color:var(--muted);opacity:.72;text-shadow:0 0 10px color-mix(in srgb, var(--accent) 40%, transparent)}.scramble-character.is-accent.is-resolved{color:var(--accent)}@media (prefers-reduced-motion:reduce){.scramble-character{transition:none}}.brand-copy p,.modal-header p{color:var(--muted);letter-spacing:.045em;font-size:11px;font-weight:600;line-height:1.4}.workspace-panel{grid-template-rows:1fr auto;gap:16px;min-width:0;display:grid}.workspace-overview{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding-bottom:14px;display:flex}.workspace-chip,.status-group,.toolbar,.control-strip,.filter-group,.tabs,.view-actions,.price-row,.card-meta,.status-pill,.ghost-button,.primary-button,.theme-toggle{align-items:center;display:flex}.workspace-chip{min-width:0;color:var(--text);letter-spacing:.015em;gap:11px;font-size:12px;font-weight:750}.workspace-chip .section-index{border-right:1px solid var(--line);color:var(--accent);align-self:stretch;padding-right:10px}.status-group,.toolbar{flex-wrap:wrap;justify-content:flex-end;gap:6px}.space-switcher{border:1px solid var(--line);min-height:38px;color:var(--muted);background:var(--surface);align-items:center;gap:7px;padding-left:11px;display:flex}.space-switcher select{min-width:150px;max-width:240px;color:var(--text);background:0 0;border:0;outline:0;align-self:stretch;font-size:11px;font-weight:700}.space-manage-button{border:0;border-left:1px solid var(--line);color:var(--text);text-transform:uppercase;background:0 0;align-self:stretch;padding:0 10px;font-size:10px;font-weight:750}.space-manage-button:hover{background:var(--surface-muted)}.ghost-button,.primary-button,.icon-button,.status-pill,.theme-toggle{border:1px solid var(--line);min-height:38px;color:var(--text);border-radius:0}.ghost-button,.primary-button,.theme-toggle{background:var(--surface);letter-spacing:.045em;text-transform:uppercase;justify-content:center;gap:8px;padding:0 13px;font-size:11px;font-weight:750}.ghost-button,.icon-button,.theme-toggle,.candidate-row,.check-row{transition:border-color .14s var(--ease), background-color .14s var(--ease), color .14s var(--ease)}.ghost-button:hover,.icon-button:hover,.theme-toggle:hover,.candidate-row:hover,.check-row:hover{border-color:var(--line-strong);background:var(--surface-muted);color:var(--text)}.ghost-button:active,.primary-button:active,.icon-button:active,.theme-toggle:active{transform:translateY(1px)}.primary-button{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.primary-button:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.danger-button{border:1px solid var(--negative);color:#fff;background:var(--negative);letter-spacing:.045em;text-transform:uppercase;border-radius:0;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 13px;font-size:11px;font-weight:750;display:flex}.danger-button:hover:not(:disabled){filter:brightness(1.08)}.danger-button:disabled{cursor:not-allowed;opacity:.38}.primary-button.wide{width:100%;margin-top:14px}.status-pill{min-height:28px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;background:0 0;gap:6px;padding:0 9px;font-size:10px;font-weight:700}.local-clock{border:1px solid var(--line);min-height:28px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:center;gap:6px;padding:0 9px;font-size:10px;font-weight:700;line-height:1;display:flex}.local-clock strong{min-width:7ch;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.08em}.status-pill.ready{border-color:color-mix(in srgb, var(--positive) 48%, var(--line));color:var(--positive)}.control-strip{border:1px solid var(--line);background:var(--surface);justify-content:space-between;gap:16px;min-height:54px;margin-top:16px}.filter-group{align-self:stretch;min-width:0}.filter-group>.section-index{border-right:1px solid var(--line);min-width:52px;color:var(--accent);align-self:stretch;place-items:center;display:grid}.tabs{align-self:stretch;gap:2px;min-width:0;padding:5px}.tabs button{min-height:42px;color:var(--muted);letter-spacing:.055em;text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:0;padding:0 14px;font-size:11px;font-weight:750}.tabs button:hover{color:var(--text);background:var(--surface-muted)}.tabs button.active{border-color:var(--accent);color:var(--on-accent);background:var(--accent)}.view-actions{border-left:1px solid var(--line);flex:none;align-self:stretch;gap:0;padding-left:7px}.view-actions>*{margin:7px 7px 7px 0}.theme-toggle{min-width:84px}.icon-button{background:var(--surface);flex:none;place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-button.muted{color:var(--muted)}.icon-button.active{border-color:var(--accent);color:var(--accent);background:var(--negative-bg)}.icon-button.danger{color:var(--negative)}.market-grid{border:1px solid var(--line);background:var(--bg);grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr));grid-auto-rows:minmax(292px,auto);gap:1px;margin-top:16px;display:grid}.app-shell.compact .market-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(245px,auto)}.market-card{background:var(--surface);min-width:0;min-height:252px;box-shadow:inset 0 0 0 1px var(--line);transition:background-color .16s var(--ease), box-shadow .16s var(--ease), opacity .12s var(--ease);animation:card-in .36s var(--ease) both;padding:15px;position:relative}.market-card-large{grid-area:span 2/span 2}.market-card-large .chart-plot{height:400px}.app-shell.compact .market-card-large .chart-plot{height:310px}.market-card-large .price{font-size:clamp(38px,3.2vw,52px)}.market-card:nth-child(2n){animation-delay:30ms}.market-card:nth-child(3n){animation-delay:60ms}.market-card:nth-child(4n){animation-delay:90ms}.app-shell.compact .market-card{min-height:222px;padding:13px}.market-card:hover,.market-card:focus-within{z-index:1;background:var(--surface-raised)}.market-card:has(.chart-callout){z-index:5}.market-card.dragging{z-index:2;opacity:.54;box-shadow:inset 0 0 0 2px var(--focus)}.add-card-button{min-width:0;min-height:252px;color:var(--muted);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);transition:color .16s var(--ease), background-color .16s var(--ease), box-shadow .16s var(--ease);animation:card-in .36s var(--ease) both;border:0;place-content:center;justify-items:center;gap:12px;padding:15px;display:grid}.add-card-button span{letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800}.add-card-button:hover,.add-card-button:focus-visible{color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface-raised));box-shadow:inset 0 0 0 1px var(--accent)}.add-card-button:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.app-shell.compact .add-card-button{min-height:222px;padding:13px}.card-top{grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.card-actions{align-items:center;gap:2px;display:flex}.market-card .icon-button.manage-index,.market-card .icon-button.card-size-toggle{width:30px;height:30px;min-height:30px;color:var(--muted);opacity:0;transition:opacity .14s var(--ease), background-color .14s var(--ease);background:0 0;border-color:#0000}.market-card:hover .icon-button.manage-index,.market-card:focus-within .icon-button.manage-index,.market-card:hover .icon-button.card-size-toggle,.market-card:focus-within .icon-button.card-size-toggle{opacity:1}.market-card .icon-button.card-size-toggle:hover,.market-card .icon-button.card-size-toggle[aria-pressed=true],.market-card .icon-button.manage-index:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent)}.drag-handle{background:0 0;border-color:#0000;width:30px;height:30px;min-height:30px}.symbol-block{min-width:0}.symbol-row{align-items:center;gap:8px;min-width:0;display:flex}.symbol-row strong,.symbol-block span,.candidate-row span,.check-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.symbol-row strong,.symbol-row .card-name,.symbol-row .card-name-input{letter-spacing:-.025em;min-width:0;font-size:18px;font-weight:800;line-height:1.1}.symbol-block>span{color:var(--muted);letter-spacing:.015em;margin-top:4px;font-size:11px;display:block}.card-name{cursor:text}.card-name-input{border:0;border-bottom:1px solid var(--focus);width:100%;color:var(--text);font:inherit;letter-spacing:-.025em;background:0 0;border-radius:0;outline:0;margin:0;padding:1px 0 3px;display:block}.symbol-row .card-name{color:var(--text);margin:0}.ticker-code{color:var(--muted);letter-spacing:.08em;margin-top:4px;font-size:11px;display:block}.market-pill{border:1px solid var(--line);color:var(--muted);background:var(--market-bg);letter-spacing:.08em;text-transform:uppercase;border-radius:0;flex:none;padding:3px 6px 2px;font-size:9px;font-weight:800;line-height:1.2}.market-pill.custom{border-left-color:var(--accent);color:var(--text)}.market-card .icon-button.danger{opacity:0;width:30px;height:30px;min-height:30px;transition:opacity .14s var(--ease), background-color .14s var(--ease);background:0 0;border-color:#0000}.market-card:hover .icon-button.danger,.market-card:focus-within .icon-button.danger{opacity:1}.price-row{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:17px}.change-metric{gap:7px;display:grid}.price-metric{min-width:0;display:block}.change-metric{border-left:1px solid var(--line);justify-items:end;min-width:0;padding-left:14px}.metric-label{color:var(--subtle);letter-spacing:.13em;text-transform:uppercase;font-size:8px;font-weight:800;line-height:1}.price{letter-spacing:-.055em;font-size:clamp(30px,2.2vw,38px);font-weight:720;line-height:.95}.app-shell.compact .price{font-size:31px}.app-shell.compact .market-card-large .price{font-size:clamp(40px,3.4vw,48px)}.currency{color:var(--muted);letter-spacing:.08em;margin-left:7px;font-size:10px;font-weight:700}.change{letter-spacing:-.01em;white-space:nowrap;border:1px solid #0000;border-radius:0;flex:0 auto;padding:6px 8px;font-size:11px;font-weight:750}.positive{color:var(--positive)}.negative{color:var(--negative)}.neutral{color:var(--neutral)}.change.positive{border-color:color-mix(in srgb, var(--positive) 38%, var(--line));background:var(--positive-bg)}.change.negative{border-color:color-mix(in srgb, var(--negative) 38%, var(--line));background:var(--negative-bg)}.change.neutral{border-color:color-mix(in srgb, var(--neutral) 38%, var(--line));background:var(--neutral-bg)}.change-metric .change{letter-spacing:-.045em;background:0 0;border:0;justify-content:flex-end;align-items:baseline;gap:.28em;padding:0;font-size:clamp(16px,1.35vw,20px);font-weight:800;line-height:.88;display:flex}.change-divider{color:var(--subtle);font-size:.72em;font-weight:650}.app-shell.compact .price-row{gap:8px}.app-shell.compact .change-metric{max-width:45%;padding-left:8px}.app-shell.compact .change-metric .change{flex-direction:column;align-items:flex-end;gap:2px;font-size:14px;line-height:.92}.app-shell.compact .change-divider{display:none}.chart-frame{border-top:1px solid var(--surface-strong);border-bottom:1px solid var(--surface-strong);margin:10px 0 0;position:relative}.chart-info-row{z-index:2;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;pointer-events:none;align-items:center;gap:12px;font-size:8px;font-weight:800;line-height:1;display:flex;position:absolute;bottom:4px;left:4px;right:4px}.chart-info-row span{background:color-mix(in srgb, var(--surface) 84%, transparent);padding:2px 3px}.chart-info-axis{color:var(--subtle);margin-left:auto}.chart-plot{border-bottom:1px solid var(--surface-strong);background-color:color-mix(in srgb, var(--surface-raised) 48%, transparent);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);cursor:crosshair;touch-action:pan-y;-webkit-user-select:none;user-select:none;background-size:25% 100%,100% 50%;height:136px;position:relative;overflow:visible}.chart-frame-detailed .chart-plot{background-image:none}.sparkline{pointer-events:none;width:100%;height:100%;display:block;overflow:visible}.app-shell.compact .market-card:not(.market-card-large) .chart-plot{height:94px}.sparkline-guide{opacity:.3;stroke-dasharray:2 5;stroke-width:1px;vector-effect:non-scaling-stroke}.sparkline-previous-close{stroke:var(--muted);stroke-dasharray:4 6;stroke-width:1px;opacity:.34;vector-effect:non-scaling-stroke}.chart-price-tick line,.chart-time-tick line{stroke:var(--grid-line);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-price-tick text,.chart-time-tick text{fill:var(--muted);letter-spacing:.02em;font-size:10px;font-weight:700}.sparkline-terminal{fill:var(--surface);stroke-width:1.5px;vector-effect:non-scaling-stroke}.sparkline-crosshair line{stroke:var(--line-strong);stroke-dasharray:2 4;stroke-width:1px;vector-effect:non-scaling-stroke}.sparkline-callout-leader{fill:none;stroke:var(--line-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-axis{z-index:1;color:var(--subtle);background:color-mix(in srgb, var(--surface) 84%, transparent);letter-spacing:.12em;text-transform:uppercase;pointer-events:none;padding:2px 3px;font-size:7px;font-weight:800;line-height:1;position:absolute}.chart-axis-y{top:4px;left:4px}.chart-axis-x{bottom:4px;right:4px}.chart-callout{z-index:3;border:1px solid var(--line-strong);width:min(152px,100% - 16px);color:var(--text);background:color-mix(in srgb, var(--surface-raised) 84%, transparent);box-shadow:0 9px 26px color-mix(in srgb, var(--bg) 42%, transparent);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);pointer-events:none;grid-template-columns:auto 1fr;gap:4px 9px;padding:8px 9px;display:grid;position:absolute;transform:translateY(-50%)}.chart-callout.top-right,.chart-callout.bottom-right{left:calc(100% + 14px)}.chart-callout.top-left,.chart-callout.bottom-left{right:calc(100% + 14px)}.chart-frame-detailed .chart-callout{width:min(180px,100% - 28px);bottom:auto;left:auto;right:14px;transform:none;top:14px!important}.chart-frame-detailed .sparkline-callout-leader{display:none}.chart-callout span{color:var(--subtle);letter-spacing:.09em;text-transform:uppercase;align-self:center;font-size:7px;font-weight:800;line-height:1}.chart-callout strong{letter-spacing:.015em;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:750;line-height:1.2;overflow:hidden}.no-data-panel{border:1px solid var(--surface-strong);min-height:118px;color:var(--muted);background:var(--surface-raised);align-content:center;gap:7px;margin-top:14px;padding:14px;display:grid}.app-shell.compact .no-data-panel{min-height:80px}.no-data-panel strong{color:var(--text);font-size:18px;font-weight:750}.no-data-panel span{font-size:11px;line-height:1.5}.card-meta{justify-content:initial;border-top:1px solid var(--surface-strong);color:var(--muted);letter-spacing:.055em;text-transform:uppercase;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;margin-top:7px;padding-top:7px;font-size:10px;font-weight:700;line-height:1.25;display:grid}.market-card-large .card-meta{text-align:right;grid-template-columns:1fr;margin-top:10px}.card-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar-stack{flex-direction:row-reverse;flex:none;display:flex}.avatar-stack span{border:2px solid var(--surface);width:27px;height:27px;color:var(--text);background:var(--surface-muted);border-radius:999px;place-items:center;margin-left:-7px;font-size:10px;font-weight:800;display:grid;position:relative}.avatar-stack span:after{border:2px solid var(--surface);background:var(--positive);content:"";border-radius:999px;width:7px;height:7px;position:absolute;bottom:-1px;right:-1px}.modal-backdrop{z-index:20;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--line-strong);border-top:6px solid var(--accent);background:var(--surface-raised);width:min(100%,540px);max-height:min(780px,100dvh - 36px);box-shadow:var(--shadow-modal);padding:20px;overflow:hidden}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;padding-bottom:16px;display:flex}.modal-header h2{letter-spacing:-.04em;margin-bottom:5px;font-size:24px;font-weight:800}.chart-modal-backdrop{z-index:30;place-items:center}.chart-modal{width:min(1120px,100%);max-height:calc(100dvh - 36px);overflow-y:auto}.chart-modal-header{margin-bottom:12px}.chart-range-switch{border:1px solid var(--line);background:var(--surface);gap:1px;margin-bottom:12px;padding:3px;display:flex}.chart-range-switch button{min-height:38px;color:var(--muted);letter-spacing:.05em;cursor:pointer;background:0 0;border:0;padding:0 14px;font-size:10px;font-weight:800}.chart-range-switch button.active{color:var(--accent-contrast);background:var(--accent)}.chart-modal-content{min-height:min(520px,62dvh)}.chart-modal .chart-frame,.candlestick-frame{border:1px solid var(--line-strong);margin:0}.chart-modal .chart-plot{height:min(520px,62dvh)}.chart-modal-state{border:1px solid var(--line);min-height:min(520px,62dvh);color:var(--muted);background:var(--surface);place-content:center;justify-items:center;gap:12px;display:grid}.chart-modal-state.error{color:var(--negative)}.chart-modal-state .spin{animation:.9s linear infinite chart-spin}.candlestick-frame{grid-template-rows:auto minmax(0,1fr);display:grid}.candlestick-callout-bar{border-bottom:1px solid var(--line-strong);background:var(--surface);min-height:56px}.candlestick-ohlc{grid-template-columns:minmax(156px,1.35fr) repeat(4,minmax(0,1fr));width:100%;min-height:56px;margin:0;display:grid}.candlestick-ohlc>div{border-left:1px solid var(--line);align-content:center;min-width:0;padding:9px 12px 8px;display:grid}.candlestick-ohlc>div:first-child{background:var(--surface-raised);border-left:0}.candlestick-ohlc dt,.candlestick-ohlc dd{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.candlestick-ohlc dt{color:var(--subtle);letter-spacing:.12em;text-transform:uppercase;font-size:8px;font-weight:850;line-height:1}.candlestick-ohlc dd{color:var(--text);letter-spacing:-.01em;margin-top:5px;font-size:12px;font-weight:800;line-height:1}.candlestick-ohlc .positive dd{color:var(--positive)}.candlestick-ohlc .negative dd{color:var(--negative)}.candlestick-plot{background:var(--surface);cursor:crosshair;touch-action:pan-y;-webkit-user-select:none;user-select:none;height:min(460px,54dvh);position:relative;overflow:hidden}.candlestick-svg{width:100%;height:100%;display:block}.candle line{stroke:currentColor;stroke-width:1.35px;shape-rendering:crispedges;vector-effect:non-scaling-stroke}.candle rect{fill:currentColor;stroke:currentColor;stroke-width:.75px;shape-rendering:crispedges;vector-effect:non-scaling-stroke}.candle.positive{color:var(--positive)}.candle.negative{color:var(--negative)}@keyframes chart-spin{to{transform:rotate(360deg)}}.space-modal{width:min(100%,680px);overflow-y:auto}.index-management-modal{width:min(100%,820px);overflow-y:auto}.index-management-summary{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.index-management-summary span{border:1px solid var(--line);color:var(--muted);background:var(--surface);padding:6px 8px;font-size:10px}.constituent-list{border:1px solid var(--line);background:var(--line);gap:1px;display:grid}.constituent-row{background:var(--surface);grid-template-columns:minmax(130px,1fr) 112px minmax(250px,1.4fr);align-items:center;gap:12px;padding:12px;display:grid}.constituent-identity{gap:3px;min-width:0;display:grid}.constituent-identity strong,.constituent-identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.constituent-identity small{color:var(--muted);font-size:10px}.constituent-metrics{flex-wrap:wrap;gap:5px 10px;margin-top:5px;display:flex}.constituent-metrics span{color:var(--muted);white-space:nowrap;font-size:9px}.constituent-metrics strong{color:var(--text);margin-left:3px;font-size:10px}.constituent-metrics strong.positive{color:var(--positive)}.constituent-metrics strong.negative{color:var(--negative)}.constituent-metrics strong.neutral{color:var(--muted)}.weight-field{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:750;display:grid}.weight-field>div{border:1px solid var(--line);background:var(--surface-raised);align-items:center;display:flex}.weight-field input{width:100%;min-width:0;height:36px;color:var(--text);background:0 0;border:0;outline:0;padding:0 8px}.weight-field>div>span{padding-right:8px}.replacement-control{grid-template-columns:minmax(0,1fr) auto 38px;gap:6px;display:grid}.replacement-control select{border:1px solid var(--line);min-width:0;height:38px;color:var(--text);background:var(--surface-raised);outline:0;padding:0 8px}.replacement-control .ghost-button{min-height:38px}.constituent-remove-button{width:38px;min-width:38px;height:38px;color:var(--negative)}.constituent-remove-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--negative) 45%, var(--line));background:color-mix(in srgb, var(--negative) 10%, var(--surface-raised))}.constituent-add-row{background:var(--surface);grid-template-columns:minmax(0,1fr) 38px;gap:8px;padding:10px 12px;display:grid}.constituent-add-row select{border:1px dashed var(--line-strong);min-width:0;height:38px;color:var(--text);background:var(--surface-raised);outline:0;padding:0 10px}.constituent-add-button{width:38px;min-width:38px;height:38px;color:var(--surface-raised);background:var(--accent)}.constituent-add-button:hover:not(:disabled){background:var(--accent-hover)}.rebalance-footer{justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;display:flex}.rebalance-footer>div{gap:2px;margin-right:auto;display:grid}.rebalance-footer>div span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.rebalance-footer strong.invalid{color:var(--negative)}.index-management-modal>.form-error,.index-management-feedback{margin-top:10px;font-size:11px}.index-management-feedback{color:var(--positive)}.delete-index-modal{border-top-color:var(--negative);width:min(100%,560px)}.delete-warning-label{color:var(--negative);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:8px;font-size:10px;font-weight:800;display:inline-flex}.delete-index-summary{border:1px solid color-mix(in srgb, var(--negative) 42%, var(--line));border-left:5px solid var(--negative);background:var(--negative-bg);gap:4px;padding:13px;display:grid}.delete-index-summary span{color:var(--muted);font-size:10px}.delete-index-acknowledgement{border:1px solid var(--line);color:var(--text);background:var(--surface);align-items:flex-start;gap:10px;margin-top:16px;padding:13px;font-size:12px;line-height:1.5;display:flex}.delete-index-acknowledgement input{width:18px;height:18px;accent-color:var(--negative);flex:none;margin-top:1px}.delete-index-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.space-list{gap:7px;max-height:260px;padding-right:3px;display:grid;overflow-y:auto}.space-list.has-settings{max-height:min(520px,58dvh)}.space-list-entry{gap:7px;display:grid}.space-list-item{border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface);text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px;display:grid}.space-list-item:hover,.space-list-item.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.space-list-select{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:7px;display:grid}.space-list-select>span{gap:3px;min-width:0;display:grid}.space-list-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.space-list-item small,.empty-space-message,.form-error{color:var(--muted);font-size:10px}.space-settings-button,.danger-outline-button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:var(--surface-raised);text-transform:uppercase;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:750;display:flex}.space-settings-button:hover,.space-settings-button.active{border-color:var(--accent);color:var(--text)}.space-role-label{text-transform:uppercase;padding:0 8px}.space-settings-panel{border:1px solid var(--line-strong);border-top:3px solid var(--accent);background:var(--surface);padding:15px}.space-settings-panel>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.space-settings-panel h3{margin-top:4px;font-size:17px}.owner-only-badge{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding:5px 7px;font-size:9px;font-weight:800}.space-rename-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.space-rename-row label,.space-delete-confirmation label{color:var(--muted);gap:6px;font-size:10px;font-weight:700;display:grid}.space-rename-row input,.space-delete-confirmation input{border:1px solid var(--line);width:100%;min-height:42px;color:var(--text);background:var(--surface-raised);outline:0;padding:0 11px}.space-rename-row input:focus,.space-delete-confirmation input:focus{border-color:var(--focus)}.space-rename-row .primary-button{align-items:center;min-height:42px;display:flex}.space-danger-zone{border:1px solid color-mix(in srgb, var(--negative) 38%, var(--line));border-left:5px solid var(--negative);background:var(--negative-bg);gap:12px;margin-top:16px;padding:13px;display:grid}.space-danger-heading p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.danger-outline-button{border-color:var(--negative);color:var(--negative);background:0 0;justify-self:start}.danger-outline-button:hover{color:#fff;background:var(--negative)}.space-delete-confirmation{border-top:1px solid color-mix(in srgb, var(--negative) 30%, var(--line));gap:10px;padding-top:12px;display:grid}.space-delete-confirmation label span strong{color:var(--text)}.space-delete-confirmation>div{justify-content:flex-end;gap:8px;display:flex}.space-settings-panel>.form-error{margin-top:10px}.empty-space-message{border:1px dashed var(--line);text-align:center;padding:18px}.space-create-panel{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;padding-top:18px;display:grid}.space-create-panel>div,.space-create-panel>.form-error,.space-create-panel>.primary-button{grid-column:1/-1}.space-create-panel h3{margin:4px 0 0;font-size:17px}.space-create-panel label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;gap:6px;font-size:10px;font-weight:750;display:grid}.space-create-panel input,.space-create-panel select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--text);background:var(--surface);outline:0;padding:0 11px}.space-create-panel input:focus,.space-create-panel select:focus{border-color:var(--focus)}.form-error{color:var(--negative)}.search-box,.field{border:1px solid var(--line);background:var(--surface);display:flex}.search-box{color:var(--muted);align-items:center;gap:10px;padding:0 13px}.search-box input,.field input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.search-box:focus-within,.field:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb, var(--focus) 24%, transparent)}.search-box input{height:46px}.field{flex-direction:column;gap:6px;padding:11px 12px}.field span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:750}.field input{height:30px}.candidate-list,.check-list{border:1px solid var(--line);background:var(--line);gap:1px;max-height:390px;margin-top:14px;display:grid;overflow:auto}.candidate-row,.check-row{width:100%;min-width:0;min-height:52px;color:var(--text);background:var(--surface);text-align:left;border:0;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.candidate-row span:first-child,.check-row span{gap:3px;min-width:0;display:grid}.candidate-row small,.check-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.check-row{justify-content:flex-start}.check-row input{width:18px;height:18px;accent-color:var(--accent)}.toast{z-index:30;border:1px solid var(--line-strong);border-left:5px solid var(--accent);max-width:min(420px,100vw - 40px);color:var(--text);background:var(--surface-raised);box-shadow:var(--shadow-modal);padding:13px 15px;font-size:12px;font-weight:650;position:fixed;bottom:20px;right:20px}.undo-toast{min-width:min(390px,100vw - 40px);animation:undo-toast-life 6s var(--ease) both;justify-content:space-between;align-items:center;gap:18px;display:flex}.undo-toast>span{min-width:0}.undo-toast button{border:1px solid var(--accent);min-height:34px;color:var(--on-accent);background:var(--accent);flex:none;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:800;display:inline-flex}.undo-toast button:hover{background:var(--accent-hover)}@keyframes undo-toast-life{0%{opacity:0;transform:translateY(12px)}7%,88%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1360px){.app-shell.compact .market-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1180px){.workspace-bar{grid-template-columns:minmax(280px,4fr) minmax(480px,8fr);gap:28px}.market-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:980px){.workspace-bar{grid-template-columns:1fr;gap:24px}.workspace-panel{gap:12px}.workspace-overview,.toolbar{justify-content:flex-start}.space-switcher{grid-column:1/-1}.space-switcher select{width:100%;max-width:none}}@media (max-width:820px){.market-grid,.app-shell.compact .market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-strip{flex-direction:column;align-items:stretch;gap:0}.filter-group{border-bottom:1px solid var(--line);min-height:54px}.tabs{scrollbar-width:none;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.view-actions{border-left:0;justify-content:flex-end}}@media (max-width:600px){.app-shell{padding:12px}.workspace-bar{padding-top:12px}.brand-block{grid-template-columns:58px minmax(0,1fr);gap:13px}.brand-mark{min-height:64px;padding:8px}h1{font-size:clamp(38px,14vw,54px)}.workspace-overview{flex-direction:column;align-items:flex-start}.status-group{justify-content:flex-start}.toolbar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ghost-button,.primary-button{min-height:44px}.space-create-panel,.space-rename-row{grid-template-columns:1fr}.space-rename-row .primary-button,.space-delete-confirmation>div>button{width:100%}.space-delete-confirmation>div{grid-template-columns:1fr;display:grid}.filter-group>.section-index{min-width:42px}.tabs button{min-height:44px;padding:0 12px}.view-actions>*{min-height:44px;margin-top:6px;margin-bottom:6px}.view-actions .icon-button{width:44px;height:44px}.theme-toggle{min-width:80px}.market-grid,.app-shell.compact .market-grid{grid-template-columns:1fr;grid-auto-rows:auto}.market-card,.app-shell.compact .market-card{min-height:256px;padding:16px}.market-card-large{grid-area:auto/span 1}.market-card-large .chart-plot,.app-shell.compact .market-card-large .chart-plot{height:220px}.app-shell.compact .market-card:not(.market-card-large) .chart-plot{height:106px}.app-shell.compact .market-card-large .chart-plot{height:220px}.market-card .icon-button.danger,.market-card .icon-button.manage-index,.market-card .icon-button.card-size-toggle{opacity:1}.modal-backdrop{place-items:end center;padding:10px}.modal-panel{width:100%;max-height:calc(100dvh - 20px);padding:16px}.chart-modal-backdrop{place-items:center}.chart-modal{width:100%}.chart-range-switch button{flex:1;min-width:0;padding:0 8px}.chart-modal-content,.chart-modal-state,.chart-modal .chart-plot{height:min(430px,56dvh);min-height:0}.candlestick-callout-bar{min-height:0}.candlestick-ohlc{grid-template-columns:repeat(4,minmax(0,1fr));min-height:86px}.candlestick-ohlc>div{padding:8px 7px}.candlestick-ohlc>.candlestick-date{border-bottom:1px solid var(--line);grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:7px 9px}.candlestick-ohlc>div:nth-child(2){border-left:0}.candlestick-date dd{text-align:right;margin-top:0}.candlestick-ohlc dd{font-size:10px}.candlestick-plot{height:min(330px,42dvh)}.constituent-row{grid-template-columns:minmax(0,1fr) 104px}.replacement-control{grid-column:1/-1}.rebalance-footer{flex-direction:column;align-items:stretch}.rebalance-footer>div{margin-right:0}.toast{max-width:calc(100vw - 24px);bottom:12px;right:12px}}@media (hover:none){.market-card .icon-button.danger,.market-card .icon-button.manage-index,.market-card .icon-button.card-size-toggle{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
