.status-bar{height:var(--status-h);justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--surface-1);border-bottom:1px solid var(--border);font-size:var(--text-xs);letter-spacing:.02em;z-index:var(--z-sticky);display:flex}.status-bar__left,.status-bar__right{align-items:center;gap:var(--space-2);min-width:0;display:flex}.status-bar__muted,.status-bar__clock{color:var(--ink-faint)}.status-bar__sep{background:var(--border);width:1px;height:12px}.status-bar__badge{color:var(--warning);background:var(--warning-bg);border:1px solid oklch(82% .14 85/.25);border-radius:999px;padding:1px 8px;font-weight:600}.status-pill{align-items:center;gap:6px;font-weight:600;display:inline-flex}.status-pill__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status-pill.is-live{color:var(--gain)}.status-pill.is-live .status-pill__dot{box-shadow:0 0 0 3px var(--gain-bg)}.status-pill.is-off{color:var(--loss)}.live-ticker{height:var(--ticker-h);border-bottom:1px solid var(--border);background:var(--surface-1);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000);mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000)}.live-ticker__track{align-items:center;gap:var(--space-1);width:max-content;height:100%;padding-inline:var(--space-3);animation:48s linear infinite ticker-scroll;display:flex}.live-ticker:hover .live-ticker__track{animation-play-state:paused}.live-ticker__item{height:28px;color:var(--ink-muted);font-size:var(--text-xs);white-space:nowrap;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.live-ticker__item:hover{border-color:var(--border-strong);background:var(--surface-2);color:var(--ink)}.live-ticker__sym{letter-spacing:.04em;color:var(--ink);font-weight:700}.live-ticker__px{color:var(--ink-muted)}.live-ticker__ch.is-up{color:var(--gain)}.live-ticker__ch.is-down{color:var(--loss)}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.live-ticker__track{width:100%;animation:none;overflow-x:auto}}.hx-sidebar{width:var(--sidebar-w);background:var(--surface-1);border-right:1px solid var(--border);transition:width .2s var(--ease);z-index:var(--z-sticky);flex-direction:column;flex-shrink:0;display:flex}.hx-sidebar.is-collapsed{width:var(--sidebar-collapsed)}.hx-sidebar__brand{height:var(--header-h);justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-bottom:1px solid var(--border);display:flex}.hx-mark{min-width:0;color:var(--ink);align-items:center;gap:10px;display:flex}.hx-mark__glyph{width:32px;height:32px;color:var(--accent);background:var(--accent-dim);border:1px solid oklch(82% .17 92/.35);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.hx-mark__text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.hx-mark__text strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:700}.hx-mark__text small{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.hx-sidebar__collapse{width:28px;height:28px;color:var(--ink-muted);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.hx-sidebar__collapse:hover{background:var(--surface-3);color:var(--ink)}.hx-sidebar.is-collapsed .hx-sidebar__collapse{margin-inline:auto}.hx-sidebar.is-collapsed .hx-sidebar__brand{height:auto;padding:var(--space-3) 0;gap:var(--space-2);flex-direction:column}.hx-sidebar__nav{padding:var(--space-3) var(--space-2);flex-direction:column;flex:1;gap:2px;display:flex}.hx-nav{height:40px;color:var(--ink-muted);font-size:var(--text-sm);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:10px;align-items:center;gap:10px;padding:0 12px;font-weight:500;display:flex}.hx-sidebar.is-collapsed .hx-nav{justify-content:center;padding:0}.hx-nav:hover{background:var(--surface-2);color:var(--ink)}.hx-nav.is-active{background:var(--accent-dim);color:var(--accent)}.hx-sidebar__foot{padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--ink-faint);flex-direction:column;gap:4px;display:flex}.hx-sidebar__foot a{color:var(--ink-muted)}.hx-sidebar__foot a:hover{color:var(--accent)}@media (width<=900px){.hx-sidebar{display:none}}.hx-header{height:var(--header-h);justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid var(--border);background:color-mix(in oklab, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex}.hx-header__left,.hx-header__right{align-items:center;gap:var(--space-3);min-width:0;display:flex}.hx-search{border:1px solid var(--border);background:var(--surface-2);min-width:min(420px,48vw);height:36px;color:var(--ink-faint);font-size:var(--text-sm);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);border-radius:10px;align-items:center;gap:10px;padding:0 12px;display:flex}.hx-search:hover{border-color:var(--border-strong);color:var(--ink-muted)}.hx-search span{text-align:left;flex:1}.hx-search kbd{font-family:var(--font-mono);border:1px solid var(--border);background:var(--surface-3);color:var(--ink-muted);border-radius:5px;padding:2px 6px;font-size:11px}.hx-equity,.hx-cash{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.hx-equity__label,.hx-cash__label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.hx-equity__val{font-size:var(--text-sm);color:var(--ink);font-weight:600}.hx-cash__val{font-size:var(--text-sm);color:var(--ink-muted);font-weight:500}.hx-pnl.is-up .hx-cash__val{color:var(--gain)}.hx-pnl.is-down .hx-cash__val{color:var(--loss)}.hx-alert-btn{position:relative}.hx-alert-btn__badge{background:var(--accent);min-width:14px;height:14px;color:var(--accent-ink);text-align:center;border-radius:999px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:2px;right:2px}@media (width<=900px){.hx-pnl{display:none}}@media (width<=720px){.hx-search span,.hx-search kbd,.hx-cash{display:none}.hx-search{justify-content:center;width:40px;min-width:40px;padding:0}}.hx-dock{border-top:1px solid var(--border);background:var(--surface-1);min-height:140px;max-height:var(--dock-h);flex-direction:column;display:flex}.hx-dock__tabs{padding:0 var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;height:36px;display:flex}.hx-dock__tab{height:28px;font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);border-radius:6px;padding:0 12px;font-weight:600}.hx-dock__tab:hover{color:var(--ink-muted);background:var(--surface-2)}.hx-dock__tab.is-active{color:var(--accent);background:var(--accent-dim)}.hx-dock__more{font-size:var(--text-xs);color:var(--ink-muted);margin-left:auto}.hx-dock__more:hover{color:var(--accent)}.hx-dock__body{padding:var(--space-2) var(--space-3);flex:1;overflow:auto}.hx-dock__empty{font-size:var(--text-sm);color:var(--ink-faint);padding:var(--space-4);text-align:center}.hx-dock__table{border-collapse:collapse;width:100%;font-size:var(--text-xs)}.hx-dock__table th{text-align:left;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--surface-1);padding:6px 8px;font-weight:500;position:sticky;top:0}.hx-dock__table td{color:var(--ink-muted);border-bottom:1px solid oklch(30% .014 155/.45);padding:8px}.hx-dock__table tr:hover td{background:var(--surface-2);color:var(--ink)}.hx-dock__balances{gap:var(--space-3);padding:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.hx-dock__balances>div{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:4px;display:flex}.hx-dock__balances span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.hx-dock__balances strong{font-size:var(--text-md);color:var(--ink);font-weight:600}@media (width<=720px){.hx-dock{display:none}}.hx-mobile-tabs{z-index:var(--z-sticky);border-top:1px solid var(--border);background:color-mix(in oklab, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(5,1fr);height:56px;display:none;position:sticky;bottom:0}.hx-mobile-tab{color:var(--ink-faint);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:10px;display:flex}.hx-mobile-tab.is-active{color:var(--accent)}@media (width<=900px){.hx-mobile-tabs{display:grid}}.cmd-backdrop{z-index:var(--z-modal);padding:12vh var(--space-4) var(--space-4);background:oklch(8% .01 155/.72);place-items:start center;display:grid;position:fixed;inset:0}.cmd-modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(560px,100%);box-shadow:var(--shadow-pop);animation:cmd-in .14s var(--ease);overflow:hidden}.cmd-input-wrap{height:52px;padding:0 var(--space-4);border-bottom:1px solid var(--border);color:var(--ink-muted);align-items:center;gap:10px;display:flex}.cmd-input-wrap input{height:100%;font-size:var(--text-md);color:var(--ink);background:0 0;border:0;outline:none;flex:1}.cmd-input-wrap kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--ink-faint);border-radius:5px;padding:2px 6px;font-size:11px}.cmd-list{max-height:360px;padding:var(--space-2);overflow:auto}.cmd-empty{padding:var(--space-4);text-align:center;color:var(--ink-faint);font-size:var(--text-sm)}.cmd-item{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;width:100%;color:var(--ink-muted);border-radius:8px;padding:10px 12px;display:flex}.cmd-item:hover,.cmd-item.is-active{background:var(--accent-dim);color:var(--ink)}.cmd-item__label{font-size:var(--text-sm);flex-direction:column;gap:2px;font-weight:600;display:flex}.cmd-item__label small{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px;font-weight:500}.cmd-item__hint{font-size:var(--text-xs);color:var(--ink-faint)}.cmd-foot{border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--ink-faint);padding:8px 16px}@keyframes cmd-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}.toast-host{right:var(--space-4);bottom:var(--space-4);z-index:var(--z-toast);gap:var(--space-2);flex-direction:column;width:min(320px,100vw - 32px);display:flex;position:fixed}.toast{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow-pop);text-align:left;animation:toast-in .16s var(--ease);flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.toast strong{font-size:var(--text-sm);color:var(--ink);font-weight:600}.toast span{font-size:var(--text-xs);color:var(--ink-muted)}.toast--success{border-color:oklch(76% .17 160/.35)}.toast--error{border-color:oklch(65% .2 25/.4)}.toast--info{border-color:oklch(82% .17 92/.4)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.alerts-backdrop{z-index:var(--z-modal);background:oklch(8% .01 155/.55);justify-content:flex-end;display:flex;position:fixed;inset:0}.alerts-panel{background:var(--surface);border-left:1px solid var(--border-strong);width:min(400px,100%);height:100%;box-shadow:var(--shadow-pop);animation:alerts-in .16s var(--ease);flex-direction:column;display:flex}.alerts-panel__head{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);display:flex}.alerts-panel__head h2{font-size:var(--text-md);font-weight:700}.alerts-panel__head p{font-size:var(--text-xs);color:var(--ink-faint);margin-top:4px}.alerts-form{gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.alerts-form label{font-size:var(--text-xs);color:var(--ink-muted);flex-direction:column;gap:6px;display:flex}.alerts-form select,.alerts-form input{height:var(--control-h);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--ink);font-size:var(--text-sm);padding:0 10px}.alerts-list{padding:var(--space-3);flex:1;overflow:auto}.alerts-list li{justify-content:space-between;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-2);background:var(--surface-2);padding:10px 12px;display:flex}.alerts-list li.is-hit{border-color:oklch(82% .17 92/.45)}.alerts-list li div{flex-direction:column;gap:2px;display:flex}.alerts-list strong{font-size:var(--text-sm)}.alerts-list span{font-size:var(--text-xs);color:var(--ink-muted)}.alerts-list em{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:10px;font-style:normal}.alerts-empty{text-align:center;color:var(--ink-faint);font-size:var(--text-sm);padding:var(--space-5);background:0 0!important;border:none!important}@keyframes alerts-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.interval-selector{background:var(--surface-2);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.interval-selector__tab{min-width:36px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:5px;padding:5px 10px;font-weight:500}.interval-selector__tab:hover{color:var(--ink)}.interval-selector__tab.is-active{background:var(--surface-3);color:var(--accent)}.coin-logo{object-fit:cover;border-radius:50%;flex-shrink:0}.coin-logo--fallback{font-family:var(--font-mono);letter-spacing:-.02em;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.stale-badge{font-size:var(--text-xs);color:var(--warning);background:var(--warning-bg);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-weight:500;display:inline-flex}.stale-dot{background:var(--warning);border-radius:50%;width:6px;height:6px}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);animation:skeleton-shimmer 1.3s var(--ease-out) infinite;background-size:200% 100%;display:block}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--ink-muted);flex-direction:column;display:flex}.empty-state__icon{color:var(--ink-faint);margin-bottom:var(--space-1)}.empty-state__title{color:var(--ink);font-weight:500}.empty-state__hint{font-size:var(--text-sm);max-width:38ch}.live-dot{font-size:var(--text-xs);color:var(--ink-muted);align-items:center;gap:6px;font-weight:500;display:inline-flex}.live-dot__pulse{border-radius:50%;width:7px;height:7px;position:relative}.live-dot--on{color:var(--gain)}.live-dot--on .live-dot__pulse{background:var(--gain);box-shadow:0 0 0 0 var(--gain-bg);animation:live-pulse 2s var(--ease-out) infinite}.live-dot--off{color:var(--ink-faint)}.live-dot--off .live-dot__pulse{background:var(--ink-faint)}@keyframes live-pulse{0%{box-shadow:0 0 0 0 var(--gain-bg)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid var(--border);display:flex}.panel-header__title{align-items:center;gap:var(--space-2);color:var(--ink-muted);display:flex}.panel-header__title h2{font-size:var(--text-md);color:var(--ink);font-weight:600}@media (prefers-reduced-motion:reduce){.skeleton,.live-dot--on .live-dot__pulse{animation:none}}.chart-panel{padding:var(--space-4) var(--space-4) var(--space-3);flex-direction:column;display:flex}.chart-panel__head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.chart-panel__asset{align-items:center;gap:var(--space-3);display:flex}.chart-panel__title{align-items:center;gap:var(--space-2);display:flex}.chart-panel__sym{font-size:var(--text-md);font-weight:700}.chart-panel__name{font-size:var(--text-sm);color:var(--ink-faint)}.chart-panel__price-row{align-items:baseline;gap:var(--space-2);margin-top:2px;display:flex}.chart-panel__price{font-size:var(--text-xl);font-weight:700}.chart-panel__price-tag{font-size:var(--text-xs);color:var(--ink-faint)}.chart-panel__canvas{flex:1;min-height:360px}.chart-panel__loading{padding-top:var(--space-4)}.price-tile{gap:var(--space-2);padding:var(--space-4);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-panel);transition:border-color var(--dur-fast) var(--ease-out), background var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-direction:column;display:flex}.price-tile:hover{border-color:var(--border-strong);transform:translateY(-1px)}.price-tile.is-active{border-color:var(--accent);background:var(--accent-faint)}.price-tile__head{align-items:center;gap:var(--space-2);display:flex}.price-tile__id{flex-direction:column;flex:1;min-width:0;display:flex}.price-tile__sym{font-size:var(--text-base);font-weight:700}.price-tile__name{font-size:var(--text-xs);color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.price-tile__price{font-size:var(--text-lg);border-radius:var(--radius-sm);transition:background var(--dur) var(--ease-out);font-weight:700}.price-tile__change{font-size:var(--text-sm)}.price-tile.flash-up .price-tile__price{background:var(--gain-bg)}.price-tile.flash-down .price-tile__price{background:var(--loss-bg)}@media (prefers-reduced-motion:reduce){.price-tile,.price-tile__price{transition:none}.price-tile:hover{transform:none}}.watchlist__head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.watchlist__head h2{font-size:var(--text-md);font-weight:600}.watchlist__fav-toggle{border:1px solid var(--border);height:28px;font-size:var(--text-xs);color:var(--ink-muted);border-radius:999px;margin-left:auto;padding:0 10px;font-weight:600}.watchlist__fav-toggle.is-on{background:var(--accent-dim);color:var(--accent);border-color:#0000}.watchlist__empty{font-size:var(--text-sm);color:var(--ink-faint);padding:var(--space-3) 0}.watchlist__grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.trending{padding:var(--space-4)}.trending__list{flex-direction:column;display:flex}.trending__row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);display:flex}.trending__row:hover{background:var(--surface-2)}.trending__rank{width:18px;font-size:var(--text-sm);color:var(--ink-faint);text-align:right}.trending__name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.trending__sym{font-size:var(--text-xs);color:var(--ink-faint)}.news{padding:var(--space-4)}.news__head-actions{align-items:center;gap:var(--space-2);display:flex}.news__all{font-size:var(--text-xs);color:var(--ink-muted)}.news__all:hover{color:var(--accent)}.news__list{flex-direction:column;display:flex}.news__item{gap:var(--space-1);padding:var(--space-3) var(--space-2);border-radius:var(--radius-sm);border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out);flex-direction:column;display:flex}.news__list li:last-child .news__item{border-bottom:none}a.news__item:hover{background:var(--surface-2)}.news__title{font-size:var(--text-sm);color:var(--ink);font-weight:500;line-height:1.45}.news__meta{font-size:var(--text-xs);color:var(--ink-faint);align-items:center;gap:6px;display:flex}.news__source{color:var(--ink-muted);font-weight:500}.holdings{padding:var(--space-4)}.holdings__table-wrap{overflow-x:auto}.holdings__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.holdings__table th{text-align:left;font-weight:500;font-size:var(--text-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;padding:0 var(--space-3) var(--space-2);white-space:nowrap}.holdings__table td{padding:var(--space-3);border-top:1px solid var(--border);white-space:nowrap}.holdings__table tbody tr{transition:background var(--dur-fast) var(--ease-out)}.holdings__table tbody tr:hover{background:var(--surface-2)}.holdings__asset{align-items:center;gap:var(--space-2);display:flex}.holdings__sym{font-weight:600}.holdings__muted{color:var(--ink-muted)}.holdings__trade-btn{font-size:var(--text-xs);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);padding:5px 12px;font-weight:500}.holdings__trade-btn:hover{color:var(--accent);border-color:var(--accent)}.page{gap:var(--space-5);animation:page-in var(--dur-slow) var(--ease-out);flex-direction:column;display:flex}.page-narrow{max-width:720px}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-title{font-size:var(--text-lg);font-weight:600}.page-title-row{align-items:baseline;gap:var(--space-3);display:flex}.page-subtitle{font-size:var(--text-sm);color:var(--ink-faint)}.grid-chart-trade{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.grid-holdings-side{gap:var(--space-4);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;display:grid}.stack{gap:var(--space-4);flex-direction:column;display:flex}@media (width<=1100px){.grid-chart-trade,.grid-holdings-side{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.page{animation:none}}.home-hero{gap:var(--space-5);padding-bottom:var(--space-2);grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);align-items:end;display:grid}.home-hero__brand{font-family:var(--font-display);letter-spacing:-.04em;color:var(--accent);margin-bottom:var(--space-3);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;line-height:.95}.home-hero h1{font-family:var(--font-display);letter-spacing:-.02em;max-width:18ch;margin-bottom:var(--space-3);font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:700}.home-hero__sub{max-width:42ch;color:var(--ink-muted);font-size:var(--text-md);margin-bottom:var(--space-4)}.home-hero__cta{gap:var(--space-2);flex-wrap:wrap;display:flex}.home-hero__stats{gap:var(--space-2);grid-template-columns:1fr;display:grid}.home-stat{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:oklch(17.5% .014 155/.8);flex-direction:column;gap:4px;display:flex}.home-stat span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.home-stat strong{font-size:var(--text-lg);align-items:baseline;gap:8px;font-weight:600;display:flex}.home-stat small{font-size:var(--text-xs);font-weight:500}.home-pulse__head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.home-pulse__head h2{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.home-pulse__grid{gap:var(--space-2);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.home-pulse__card{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;min-height:88px;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);flex-direction:column;gap:6px;display:flex}.home-pulse__card:hover{border-color:var(--border-strong);background:var(--surface-2)}.home-pulse__card.is-skeleton{background:linear-gradient(90deg, var(--surface), var(--surface-2), var(--surface));background-size:200% 100%;animation:1.2s infinite pulse-skel}.home-pulse__sym{font-size:var(--text-xs);letter-spacing:.04em;font-weight:700}.home-pulse__px{font-size:var(--text-sm);color:var(--ink)}.home-pulse__ch.is-up{color:var(--gain)}.home-pulse__ch.is-down{color:var(--loss)}.home-heat__grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));display:grid}.home-heat__cell{border-radius:var(--radius);border:1px solid var(--border);min-height:64px;transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;gap:4px;padding:10px;display:flex}.home-heat__cell:hover{border-color:var(--border-strong);transform:translateY(-1px)}.home-heat__cell strong{font-size:var(--text-xs);letter-spacing:.04em}.home-heat__cell span{font-size:var(--text-xs)}.home-stage{gap:var(--space-4);grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);align-items:start;display:grid}.home-side{gap:var(--space-4);flex-direction:column;display:flex}.home-movers{padding:var(--space-4)}.home-movers__head{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.home-movers__head h2{font-size:var(--text-sm);font-weight:600}.home-movers__head a{font-size:var(--text-xs);color:var(--ink-muted)}.home-movers__head a:hover{color:var(--accent)}.home-movers__cols{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.home-movers h3{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-2);font-size:10px}.home-movers li a{font-size:var(--text-sm);border-bottom:1px solid oklch(30% .014 155/.4);justify-content:space-between;gap:8px;padding:8px 0;display:flex}.home-movers li a:hover span:first-child{color:var(--accent)}@keyframes pulse-skel{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=1100px){.home-hero,.home-stage{grid-template-columns:1fr}.home-pulse__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.home-pulse__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.markets-tabs{flex-wrap:wrap;gap:4px;display:flex}.markets-tabs button{border:1px solid var(--border);height:32px;font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface);border-radius:999px;padding:0 12px;font-weight:600}.markets-tabs button.is-active{color:var(--accent-ink);background:var(--accent);border-color:#0000}.markets-star{width:28px;height:28px;color:var(--ink-faint);border-radius:6px;font-size:14px;line-height:1}.markets-star:hover,.markets-star.is-on{color:var(--accent);background:var(--accent-dim)}.markets-toolbar{align-items:center;gap:var(--space-3);display:flex}.markets-search{max-width:360px;height:var(--control-h);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);flex:1;padding:0 12px}.markets-search:focus{border-color:var(--accent);outline:none}.markets-count{font-size:var(--text-xs);color:var(--ink-faint)}.markets-table-wrap{overflow:auto}.markets-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.markets-table th{text-align:left;border-bottom:1px solid var(--border);background:var(--surface);z-index:1;padding:10px 12px;position:sticky;top:0}.markets-table th button{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.markets-table th button:hover{color:var(--ink)}.markets-table td{height:var(--row-h);color:var(--ink-muted);border-bottom:1px solid oklch(30% .014 155/.4);padding:10px 12px}.markets-table tbody tr{cursor:pointer;transition:background .12s var(--ease)}.markets-table tbody tr:hover td{background:var(--surface-2);color:var(--ink)}.markets-asset{align-items:center;gap:10px;display:flex}.markets-asset strong{color:var(--ink);font-size:var(--text-sm);display:block}.markets-asset span{font-size:var(--text-xs);color:var(--ink-faint);display:block}.markets-empty{padding:var(--space-5);text-align:center;color:var(--ink-faint)}.flash-up td:nth-child(2){animation:.16s flash-gain}.flash-down td:nth-child(2){animation:.16s flash-loss}@keyframes flash-gain{0%{background:var(--gain-bg)}}@keyframes flash-loss{0%{background:var(--loss-bg)}}@media (width<=860px){.markets-hide-sm{display:none}}.asset-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.asset-id{gap:var(--space-3);align-items:center;display:flex}.asset-id__row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.asset-id__row h1{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.asset-id__row span{color:var(--ink-muted);font-size:var(--text-sm)}.asset-price{align-items:baseline;gap:10px;margin-top:4px;display:flex}.asset-price strong{font-size:var(--text-lg)}.asset-actions{gap:var(--space-2);display:flex}.asset-metrics{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.asset-metrics>div{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:4px;display:flex}.asset-metrics span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.asset-metrics strong{font-size:var(--text-md)}@media (width<=640px){.asset-metrics{grid-template-columns:1fr}}.trade-panel{padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.trade-tabs{background:var(--surface-2);border-radius:var(--radius-sm);grid-template-columns:repeat(3,1fr);gap:2px;padding:3px;display:grid}.trade-tab{font-weight:600;font-size:var(--text-sm);color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:6px;padding:8px}.trade-tab:hover{color:var(--ink)}.trade-tab.is-active{background:var(--surface-3);color:var(--ink)}.trade-tab.is-active.is-buy{color:var(--gain)}.trade-tab.is-active.is-sell{color:var(--loss)}.trade-tab.is-active.is-swap{color:var(--accent)}.trade-body{gap:var(--space-4);flex-direction:column;display:flex}.trade-field{gap:var(--space-2);flex-direction:column;display:flex}.trade-field__label{font-size:var(--text-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.trade-select{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);height:46px;display:flex}.trade-select select{min-width:0;color:var(--ink);font-size:var(--text-base);cursor:pointer;appearance:none;background:0 0;border:none;outline:none;flex:1;font-weight:500}.trade-select select option{background:var(--surface-2);color:var(--ink)}.trade-select__price{font-size:var(--text-sm);color:var(--ink-muted)}.trade-input{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);height:46px;transition:border-color var(--dur-fast) var(--ease-out);display:flex}.trade-input:focus-within{border-color:var(--accent)}.trade-input__prefix{font-size:var(--text-sm);color:var(--ink-faint);font-family:var(--font-mono)}.trade-input input{min-width:0;color:var(--ink);font-size:var(--text-md);text-align:right;background:0 0;border:none;outline:none;flex:1;font-weight:600}.trade-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.trade-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.trade-input input[type=number]{appearance:textfield}.trade-presets{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.trade-preset{font-size:var(--text-xs);font-weight:500;font-family:var(--font-mono);color:var(--ink-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);padding:6px}.trade-preset:hover{color:var(--accent);border-color:var(--accent)}.trade-summary{gap:var(--space-2);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-sm);flex-direction:column;display:flex}.trade-summary__row{font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.trade-summary__row--muted{color:var(--ink-muted)}.trade-feedback{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.trade-feedback.is-ok{color:var(--gain);background:var(--gain-bg)}.trade-feedback.is-err{color:var(--loss);background:var(--loss-bg)}.trade-submit{border-radius:var(--radius);height:48px;font-weight:600;font-size:var(--text-base);color:var(--accent-ink);transition:filter var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out)}.trade-submit:hover:not(:disabled){filter:brightness(1.08)}.trade-submit:disabled{opacity:.45;cursor:not-allowed}.trade-submit--buy{background:var(--gain)}.trade-submit--sell{background:var(--loss)}.trade-submit--swap{background:var(--accent)}.trade-order-type{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.trade-order-type button{height:30px;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);border-radius:6px;font-weight:600}.trade-order-type button.is-active{background:var(--accent-dim);color:var(--accent)}.trade-tpsl{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.trade-tpsl label{flex-direction:column;gap:6px;display:flex}.trade-tpsl span{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.trade-tpsl input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);height:34px;color:var(--ink);font-size:var(--text-sm);padding:0 10px}.trade-disclaimer{text-align:center;color:var(--ink-faint);letter-spacing:.02em;font-size:10px}.depth{padding:var(--space-3);flex-direction:column;gap:4px;min-height:280px;display:flex}.depth__head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.depth__head h2{font-size:var(--text-sm);font-weight:600}.depth__head span{font-size:var(--text-xs);color:var(--ink-faint)}.depth__cols{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);grid-template-columns:1fr 1fr;padding:4px 6px;font-size:10px;display:grid}.depth__row{font-size:var(--text-xs);isolation:isolate;grid-template-columns:1fr 1fr;padding:3px 6px;display:grid;position:relative}.depth__bar{opacity:.18;z-index:-1;pointer-events:none;position:absolute;inset:0 auto 0 0}.depth__row.is-ask .depth__bar{background:var(--loss);left:auto;right:0}.depth__row.is-bid .depth__bar{background:var(--gain)}.depth__row.is-ask .depth__px{color:var(--loss)}.depth__row.is-bid .depth__px{color:var(--gain)}.depth__qty{color:var(--ink-muted)}.depth__spread{border-block:1px solid var(--border);font-size:var(--text-xs);color:var(--ink-faint);justify-content:space-between;align-items:center;margin:2px 0;padding:8px 6px;display:flex}.tape{padding:var(--space-3);flex-direction:column;min-height:280px;display:flex}.tape__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.tape__head h2{font-size:var(--text-sm);font-weight:600}.tape__head span{font-size:var(--text-xs);color:var(--ink-faint)}.tape__cols{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);grid-template-columns:1.1fr .9fr .9fr;padding:4px;font-size:10px;display:grid}.tape__list{max-height:320px;overflow:auto}.tape__list li{font-size:var(--text-xs);color:var(--ink-muted);grid-template-columns:1.1fr .9fr .9fr;padding:4px;display:grid}.tape__list li.is-buy .tape__px{color:var(--gain)}.tape__list li.is-sell .tape__px{color:var(--loss)}.tape__time{color:var(--ink-faint)}.symbol-bar{gap:var(--space-2);scrollbar-width:thin;padding-bottom:2px;display:flex;overflow-x:auto}.symbol-chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;min-width:128px;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);flex:none;grid-template-rows:auto auto;grid-template-columns:auto auto;gap:2px 10px;padding:8px 12px;display:grid}.symbol-chip__sym{font-size:var(--text-xs);letter-spacing:.04em;grid-column:1;font-weight:700}.symbol-chip__px{font-size:var(--text-sm);color:var(--ink);grid-column:1}.symbol-chip__ch{font-size:var(--text-xs);grid-area:1/2/span 2;align-self:center}.symbol-chip:hover{border-color:var(--border-strong);background:var(--surface-2)}.symbol-chip.is-active{background:var(--accent-dim);border-color:oklch(82% .17 92/.55)}.symbol-chip.is-fav .symbol-chip__sym:after{content:" ★";color:var(--accent);font-size:9px}.trade-terminal{gap:var(--space-3);grid-template-columns:minmax(0,1.5fr) minmax(200px,.55fr) minmax(200px,.55fr) minmax(280px,.7fr);grid-template-areas:"chart book tape ticket";align-items:stretch;display:grid}.trade-terminal__chart{grid-area:chart;min-width:0}.trade-terminal__book{grid-area:book;min-width:0}.trade-terminal__tape{grid-area:tape;min-width:0}.trade-terminal__ticket{grid-area:ticket;min-width:0}@media (width<=1280px){.trade-terminal{grid-template-columns:minmax(0,1.4fr) minmax(240px,.7fr) minmax(280px,.8fr);grid-template-areas:"chart book ticket""chart tape ticket"}}@media (width<=960px){.trade-terminal{grid-template-columns:1fr;grid-template-areas:"chart""ticket""book""tape"}}.portfolio-summary{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.portfolio-summary__main{gap:var(--space-1);flex-direction:column;display:flex}.portfolio-summary__label{font-size:var(--text-sm);color:var(--ink-muted)}.portfolio-summary__value{font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700;line-height:1.1}.portfolio-summary__pnl{font-size:var(--text-base);margin-top:var(--space-1)}.portfolio-summary__base{font-size:var(--text-xs);color:var(--ink-faint)}.portfolio-summary__stats{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.portfolio-summary__stat{flex-direction:column;gap:2px;display:flex}.portfolio-summary__stat-label{font-size:var(--text-xs);color:var(--ink-faint)}.portfolio-summary__stat-value{font-size:var(--text-md);font-weight:600}.portfolio-summary__bar{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.portfolio-summary__bar-fill{background:var(--accent);height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:999px}.allocation{padding:var(--space-4)}.allocation h2{font-size:var(--text-sm);margin-bottom:var(--space-4);font-weight:600}.allocation__empty{color:var(--ink-faint);font-size:var(--text-sm)}.allocation__body{gap:var(--space-5);grid-template-columns:160px minmax(0,1fr);align-items:center;display:grid}.allocation__donut{border-radius:50%;place-items:center;width:148px;height:148px;display:grid}.allocation__hole{background:var(--surface);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:92px;height:92px;display:flex}.allocation__hole span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.allocation__hole strong{font-size:var(--text-sm)}.allocation__legend{flex-direction:column;gap:10px;display:flex}.allocation__legend li{grid-template-rows:auto auto;grid-template-columns:10px 56px 64px 1fr;align-items:center;gap:4px 8px;display:grid}.allocation__swatch{border-radius:2px;grid-row:1;width:8px;height:8px}.allocation__name{font-size:var(--text-sm);font-weight:600}.allocation__pct{font-size:var(--text-xs);color:var(--ink-muted)}.allocation__val{font-size:var(--text-xs);color:var(--ink-faint);text-align:right}.allocation__bar{background:var(--surface-3);border-radius:999px;grid-column:2/-1;height:4px;overflow:hidden}.allocation__bar i{border-radius:inherit;height:100%;display:block}@media (width<=720px){.allocation__body{grid-template-columns:1fr;justify-items:center}.allocation__legend{width:100%}}.history{padding:var(--space-4)}.history__table-wrap{overflow-x:auto}.history__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.history__table th{text-align:left;font-weight:500;font-size:var(--text-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;padding:0 var(--space-3) var(--space-2);white-space:nowrap}.history__table td{padding:var(--space-3);border-top:1px solid var(--border);white-space:nowrap}.history__table tbody tr:hover{background:var(--surface-2)}.history__side{font-size:var(--text-xs);border-radius:999px;padding:2px 10px;font-weight:600;display:inline-block}.history__side--buy{color:var(--gain);background:var(--gain-bg)}.history__side--sell{color:var(--loss);background:var(--loss-bg)}.history__side--swap{color:var(--accent);background:var(--accent-faint)}.history__asset{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.history__swap-to{color:var(--ink-faint);font-weight:400}.history__date{color:var(--ink-muted)}.portfolio-grid{gap:var(--space-4);grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr);align-items:start;display:grid}.portfolio-session{padding:var(--space-4)}.portfolio-session h2{font-size:var(--text-sm);margin-bottom:var(--space-4);font-weight:600}.portfolio-session dl{gap:var(--space-3);flex-direction:column;display:flex}.portfolio-session dl>div{justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid oklch(30% .014 155/.45);display:flex}.portfolio-session dt{font-size:var(--text-xs);color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase}.portfolio-session dd{font-size:var(--text-sm);color:var(--ink);text-align:right}@media (width<=900px){.portfolio-grid{grid-template-columns:1fr}}.history-toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.history-filters{gap:4px;display:flex}.history-filters button{border:1px solid var(--border);height:32px;font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface);border-radius:999px;padding:0 12px;font-weight:600}.history-filters button.is-active{background:var(--accent);color:var(--accent-ink);border-color:#0000}.history-search{height:var(--control-h);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);min-width:180px;padding:0 12px}.news-index{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.news-index__card{padding:var(--space-4);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);flex-direction:column;gap:8px;display:flex}.news-index__card:hover{border-color:var(--border-strong);background:var(--surface-2)}.news-index__card h2{font-size:var(--text-md);color:var(--ink);font-weight:600;line-height:1.35}.news-index__meta{font-size:var(--text-xs);color:var(--ink-faint)}.news-index__excerpt{font-size:var(--text-sm);color:var(--ink-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.news-index__tags{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.news-index__tags span{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:10px}.news-detail__back{font-size:var(--text-sm);color:var(--ink-muted);width:fit-content}.news-detail__back:hover{color:var(--accent)}.page-news-detail{max-width:860px}.news-detail{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.news-detail__tags{margin-bottom:var(--space-3);flex-wrap:wrap;gap:6px;display:flex}.news-detail__tags span{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);color:var(--ink-muted);background:var(--surface-2);border-radius:999px;padding:3px 8px;font-size:10px}.news-detail__head h1{font-family:var(--font-display);letter-spacing:-.02em;max-width:28ch;font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:700;line-height:1.25}.news-detail__meta{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--ink-faint);flex-wrap:wrap;gap:8px;display:flex}.news-detail__media{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);max-height:320px;overflow:hidden}.news-detail__media img{object-fit:cover;width:100%;height:280px}.news-detail__body{gap:var(--space-4);font-size:var(--text-md);color:var(--ink-muted);flex-direction:column;max-width:62ch;line-height:1.65;display:flex}.news-detail__body p:first-child{color:var(--ink);font-size:var(--text-md)}.news-detail__ext{align-self:flex-start}.news-detail__related{padding:var(--space-4)}.news-detail__related h2{font-size:var(--text-sm);margin-bottom:var(--space-3);font-weight:600}.news-detail__related li{border-bottom:1px solid oklch(30% .014 155/.4);flex-direction:column;gap:4px;padding:10px 0;display:flex}.news-detail__related li:last-child{border-bottom:none}.news-detail__related a{font-size:var(--text-sm);color:var(--ink);font-weight:500}.news-detail__related a:hover{color:var(--accent)}.news-detail__related span{font-size:var(--text-xs);color:var(--ink-faint)}.settings-card{padding:var(--space-4) var(--space-5) var(--space-5)}.settings-field{gap:var(--space-2);flex-direction:column;display:flex}.settings-field.settings-toggle{flex-direction:row;justify-content:space-between;align-items:center}.settings-theme{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);grid-template-columns:1fr 1fr;gap:4px;max-width:280px;padding:4px;display:grid}.settings-theme button{height:36px;font-size:var(--text-sm);color:var(--ink-muted);border-radius:6px;font-weight:600}.settings-theme button.is-active{background:var(--accent);color:var(--accent-ink)}.settings-field__label{font-size:var(--text-sm);color:var(--ink-muted);font-weight:500}.settings-row{gap:var(--space-2);display:flex}.settings-input{height:42px;padding:0 var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out);outline:none;flex:1}.settings-input:focus{border-color:var(--accent)}.settings-hint{font-size:var(--text-xs);color:var(--ink-faint)}.settings-text{font-size:var(--text-sm);color:var(--ink-muted);max-width:60ch;line-height:1.6}.settings-confirm{gap:var(--space-3);padding:var(--space-3);background:var(--loss-bg);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--ink);flex-direction:column;display:flex}.btn-primary{padding:0 var(--space-4);background:var(--accent);height:42px;color:var(--accent-ink);border-radius:var(--radius-sm);transition:filter var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{padding:0 var(--space-4);height:40px;color:var(--ink-muted);border-radius:var(--radius-sm);font-weight:500}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{padding:0 var(--space-4);background:var(--loss);height:40px;color:var(--ink);border-radius:var(--radius-sm);font-weight:600}.btn-danger:hover{filter:brightness(1.08)}.btn-danger-outline{padding:0 var(--space-4);height:42px;color:var(--loss);border:1px solid var(--loss);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out);align-self:flex-start;font-weight:500}.btn-danger-outline:hover{background:var(--loss-bg)}.app-shell{flex-direction:column;height:100%;min-height:100%;display:flex}.app-body{flex:1;min-height:0;display:flex}.app-main{background:radial-gradient(900px 420px at 12% -10%, oklch(82% .17 92/.08), transparent 55%), radial-gradient(700px 360px at 100% 0%, oklch(55% .06 250/.06), transparent 50%), var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}[data-theme=light] .app-main{background:radial-gradient(900px 420px at 12% -10%, oklch(82% .17 92/.1), transparent 55%), radial-gradient(700px 360px at 100% 0%, oklch(70% .04 250/.08), transparent 50%), var(--bg)}.app-content{min-height:0;padding:var(--space-5);flex:1;width:100%;overflow:auto}.app-shell.is-rail .hx-sidebar{width:var(--sidebar-collapsed)}.btn{height:var(--control-h);border-radius:var(--radius);font-size:var(--text-sm);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), opacity var(--dur) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-sm{height:32px;font-size:var(--text-xs);padding:0 10px}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{border-color:var(--border);color:var(--ink-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:var(--border-strong)}.btn-buy{background:var(--gain);color:var(--accent-ink)}.btn-sell{background:var(--loss);color:oklch(98% .01 25)}.hx-icon-btn{width:36px;padding:0}@media (width<=900px){.app-content{padding:var(--space-4) var(--space-3);padding-bottom:calc(var(--space-4) + 8px)}}:root,[data-theme=dark]{--bg:oklch(14% .012 155);--surface:oklch(17.5% .014 155);--surface-1:oklch(16% .013 155);--surface-2:oklch(21% .015 155);--surface-3:oklch(25% .016 155);--border:oklch(30% .014 155);--border-strong:oklch(38% .016 155);--ink:oklch(96% .008 100);--ink-muted:oklch(72% .012 155);--ink-faint:oklch(55% .012 155);--accent:oklch(82% .17 92);--accent-hover:oklch(87% .16 92);--accent-press:oklch(74% .16 92);--accent-ink:oklch(18% .02 92);--accent-faint:oklch(82% .17 92/.12);--accent-dim:oklch(82% .17 92/.16);--gain:oklch(76% .17 160);--gain-bg:oklch(76% .17 160/.12);--loss:oklch(65% .2 25);--loss-bg:oklch(65% .2 25/.14);--warning:oklch(82% .17 92);--warning-bg:oklch(82% .17 92/.12);--info:var(--accent);--font-display:"Syne", system-ui, sans-serif;--font-ui:"Manrope", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.8125rem;--text-md:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:4px;--radius:8px;--radius-lg:12px;--shadow-panel:0 1px 0 oklch(100% 0 0/.04) inset;--shadow-pop:0 12px 40px oklch(0% 0 0/.45);--focus-ring:var(--accent);--z-dropdown:100;--z-sticky:200;--z-backdrop:300;--z-modal:310;--z-toast:400;--z-tooltip:500;--sidebar-w:220px;--sidebar-collapsed:64px;--sidebar-w-rail:64px;--header-h:52px;--status-h:28px;--ticker-h:36px;--dock-h:200px;--row-h:42px;--control-h:36px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.26s}[data-theme=light]{--bg:oklch(97% .008 95);--surface:oklch(100% .004 95);--surface-1:oklch(98.5% .006 95);--surface-2:oklch(95% .01 95);--surface-3:oklch(92% .012 95);--border:oklch(86% .012 95);--border-strong:oklch(78% .014 95);--ink:oklch(22% .02 95);--ink-muted:oklch(42% .02 95);--ink-faint:oklch(55% .015 95);--accent:oklch(78% .16 92);--accent-hover:oklch(74% .16 92);--accent-press:oklch(70% .15 92);--accent-ink:oklch(18% .02 92);--accent-faint:oklch(78% .16 92/.14);--accent-dim:oklch(78% .16 92/.18);--gain:oklch(58% .15 155);--gain-bg:oklch(58% .15 155/.12);--loss:oklch(55% .19 25);--loss-bg:oklch(55% .19 25/.12);--warning:oklch(72% .15 85);--warning-bg:oklch(72% .15 85/.14);--shadow-panel:0 1px 0 oklch(100% 0 0/.6) inset;--shadow-pop:0 12px 40px oklch(40% .02 95/.18)}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;font-weight:600;line-height:1.2}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input{color:inherit;font-family:inherit}ul{padding:0;list-style:none}img{max-width:100%;display:block}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:999px}.gain{color:var(--gain)}.loss{color:var(--loss)}.ta-r{text-align:right}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-panel)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
