:root{color-scheme:light;--font-menu: 14px;--font-main-title: 24px;--font-sub-title: 18px;--font-field-label: 13px;--font-button: 14px;--font-content: 14px;--font-list: 14px;--font-input: 14px;--font-small: 12px;--color-sidebar-bg: #FFFFFF;--color-sidebar-text: #334155;--color-sidebar-active-bg: #EAF2FF;--color-sidebar-active-text: #1D4ED8;--color-page-bg: #F8FAFC;--color-content-bg: #FFFFFF;--color-border: #E2E8F0;--color-text-main: #0F172A;--color-text-sub: #475569;--color-text-muted: #94A3B8;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-success: #16A34A;--color-danger: #DC2626;--color-warning: #F59E0B;--color-info: #0284C7;--color-stock-up: #DC2626;--color-stock-down: #2563EB;--color-stock-flat: #64748B;--bg: var(--color-page-bg);--panel: var(--color-content-bg);--panel-soft: rgba(255, 255, 255, .72);--text: var(--color-text-main);--muted: var(--color-text-sub);--line: var(--color-border);--accent: var(--color-primary);--accent-dark: var(--color-primary-hover);--danger: var(--color-danger);--success-bg: #e9f8ef;--success-text: var(--color-success);--shadow: 0 24px 80px rgba(23, 32, 51, .12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,rgba(25,118,210,.12),transparent 34%),linear-gradient(315deg,rgba(16,185,129,.1),transparent 30%),var(--bg);color:var(--text);font-family:Instrument Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.72}:root{--admin-page-padding-y: 32px;--admin-page-padding-x: 44px;--admin-card-gap: 22px;--admin-card-padding: 24px}.home-shell{min-height:100vh;position:relative}.top-action{position:fixed;top:22px;right:24px;z-index:20}.login-icon-button{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:1px solid rgba(23,32,51,.12);border-radius:8px;background:#ffffffe0;color:var(--text);padding:0 14px;font-size:16px;font-weight:800;box-shadow:0 8px 28px #1720331a}.login-icon-button svg{width:18px;height:18px}.home-main{min-height:100vh;display:flex;align-items:center;padding:80px clamp(24px,8vw,112px)}.company-page{display:flex;flex-direction:column;width:100%;gap:20px;padding:4px 2px 28px}.company-page-head{display:flex;align-items:end;justify-content:space-between;gap:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-content-bg);padding:18px 20px}.company-page-head h1{margin:0;font-size:24px}.company-page-head p,.company-page-head span,.company-live-strip span,.trend-summary span{color:var(--color-text-sub);font-size:14px}.company-page-head label{min-width:min(420px,100%)}.company-live-strip,.trend-summary,.company-message-panel,.company-left,.company-right{border:1px solid var(--color-border);border-radius:8px;background:var(--color-content-bg)}.company-live-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:1px;overflow:hidden}.company-live-strip div,.trend-summary div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:#fff}.company-layout{display:grid;grid-template-columns:minmax(360px,4fr) minmax(0,6fr);gap:20px;align-items:stretch}.company-left,.company-right{display:flex;flex-direction:column;min-width:0;min-height:760px;overflow:hidden}.company-left,.company-right{align-self:start;height:532px;min-height:532px}.company-left .company-section{flex:1 1 auto;min-height:0;overflow:auto}.company-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);padding:10px 12px;background:#f8fafc}.company-tabs button{border:1px solid transparent;border-radius:6px;background:transparent;padding:7px 12px;font-size:14px}.company-tabs button.active{border-color:var(--color-border);background:#fff;color:var(--color-primary);font-weight:700}.company-section{padding:20px}.company-section h2,.company-message-panel h2,.company-panel-title{margin:0 0 12px;font-size:18px}.company-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px}.company-section .company-section-title-row h2{margin:0}.company-icon-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;border:1px solid var(--color-border);border-radius:6px;background:#fff;color:var(--color-text-main);cursor:pointer}.company-icon-action-button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.company-icon-action-button:disabled{color:var(--color-text-sub);cursor:not-allowed;opacity:.55}.company-icon-action-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.company-section h2+h2,.company-section dl+h2,.company-section p+h2,.company-section .company-table-wrap+h2,.company-section .company-chart-grid+h2{margin-top:22px}.company-page .company-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 18px}.company-page .company-info-grid div{display:block;min-width:0;border:1px solid var(--color-border);border-radius:6px;padding:10px}.company-page .company-info-grid dt{margin-bottom:4px;color:var(--color-text-sub);font-size:13px}.company-page .company-info-grid dd{margin:0;overflow-wrap:anywhere;font-size:14px}.company-page .company-score-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.company-table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:8px}.company-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.company-table th,.company-table td{border-bottom:1px solid var(--color-border);padding:8px 10px;text-align:right}.company-table th:first-child,.company-table td:first-child{text-align:left}.company-table th{background:#f8fafc;color:var(--color-text-sub)}.company-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.company-chart-grid div{min-height:230px;border:1px solid var(--color-border);border-radius:8px;padding:10px}.company-chart-legend{display:flex;align-items:center;gap:14px;color:var(--color-text-sub);font-size:12px;font-weight:800}.company-chart-legend span{display:inline-flex;align-items:center;gap:6px}.company-chart-legend i{display:inline-block;width:18px;height:3px;border-radius:999px}.company-chart-legend .ma5,.company-chart-legend .ma3{background:#ef4444}.company-chart-legend .ma20,.company-chart-legend .ma6{background:#2563eb}.company-chart-legend .ma60,.company-chart-legend .ma12{background:#16a34a}.company-chart-grid div{height:250px;overflow:hidden}.company-chart-grid canvas{width:100%;height:190px!important}.company-chart-empty{display:flex;min-height:320px;align-items:center;justify-content:center;color:var(--color-text-sub);font-size:14px}.company-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.company-timeframe-tabs{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:3px}.company-timeframe-tabs button{min-width:48px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--color-text-sub);font-size:12px;font-weight:800;cursor:pointer}.company-timeframe-tabs button.active{background:#fff;color:var(--color-primary);box-shadow:0 1px 3px #0f172a1a}.strategy-table tr.highlight td{background:#fff7ed}.company-timeframe-summary{display:flex;min-width:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 12px;color:var(--color-text-sub);font-size:12px;font-weight:800}.company-timeframe-summary strong{color:var(--color-text-main)}.company-chart-note{margin:0 0 8px;color:#d97706;font-size:12px;font-weight:800}.company-chart-bars{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-sub);font-size:12px;font-weight:800;white-space:nowrap}.company-chart-bars select{height:28px;border:1px solid var(--color-border);border-radius:6px;background:#fff;color:var(--color-text-main);font-size:12px;font-weight:800}.company-chart-hover-data{display:grid;grid-template-rows:repeat(2,20px);gap:2px;height:56px;margin-bottom:8px;border:1px solid var(--color-border);border-radius:6px;background:#f8fafc;padding:6px 10px;color:var(--color-text-main);font-size:12px}.company-chart-hover-data div{display:flex;min-width:0;align-items:center;gap:14px;overflow:hidden}.company-chart-hover-data strong{flex:0 0 auto;color:var(--color-primary);font-size:12px}.company-chart-hover-data span{flex:0 0 auto;white-space:nowrap}.company-analysis-list{display:grid;gap:10px}.company-analysis-list article{border:1px solid var(--color-border);border-radius:8px;padding:12px}.company-analysis-list h3{margin:0 0 6px;font-size:14px}.company-analysis-list p,.company-message-panel li{margin:0;font-size:14px}.trend-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 16px 16px;overflow:hidden}.trend-summary p{grid-column:1 / -1;margin:0;border-top:1px solid var(--color-border);padding:8px 12px;font-size:13px}.trend-summary div{padding:9px 12px}.company-panel-title{padding:18px 18px 0}.company-right .company-panel-title{margin-bottom:8px;padding:12px 14px 0;font-size:16px}.company-right .company-tabs{padding:7px 10px}.company-right .company-tabs button{padding:5px 9px;font-size:12px}.company-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px 16px}.company-pagination button{height:32px;border:1px solid var(--color-border);border-radius:6px;background:#fff;color:var(--color-text-main);padding:0 12px;font-weight:800}.company-pagination button:disabled{color:var(--color-text-sub);cursor:not-allowed;opacity:.55}.company-pagination span{color:var(--color-text-sub);font-size:13px;font-weight:800}.trend-table-wrap{margin:16px}.company-right .trend-table-wrap{flex:1 1 auto;min-height:0;margin:10px}.company-trend-chart{display:flex;flex:1;flex-direction:column;margin:16px;border:1px solid var(--color-border);border-radius:8px;padding:10px;min-height:0}.company-right .trend-summary{margin:0 10px 10px}.company-right .trend-summary div{padding:6px 10px}.company-right .trend-summary p{overflow:hidden;padding:6px 10px;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.company-right .company-trend-chart{flex:1 1 auto;margin:10px;min-height:0;overflow:hidden;padding:8px}.company-right .company-chart-toolbar{margin-bottom:6px}.company-right .company-chart-hover-data{grid-template-rows:repeat(2,18px);height:46px;margin-bottom:6px;padding:4px 8px}.company-candle-chart{position:relative;width:100%;flex:1;min-height:400px}.company-right .company-candle-chart{flex:1 1 auto;height:220px;min-height:220px}.company-candle-chart>div{height:100%!important}.company-candle-chart a[href*=tradingview],.company-candle-chart [title*=TradingView],.company-candle-chart [aria-label*=TradingView]{display:none!important}.company-chart-scrollbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding-top:8px;color:var(--color-text-sub);font-size:12px;font-weight:800}.company-right .company-chart-scrollbar{padding-top:6px}.company-chart-scrollbar input{width:100%;accent-color:#111827}.company-chart-scrollbar input:disabled{opacity:.45}.company-message-panel{padding:18px 20px}.company-message-panel ul{display:grid;max-height:220px;overflow:auto;gap:6px;margin:0;padding:0;list-style:none}.company-message-panel li{display:flex;gap:10px;border-left:3px solid var(--color-info);background:#f8fafc;padding:8px 10px}.company-message-panel li.error{border-left-color:var(--color-danger)}.company-message-panel li.ai{border-left-color:var(--color-success)}.company-message-panel time{color:var(--color-text-muted);font-size:13px}.company-breadcrumb{margin:0 0 8px;color:var(--color-text-sub);font-size:13px;font-weight:800}.company-overview-card,.company-collection-strip,.company-main-panel,.company-side-card{border:1px solid var(--color-border);border-radius:8px;background:var(--color-content-bg);box-shadow:0 10px 34px #0f172a0a}.company-overview-card{display:grid;grid-template-columns:minmax(280px,1.3fr) minmax(0,3fr) 132px;align-items:center;gap:18px;padding:18px 20px}.company-identity{display:flex;min-width:0;align-items:center;gap:14px}.company-identity-content{display:grid;min-width:0;gap:6px}.company-logo-mark{display:grid;width:52px;height:52px;flex:0 0 auto;place-items:center;border-radius:999px;background:#eaf2ff;color:var(--color-primary);font-size:22px;font-weight:900}.company-title-row{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:8px}.company-title-row h2{max-width:100%;margin:0;overflow:hidden;font-size:22px;text-overflow:ellipsis;white-space:nowrap}.company-title-row span,.company-identity p{color:var(--color-text-sub);font-size:13px;font-weight:800}.company-title-row b{flex:0 0 auto;border:1px solid currentColor;border-radius:999px;padding:3px 8px;background:#fff;font-size:11px;line-height:1.2;white-space:nowrap}.company-identity p{margin:0}.company-stock-select{width:min(360px,100%);height:34px;margin-top:2px;font-size:13px}.company-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border-left:1px solid var(--color-border)}.company-kpi-item{min-width:0;padding:6px 16px;text-align:center}.company-kpi-item+.company-kpi-item{border-left:1px solid var(--color-border)}.company-kpi-item span,.company-kpi-item small,.company-collection-item span,.company-collection-item small,.company-metric-card span,.company-score-hero span,.company-side-card dt{color:var(--color-text-sub);font-size:12px;font-weight:800}.company-kpi-item strong,.company-metric-card strong{display:block;margin-top:4px;overflow:hidden;color:var(--color-text-main);font-size:16px;text-overflow:ellipsis;white-space:pre-line}.company-kpi-item small{display:block;margin-top:3px}.company-collection-ring{position:relative;display:grid;grid-template-rows:24px 14px 13px;align-content:center;width:112px;height:112px;justify-items:center;border-radius:999px}.company-collection-ring:before{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:inherit;background:#fff;content:""}.company-collection-ring strong,.company-collection-ring span,.company-collection-ring small{position:relative;z-index:1;line-height:1}.company-collection-ring strong{color:var(--color-primary);font-size:18px;line-height:1}.company-collection-ring span,.company-collection-ring small{color:var(--color-text-sub);font-size:9px;font-weight:800}.company-collection-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:14px}.company-collection-item{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:10px 12px}.company-collection-item small{grid-column:1 / -1}.status-completed,.quality-pass,.position-accumulate{color:var(--color-success)}.status-collecting,.position-hold{color:var(--color-primary)}.status-failed,.quality-fail,.position-exit{color:var(--color-danger)}.status-missing,.quality-unknown,.position-wait{color:var(--color-stock-flat)}.quality-warning,.position-reduce{color:var(--color-warning)}.company-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.company-main-panel{min-width:0;overflow:hidden}.company-side-panel{display:grid;gap:14px;min-width:0}.company-tabs{overflow-x:auto;gap:8px;padding:12px 14px 0;background:#fff}.company-tabs button{min-height:40px;border-radius:0;border-bottom:2px solid transparent;white-space:nowrap}.company-tabs button.active{border-color:transparent transparent var(--color-primary);box-shadow:none}.company-section{min-height:560px;padding:18px}.company-card-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}.company-detail-card,.company-table-grid article,.company-chart-panel{min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:16px}.company-detail-card h2,.company-table-grid h2,.company-side-card h2,.company-section h2{margin:0 0 12px;font-size:16px}.company-page .company-info-grid.single{grid-template-columns:1fr}.company-page .company-info-grid div{background:#fff}.company-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.company-metric-grid.position{grid-template-columns:repeat(6,minmax(0,1fr))}.company-metric-grid.quality-score-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.company-metric-card{min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:14px}.company-metric-card small{display:block;margin-top:4px;color:var(--color-text-sub);font-size:12px}.company-table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.company-position-fill,.company-side-progress{display:grid;gap:8px;margin-bottom:18px;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:14px}.company-position-fill div{display:flex;align-items:center;justify-content:space-between}.company-position-fill span{color:var(--color-text-sub);font-size:13px;font-weight:800}.company-position-fill progress,.company-side-progress progress{width:100%;height:10px;overflow:hidden;border:0;border-radius:999px;accent-color:var(--color-primary)}.company-position-fill small{color:var(--color-text-sub);font-size:12px;font-weight:800}.company-fill-track,.score-bar-track{overflow:hidden;width:100%;border-radius:999px;background:#e2e8f0}.company-fill-track{height:12px}.company-fill-track span,.score-bar-track i{display:block;height:100%;border-radius:inherit}.company-score-hero{display:grid;grid-template-columns:160px 160px minmax(0,1fr);gap:12px;margin-bottom:18px}.company-score-hero div,.company-score-hero p,.company-ai-summary article{min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:16px}.company-score-hero strong{display:block;margin-top:6px;font-size:28px}.company-score-hero small{color:var(--color-text-sub);font-size:12px;font-weight:800}.company-score-hero p{margin:0;color:var(--color-text-sub);font-size:14px;line-height:1.6}.company-score-hero.quality p{grid-column:2 / -1}.trend-breakdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.trend-breakdown-grid article{min-width:0;border:1px solid var(--color-border);border-radius:8px;padding:12px}.trend-breakdown-grid span{display:block;color:var(--color-text-sub);font-size:12px;font-weight:800}.trend-breakdown-grid strong{display:block;margin-top:6px;font-size:18px}.trend-breakdown-grid.score-bars article{display:grid;gap:8px}.score-bar-track{height:9px}.score-strong,.score-bar-track .score-strong,.fill-rate-open,.company-fill-track .fill-rate-open,.investment-available,.autotrade-registered,.quality-reason-pass{color:var(--color-success)}.score-bar-track .score-strong,.company-fill-track .fill-rate-open{background:var(--color-success)}.score-normal,.score-bar-track .score-normal,.fill-rate-balanced,.company-fill-track .fill-rate-balanced,.investment-watch{color:var(--color-primary)}.score-bar-track .score-normal,.company-fill-track .fill-rate-balanced{background:var(--color-primary)}.score-weak,.score-bar-track .score-weak,.fill-rate-warning,.company-fill-track .fill-rate-warning,.investment-review{color:var(--color-warning)}.score-bar-track .score-weak,.company-fill-track .fill-rate-warning{background:var(--color-warning)}.score-negative,.score-bar-track .score-negative,.fill-rate-danger,.company-fill-track .fill-rate-danger,.quality-reason-risk{color:var(--color-danger)}.score-bar-track .score-negative,.company-fill-track .fill-rate-danger{background:var(--color-danger)}.autotrade-unregistered{color:var(--color-stock-flat)}.company-chart-insight-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;margin:18px 0}.company-chart-insight-grid article,.trend-score-history-wrap{border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:14px}.trend-score-sparkline{display:flex;height:130px;align-items:end;gap:3px;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:10px}.trend-score-sparkline span{flex:1 1 0;min-width:3px;border-radius:999px 999px 0 0;background:var(--color-primary)}.trend-score-sparkline span.placeholder{background:transparent}.position-state-flow{display:grid;gap:0;margin:0;padding:0;list-style:none}.position-state-flow li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border-bottom:1px solid var(--color-border);padding:8px 0 8px 18px}.position-state-flow li:before{position:absolute;left:2px;width:7px;height:7px;border-radius:999px;background:var(--color-primary);content:""}.position-state-flow li+li:after{position:absolute;top:-8px;left:5px;width:1px;height:16px;background:var(--color-border);content:""}.position-state-flow span{font-size:13px;font-weight:900}.position-state-flow small{color:var(--color-text-sub);font-size:12px;font-weight:800}.trend-score-history-wrap{margin-bottom:18px;padding:0}.company-chart-legend .trend-score{background:var(--color-primary)}.quality-reason-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 18px;padding:0;list-style:none}.quality-reason-list li{border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:10px 12px;font-size:13px;font-weight:800}.chart-section .company-candle-chart{height:420px;min-height:420px}.chart-section>h2{margin-top:28px}.company-chart-legend .volume{background:#94a3b8}.company-ai-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.company-ai-summary span{color:var(--color-text-sub);font-size:12px;font-weight:800}.company-ai-summary strong{display:block;margin-top:6px;font-size:22px}.company-side-card{padding:16px}.company-side-card dl{display:grid;gap:10px;margin:0}.company-side-card dl div,.company-side-status-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border);padding-bottom:8px}.company-side-card dd{margin:0;text-align:right;font-size:14px;font-weight:900}.company-side-status-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.company-side-status-list span,.company-side-status-list b{font-size:12px}@media (max-width: 1180px){.company-layout,.company-chart-grid,.company-live-strip,.company-overview-card,.company-collection-strip,.company-card-grid,.company-table-grid,.company-score-hero,.trend-breakdown-grid,.company-chart-insight-grid,.company-metric-grid.position,.quality-reason-list{grid-template-columns:1fr}.company-page-head{align-items:stretch;flex-direction:column}.company-page .company-info-grid{grid-template-columns:1fr}}.brand h1{max-width:760px;margin:0;font-size:clamp(40px,6vw,76px);line-height:1.04;font-weight:800}.brand p{max-width:560px;margin:24px 0 0;color:var(--muted);font-size:20px;line-height:1.7}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:620px;margin-top:48px}.metric{border:1px solid rgba(23,32,51,.08);border-radius:8px;background:#ffffff9e;padding:18px}.metric strong{display:block;font-size:26px;line-height:1}.metric span{display:block;margin-top:8px;color:var(--muted);font-size:15px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#0f172a66;padding:20px}.auth-panel{width:min(100%,460px);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:32px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.auth-panel h2,.admin-panel h2{margin:0;font-size:26px;line-height:1.25}.sub{margin:8px 0 28px;color:var(--muted);font-size:16px}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.auth-tabs button{height:40px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:14px;font-weight:800}.auth-tabs button.active{background:#fff;color:var(--accent);box-shadow:0 1px 8px #0f172a14}.qr-login-box{display:grid;justify-items:center}.qr-frame{display:grid;place-items:center;width:248px;height:248px;border:1px solid var(--line);border-radius:8px;background:#fff}.qr-frame.expired img{opacity:.28}.qr-frame img{width:224px;height:224px}.qr-frame span{color:var(--muted);font-size:14px;font-weight:700}.qr-status{display:grid;gap:6px;justify-items:center;margin-top:18px;color:var(--muted);font-size:14px}.qr-status strong{color:var(--text);font-size:17px}.close-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:24px;line-height:1}label{display:block;margin:18px 0 8px;font-size:16px;font-weight:700}input,select{width:100%;height:48px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:var(--text);background:#fff;font-size:17px;outline:none;transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1976d224}input::placeholder{color:#b8c2d0}.latin-input{ime-mode:inactive;direction:ltr;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.required-label:before{content:"*";color:#dc2626;margin-right:4px}.app-page{background:var(--color-page-bg);color:var(--color-text-main);font-size:var(--font-content)}.content-panel{background:var(--color-content-bg);border:1px solid var(--color-border);border-radius:12px;padding:20px}.sidebar{background:var(--color-sidebar-bg)}.sidebar-menu-item{color:var(--color-sidebar-text);font-size:var(--font-menu);font-weight:500}.sidebar-menu-item.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text)}.page-title{color:var(--color-text-main);font-size:var(--font-main-title);font-weight:700}.section-title{color:var(--color-text-main);font-size:var(--font-sub-title);font-weight:600}.form-label{color:var(--color-text-sub);font-size:var(--font-field-label);font-weight:500}.form-input{border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-main);padding:8px 12px;font-size:var(--font-input);font-weight:400}.form-help{margin:-6px 0 4px;color:var(--color-text-sub);font-size:12px;line-height:1.5}.btn{border:1px solid transparent;border-radius:8px;padding:8px 14px;font-size:var(--font-button);font-weight:600}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-secondary{background:#e2e8f0;color:var(--color-text-main)}.data-table{background:var(--color-content-bg);font-size:var(--font-list)}.data-table th{background:#f1f5f9;color:var(--color-text-sub);font-size:var(--font-field-label);font-weight:600}.data-table td{color:var(--color-text-main);font-size:var(--font-list)}.stock-up{color:var(--color-stock-up)}.stock-down{color:var(--color-stock-down)}.stock-flat{color:var(--color-stock-flat)}.primary-button,.secondary-button{width:100%;height:48px;margin-top:24px;border:0;border-radius:8px;color:#fff;font-size:17px;font-weight:800;transition:background .16s ease,transform .16s ease}.primary-button{background:var(--accent)}.primary-button:hover{background:var(--accent-dark)}.secondary-button{background:#334155}.secondary-button:hover{background:#1f2937}.light-button{width:100%;height:48px;margin-top:24px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:17px;font-weight:800}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.message{min-height:22px;margin-top:16px;font-size:16px;line-height:1.55}.message.error{color:var(--danger)}.message.success{color:#087a3d}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);background:#eef3f8}.admin-sidebar{padding:28px 20px;background:var(--color-sidebar-bg);color:var(--color-sidebar-text)}.admin-logo{font-size:20px;font-weight:800}.admin-nav{display:grid;gap:8px;margin-top:28px}.admin-nav a,.admin-sub-link{border-radius:8px;color:var(--color-sidebar-text);padding:11px 12px;text-decoration:none;font-size:16px}.admin-nav a.active,.admin-sub-link.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text)}.admin-sub-nav{display:grid;gap:4px;margin-top:-4px;padding-left:12px}.admin-sub-link{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--color-sidebar-text);padding:8px 12px;font-size:15px}.admin-nav-label{margin-top:14px;padding:8px 12px 2px;color:var(--color-text-muted);font-size:14px;font-weight:800}.admin-main{padding:28px}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-topbar h1{margin:0;font-size:30px;line-height:1.2}.admin-user{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:16px}.admin-user button{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 12px;font-weight:800}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}.admin-panel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:22px}.admin-panel strong{display:block;margin-top:14px;font-size:32px}.admin-panel span{color:var(--muted);font-size:16px}.placeholder-panel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:22px}.placeholder-panel h2{margin:0;font-size:22px}.placeholder-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}.placeholder-list span{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px;color:var(--text);font-size:16px;font-weight:800}.sub-menu-panel{display:grid;gap:8px;margin-top:16px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:16px}.sub-menu-panel strong{font-size:20px}.sub-menu-panel span{color:var(--muted);font-size:16px}.assets-panel{display:grid;gap:16px;margin-top:18px}.placeholder-manager.realized-profit-shell .placeholder-panel,.placeholder-manager.evaluation-profit-shell .placeholder-panel{border:0;background:transparent;box-shadow:none;padding:0}.placeholder-manager.realized-profit-shell .assets-panel,.placeholder-manager.evaluation-profit-shell .assets-panel{gap:0;margin-top:0}.placeholder-manager.evaluation-profit-shell{gap:0;margin:24px 28px}.assets-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.assets-metric{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.assets-metric span{color:var(--muted);font-size:14px}.assets-metric strong{display:block;margin-top:6px;font-size:22px}.trade-form{display:grid;grid-template-columns:1.5fr .8fr .8fr .9fr 1fr;gap:14px;align-items:end;margin-top:18px}.trade-filter-form{display:grid;grid-template-columns:1.4fr .8fr .9fr .9fr auto;gap:14px;align-items:end}.trade-history{display:grid;gap:16px;margin-top:18px}.trade-form label,.trade-filter-form label{margin-top:0}.trade-memo,.trade-summary,.trade-form .message{grid-column:1 / -1}.trade-summary{display:flex;flex-wrap:wrap;gap:10px}.trade-summary span{border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);padding:10px 12px;font-size:15px}.trade-summary strong{margin-left:6px;color:var(--text)}.trade-actions{display:flex;justify-content:flex-end;grid-column:1 / -1}.trade-actions .primary-button{width:auto;min-width:140px;margin-top:0;padding:0 20px}.readonly-value{min-height:48px;display:flex;align-items:center;justify-content:flex-end;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--text);padding:0 14px;font-weight:800}.readonly-value.left{justify-content:flex-start}.trade-history-table{min-width:980px}.sell-lot-table,.sell-stock-table{min-width:1080px}.sell-stock-table tbody tr{cursor:pointer}.sell-stock-table tr.selected td,.sell-lot-table tr.selected td{background:#1976d20f}.assets-table{min-width:1120px}.assets-table tbody tr{cursor:pointer}.assets-table tr.selected td{background:#1976d20f}.asset-evaluation-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.asset-list-panel{display:grid;gap:10px;min-width:0}.asset-list-head{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px}.asset-list-head strong{color:var(--text);font-size:18px}.asset-list-head span{min-width:0;color:var(--muted);font-size:14px;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.asset-fixed-table-wrap{height:562px;overflow:auto}.asset-fixed-table-wrap .stock-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc}.asset-holding-list-table,.asset-lot-list-table{min-width:760px}.asset-holding-list-table tbody tr,.asset-lot-list-table tbody tr{height:52px}.asset-detail-panel{display:grid;gap:16px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.asset-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.asset-detail-head strong{display:block;font-size:20px}.asset-detail-head span{display:block;margin-top:4px;color:var(--muted);font-size:15px}.asset-detail-badge{min-height:30px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);padding:0 10px;font-size:14px;font-weight:800}.asset-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.asset-detail-item{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:14px}.asset-detail-item span,.asset-detail-memo span{display:block;color:var(--muted);font-size:14px;font-weight:800}.asset-detail-item strong{display:block;margin-top:8px;font-size:20px;line-height:1.2}.asset-detail-memo{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:14px}.asset-detail-memo p{margin:8px 0 0;color:var(--text);font-size:16px;line-height:1.6;white-space:pre-wrap}.asset-buy-history-wrap{padding:0}.asset-buy-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 0}.asset-buy-history-head strong{font-size:18px}.asset-buy-history-head span{color:var(--muted);font-size:15px}.asset-buy-history-table{min-width:1040px;margin-top:12px}.negative{color:#b42318}.stock-manager,.user-manager,.profile-page,.service-status-manager,.settings-manager,.watchlist-manager,.placeholder-manager{display:grid;gap:20px;margin-top:28px}.narrow-page{max-width:560px}.profile-form,.broker-modal{border:1px solid var(--line);border-radius:8px;background:#fff;padding:24px}.profile-form label,.broker-modal label{margin-top:0}.inline-primary,.inline-light{width:auto;min-width:120px;margin-top:0;padding:0 18px}.profile-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.broker-toolbar input{width:min(100%,280px)}.profile-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.profile-summary-grid>div{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.profile-summary-grid span{display:block;color:var(--muted);font-size:14px;font-weight:800}.profile-summary-grid strong{display:block;margin-top:10px;font-size:21px;line-height:1.2}.profile-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.profile-table{width:100%;border-collapse:collapse;min-width:860px}.profile-table th,.profile-table td{border-bottom:1px solid #e4ebf5;padding:13px 14px;text-align:left;font-size:15px;vertical-align:middle}.profile-table th{background:#f5f7fb;color:#111827;font-weight:900}.profile-table small{display:block;margin-top:4px;color:var(--muted)}.real-account-page{display:grid;gap:12px;position:relative}.real-account-summary-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px 18px}.real-account-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.real-account-hero h2{margin:0 0 4px;color:#111827;font-size:16px;line-height:1.2}.real-account-kicker{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:800}.real-account-hero h1{margin:0 0 6px;color:#111827;font-size:23px;line-height:1.2}.real-account-hero p{margin:0;color:#66748a;font-size:13px;font-weight:700}.real-account-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.real-account-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.real-account-summary-grid>div{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px}.real-account-summary-grid span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:800}.real-account-summary-grid small{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:800}.real-account-summary-grid strong{color:#111827;font-size:18px;font-weight:900;line-height:1.2}.real-account-status-pills{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0}.real-account-status-pills div{display:inline-flex;align-items:center;gap:6px;min-height:28px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;padding:4px 9px}.real-account-status-pills dt{color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.real-account-status-pills dd{margin:0;color:#111827;font-size:12px;font-weight:900;white-space:nowrap}.real-account-status-pills dd.is-ok{color:#b42318}.real-account-status-pills dd.is-blocked{color:#475569}.real-account-status-pills dd.is-warn{color:#b45309}.real-account-status-pills dd.is-neutral{color:#334155}.real-account-inline-notice{margin:0;border:1px solid #f3d7b5;border-radius:8px;background:#fffbeb;color:#92400e;padding:8px 10px;font-size:12px;font-weight:800}.real-account-table-card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.real-account-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.real-account-table-head h2{margin:0;color:#111827;font-size:16px;line-height:1.2}.real-account-table-head span{color:var(--muted);font-size:12px;font-weight:800}.real-account-table-note{margin:0;border-bottom:1px solid var(--line);color:var(--muted);padding:9px 16px;font-size:12px;font-weight:800}.real-account-table-wrap{border:0;border-radius:0}.real-account-table{min-width:1080px}.real-account-table th,.real-account-table td{padding:10px 12px;font-size:14px}.real-account-table th.numeric,.real-account-table td.numeric{text-align:right}.real-account-table .stock-text-cell strong{color:#111827;font-size:14px;font-weight:700}.real-account-table .muted-text{color:var(--muted);font-size:12px;font-weight:700}.real-account-table tr.excluded{background:#fafafa}.valuation-excluded-badge{display:inline-flex;align-items:center;width:fit-content;margin-top:5px;border:1px solid #e5e7eb;border-radius:999px;background:#f8fafc;color:#64748b;padding:2px 7px;font-size:11px;font-weight:900}.real-account-table .empty-cell{height:120px;color:var(--muted);text-align:center;font-weight:800}.real-account-toast{position:fixed;right:22px;bottom:22px;z-index:1000;max-width:min(420px,calc(100vw - 32px));border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;box-shadow:0 16px 30px #0f172a29;padding:11px 13px;font-size:13px;font-weight:900}.real-account-toast.error{border-color:#fecaca;background:#fff1f2;color:#be123c}.real-account-toast-enter-active,.real-account-toast-leave-active{transition:opacity .16s ease,transform .16s ease}.real-account-toast-enter-from,.real-account-toast-leave-to{opacity:0;transform:translateY(6px)}.table-actions{display:flex;gap:8px}.table-actions button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;font-weight:800}.danger-text{color:#c2410c}.broker-status-badge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;font-size:13px;font-weight:900}.broker-status-badge.ok{background:#dcfce7;color:#166534}.broker-status-badge.expiring{background:#fef3c7;color:#92400e}.broker-status-badge.failed{background:#fee2e2;color:#991b1b}.broker-status-badge.inactive{background:#e5e7eb;color:#4b5563}.broker-modal{width:min(100%,860px);max-height:calc(100vh - 48px);overflow-y:auto}.broker-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.broker-toggle-row,.modal-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:18px}.broker-toggle-row label{display:inline-flex;align-items:center;gap:8px;margin:0}.broker-toggle-row input{width:18px;height:18px}.broker-token-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;gap:10px;align-items:center;margin-top:18px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:14px}.broker-token-panel span{display:block;color:var(--muted);font-size:13px;font-weight:800}.broker-token-panel strong{display:block;margin-top:6px;font-size:15px}.stock-management-panel{display:grid;gap:14px;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.stock-management-search{display:grid;gap:8px}.stock-management-search label{margin:0}.stock-management-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);align-items:stretch}.stock-management-page{display:grid;gap:14px}.stock-discovery-card{border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 8px 22px #0f172a0b}.stock-discovery-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"search" "candidates";gap:14px;align-items:stretch}.stock-discovery-card{min-width:0;padding:16px}.stock-discovery-card h2,.stock-discovery-card h3{margin:0;color:#0f172a;font-size:16px;font-weight:900}.stock-discovery-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.stock-discovery-collapse-button{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;font-size:14px;font-weight:900}.stock-discovery-search-card{grid-area:search;height:456px;display:flex;flex-direction:column}.stock-discovery-search-card.collapsed{height:auto;padding-block:14px}.stock-discovery-search-card.collapsed .stock-discovery-card-head{min-height:28px}.stock-candidate-action-grid{grid-area:candidates;display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,.9fr);gap:14px;height:clamp(540px,calc(100vh - 440px),780px);align-items:stretch}.stock-management-page.search-collapsed .stock-candidate-action-grid{height:clamp(660px,calc(100vh - 250px),900px)}.stock-discovery-registered-card{height:100%;display:flex;flex-direction:column}.stock-discovery-action-card{height:100%}.stock-discovery-registered-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.stock-discovery-registered-head p{margin:5px 0 0;color:#64748b;font-size:12px;font-weight:700}.stock-discovery-search-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) 160px;gap:10px;align-items:end;margin-top:16px}.stock-discovery-search-form label,.stock-discovery-target-select{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:900}.stock-discovery-search-form input,.stock-discovery-search-form select,.stock-discovery-target-select select{min-width:0;height:36px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:12px}.stock-discovery-search-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stock-discovery-search-actions button,.discovery-collect-all{height:36px;border-radius:6px;font-size:12px;font-weight:900}.stock-discovery-tip{margin:10px 0 16px;color:#475569;font-size:12px;font-weight:700}.stock-discovery-result-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.stock-discovery-result-head span{color:#2563eb;font-size:12px;font-weight:800}.stock-discovery-scroll{overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f8fafc}.stock-discovery-search-results{flex:1 1 auto;min-height:0}.stock-discovery-search-results .stock-discovery-table{min-width:0;table-layout:fixed}.stock-discovery-search-results th,.stock-discovery-search-results td{overflow:hidden;text-overflow:ellipsis}.stock-discovery-registered-scroll{flex:1 1 auto;min-height:0;margin-top:14px;overflow-x:hidden}.stock-discovery-table{width:100%;min-width:980px;table-layout:auto;border-collapse:collapse;color:#0f172a;font-size:12px}.stock-discovery-registered-table{min-width:0;table-layout:fixed}.stock-discovery-col-stock{width:27%}.stock-discovery-col-price{width:12%}.stock-discovery-col-market{width:10%}.stock-discovery-col-collection{width:24%}.stock-discovery-col-group{width:12%}.stock-discovery-col-actions{width:15%}.stock-discovery-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#334155;font-size:11px;font-weight:900;text-align:left}.sortable-table-head{border:0;background:transparent;color:inherit;padding:0;font-size:inherit;font-weight:inherit;white-space:nowrap}.stock-discovery-table th,.stock-discovery-table td{border-bottom:1px solid #e2e8f0;padding:9px 10px;white-space:nowrap}.stock-discovery-registered-table th,.stock-discovery-registered-table td{overflow:hidden;text-overflow:ellipsis}.stock-discovery-stock-cell{display:grid;gap:3px;min-width:0}.stock-discovery-stock-cell strong,.stock-discovery-stock-cell small,.stock-discovery-muted-cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-discovery-stock-cell small{color:#64748b;font-size:11px;font-weight:800}.stock-discovery-table tbody tr:hover{background:#f8fafc}.stock-discovery-selectable-row{cursor:pointer}.stock-discovery-table tbody .stock-discovery-selectable-row.selected{background:#eff6ff;box-shadow:inset 3px 0 #2563eb}.stock-discovery-table tbody .stock-discovery-selectable-row.selected:hover{background:#dbeafe}.stock-discovery-table tbody .stock-discovery-selectable-row.selected td:first-child strong{color:#1d4ed8}.discovery-status-pill,.investment-state-pill{display:inline-flex;min-height:22px;align-items:center;justify-content:center;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:900}.discovery-status-pill.unregistered{border:1px solid #e2e8f0;background:#f8fafc;color:#475569}.discovery-status-pill.registered,.investment-state-pill.ok{background:#dcfce7;color:#15803d}.investment-state-pill.review{background:#fff7ed;color:#ea580c}.investment-state-pill.watch{background:#dbeafe;color:#2563eb}.investment-state-pill.exclude{background:#111827;color:#fff}.trend-score-badge,.managed-quality-score,.quality-grade-badge{display:inline-flex;min-width:38px;min-height:22px;align-items:center;justify-content:center;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:900}.trend-score-green,.quality-grade-a,.quality-grade-pass{background:#dcfce7;color:#15803d}.trend-score-blue,.quality-grade-b{background:#dbeafe;color:#2563eb}.trend-score-orange,.quality-grade-c,.quality-grade-warning{background:#fff7ed;color:#ea580c}.trend-score-red,.quality-grade-d,.quality-grade-fail{background:#fef2f2;color:#dc2626}.quality-grade-e{background:#111827;color:#fff}.quality-grade-empty{background:#f8fafc;color:#64748b}.group-registration-toggle{display:inline-grid;min-width:74px;grid-template-columns:1fr;gap:2px;border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc;color:#64748b;padding:4px 8px;text-align:center}.group-registration-toggle strong{font-size:11px;line-height:1}.group-registration-toggle span{font-size:10px;font-weight:800;line-height:1}.group-registration-toggle.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.discovery-row-action{min-height:26px;border:1px solid #2563eb;border-radius:5px;background:#fff;color:#1d4ed8;padding:0 9px;font-size:11px;font-weight:900}.stock-discovery-action-card{display:flex;flex-direction:column;align-items:stretch;gap:12px}.stock-discovery-action-head{display:block;min-width:0}.stock-discovery-action-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-discovery-action-list{display:grid;grid-template-columns:1fr;gap:8px;flex:1 1 auto;min-height:0;margin:0}.managed-collection-status-strip{display:flex;min-width:0;align-items:center;gap:5px}.collection-status-mini{flex:0 0 auto;width:22px;height:22px;font-size:12px}.collection-status-icon.status-missing{border-color:#cbd5e1;color:#94a3b8}.stock-discovery-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:#475569;font-size:12px;font-weight:800}.stock-discovery-pagination div{display:flex;gap:6px}.stock-discovery-pagination button{min-height:28px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:0 10px;font-size:12px;font-weight:900}.stock-discovery-pagination button:disabled{cursor:not-allowed;opacity:.45}.stock-discovery-action-list button{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:15px 14px;align-items:center;column-gap:8px;min-height:42px;border:1px solid #dbe3ef;border-radius:7px;background:#fff;padding:6px 8px;text-align:left}.stock-discovery-action-list button.has-daily-indicator-status{grid-template-rows:15px 14px auto;min-height:62px}.stock-discovery-action-list i{grid-row:1 / 3;width:24px;height:24px;display:inline-grid;place-items:center;border-radius:8px;background:#eff6ff;color:#2563eb;font-style:normal;font-weight:900}.stock-discovery-action-list span{min-width:0;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:900;line-height:1}.stock-discovery-action-list small{min-width:0;overflow:hidden;color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:400;line-height:1}.daily-indicator-status-line{grid-column:2;display:flex;min-width:0;align-items:center;gap:6px;margin-top:4px;font-style:normal;line-height:1.1}.daily-indicator-status-line b{flex:0 0 auto;color:#334155;font-size:10px;font-weight:900}.daily-indicator-status-line small{flex:1 1 auto;min-width:0;color:#64748b;font-size:9px;font-weight:700}.daily-indicator-status-line.complete b{color:#15803d}.daily-indicator-status-line.partial b{color:#b45309}.daily-indicator-status-line.missing b,.daily-indicator-status-line.unknown b{color:#64748b}.collection-status-icon{width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid #cbd5e1;border-radius:50%;background:#fff;color:#64748b;font-size:13px;font-weight:900}.collection-status-icon.status-completed{border-color:#16a34a;color:#16a34a}.collection-status-icon.status-collecting,.collection-status-icon.status-partial,.collection-status-icon.status-failed{border-color:#f97316;color:#f97316}.managed-collection-progress-modal{width:min(100%,680px)}.managed-collection-progress-stock{min-width:116px;border:1px solid #dbe3ef;border-radius:8px;padding:10px 12px;text-align:right}.managed-collection-progress-stock strong,.managed-collection-progress-stock span{display:block}.managed-collection-progress-stock strong{color:#0f172a;font-size:16px;line-height:1.2}.managed-collection-progress-stock span{margin-top:4px;color:#64748b;font-size:12px;font-weight:900}.managed-collection-progress-body{display:grid;gap:16px;overflow:auto;padding:18px 24px}.managed-collection-progress-summary{display:grid;grid-template-columns:1fr 1fr minmax(160px,1.4fr);gap:10px}.managed-collection-progress-summary div{border:1px solid #dbe3ef;border-radius:8px;padding:12px;background:#f8fafc}.managed-collection-progress-summary span{display:block;color:#64748b;font-size:11px;font-weight:900}.managed-collection-progress-summary strong{display:block;min-width:0;overflow:hidden;margin-top:5px;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:18px;line-height:1.2}.managed-collection-progress-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.managed-collection-progress-list li{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:4px 12px;align-items:center;border:1px solid #dbe3ef;border-radius:8px;padding:10px 12px}.managed-collection-progress-list span{min-width:0;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:900}.managed-collection-progress-list b{justify-self:end;min-width:64px;border-radius:999px;padding:4px 8px;background:#f1f5f9;color:#475569;text-align:center;font-size:11px}.managed-collection-progress-list small{grid-column:1 / -1;min-width:0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.managed-collection-progress-list .status-completed b{background:#dcfce7;color:#15803d}.managed-collection-progress-list .status-collecting b,.managed-collection-progress-list .status-partial b{background:#ffedd5;color:#c2410c}.managed-collection-progress-list .status-failed b{background:#fee2e2;color:#b42318}.managed-collection-progress-list .status-skipped b{background:#e0f2fe;color:#0369a1}@media (max-width: 640px){.managed-collection-progress-summary{grid-template-columns:1fr}.managed-collection-progress-stock{width:100%;text-align:left}}.managed-quality-score{display:flex;width:fit-content;margin-top:4px}.managed-stock-head{align-items:center}.managed-target-head-actions{display:flex;align-items:center;gap:8px}.add-button{border-color:#15803d;background:#ecfdf5;color:#15803d}.add-button:hover{background:#dcfce7}.refresh-button{border-color:#334155;background:#f8fafc;color:#334155}.refresh-button:hover{background:#e2e8f0}.managed-stock-list-title{color:var(--text);font-size:18px;font-weight:900;padding:0}.managed-stock-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;max-height:520px;overflow-y:auto}.managed-stock-card{position:relative;display:grid;gap:6px;min-height:92px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-align:left;padding:14px;cursor:pointer}.managed-stock-card-title{display:grid;gap:5px;min-width:0}.managed-stock-card:hover,.managed-stock-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.managed-stock-card.registered{background:#f8fafc}.managed-stock-name{font-size:16px;font-weight:900;line-height:1.25}.managed-stock-code{color:var(--muted);font-size:14px;font-weight:800}.managed-stock-status{justify-self:start;border-radius:999px;background:#eef4ff;color:#1d4ed8;font-size:12px;font-weight:900;padding:4px 8px}.managed-stock-card.registered .managed-stock-status{background:#edf2f7;color:#64748b}.managed-stock-add-modal{width:min(100%,720px);height:min(92vh,680px)}.managed-stock-add-modal .stock-quality-body{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.managed-stock-modal-result-head{flex:0 0 auto;margin:18px 0 10px}.managed-stock-modal-results{flex:1;align-content:start;grid-auto-rows:minmax(86px,auto);min-height:0;height:auto;max-height:none;overflow-y:auto;padding-right:4px}.managed-stock-add-modal .empty-state,.managed-stock-add-modal .loading-inline{flex:1;min-height:0}.loading-inline{display:grid;min-height:120px;place-items:center;color:var(--muted);font-weight:800}.stock-realtime-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px 18px}.stock-realtime-bar strong{font-size:16px}.stock-realtime-bar span{display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);padding:0 10px;font-size:14px;font-weight:800}.stock-realtime-bar .socket-connected{color:#166534;border-color:#1665343d;background:#ecfdf3}.stock-realtime-bar .socket-connecting{color:#92400e;border-color:#d977063d;background:#fffbeb}.stock-realtime-bar .socket-error{color:#b42318;border-color:#b423183d;background:#fef2f2}.stock-realtime-bar .socket-unsupported,.stock-realtime-bar .socket-disconnected{color:var(--muted)}.watchlist-manager{grid-template-columns:1fr}.stock-form,.user-form{display:grid;grid-template-columns:.9fr 1.3fr .8fr .8fr .8fr 1fr .7fr .7fr 1.3fr 180px;gap:14px;align-items:end;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.user-form{grid-template-columns:1fr 1.3fr 1fr 180px}.service-status-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.service-status-toolbar div{display:grid;gap:6px}.service-status-toolbar strong{font-size:19px}.service-status-toolbar span{color:var(--muted);font-size:16px}.service-status-toolbar .secondary-button{width:auto;min-width:118px}.service-status-toolbar-actions{display:flex;align-items:center;gap:12px}.service-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-status-card{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.service-status-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.service-status-head div{display:grid;gap:5px}.service-status-head strong{font-size:19px}.service-status-head span,.service-status-card p,.service-status-note{color:var(--muted);font-size:15px}.service-status-card p{margin:0;line-height:1.55}.service-pill{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;font-size:14px;font-style:normal;font-weight:900;white-space:nowrap}.service-pill.running{background:#ecfdf3;color:#166534}.service-pill.stopped{background:#fffbeb;color:#92400e}.service-pill.failed{background:#fef2f2;color:#b42318}.service-status-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0}.service-status-details div{display:grid;gap:3px;min-width:0}.service-status-details dt{color:var(--muted);font-size:14px;font-weight:800}.service-status-details dd{margin:0;color:var(--text);font-size:15px;font-weight:800;overflow-wrap:anywhere}.service-status-note{border-radius:8px;background:#f8fafc;padding:10px;overflow-wrap:anywhere}.service-actions{display:flex;flex-wrap:wrap;gap:8px}.service-actions button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 12px;font-size:15px;font-weight:900}.service-actions button:disabled{cursor:not-allowed}.terminal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#0f172a85;padding:28px}.terminal-panel{width:min(100%,980px);max-height:min(86vh,820px);display:grid;grid-template-rows:auto auto auto auto minmax(260px,1fr);gap:16px;border:1px solid #1e293b;border-radius:8px;background:#0f172a;color:#e5edf8;box-shadow:0 28px 80px #0f172a59;padding:24px}.terminal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.terminal-head h2{margin:0;font-size:24px}.terminal-head p,.terminal-description{margin:8px 0 0;color:#94a3b8;font-size:15px}.terminal-panel .close-button{border-color:#94a3b852;background:#0f172ab3;color:#e5edf8}.terminal-controls{display:grid;grid-template-columns:90px minmax(0,1fr) 120px;align-items:end;gap:14px}.terminal-controls label{margin:0 0 12px;color:#cbd5e1}.terminal-controls select{border-color:#334155;background:#020617;color:#e5edf8}.terminal-controls .primary-button{margin-top:0}.terminal-panel .message{margin:0;color:#bae6fd}.terminal-panel .message.error{color:#fecaca}.terminal-output{min-height:260px;max-height:480px;overflow:auto;border:1px solid #334155;border-radius:8px;background:#020617;color:#d1fae5;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:14px;line-height:1.55;white-space:pre-wrap}.settings-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 180px;gap:14px;align-items:end;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.stock-form label,.user-form label,.settings-form label{margin-top:0}.label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.label-row label{margin:0}.icon-button{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:var(--text);padding:0;cursor:pointer}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.icon-button:disabled{cursor:not-allowed;opacity:.42}.search-button{border-color:#1d4ed8;background:#eff6ff;color:#1d4ed8}.search-button:hover{background:#dbeafe}.icon-button.danger{color:#b42318}.icon-button.danger:hover{background:#b4231814}.stock-actions,.user-actions,.settings-actions{display:grid;grid-template-columns:1fr;gap:8px}.stock-actions .primary-button,.stock-actions .light-button,.user-actions .primary-button,.settings-actions .primary-button{margin-top:0}.stock-form .message,.user-form .message,.settings-form .message{grid-column:1 / -1;margin-top:0}.watchlist-categories,.watchlist-content,.watchlist-trade-panel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.watchlist-trade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.watchlist-trade-head h2{margin:0;font-size:22px}.watchlist-trade-head span{color:var(--muted);font-size:15px}.watchlist-buy-form{margin-top:16px}.watchlist-category-form label,.watchlist-search label{margin-top:0}.watchlist-mode-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.watchlist-mode-head strong{color:var(--color-text-main);font-size:var(--font-sub-title);font-weight:600}.inline-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.inline-control .primary-button{width:auto;min-width:86px;margin-top:0;padding:0 18px}.category-icon-actions{display:flex;gap:8px;align-items:center;flex:0 0 auto}.watchlist-category-row{display:flex;align-items:center;gap:10px;margin-top:14px;min-width:0}.watchlist-category-list{display:flex;flex-wrap:nowrap;flex:1 1 auto;min-width:0;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin}.watchlist-category-item{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:36px;max-width:220px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 12px;text-align:left}.watchlist-category-item.active{border-color:#1976d26b;background:#1976d214;box-shadow:inset 3px 0 0 var(--accent)}.watchlist-category-item span{overflow:hidden;max-width:100%;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.watchlist-category-item small,.watchlist-head span{color:var(--muted);font-size:14px}.watchlist-content{display:grid;gap:16px}.watchlist-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.watchlist-head-actions{margin-left:auto}.watchlist-head h2{margin:0;font-size:22px}.watchlist-list-title{border-top:1px solid var(--color-border);margin-top:4px;padding-top:16px;color:var(--color-text-main);font-size:var(--font-sub-title);font-weight:600}.watchlist-category-form .category-icon-actions{align-items:center}.watchlist-category-form .icon-button.danger{margin-top:0}.watchlist-search-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;max-height:220px;overflow-y:auto}.watchlist-search-results .watchlist-search-card{align-items:flex-start;justify-content:center;flex-direction:column;gap:4px;min-height:54px;max-width:none;padding:8px 12px}.watchlist-search-results .watchlist-search-card span,.watchlist-search-results .watchlist-search-card small{display:block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.watchlist-search-results .watchlist-search-card small{color:var(--color-text-muted);font-size:var(--font-small);font-weight:500}.watchlist-table{min-width:980px}.watchlist-summary-head{min-width:760px}.watchlist-summary-head{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.9fr) minmax(140px,.9fr) minmax(120px,.8fr);gap:10px;align-items:center}.watchlist-summary-head span{color:var(--color-text-sub);font-size:var(--font-field-label);font-weight:600}.watchlist-table tbody tr{cursor:pointer}.watchlist-table tr.selected td{background:#1976d20f}.watchlist-stock-cell{display:grid;gap:4px}.watchlist-stock-cell strong{color:var(--color-text-main);font-size:var(--font-list);font-weight:600}.watchlist-stock-cell small{color:var(--color-text-muted);font-size:var(--font-small)}.watchlist-registered-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.9fr) minmax(140px,.9fr) minmax(120px,.8fr);gap:10px;align-items:center;min-width:760px}.watchlist-registered-name,.watchlist-registered-cell{display:grid;min-width:0;gap:4px}.watchlist-registered-name strong{overflow:hidden;color:var(--color-text-main);font-size:var(--font-list);font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.watchlist-registered-name small,.watchlist-registered-cell small{overflow:hidden;color:var(--color-text-muted);font-size:var(--font-small);line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.trading-universe-page{display:grid;gap:14px}.universe-card{min-width:0;border:1px solid #dbe3ef;border-radius:8px;background:#fff;padding:16px;box-shadow:0 8px 22px #0f172a0b}.universe-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.universe-card-head h2,.universe-card h2{margin:0;color:#0f172a;font-size:16px;font-weight:900}.universe-card-head span{display:block;margin-top:4px;color:#64748b;font-size:11px;font-weight:700}.universe-group-tabs{display:flex;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:3px;scrollbar-width:thin}.universe-group-tab{min-height:34px;display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;border:1px solid #dbe3ef;border-radius:8px;background:#fff;color:#0f172a;padding:0 12px;font-size:12px;font-weight:900}.universe-group-tab.active{border-color:#2563eb;box-shadow:inset 3px 0 #2563eb}.universe-group-tab strong{color:inherit;font-size:11px}.universe-group-tab small{color:#64748b;font-size:10px;font-weight:800}.universe-group-empty{width:100%;margin:0;padding:10px 12px;text-align:left}.universe-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.universe-items-card,.universe-candidates-card{display:flex;flex-direction:column;height:clamp(620px,calc(100vh - 320px),780px);min-height:0;overflow:hidden}.universe-table-scroll{flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable;scrollbar-width:thin}.universe-table{width:100%;min-width:560px;border-collapse:collapse;color:#0f172a;font-size:12px;table-layout:fixed}.universe-candidate-table{min-width:0}.universe-candidates-card .universe-table-scroll{overflow-x:hidden}.universe-col-stock{width:43%}.universe-col-price{width:18%}.universe-col-active{width:21%}.universe-col-manage{width:18%}.universe-candidate-table .universe-col-stock{width:36%}.universe-candidate-table .universe-col-price{width:15%}.universe-candidate-table .universe-col-quality{width:14%}.universe-candidate-table .universe-col-reason{width:23%}.universe-candidate-table .universe-col-group{width:12%}.universe-action-notice{margin:-2px 0 10px;color:#92400e;font-size:12px;font-weight:700}.universe-action-notice.success{color:#15803d}.universe-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#334155;font-size:10px;font-weight:900;text-align:left}.universe-table th,.universe-table td{border-bottom:1px solid #e2e8f0;padding:8px 9px;white-space:nowrap}.universe-stock-cell{display:inline-grid;gap:3px;width:100%;min-width:0;color:#0f172a}.universe-stock-cell.with-action,.universe-stock-cell.candidate{grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px}.universe-stock-cell strong,.universe-stock-cell small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.universe-stock-cell strong{font-size:12px;font-weight:900}.universe-stock-cell small{color:#64748b;font-size:10px;font-weight:800}.universe-candidate-table th,.universe-candidate-table td{overflow:hidden;text-overflow:ellipsis}.universe-move-button{width:28px;height:28px;min-height:28px;border-radius:7px;border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.universe-move-button:hover:not(:disabled){border-color:#93c5fd;background:#dbeafe}.universe-move-button.down{border-color:#cbd5e1;background:#f8fafc;color:#334155}.universe-move-button.down:hover:not(:disabled){border-color:#94a3b8;background:#f1f5f9}.universe-pagination{display:flex;min-height:38px;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid #e2e8f0;margin-top:10px;padding-top:10px;color:#475569;font-size:11px;font-weight:800}.universe-pagination button{min-height:28px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:11px;font-weight:900}.universe-pagination button:disabled{cursor:not-allowed;opacity:.45}.candidate-scroll{margin-top:2px}.universe-reason-list{display:flex;max-width:100%;flex-wrap:wrap;gap:4px;overflow:hidden}.universe-reason-list span,.universe-recommended-group{display:inline-flex;min-height:22px;align-items:center;border-radius:6px;background:#eff6ff;color:#1d4ed8;padding:2px 7px;font-size:10px;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.universe-recommended-group{background:#f3e8ff;color:#7c3aed}.settings-toggle{min-height:48px;display:flex;align-items:center}.settings-toggle label{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-weight:800}.settings-toggle input{width:18px;height:18px;padding:0}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.92fr);gap:16px;align-items:start}.dart-upload-panel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px;display:grid;gap:14px}.dart-upload-panel h2{margin:0;font-size:20px}.dart-upload-panel p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.dart-upload-form{display:grid;gap:12px}.dart-upload-form input[type=file]{padding:12px;height:auto}.dart-upload-result{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dart-upload-result div{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px;display:grid;gap:6px}.dart-upload-result strong{color:var(--muted);font-size:14px}.dart-upload-result span{font-size:18px;font-weight:800}.settings-summary{width:100%;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.settings-summary span{color:var(--muted)}.stock-checks{display:flex;align-items:center;gap:10px;min-height:48px}.stock-checks label{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:15px;white-space:nowrap}.stock-checks input{width:16px;height:16px;padding:0}.stock-memo{grid-column:1 / -1}.password-result{display:flex;align-items:center;gap:14px;border:1px solid #bbf7d0;border-radius:8px;background:var(--success-bg);color:var(--success-text);padding:14px 18px;font-size:16px}.password-result code{border:1px solid rgba(22,101,52,.22);border-radius:8px;background:#fff;color:var(--text);padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:16px}.candidate-panel{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px}.candidate-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.candidate-head strong{display:block;font-size:18px}.candidate-head span{display:block;margin-top:4px;color:var(--muted);font-size:15px}.close-candidates{flex:0 0 auto;color:var(--muted)}.close-candidates:hover{background:#f1f5f9;color:var(--text)}.candidate-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;max-height:280px;overflow-y:auto;padding-right:4px}.candidate-item{min-height:74px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--text);padding:12px;text-align:left}.candidate-item:hover{border-color:#1976d257;background:#1976d20f}.candidate-item.selected{border-color:var(--accent);background:#1976d21f;box-shadow:inset 3px 0 0 var(--accent)}.candidate-item strong,.candidate-item span{display:block}.candidate-item span{margin-top:6px;color:var(--muted);font-size:15px}.stock-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.stock-table{width:100%;border-collapse:collapse;min-width:960px}.stock-table th,.stock-table td{border-bottom:1px solid var(--line);padding:13px 14px;text-align:left;font-size:16px;vertical-align:middle}.stock-table th{color:var(--muted);background:#f8fafc;font-weight:800}.stock-table tr:last-child td{border-bottom:0}.stock-name-cell{display:grid;gap:4px}.stock-name-cell span{font-weight:800}.stock-name-cell small{color:var(--muted);font-size:14px;line-height:1.25}.stock-price-row{display:block;width:100%;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.stock-price-row.interactive{cursor:pointer}.stock-price-row-grid{display:grid;grid-template-columns:minmax(140px,1.4fr) repeat(3,minmax(76px,.8fr));gap:10px;align-items:center;min-width:420px}.readonly-value .stock-price-row-grid{min-width:0}.stock-price-cell{display:grid;gap:4px;min-width:0}.stock-price-primary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.stock-price-secondary{overflow:hidden;color:var(--muted);font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.stock-price-name span{color:var(--text);font-weight:800}.stock-price-name small{color:var(--color-text-muted);font-size:11px;line-height:1.25}.price-up{color:#b42318}.price-down{color:#1d4ed8}.price-flat{color:var(--muted)}.market-kospi{color:#111827}.market-kosdaq{color:#f4a261}.watchlist-price-board{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.watchlist-price-head,.stock-price-row-grid-watchlist{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.9fr) minmax(140px,.9fr) minmax(120px,.8fr);gap:10px;align-items:center;min-width:760px}.watchlist-price-head{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:15px;font-weight:800;background:#f8fafc}.watchlist-price-row{width:100%;border-bottom:1px solid var(--line);padding:14px;background:#fff}.watchlist-price-row:last-child{border-bottom:0}.watchlist-price-row:hover{background:#1976d20a}.watchlist-price-row .stock-price-secondary{white-space:nowrap}.watchlist-price-empty{padding:18px 14px;color:var(--muted);font-size:16px}.row-actions{display:flex;gap:8px}.row-actions button{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 10px;font-weight:800}.row-actions .row-icon-button{display:inline-grid;place-items:center;width:34px;padding:0}.row-icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.row-icon-button.danger{color:#b42318}.row-icon-button.buy{color:var(--accent)}.row-icon-button.favorite{color:#7c8798}.row-icon-button.favorite.active{border-color:#d977065c;color:#d97706;background:#d9770614}.row-icon-button.favorite.active svg{fill:currentColor}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}@media (max-width: 900px){.home-main{padding:92px 24px 48px}.brand h1{font-size:clamp(34px,11vw,52px)}.brand p{font-size:18px}.metrics,.admin-grid,.stock-form,.user-form,.settings-form,.settings-grid,.service-status-grid,.service-status-details,.trade-form,.trade-filter-form,.asset-evaluation-grid,.assets-metrics,.watchlist-manager{grid-template-columns:1fr}.service-status-toolbar{align-items:stretch;flex-direction:column}.service-status-toolbar-actions,.terminal-controls{grid-template-columns:1fr;align-items:stretch}.service-status-toolbar-actions{display:grid}.admin-shell{grid-template-columns:1fr}.admin-sidebar,.admin-main{padding:20px}.admin-topbar{align-items:flex-start;flex-direction:column}}.site-header{position:fixed;inset:0 0 auto;z-index:30;height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:0 clamp(22px,5.8vw,92px);border-bottom:1px solid rgba(148,163,184,.08);background:#020c1de6;color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.site-logo,.footer-logo{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-size:27px;font-weight:900;white-space:nowrap}.logo-mark{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:7px;background:linear-gradient(145deg,#28d7ff,#2364ff 55%,#1737b6);color:#fff;box-shadow:0 10px 28px #2364ff5c}.logo-mark svg{width:23px;height:23px}.logo-mark.small{width:23px;height:23px}.logo-mark.small:before{content:"";width:13px;height:13px;border-top:3px solid currentColor;border-right:3px solid currentColor;transform:rotate(-45deg)}.site-nav{display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,58px);flex:1}.site-nav a,.footer-links a{color:inherit;text-decoration:none}.site-nav a{color:#ffffffeb;font-size:17px;font-weight:800;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:14px}.ghost-button,.signup-button,.api-doc-button{min-width:92px;height:42px;border-radius:8px;padding:0 20px;color:#fff;font-size:16px;font-weight:800}.api-doc-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(56,189,248,.42);background:#0ea5e929;color:#e0f2fe;text-decoration:none}.ghost-button{border:1px solid rgba(148,163,184,.28);background:#0f172a61}.signup-button,.hero-primary,.trust-action{border:0;background:linear-gradient(135deg,#1e7bff,#1356f3);box-shadow:0 14px 34px #1a67ff47}.hero-section{position:relative;min-height:520px;padding:124px clamp(22px,5.8vw,92px) 22px;overflow:hidden;background:radial-gradient(circle at 82% 38%,rgba(28,116,255,.22),transparent 22%),radial-gradient(circle at 15% 65%,rgba(0,215,255,.13),transparent 28%),linear-gradient(180deg,#061733,#031022 55%,#020916);color:#fff}.market-wave{position:absolute;inset:auto -8% -36px -8%;height:210px;opacity:.7;background:repeating-radial-gradient(ellipse at center,rgba(30,123,255,.34) 0 1px,transparent 1px 12px);transform:perspective(620px) rotateX(62deg);transform-origin:bottom;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:minmax(420px,.92fr) minmax(560px,1.08fr);align-items:center;gap:clamp(34px,6vw,82px);max-width:1380px;margin:0 auto}.hero-copy{padding-bottom:20px}.eyebrow{display:inline-flex;align-items:center;min-height:31px;border-radius:999px;background:#2563eb3d;color:#5ea2ff;padding:0 14px;font-size:16px;font-weight:800}.hero-copy h1{margin:18px 0 0;font-size:clamp(40px,4.4vw,64px);line-height:1.12;font-weight:900}.hero-copy h1 strong,.section-heading h2 strong{color:#176cff}.hero-copy p{max-width:540px;margin:26px 0 0;color:#e2e8f0c7;font-size:20px;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:40px}.hero-primary,.hero-secondary,.hero-doc,.trust-action{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:13px;border-radius:8px;padding:0 30px;color:#fff;text-decoration:none;font-size:19px;font-weight:900}.hero-secondary{min-width:198px;border:1px solid rgba(203,213,225,.52);background:#0f172a57;box-shadow:none}.hero-doc{min-width:164px;border:1px solid rgba(56,189,248,.52);background:#082f496b;box-shadow:none}.hero-visual{position:relative;min-height:370px}.dashboard-mock{display:grid;grid-template-columns:54px minmax(0,1fr);min-height:372px;border:1px solid rgba(148,163,184,.18);border-radius:8px;overflow:hidden;background:#07142ad1;box-shadow:0 34px 100px #00000052}.mock-sidebar{display:grid;align-content:start;justify-items:center;gap:19px;padding-top:21px;border-right:1px solid rgba(148,163,184,.12);background:#030a1873}.mock-sidebar span{width:14px;height:14px;border:1px solid rgba(148,163,184,.52);border-radius:4px}.mock-sidebar .active{border-color:transparent;background:#2075ff;box-shadow:0 0 18px #2075ffcc}.mock-content{padding:19px 24px 14px}.mock-title{display:flex;align-items:center;gap:15px;margin-bottom:19px;font-size:16px}.mini-logo{width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,#28d7ff,#1d5eff)}.stat-grid{display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:12px}.stat-card,.chart-panel,.mini-panel,.phone-card{border:1px solid rgba(148,163,184,.09);border-radius:7px;background:#15243db8}.stat-card{min-height:80px;padding:14px}.stat-card span,.phone-card span,.panel-caption{display:block;color:#e2e8f0b8;font-size:14px;font-weight:700}.stat-card strong{display:block;margin-top:6px;font-size:20px}.stat-card small,.phone-card small{display:block;margin-top:9px;color:#e2e8f09e;font-size:13px}.red{color:#ff5656}.green{color:#12c982}.blue-text{color:#3d8cff}.mock-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(205px,.95fr);gap:12px;margin-top:12px}.chart-panel{min-height:220px;padding:14px}.tabs{display:flex;gap:6px;margin-top:13px}.tabs span{border-radius:4px;background:#94a3b838;padding:5px 9px;color:#ffffffd1;font-size:12px;font-weight:900}.tabs span:first-child{background:#1f75ff}.chart-lines{height:154px;margin-top:10px}.chart-lines svg{width:100%;height:100%}.chart-lines polyline{fill:none;stroke:#ff493e;stroke-width:2.2}.chart-lines .blue{stroke:#2f86ff}.side-panels{display:grid;gap:12px}.mini-panel{padding:13px}.mini-panel p{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;margin:12px 0 0;color:#e2e8f0db;font-size:14px}.mini-panel em{border-radius:3px;background:#22c55e;color:#fff;padding:3px 6px;font-size:11px;font-style:normal;font-weight:900}.mini-panel em.sell{background:#ef4444}.mini-panel small{color:#e2e8f0b3}.phone-mock{position:absolute;right:-28px;bottom:-1px;width:162px;min-height:332px;border:4px solid rgba(15,23,42,.96);border-radius:26px;background:#061326;box-shadow:0 20px 44px #00000061;padding:18px 12px 12px}.phone-top{color:#fff;font-size:10px;font-weight:900}.phone-brand{margin-top:18px;color:#fff;font-size:12px;font-weight:900}.phone-card{margin-top:12px;padding:11px}.phone-card strong{display:block;margin-top:6px;color:#fff;font-size:16px}.phone-chart{height:74px;margin-top:12px;border-radius:7px;background:linear-gradient(135deg,transparent 20%,rgba(31,117,255,.5) 20% 22%,transparent 22% 40%,rgba(255,73,62,.75) 40% 42%,transparent 42%),#15243db8}.value-section{padding:24px clamp(22px,5.8vw,92px) 18px;background:#fff}.section-heading{text-align:center}.section-heading h2{margin:0;color:#07142a;font-size:32px;line-height:1.25;font-weight:900}.section-heading p{margin:9px 0 0;color:#546179;font-size:17px}.value-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;max-width:1380px;margin:24px auto 16px}.value-card{min-height:148px;border:1px solid #e3e9f3;border-radius:8px;background:#fff;padding:19px 18px 16px;text-align:center;box-shadow:0 18px 38px #0f172a0a}.value-icon{width:48px;height:48px;display:inline-grid;place-items:center;border-radius:50%;background:#eef3ff;color:#176cff;font-size:26px;font-weight:900}.value-card h3{margin:16px 0 0;color:#07142a;font-size:18px}.value-card p{margin:11px 0 0;color:#5f6e84;font-size:15px;line-height:1.55}.trust-band{max-width:1380px;min-height:96px;display:grid;grid-template-columns:1.35fr 1fr minmax(210px,290px);align-items:center;gap:22px;margin:0 auto;border:1px solid #dbe5f5;border-radius:8px;background:linear-gradient(135deg,#f4f7ff,#fff);padding:16px 26px}.trust-copy{display:flex;align-items:center;gap:18px}.shield-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#eaf1ff;color:#176cff;font-size:26px}.trust-copy h3{margin:0;color:#07142a;font-size:20px}.trust-copy p{margin:7px 0 0;color:#5f6e84;font-size:15px;line-height:1.5}.trust-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.trust-metrics span{display:grid;gap:4px;color:#5f6e84;font-size:14px;text-align:center}.trust-metrics strong{color:#07142a;font-size:19px}.trust-action{width:100%;min-height:40px;font-size:16px}.site-footer{display:grid;grid-template-columns:1.8fr repeat(4,minmax(120px,1fr));gap:36px;padding:22px clamp(22px,5.8vw,92px);background:#061426;color:#ffffffc7}.site-footer p,.site-footer small,.footer-links span{color:#e2e8f0ad}.site-footer p{margin:16px 0 10px;font-size:16px}.footer-logo{font-size:20px}.footer-links{display:grid;gap:10px;align-content:start;font-size:16px}.footer-links strong{color:#fff}.footer-links a{color:#e2e8f0b3}@media (max-width: 1180px){.site-nav{display:none}.hero-content{grid-template-columns:1fr}.hero-visual{max-width:820px}.value-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.trust-band,.site-footer{grid-template-columns:1fr 1fr}}@media (max-width: 760px){.site-header{height:auto;min-height:70px;padding:12px 18px}.site-logo{font-size:21px}.header-actions{gap:8px}.ghost-button,.signup-button,.api-doc-button{min-width:68px;height:38px;padding:0 10px;font-size:14px}.hero-section{padding:100px 18px 24px}.hero-copy h1{font-size:40px}.hero-copy p{font-size:18px}.hero-primary,.hero-secondary,.hero-doc{width:100%}.dashboard-mock{grid-template-columns:1fr}.mock-sidebar,.phone-mock{display:none}.mock-content{padding:16px}.stat-grid,.mock-lower,.trust-band,.trust-metrics,.site-footer,.value-grid{grid-template-columns:1fr}.value-section{padding:28px 18px 18px}.trust-band{padding:18px}}.dashboard-layout{grid-template-columns:224px minmax(0,1fr);background:#f6f9fd}.dashboard-sidebar{position:sticky;top:0;height:100vh;padding:24px 14px;background:var(--color-sidebar-bg);border-right:1px solid var(--color-border)}.dashboard-logo{display:flex;align-items:center;gap:16px;color:var(--color-text-main);font-size:30px}.dashboard-logo-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:6px;background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);box-shadow:none;font-size:26px;font-weight:800}.dashboard-product{display:flex;align-items:center;gap:12px;min-height:54px;margin:0 6px 26px;padding:0 8px;color:var(--color-text-main);font-size:18px;font-weight:700;line-height:1.28}.dashboard-nav{gap:6px;margin-top:0}.dashboard-nav a,.dashboard-nav .admin-sub-link{display:flex;align-items:center;gap:12px;min-height:44px;border-radius:8px;color:var(--color-sidebar-text);padding:0 12px;font-size:17px;font-weight:500;letter-spacing:0;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.dashboard-nav a.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);box-shadow:none}.dashboard-nav a:not(.active):hover,.dashboard-nav .admin-sub-link:not(.active):hover{background:#f1f5f9;color:var(--color-text-main)}.dashboard-nav .admin-sub-nav{padding-left:34px}.nav-icon{width:22px;height:22px;flex:0 0 22px;display:inline-grid;place-items:center;color:inherit;font-size:19px;line-height:1}.dashboard-product .nav-icon{width:30px;height:30px;flex-basis:30px;border-radius:8px;background:linear-gradient(145deg,#2d82ff,#164fe9);box-shadow:0 12px 26px #185fff4d;font-size:20px}.dashboard-main{padding:0;min-width:0}.dashboard-topbar{min-height:90px;border-bottom:1px solid #dfe7f3;background:#ffffffeb;padding:0 42px 0 30px}.dashboard-topbar h1{display:block;margin:0 0 8px;color:#111827;font-size:26px;line-height:1.2}.dashboard-topbar .sub{margin:0;color:#111827;font-size:20px}.dashboard-topbar .admin-user{color:#172033}.topbar-actions{display:flex;align-items:center;gap:18px}.topbar-user{min-height:44px;display:inline-flex;align-items:center;gap:10px;color:#172033;font-size:16px;font-weight:900;white-space:nowrap}.top-icon-button{position:relative;width:44px;height:44px;display:grid;place-items:center;border:1px solid #d8e2ef;border-radius:8px;background:#fff;color:#111827;font-size:24px;line-height:1}.top-icon-button b{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;display:grid;place-items:center;border:2px solid #fff;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:900;line-height:1}.user-avatar{width:44px;height:44px;display:grid;place-items:center;border:1px solid #d8e2ef;border-radius:50%;background:#fff;font-size:0}.user-avatar:before{content:"";width:15px;height:15px;border:2px solid #111827;border-radius:50%;box-shadow:0 17px 0 -4px #111827}.logout-button{min-width:92px;height:44px;border:1px solid #d8e2ef;border-radius:8px;background:#fff;color:#172033;padding:0 16px;font-size:15px;font-weight:900}.dashboard-page{padding:var(--admin-page-padding-y) var(--admin-page-padding-x)}.dashboard-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--admin-card-gap)}.summary-card,.dashboard-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09}.summary-card{min-height:122px;display:flex;align-items:center;gap:28px;padding:20px 34px}.summary-icon{width:62px;height:62px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;font-size:32px;font-weight:900}#admin-app .summary-icon{font-size:38px}.summary-icon.blue{background:#e8f0ff;color:#1d5cff}.summary-icon.red{background:#ffe6e6;color:#ef1f1f}.summary-icon.green{background:#dcf8e5;color:#10923c}.summary-icon.purple{background:#efe7ff;color:#7133d4}.summary-card span:not(.summary-icon){display:block;color:#111827;font-size:18px}.summary-card strong{display:block;margin-top:12px;color:#111827;font-size:clamp(22px,2vw,28px);line-height:1.1}.summary-value,.summary-detail{display:inline-flex!important;align-items:center;gap:6px;white-space:nowrap}.summary-value{font-size:clamp(17px,1.35vw,21px)!important}.summary-card small{display:block;margin-top:10px;font-size:20px;font-weight:800}.summary-detail{font-size:14px!important}.summary-triangle{width:0;height:0;display:inline-block;flex:0 0 auto}.summary-triangle.up{border-right:6px solid transparent;border-bottom:10px solid var(--color-stock-up);border-left:6px solid transparent}.summary-triangle.down{border-top:10px solid var(--color-stock-down);border-right:6px solid transparent;border-left:6px solid transparent}.summary-triangle.flat{width:10px;height:3px;border-radius:999px;background:var(--color-stock-flat)}.dashboard-content-grid{display:grid;grid-template-columns:1.25fr .9fr 1.18fr;gap:14px;margin-top:18px}.dashboard-card{padding:var(--admin-card-padding)}.dashboard-card h2{margin:0 0 18px;color:#111827;font-size:23px;line-height:1.25}.dashboard-card h2 small{font-size:17px;font-weight:800}.watch-card{min-height:400px}.dashboard-stack{display:grid;gap:14px}.dashboard-table{width:100%;table-layout:fixed;border-collapse:collapse}.dashboard-table .stock-price-row-grid-watchlist{grid-template-columns:minmax(120px,1.45fr) minmax(82px,.82fr) minmax(82px,.82fr) minmax(78px,.78fr);min-width:0;gap:8px}.dashboard-watch-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(44px,.32fr);gap:8px;align-items:center}.dashboard-table .watchlist-summary-head{display:grid;grid-template-columns:minmax(120px,1.45fr) minmax(82px,.82fr) minmax(82px,.82fr) minmax(78px,.78fr) minmax(44px,.32fr);min-width:0;gap:8px}.dashboard-table .stock-price-cell{min-width:0}.dashboard-table .dashboard-two-line{display:grid;gap:3px;min-width:0}.dashboard-table .dashboard-number-cell{text-align:right}.dashboard-table .dashboard-number-cell .dashboard-two-line{justify-items:end}.dashboard-table .dashboard-stock-cell{text-align:left}.dashboard-table .stock-price-primary,.dashboard-table .stock-price-secondary,.dashboard-table .stock-price-name span,.dashboard-table .stock-price-name small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-table th,.dashboard-table td{border-bottom:1px solid #e4ebf5;padding:10px 1px;text-align:left;font-size:12px}.dashboard-table th{background:#f5f7fb;color:#111827;font-weight:800}.dashboard-table small{color:#111827}.monitor-badge{display:inline-flex;justify-content:center;min-width:44px;color:#0b8a24;font-size:12px;font-weight:900}.dashboard-red{color:#ef0000!important}.dashboard-blue{color:#165cff!important}.dashboard-gray{color:#cbd5e1!important}.dashboard-green{color:#0b8a24!important}.signal-list,.news-list{display:grid;gap:18px}.signal-list div{display:grid;grid-template-columns:44px 1fr 54px auto;align-items:center;gap:12px;font-size:17px}.signal-list strong{font-size:18px}.signal-list em{border-radius:6px;background:#f1f3f7;color:#374151;padding:7px 10px;font-size:15px;font-style:normal}.signal-list time,.news-list time{color:#475569}.order-status-row,.market-index-row,.system-row,.news-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e4ebf5;padding:12px 0;color:#111827;font-size:17px}.order-status-row:last-child,.market-index-row:last-child,.system-row:last-child,.news-list div:last-child{border-bottom:0}.asset-chart-card{min-height:400px}.asset-chart{height:310px}.asset-chart svg{width:100%;height:260px}.asset-chart line{stroke:#e2e8f0;stroke-width:1}.asset-chart polyline{fill:none;stroke:#1d5cff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.asset-chart circle{fill:#1d5cff}.asset-chart-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;color:#475569;font-size:16px;text-align:center}.index-card,.system-card,.news-card{min-height:280px}.market-index-row strong{margin-left:auto;min-width:100px;text-align:right}.market-index-row em{min-width:78px;text-align:right;font-style:normal;font-weight:900}.system-row strong{min-width:78px;border:1px solid #98dfb7;border-radius:999px;background:#dff8e9;color:#0b7d2a;padding:5px 18px;text-align:center}.trading-dashboard-head,.card-head-row,.mode-strip,.period-tabs,.mock-order-summary,.performance-metrics,.position-distribution-layout{display:flex;align-items:center}.trading-dashboard-head{justify-content:space-between;gap:16px;margin-bottom:18px}.trading-dashboard-head h2{margin:0 0 6px;font-size:24px}.trading-dashboard-head p{margin:0;color:var(--color-text-sub)}.mode-strip{flex-wrap:wrap;justify-content:flex-end;gap:10px;color:var(--color-text-sub);font-size:12px}.mode-badge,.state-badge,.action-badge,.execution-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;white-space:nowrap}.mode-badge.mock{background:#dbeafe;color:#1d4ed8}.mode-badge.real{background:#fee2e2;color:#b91c1c}.trading-kpi-grid{grid-template-columns:repeat(6,minmax(150px,1fr))}.trading-kpi-card{min-height:112px;gap:14px;padding:16px}.trading-kpi-card .summary-icon{width:38px;height:38px;font-size:18px!important}.summary-icon.orange{background:#fff7ed;color:#ea580c}.trading-kpi-card.green{background:linear-gradient(135deg,#fff,#f0fdf4)}.trading-kpi-card.red{background:linear-gradient(135deg,#fff,#fef2f2)}.trading-kpi-card.blue{background:linear-gradient(135deg,#fff,#eff6ff)}.trading-kpi-card.purple{background:linear-gradient(135deg,#fff,#faf5ff)}.trading-kpi-card.orange{background:linear-gradient(135deg,#fff,#fff7ed)}.trading-dashboard-grid{display:grid;grid-template-columns:minmax(520px,1.8fr) minmax(360px,1fr) minmax(260px,.72fr);gap:16px;margin-top:16px}.position-target-card,.performance-card{grid-column:span 2}.card-head-row{justify-content:space-between;gap:12px;margin-bottom:14px}.card-head-row h2{margin-bottom:0}.ghost-link{min-height:30px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-sub);padding:0 10px;font-size:12px;font-weight:800}.position-target-table{min-width:1080px}.position-target-card{overflow-x:auto}.position-target-table th,.position-target-table td,.compact-order-table th,.compact-order-table td{padding:9px 10px;white-space:nowrap}.state-badge.accumulate,.position-legend i.accumulate,.position-bars i.accumulate{background:#dcfce7;color:#15803d}.state-badge.hold,.position-legend i.hold,.position-bars i.hold{background:#dbeafe;color:#1d4ed8}.state-badge.reduce,.position-legend i.reduce,.position-bars i.reduce{background:#ffedd5;color:#ea580c}.state-badge.exit,.position-legend i.exit,.position-bars i.exit{background:#fee2e2;color:#dc2626}.state-badge.wait,.position-legend i.wait,.position-bars i.wait{background:#f1f5f9;color:#64748b}.state-badge.executed{background:#dcfce7;color:#15803d}.state-badge.compact{min-width:84px}.action-badge.buy{background:#dcfce7;color:#15803d}.action-badge.sell{background:#fee2e2;color:#dc2626}.action-badge.hold{background:#dbeafe;color:#1d4ed8}.action-badge.exit{background:#fee2e2;color:#b91c1c}.action-badge.wait{background:#f1f5f9;color:#64748b}.dashboard-orange{color:#ea580c!important}.intent-stream-list{display:grid;gap:9px}.intent-stream-list div{display:grid;grid-template-columns:54px minmax(100px,1.1fr) minmax(88px,1fr) minmax(82px,.8fr) minmax(88px,.9fr) minmax(64px,.7fr) minmax(72px,1fr);align-items:center;gap:9px;border-bottom:1px solid var(--color-border);padding-bottom:9px;font-size:12px}.intent-stream-list div:last-child{border-bottom:0;padding-bottom:0}.intent-stream-list time,.timeline-list time{color:var(--color-text-sub);font-size:12px}.intent-stream-list em{font-style:normal;font-weight:700;text-align:right}.intent-stream-list small{color:var(--color-text-sub)}.auto-operation-event-list{display:grid;align-content:start;gap:8px}.auto-operation-event-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:9px;border-bottom:1px solid var(--color-border);padding-bottom:8px}.auto-operation-event-row:last-child{border-bottom:0;padding-bottom:0}.auto-operation-event-row time{color:var(--color-text-sub);font-size:11px;font-weight:700;line-height:1.4}.auto-operation-event-content{display:grid;min-width:0;gap:4px}.auto-operation-event-title{display:flex;min-width:0;align-items:center;gap:6px}.auto-operation-event-title strong{min-width:0;overflow:hidden;color:var(--color-text-main);font-size:12px;font-weight:750;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.auto-operation-event-content p{display:flex;min-width:0;align-items:center;gap:5px;margin:0}.auto-operation-event-content small{min-width:0;overflow:hidden;color:var(--color-text-sub);font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.auto-operation-event-badge,.auto-operation-event-status,.auto-operation-mode-badge{display:inline-flex;max-width:132px;flex:0 0 auto;align-items:center;border-radius:999px;padding:3px 7px;font-size:9.5px;font-weight:650;line-height:1;white-space:nowrap}.auto-operation-event-badge.position{background:#dbeafe;color:#1d4ed8}.auto-operation-event-badge.watch{background:#ede9fe;color:#6d28d9}.auto-operation-event-badge.intent,.auto-operation-event-badge.execution{background:#dcfce7;color:#15803d}.auto-operation-event-badge.guard{background:#ffedd5;color:#c2410c}.auto-operation-event-badge.failed{background:#fee2e2;color:#b91c1c}.auto-operation-event-badge.direct{background:#e0e7ff;color:#4338ca}.auto-operation-event-badge.default,.auto-operation-event-status.created{background:#f1f5f9;color:#475569}.auto-operation-event-status.filled{background:#dcfce7;color:#15803d}.auto-operation-event-status.skipped{background:#f8fafc;color:#64748b}.auto-operation-event-status.failed{background:#fee2e2;color:#b91c1c}.auto-operation-mode-badge{max-width:48px;background:#f8fafc;color:#64748b}.empty-card-message{margin:0;padding:14px 10px;color:var(--color-text-sub);font-size:12px;font-weight:700;text-align:center}.execution-badge.created{background:#eef2ff;color:#4338ca}.execution-badge.filled{background:#dcfce7;color:#15803d}.execution-badge.skipped{background:#f1f5f9;color:#64748b}.execution-badge.failed{background:#fee2e2;color:#dc2626}.trading-system-row strong.ok{border-color:#bbf7d0;background:#dcfce7;color:#15803d}.trading-system-row strong.checking{border-color:#fde68a;background:#fef3c7;color:#b45309}.trading-system-row strong.error{border-color:#fecaca;background:#fee2e2;color:#dc2626}.mock-order-summary,.performance-metrics{gap:10px;margin-bottom:16px}.mock-order-summary article,.performance-metrics article{flex:1;min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:10px}.mock-order-summary span,.performance-metrics span{display:block;color:var(--color-text-sub);font-size:12px}.mock-order-summary strong,.performance-metrics strong{display:block;margin-top:5px;font-size:18px}.mock-order-card h3{margin:14px 0 8px;font-size:14px}.period-tabs{gap:4px}.period-tabs button{min-height:30px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-sub);padding:0 10px;font-size:12px}.period-tabs button.active{background:var(--color-primary);color:#fff}.position-distribution-layout{justify-content:center;gap:24px}.position-donut{width:142px;height:142px;flex:0 0 142px;display:grid;place-items:center;border-radius:50%;position:relative}.position-donut:after{content:"";position:absolute;top:34px;right:34px;bottom:34px;left:34px;border-radius:50%;background:#fff}.position-donut span{position:relative;z-index:1;color:var(--color-text-main);font-weight:900}.position-legend{display:grid;min-width:180px;gap:8px}.position-legend div{display:flex;justify-content:space-between;gap:10px;font-size:12px}.position-legend span,.position-bars span{display:inline-flex;align-items:center;gap:7px}.position-legend i{width:10px;height:10px;border-radius:50%}.position-bars{display:grid;gap:10px;margin-top:18px}.position-bars div,.skip-reason-row{display:grid;grid-template-columns:110px minmax(0,1fr) 110px;align-items:center;gap:10px;font-size:12px}.position-bars b,.skip-reason-row b{height:9px;overflow:hidden;border-radius:999px;background:#e2e8f0}.position-bars i,.skip-reason-row i{display:block;height:100%;border-radius:inherit}.skip-reason-card{display:grid;align-content:start;gap:12px}.skip-reason-row i{background:#64748b}.timeline-list{display:grid;gap:12px}.timeline-list div{display:grid;grid-template-columns:48px 10px minmax(0,1fr);align-items:start;gap:10px}.timeline-list span{width:8px;height:8px;margin-top:6px;border-radius:50%;background:#94a3b8}.timeline-list span.ok,.timeline-list span.accumulate{background:#16a34a}.timeline-list span.reduce{background:#f97316}.timeline-list span.wait{background:#64748b}.timeline-list p{margin:0;color:var(--color-text-main);font-size:13px;line-height:1.45}.timeline-list.dense{gap:14px}#admin-app .dashboard-page{padding:18px 22px 22px}#admin-app .trading-dashboard-head{min-height:48px;margin-bottom:12px}#admin-app .trading-dashboard-head h2{margin-bottom:3px;font-size:22px;font-weight:800}#admin-app .trading-dashboard-head p,#admin-app .mode-strip{font-size:12px}#admin-app .mode-strip{gap:8px}#admin-app .mode-badge,#admin-app .state-badge,#admin-app .action-badge,#admin-app .execution-badge{min-height:20px;padding:2px 7px;font-size:10px;line-height:1.2}#admin-app .trading-kpi-grid{grid-template-columns:repeat(7,minmax(112px,1fr));gap:12px}#admin-app .trading-kpi-card{position:relative;min-height:126px;display:flex;align-items:stretch;justify-content:flex-start;flex-direction:column;gap:8px;border-radius:10px;padding:17px 18px 16px;overflow:hidden;box-shadow:0 10px 24px #0f172a0b}#admin-app .trading-kpi-card .kpi-head{display:flex;align-items:center;gap:9px;min-width:0}#admin-app .trading-kpi-card .summary-icon,#admin-app .kpi-corner-icon{width:30px;height:30px;flex-basis:30px;display:inline-grid;place-items:center;border-radius:50%;font-size:15px!important}#admin-app .trading-kpi-card .kpi-head>span:not(.summary-icon){min-width:0;overflow:hidden;color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}#admin-app .trading-kpi-card .summary-value{display:block!important;margin-top:2px;color:var(--color-text-main);font-size:clamp(18px,1.35vw,24px)!important;font-weight:900;line-height:1.05;white-space:nowrap}#admin-app .trading-kpi-card .summary-detail{display:block!important;margin-top:auto;color:var(--color-text-sub);font-size:11px!important;font-weight:700;line-height:1.45;white-space:pre-line}#admin-app .kpi-status-pill{display:inline-flex;min-height:26px;align-items:center;justify-content:center;border-radius:999px;background:#dcfce7;color:#15803d;padding:4px 12px;font-size:12px;font-weight:900}#admin-app .kpi-corner-icon{position:absolute;right:15px;bottom:14px;opacity:.85}#admin-app .kpi-corner-icon.green,#admin-app .summary-icon.green{background:#dcfce7;color:#16a34a}#admin-app .kpi-corner-icon.blue,#admin-app .summary-icon.blue{background:#dbeafe;color:#2563eb}#admin-app .kpi-corner-icon.red,#admin-app .summary-icon.red{background:#fee2e2;color:#dc2626}#admin-app .kpi-corner-icon.purple,#admin-app .summary-icon.purple{background:#f3e8ff;color:#9333ea}#admin-app .kpi-corner-icon.orange,#admin-app .summary-icon.orange{background:#ffedd5;color:#ea580c}#admin-app .trading-kpi-card.green{background:linear-gradient(135deg,#fff,#f0fdf4)}#admin-app .trading-kpi-card.blue{background:linear-gradient(135deg,#fff,#eff6ff)}#admin-app .trading-kpi-card.red{background:linear-gradient(135deg,#fff,#fef2f2)}#admin-app .trading-kpi-card.purple{background:linear-gradient(135deg,#fff,#faf5ff)}#admin-app .trading-kpi-card.orange{background:linear-gradient(135deg,#fff,#fff7ed)}#admin-app .trading-dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:"positions positions positions positions positions positions positions intents intents intents system system" "orders orders orders orders performance performance performance performance distribution distribution distribution distribution" "skip skip skip skip alerts alerts alerts alerts logs logs logs logs";gap:14px;margin-top:14px;align-items:start}#admin-app .dashboard-card{display:flex;min-width:0;min-height:0;flex-direction:column;border-radius:10px;padding:14px;overflow:hidden;box-shadow:0 10px 24px #0f172a0b}#admin-app .dashboard-card h2{margin-bottom:11px;font-size:15px;font-weight:800}#admin-app .dashboard-card h2 small,#admin-app .mock-order-card h3{font-size:12px}#admin-app .card-head-row{margin-bottom:10px}#admin-app .dashboard-card-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}#admin-app .card-title-with-legend{display:grid;min-width:0;gap:3px}#admin-app .card-title-with-legend h2{margin-bottom:0}#admin-app .card-title-with-legend span{color:var(--color-text-muted);font-size:11px;font-weight:700;line-height:1.2}#admin-app .ghost-link,#admin-app .period-tabs button{min-height:26px;border-radius:7px;padding:0 8px;font-size:11px}#admin-app .position-target-card{grid-area:positions;height:520px;order:10}#admin-app .position-target-scroll{flex:0 1 auto;max-height:414px;min-height:0;padding-right:6px;overflow-x:auto}#admin-app .position-target-pagination{display:inline-flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;padding-top:5px}#admin-app .position-target-pagination button{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:7px;background:#fff;color:#64748b;padding:0 6px;font-size:11px;font-weight:800;line-height:1;cursor:pointer}#admin-app .position-target-pagination button.active,#admin-app .position-target-pagination button:hover{border-color:#bfdbfe;background:#dbeafe;color:#1d4ed8}#admin-app .intent-stream-card{grid-area:intents;height:520px;order:20}#admin-app .mock-order-card{grid-area:orders;height:302px;order:40}#admin-app .performance-card{grid-area:performance;height:302px;order:50}#admin-app .position-distribution-card{grid-area:distribution;height:302px;order:60}#admin-app .skip-reason-card{grid-area:skip;height:190px;order:70}#admin-app .alert-card{grid-area:alerts;height:190px;order:80}#admin-app .log-card{grid-area:logs;height:190px;order:90}#admin-app .skip-reason-card,#admin-app .alert-card,#admin-app .log-card{align-self:start;margin-top:0;transform:none}#admin-app .system-card{grid-area:system;height:520px;order:30}#admin-app .card-scroll{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#CBD5E1 #F8FAFC}#admin-app .card-scroll::-webkit-scrollbar{width:8px;height:8px}#admin-app .card-scroll::-webkit-scrollbar-track{background:#f8fafc}#admin-app .card-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd5e1}#admin-app .table-scroll{border:1px solid var(--color-border);border-radius:8px}#admin-app .position-target-table{min-width:930px;margin-right:8px}#admin-app .position-target-table th:nth-child(1),#admin-app .position-target-table td:nth-child(1){width:108px}#admin-app .position-target-table th:nth-child(2),#admin-app .position-target-table td:nth-child(2),#admin-app .position-target-table th:nth-child(3),#admin-app .position-target-table td:nth-child(3){width:100px;text-align:right}#admin-app .position-target-table th:nth-child(4),#admin-app .position-target-table td:nth-child(4){width:96px;text-align:center}#admin-app .position-target-table th:nth-child(5),#admin-app .position-target-table td:nth-child(5){width:100px;text-align:right}#admin-app .position-target-table th:nth-child(6),#admin-app .position-target-table td:nth-child(6){width:106px;text-align:right}#admin-app .position-target-table th:nth-child(7),#admin-app .position-target-table td:nth-child(7){width:82px;text-align:center}#admin-app .position-target-table th:nth-child(8),#admin-app .position-target-table td:nth-child(8){width:68px;text-align:center}#admin-app .position-target-table th:nth-child(9),#admin-app .position-target-table td:nth-child(9){width:92px;text-align:center}#admin-app .position-target-table th:nth-child(10),#admin-app .position-target-table td:nth-child(10){width:72px;text-align:center}#admin-app .position-target-table th:last-child,#admin-app .position-target-table td:last-child{padding-right:12px}#admin-app .position-target-table .dashboard-state-cell{min-width:96px;text-align:center;vertical-align:middle}#admin-app .position-target-table .dashboard-state-cell .state-badge{display:inline-flex;align-items:center;justify-content:center;min-width:80px;height:26px;padding:0 9px;line-height:1;white-space:nowrap}#admin-app .position-target-table .dashboard-score-cell,#admin-app .position-target-table .dashboard-score-stack-cell,#admin-app .position-target-table .dashboard-action-cell{text-align:center;vertical-align:middle}#admin-app .position-target-table .dashboard-stacked-number-cell{text-align:right;vertical-align:middle}#admin-app .compact-value-stack{align-items:end;justify-items:end;gap:1px;line-height:1.15}#admin-app .compact-value-stack span,#admin-app .compact-score-stack span{color:#0f172a;font-weight:700}#admin-app .compact-value-stack small,#admin-app .compact-score-stack small{font-size:10px;font-weight:600;line-height:1.1}#admin-app .compact-score-stack{align-items:center;justify-items:center;gap:1px;line-height:1.15}#admin-app .compact-order-table{table-layout:fixed;min-width:620px}#admin-app .compact-order-table th:nth-child(1),#admin-app .compact-order-table td:nth-child(1){width:68px}#admin-app .compact-order-table th:nth-child(2),#admin-app .compact-order-table td:nth-child(2){width:124px}#admin-app .compact-order-table th:nth-child(3),#admin-app .compact-order-table td:nth-child(3){width:48px;text-align:center}#admin-app .compact-order-table th:nth-child(4),#admin-app .compact-order-table td:nth-child(4){width:44px;text-align:right}#admin-app .compact-order-table th:nth-child(5),#admin-app .compact-order-table td:nth-child(5),#admin-app .compact-order-table th:nth-child(6),#admin-app .compact-order-table td:nth-child(6){width:82px;text-align:right}#admin-app .compact-order-table th:nth-child(7),#admin-app .compact-order-table td:nth-child(7){width:92px;text-align:center}#admin-app .table-scroll .dashboard-table th{position:sticky;top:0;z-index:1}#admin-app .dashboard-table th,#admin-app .dashboard-table td,#admin-app .position-target-table th,#admin-app .position-target-table td,#admin-app .compact-order-table th,#admin-app .compact-order-table td{padding:6px 8px;font-size:11px;line-height:1.2;vertical-align:middle}#admin-app .position-target-table th,#admin-app .position-target-table td{padding-top:8px;padding-bottom:8px;line-height:1.25}#admin-app .position-target-table tbody tr{min-height:42px}#admin-app .position-target-table .dashboard-two-line{gap:3px}#admin-app .dashboard-table th{font-size:10px;font-weight:800;text-transform:none}#admin-app .intent-stream-list{gap:7px}#admin-app .intent-stream-list div{grid-template-columns:58px 72px minmax(52px,1fr) 62px 68px 34px minmax(38px,.7fr);gap:4px;padding-bottom:7px}#admin-app .intent-stream-list .state-badge,#admin-app .intent-stream-list .execution-badge,#admin-app .intent-stream-list small{grid-column:auto}#admin-app .intent-stream-list time,#admin-app .intent-stream-list span,#admin-app .intent-stream-list strong,#admin-app .intent-stream-list em,#admin-app .intent-stream-list small{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}#admin-app .system-row,#admin-app .trading-system-row{padding:8px 0;font-size:12px}#admin-app .trading-system-row strong{min-width:76px;padding:4px 9px;font-size:10px}#admin-app .mock-order-summary,#admin-app .performance-metrics{flex:0 0 auto;gap:7px;margin-bottom:10px}#admin-app .mock-order-summary article,#admin-app .performance-metrics article{border-radius:7px;padding:8px}#admin-app .mock-order-summary article{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;min-height:54px;background:#fff}#admin-app .mock-order-summary i{grid-row:1 / 3;width:24px;height:24px;display:inline-grid;place-items:center;border-radius:7px;background:#eef2ff;color:#4338ca;font-size:12px;font-style:normal;font-weight:900}#admin-app .mock-order-summary article:nth-child(1) i{background:#fff7ed;color:#ea580c}#admin-app .mock-order-summary article:nth-child(2) i{background:#dcfce7;color:#15803d}#admin-app .mock-order-summary article:nth-child(3) i{background:#eff6ff;color:#2563eb}#admin-app .mock-order-summary article:nth-child(4) i{background:#fee2e2;color:#dc2626}#admin-app .mock-order-summary span,#admin-app .performance-metrics span{font-size:10px}#admin-app .mock-order-summary span{min-width:0;overflow:hidden;color:var(--color-text-sub);text-overflow:ellipsis;white-space:nowrap;font-weight:800}#admin-app .mock-order-summary strong,#admin-app .performance-metrics strong{margin-top:4px;font-size:14px}#admin-app .mock-order-summary strong{margin-top:1px;color:var(--color-text-main);font-size:15px;font-weight:900;line-height:1}#admin-app .asset-chart-card{min-height:0}#admin-app .asset-chart{flex:1 1 auto;min-height:0;height:210px;overflow:hidden}#admin-app .asset-chart-legend{display:flex;align-items:center;justify-content:center;gap:14px;height:18px;margin-bottom:3px;color:var(--color-text-main);font-size:10px;font-weight:800}#admin-app .asset-chart-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}#admin-app .asset-chart-legend i{display:inline-block;width:10px;height:6px;border-radius:2px}#admin-app .asset-chart-legend .equity{width:14px;height:2px;background:#111827}#admin-app .asset-chart-legend .realized{background:#22c55e}#admin-app .asset-chart-legend .unrealized{background:#3b82f6}#admin-app .asset-chart svg{height:176px}#admin-app .asset-chart text{fill:#64748b;font-size:9px;font-weight:700}#admin-app .asset-chart polyline{stroke:#111827;stroke-width:2.5}#admin-app .asset-chart rect.realized{fill:#22c55e}#admin-app .asset-chart rect.unrealized{fill:#3b82f6}#admin-app .asset-chart-labels{font-size:10px}#admin-app .position-distribution-layout{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;gap:18px;padding:2px 0 4px}#admin-app .position-donut{width:126px;height:126px;flex-basis:126px;display:grid;place-items:center;justify-self:center;border-radius:50%;box-shadow:none}#admin-app .position-donut:after{top:34px;right:34px;bottom:34px;left:34px;box-shadow:none}#admin-app .position-distribution-card .position-donut:after{top:15px;right:15px;bottom:15px;left:15px}#admin-app .position-donut span,#admin-app .position-legend div,#admin-app .position-bars div,#admin-app .skip-reason-row,#admin-app .timeline-list p,#admin-app .timeline-list time{font-size:11px}#admin-app .position-donut span{color:var(--color-text-main);font-size:12px;font-weight:900;text-align:center}#admin-app .position-distribution-card .position-donut .position-donut-center{position:relative;z-index:1;display:flex;width:74px;height:74px;margin:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-main);line-height:1.15;text-align:center}#admin-app .position-distribution-card .position-donut .position-donut-center small{color:var(--color-text-sub);font-size:12px;font-weight:800}#admin-app .position-distribution-card .position-donut .position-donut-center strong{color:var(--color-text-main);font-size:15px;font-weight:900}#admin-app .position-legend{min-width:0;display:grid;gap:11px}#admin-app .position-legend div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:0;padding-bottom:0}#admin-app .position-legend span,#admin-app .position-legend strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}#admin-app .position-legend span{color:var(--color-text-main);font-weight:700}#admin-app .position-legend strong{text-align:right;font-weight:800}#admin-app .position-legend i{width:11px;height:11px;flex:0 0 11px}#admin-app .position-bars-title{margin:15px 0 8px;color:var(--color-text-main);font-size:11px;font-weight:900}#admin-app .position-bars{gap:7px;margin-top:0}#admin-app .position-bars div{grid-template-columns:84px minmax(0,1fr) 122px;gap:10px}#admin-app .skip-reason-row{grid-template-columns:minmax(132px,1.65fr) minmax(74px,.85fr) 72px;gap:8px}#admin-app .position-bars b,#admin-app .skip-reason-row b{height:7px}#admin-app .skip-reason-card,#admin-app .timeline-list{gap:9px}#admin-app .skip-reason-row{font-size:10px!important}#admin-app .skip-reason-row span{min-width:0;overflow:hidden;color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;font-size:10px}#admin-app .skip-reason-row strong{color:var(--color-text-sub);text-align:right;font-size:10px;font-weight:700}#admin-app .timeline-list div{grid-template-columns:42px 8px minmax(0,1fr);gap:8px}#admin-app .timeline-list span{width:7px;height:7px}#admin-app .trading-system-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}#admin-app .trading-system-row .system-name{display:inline-flex;min-width:0;align-items:center;gap:8px;overflow:hidden;color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}#admin-app .system-icon{width:16px;height:16px;flex:0 0 16px;display:inline-grid;place-items:center;border:1px solid #cbd5e1;border-radius:4px;color:#334155;font-size:10px;font-style:normal;line-height:1}#admin-app .dashboard-footnote{margin-top:14px;font-size:12px}.dashboard-footnote{display:flex;justify-content:space-between;gap:18px;margin-top:24px;color:#475569;font-size:16px}.dashboard-footnote button{border:0;background:transparent;color:#475569;font-size:24px;line-height:1}.stock-search-page{display:grid;grid-template-columns:366px minmax(0,1fr);gap:14px;padding:20px 18px 24px}.stock-filter-panel,.stock-result-panel,.filter-summary-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09}.stock-filter-panel{padding:22px}.stock-filter-panel h2,.stock-result-panel h2,.filter-summary-panel h2{margin:0;color:#111827;font-size:22px;line-height:1.25}.stock-filter-form{display:grid;gap:24px;margin-top:18px}.search-input-wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 68px;align-items:center;gap:10px}.search-input-wrap span{position:absolute;left:14px;z-index:1;color:#7b879b;font-size:22px;pointer-events:none}.search-input-wrap input{grid-column:1;min-width:0;padding-left:40px}.search-input-wrap button{grid-column:2;width:68px;min-width:68px;padding:0;white-space:nowrap}.search-input-wrap button,.filter-submit{height:42px;border:0;border-radius:6px;background:#1057e8;color:#fff;font-weight:900}.stock-filter-form fieldset{display:flex;flex-wrap:wrap;gap:24px;border:0;margin:0;padding:0}.stock-filter-form legend,.filter-field label{width:100%;margin:0 0 8px;color:#111827;font-size:18px;font-weight:900}.stock-filter-form label{display:inline-flex;align-items:center;gap:9px;margin:0;color:#111827;font-size:17px;font-weight:600}.stock-filter-form input[type=checkbox],.stock-filter-form input[type=radio]{width:20px;height:20px;accent-color:#125bed}.range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ownership-input{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px}.stock-filter-form input,.stock-filter-form select,.page-size-select{border-color:#d5dfed;color:#111827;background:#fff}.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-reset{height:42px;border:1px solid #d5dfed;border-radius:6px;background:#fff;color:#111827;font-weight:900}.stock-result-panel{overflow:hidden}.stock-result-head{padding:22px 26px;border-bottom:1px solid #dbe5f1}.stock-result-table-wrap{overflow-x:auto}.stock-result-table{width:100%;min-width:940px;border-collapse:collapse}.stock-result-table th,.stock-result-table td{border-bottom:1px solid #e4ebf5;padding:14px 20px;text-align:left;color:#111827;font-size:17px;white-space:nowrap}.stock-result-table th{background:#f7f9fc;font-weight:900}.stock-result-table td strong{font-weight:900}.stock-result-table td span{color:#111827}.add-stock-button{height:32px;border:1px solid #cfdcf0;border-radius:6px;background:#fff;color:#1057e8;padding:0 13px;font-weight:900}.danger-button{border-color:#fecaca;color:#b42318}.danger-button:hover{background:#fef2f2}.managed-target-table{min-width:0;table-layout:fixed}.managed-target-table th,.managed-target-table td{padding:12px 10px;white-space:normal;vertical-align:middle}.managed-target-table .managed-col-name{width:19%}.managed-target-table .managed-col-price{width:11%}.managed-target-table .managed-col-quality{width:10%}.managed-target-table .managed-col-auto-trade{width:9%}.managed-target-table .managed-col-info{width:21%}.managed-target-table .managed-col-actions{width:8%}.managed-target-table .managed-col-note{width:22%}.managed-target-table td strong{display:block;font-size:15px;font-weight:900}.managed-target-code{display:block;margin-top:4px;color:#cbd5e1!important;font-size:60%;font-weight:400;line-height:1.25;white-space:normal;word-break:keep-all}.managed-target-price{font-weight:900}.managed-target-actions{display:flex;align-items:center;justify-content:flex-start;gap:4px;flex-wrap:nowrap}.managed-auto-trade-toggle{display:inline-block}.managed-action-button{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0}.managed-action-button:disabled{cursor:not-allowed;opacity:.45}.quality-result-badge{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:24px;border:1px solid #d4d4d8;border-radius:6px;color:#71717a;padding:4px 8px;font-size:10px;font-weight:900;line-height:1.2}.managed-trend-score{display:block;margin-top:5px;color:#334155!important;font-size:11px;font-weight:800;line-height:1.2}.quality-result-pass{border-color:#18181b;color:#18181b}.quality-result-warning{border-color:#fdba74;background:#fff7ed;color:#c2410c}.quality-result-fail{border-color:#fecaca;background:#fef2f2;color:#b42318}.quality-result-unknown{border-color:#d4d4d8;background:#f8fafc;color:#71717a}.managed-collection-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}.collection-status-button{position:relative;overflow:hidden;min-width:32px;height:26px;padding:0 6px;border:1px solid #d4d4d8;border-radius:6px;background:#fff;color:#71717a;font-size:11px;font-weight:800;line-height:1}.collection-status-button.status-completed{border-color:#18181b;background:#18181b;color:#fff}.collection-status-button.status-collecting{border-color:#fdba74;background:#fff7ed;color:#c2410c}.collection-status-button.status-collecting:after{position:absolute;right:0;bottom:0;left:0;height:3px;background:linear-gradient(90deg,transparent 0%,#f97316 45%,transparent 100%);content:"";transform:translate(-100%);animation:collection-progress-slide 1.2s ease-in-out infinite}.collection-status-button.status-failed{border-color:#fecaca;background:#fef2f2;color:#b42318}.collection-status-button:disabled{cursor:not-allowed;opacity:.65}.managed-note-empty{display:block;min-height:22px}@keyframes collection-progress-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.info-button{border-color:#bfdbfe;color:#125bed}.info-button:hover{background:#eff6ff}.stock-quality-modal{width:min(100%,760px);max-height:min(92vh,760px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.stock-quality-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:22px 24px}.stock-quality-modal-head h2{margin:0;font-size:22px;line-height:1.3}.stock-quality-modal-head p{margin:8px 0 0;font-weight:800}.quality-pass{color:var(--color-success)}.quality-block{color:#b42318}.quality-warning{color:#c2410c}.quality-unknown{color:#64748b}.quality-score{min-width:86px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-align:center}.quality-score strong{display:block;font-size:28px;line-height:1}.quality-score span{color:var(--muted);font-size:12px;font-weight:900}.stock-quality-body{overflow:auto;padding:18px 24px}.quality-check-section{margin-bottom:16px}.quality-check-section h3{margin:0 0 10px;font-size:15px}.quality-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.quality-check-card{min-height:116px;border:1px solid var(--line);border-radius:8px;padding:11px 12px}.quality-check-card strong,.quality-check-card span,.quality-check-card em,.quality-check-card small{display:block}.quality-check-card strong{font-size:13px}.quality-check-card span{margin-top:8px;color:var(--text);font-size:15px;font-weight:900}.quality-check-card em{margin-top:8px;font-style:normal;font-size:12px;font-weight:900}.quality-check-card small{margin-top:6px;color:var(--muted);line-height:1.35}.quality-alert{margin-bottom:14px;border:1px solid #fde68a;border-radius:8px;background:#fffbeb;padding:12px 14px}.quality-alert-block{border-color:#fecaca;background:#fef2f2}.quality-alert strong{display:block;margin-bottom:8px}.quality-alert ul{margin:0;padding-left:20px}.quality-item-list{display:grid;gap:10px}.quality-item{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.quality-item strong,.quality-item span{display:block}.quality-item span{margin-top:4px;color:var(--muted);font-size:13px}.quality-item em{flex:0 0 auto;max-width:180px;color:var(--text);font-style:normal;font-weight:900;text-align:right}.quality-item-pass{border-left:4px solid var(--color-success)}.quality-item-warning{border-left:4px solid #f59e0b}.quality-item-block{border-left:4px solid #dc2626}.stock-quality-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding:16px 24px 20px}.company-info-backdrop{z-index:70}.company-info-modal{display:grid;grid-template-rows:auto auto minmax(0,1fr);width:min(96vw,1120px);height:min(92vh,760px);border:1px solid var(--color-border);border-radius:12px;background:var(--color-content-bg);box-shadow:var(--shadow);overflow:hidden}.company-info-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--color-border)}.company-info-modal-head h2{margin:0;color:var(--color-text-main);font-size:24px;font-weight:700}.company-info-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 22px;border-bottom:1px solid var(--color-border);background:#f8fafc}.company-info-tabs button{min-height:34px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-sub);padding:0 14px;font-size:14px;font-weight:700}.company-info-tabs button.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.company-info-modal-body{min-height:0;overflow:auto;padding:20px 22px 24px}.company-info-state{padding:42px 22px;color:var(--color-text-sub);font-size:14px;text-align:center}.company-info-state.error{color:var(--color-danger)}.company-info-section{display:grid;gap:18px}.company-info-section h3{margin:4px 0 0;color:var(--color-text-main);font-size:18px;font-weight:700}.company-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}.company-info-grid div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start;border-bottom:1px solid #eef2f7;padding:10px 0}.company-info-grid dt{color:var(--color-text-sub);font-size:14px;font-weight:700}.company-info-grid dd{min-width:0;margin:0;color:var(--color-text-main);font-size:14px;overflow-wrap:anywhere}.company-info-grid a{color:var(--color-primary);font-weight:700}.company-info-table-wrap{overflow-x:auto}.company-info-table{width:100%;border-collapse:collapse;font-size:13px}.company-info-table th,.company-info-table td{border-bottom:1px solid #eef2f7;padding:10px 12px;text-align:right;white-space:nowrap}.company-info-table th{color:var(--color-text-sub);font-weight:700;background:#f8fafc}.company-info-table th:first-child,.company-info-table td:first-child{text-align:left}.ratio-table{max-width:620px}.ratio-table th{width:180px}.financial-ratio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.financial-ratio-grid div{min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:12px 14px}.financial-ratio-grid dt,.financial-ratio-grid dd{margin:0}.financial-ratio-grid dt{color:var(--color-text-sub);font-size:12px;font-weight:800}.financial-ratio-grid dd{margin-top:5px;color:var(--color-text-main);font-size:16px;font-weight:800}.financial-score-panel{border:1px solid var(--color-border);border-radius:8px;background:#f8fafc;padding:14px}.financial-score-panel dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.financial-score-panel div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:10px 12px}.financial-score-panel dt,.financial-score-panel dd{margin:0;font-size:14px}.financial-score-panel dt{color:var(--color-text-sub);font-weight:700}.financial-score-panel dd{color:var(--color-text-main);font-weight:900}.financial-grade-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:13px;font-weight:900}.financial-grade-badge.grade-aplus,.financial-grade-badge.grade-a{background:#dcfce7;color:#047857}.financial-grade-badge.grade-b{background:#dbeafe;color:#1d4ed8}.financial-grade-badge.grade-c{background:#ffedd5;color:#c2410c}.financial-grade-badge.grade-d,.financial-grade-badge.grade-e{background:#fee2e2;color:#b42318}.financial-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.financial-chart-card{min-width:0;height:240px;border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:12px}.financial-chart-card strong{display:block;margin-bottom:8px;color:var(--color-text-main);font-size:14px}.financial-chart-card canvas{width:100%!important;height:188px!important}.ai-analysis-list{display:grid;gap:12px}.ai-analysis-list article{border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:14px}.ai-analysis-list h3{margin:0 0 8px;font-size:18px}.ai-analysis-list p{margin:0;color:var(--color-text-main);font-size:14px;line-height:1.6;white-space:pre-line}.empty-state.compact{padding:16px}.stock-result-footer{display:flex;align-items:center;justify-content:flex-end;gap:70px;padding:22px 20px}.pagination{display:flex;align-items:center;gap:14px}.pagination button{min-width:34px;height:34px;border:0;border-radius:6px;background:transparent;color:#111827;font-size:18px;font-weight:900}.pagination button.active{background:#125bed;color:#fff}.pagination button:disabled{color:#9aa7ba;background:transparent}.page-size-select{width:auto;min-width:136px;height:42px}.filter-summary-panel{position:relative;grid-column:1 / -1;padding:22px}.filter-summary-panel>button{position:absolute;top:18px;right:18px;width:30px;height:30px;border:0;background:transparent;color:#172033;font-size:30px;line-height:1}.filter-chip-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.filter-chip-list span{border:1px solid #dbe5f1;border-radius:6px;background:#f8fbff;color:#172033;padding:8px 15px;font-size:16px}.trade-list-page{padding:24px 26px 28px}.position-monitor-page{display:grid;gap:16px;background:#f8fafc}.position-monitor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.position-monitor-head h2{margin:0 0 8px;color:#0f172a;font-size:28px;line-height:1.2}.position-monitor-head p,.position-monitor-refresh span{margin:0;color:#64748b;font-size:14px;font-weight:800}.position-monitor-refresh{display:flex;align-items:center;gap:10px}.position-monitor-refresh button{width:38px;height:38px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#2563eb;font-size:18px;font-weight:900}.position-monitor-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px}.position-monitor-kpi-card,.position-monitor-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.position-monitor-kpi-card{min-height:112px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px}.position-monitor-kpi-card span,.position-monitor-kpi-card small{display:block;color:#64748b;font-size:13px;font-weight:800}.position-monitor-kpi-card strong{display:block;margin:10px 0 8px;color:#0f172a;font-size:26px;line-height:1}.position-monitor-kpi-card i{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;font-style:normal;font-size:14px;font-weight:900}.position-monitor-kpi-card.green i{background:#dcfce7;color:#15803d}.position-monitor-kpi-card.blue i{background:#dbeafe;color:#1d4ed8}.position-monitor-kpi-card.orange i{background:#ffedd5;color:#ea580c}.position-monitor-kpi-card.red i{background:#fee2e2;color:#dc2626}.position-monitor-kpi-card.gray i{background:#f1f5f9;color:#475569}.position-monitor-kpi-card.purple i{background:#f3e8ff;color:#7e22ce}.position-monitor-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,.9fr);gap:16px;align-items:stretch;min-height:0}.position-monitor-table-card{height:clamp(560px,calc(100vh - 230px),700px);min-height:560px;min-width:0;display:flex;flex-direction:column}.position-monitor-card{min-width:0;padding:18px}.position-monitor-card-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.position-monitor-card-head.compact{align-items:center}.position-monitor-card h3,.position-monitor-card-head h3{margin:0 0 6px;color:#0f172a;font-size:18px;line-height:1.25}.position-monitor-card h3 small{color:#64748b;font-size:12px}.position-monitor-card-head p,.position-monitor-card-head span{margin:0;color:#64748b;font-size:13px;font-weight:800}.position-monitor-filter-bar{flex:0 0 auto;display:flex;align-items:center;flex-wrap:nowrap;justify-content:flex-end;gap:10px}.position-warning-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;padding:0 10px;color:#334155;font-size:12px;font-weight:900;white-space:nowrap}.position-warning-toggle input{width:14px;height:14px;accent-color:#2563eb}.position-trigger-note{flex-basis:100%;color:#64748b;font-size:11px;font-weight:800;text-align:right}.position-monitor-filter-bar select,.position-service-trigger-button{min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;font-size:13px;font-weight:800}.position-monitor-filter-bar select{padding:0 28px 0 10px}.position-service-trigger-button{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;white-space:nowrap;cursor:pointer;border-color:#1d4ed8;background:#2563eb;color:#fff;box-shadow:0 8px 18px #2563eb2e}.position-service-trigger-button:hover:not(:disabled){background:#1d4ed8;border-color:#1e40af}.position-service-trigger-button:active:not(:disabled){transform:translateY(1px)}.position-service-trigger-button:disabled{cursor:not-allowed;opacity:.62}.position-test-action-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px;min-width:0}.position-test-event-button{min-height:28px;padding:0 8px;font-size:11px;box-shadow:none}.position-test-modal{display:flex;flex-direction:column;width:min(480px,calc(100vw - 32px));min-height:min(560px,calc(100vh - 40px));max-height:calc(100vh - 40px);overflow:hidden;border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a3d;padding:18px;transition:none}.position-test-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.position-test-modal-head h2{margin:0 0 4px;color:#0f172a;font-size:18px}.position-test-modal-head p{margin:0;color:#64748b;font-size:12px;font-weight:800;line-height:1.35}.position-test-modal-form{display:grid;gap:12px;grid-template-rows:auto auto minmax(236px,1fr) auto auto;min-height:0;flex:1 1 auto}.position-test-modal-stock{display:grid;gap:4px;border:1px solid #e4ebf5;border-radius:8px;background:#f8fafc;padding:10px 12px}.position-test-modal-stock span,.position-test-modal-stock em{color:#64748b;font-size:11px;font-style:normal;font-weight:900}.position-test-modal-stock strong{color:#0f172a;font-size:16px;font-weight:900}.position-test-modal-types{display:flex;flex-wrap:wrap;gap:6px;min-width:0;border:0;padding:0;margin:0}.position-test-modal-types legend{width:100%;color:#334155;font-size:12px;font-weight:900}.position-test-modal-types label{display:inline-flex;align-items:center;gap:5px;min-height:32px;border:1px solid #dbe5f1;border-radius:7px;background:#fff;color:#334155;padding:0 10px;font-size:12px;font-weight:900;cursor:pointer}.position-test-modal-types label.is-active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.position-test-modal-types input{width:13px;height:13px;margin:0}.position-test-policy-preview{display:grid;gap:10px;grid-template-rows:auto minmax(176px,1fr);min-height:236px;min-width:0;overflow:hidden;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc;padding:11px 12px;transition:none}.position-test-policy-preview-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.position-test-policy-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#334155;font-size:12px;font-weight:900}.position-test-policy-preview-head span:last-child{border-radius:999px;padding:3px 8px;background:#e2e8f0;color:#475569;font-size:11px}.position-test-policy-preview-head span.ready{background:#dcfce7;color:#166534}.position-test-policy-preview-head span.blocked{background:#fee2e2;color:#991b1b}.position-test-policy-preview-empty,.position-test-policy-preview-reason{margin:0;color:#64748b;font-size:12px;font-weight:800;line-height:1.45}.position-test-policy-preview-reason{color:#b91c1c;min-height:18px;overflow-wrap:anywhere}.position-test-policy-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.position-test-policy-preview-grid>div{display:grid;gap:2px;min-width:0}.position-test-policy-preview-grid span{color:#64748b;font-size:11px;font-weight:800}.position-test-policy-preview-grid strong{overflow-wrap:anywhere;color:#0f172a;font-size:13px;font-weight:900}.position-test-modal-error{margin:0;color:#b91c1c;font-size:12px;font-weight:900}.position-test-modal-actions{position:sticky;bottom:0;justify-content:flex-end;align-items:center;min-height:38px;padding-top:4px;background:#fff}.position-test-modal-actions .primary-button:disabled,.position-test-modal-actions .primary-button.is-disabled{cursor:not-allowed;opacity:.52}.position-monitor-table-wrap{flex:1 1 auto;min-width:0;overflow-x:auto;min-height:0;overflow-y:auto}.position-monitor-table,.position-overfill-table{width:100%;border-collapse:collapse}.position-monitor-table{min-width:1420px}.position-runtime-toast{position:fixed;right:24px;bottom:24px;z-index:1200;max-width:min(420px,calc(100vw - 48px));border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;box-shadow:0 18px 50px #0f172a2e;padding:12px 14px;font-size:13px;font-weight:900}.position-runtime-toast.error{border-color:#fecaca;background:#fef2f2;color:#dc2626}.position-runtime-log-card,.position-diagnosis-card{margin-top:0;display:flex;flex-direction:column;min-width:0}.position-diagnosis-card{height:clamp(560px,calc(100vh - 230px),700px);min-height:560px}.position-runtime-log-table-wrap{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}.position-runtime-log-table-wrap.compact{max-height:210px;min-height:0}.position-runtime-log-table{width:100%;table-layout:fixed;border-collapse:collapse}.position-runtime-log-table.compact th:first-child,.position-runtime-log-table.compact td:first-child{width:172px}.position-runtime-log-table.compact th:nth-child(3),.position-runtime-log-table.compact td:nth-child(3){width:116px}.position-runtime-log-table.compact th:last-child,.position-runtime-log-table.compact td:last-child{width:116px;text-align:center}.position-runtime-log-table th:first-child,.position-runtime-log-table td:first-child{width:136px}.position-runtime-log-table th:nth-child(2),.position-runtime-log-table td:nth-child(2){width:auto}.position-runtime-log-table th:last-child,.position-runtime-log-table td:last-child{width:124px}.position-runtime-log-table th,.position-runtime-log-table td{border-bottom:1px solid #e4ebf5;padding:10px 8px;color:#0f172a;font-size:12px;font-weight:800;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-runtime-log-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475569;font-size:12px;font-weight:900}.position-runtime-log-actions{display:flex;flex-wrap:nowrap;gap:5px;justify-content:flex-end;min-width:100px}.position-runtime-log-actions.compact{justify-content:center;min-width:0}.position-runtime-log-reason{color:#334155}.position-runtime-log-compact-card{min-height:0;padding-bottom:12px}.position-runtime-log-compact-card .position-monitor-card-head{margin-bottom:10px}.position-runtime-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:24px;border-radius:999px;padding:3px 9px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:900;line-height:1.1}.position-runtime-status-badge.success{background:#dcfce7;color:#15803d}.position-runtime-status-badge.failed{background:#fee2e2;color:#dc2626}.position-runtime-status-badge.running{background:#dbeafe;color:#1d4ed8}.position-diagnosis-card{position:relative;top:auto;max-height:none}.position-diagnosis-empty{display:grid;place-items:center;min-height:240px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b;font-size:13px;font-weight:900;text-align:center}.position-diagnosis-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:2px}.position-diagnosis-stock{display:grid;gap:3px;border-bottom:1px solid #e4ebf5;padding-bottom:14px}.position-diagnosis-stock strong{color:#0f172a;font-size:18px;line-height:1.2}.position-diagnosis-stock span{color:#64748b;font-size:12px;font-weight:900}.position-diagnosis-section{border-bottom:1px solid #e4ebf5;padding:14px 0}.position-diagnosis-section:last-child{border-bottom:0;padding-bottom:0}.position-diagnosis-section h4{margin:0 0 10px;color:#334155;font-size:13px;font-weight:900}.position-budget-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.position-budget-section-head h4{margin:0}.position-budget-status{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:3px 9px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:900;white-space:nowrap}.position-budget-status.available{background:#dcfce7;color:#15803d}.position-budget-status.blocked{background:#ffedd5;color:#c2410c}.position-budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position-budget-grid div{min-width:0;border:1px solid #e4ebf5;border-radius:8px;background:#f8fafc;padding:9px 10px}.position-budget-grid div.important{border-color:#bfdbfe;background:#eff6ff}.position-budget-grid div.blocked{border-color:#fed7aa;background:#fff7ed}.position-budget-grid span,.position-budget-grid strong,.position-budget-grid small{display:block}.position-budget-grid span{margin-bottom:5px;color:#64748b;font-size:11px;font-weight:900}.position-budget-grid strong{overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.position-budget-grid small{margin-top:5px;color:#64748b;font-size:10.5px;font-weight:800;line-height:1.35}.position-budget-source{margin:8px 0 0;color:#64748b;font-size:11px;font-weight:800}.position-diagnosis-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position-diagnosis-list div{min-width:0;border:1px solid #e4ebf5;border-radius:8px;background:#f8fafc;padding:9px 10px}.position-diagnosis-list div.wide{grid-column:1 / -1}.position-diagnosis-list span,.position-diagnosis-list strong{display:block}.position-diagnosis-list span{margin-bottom:5px;color:#64748b;font-size:11px;font-weight:900}.position-diagnosis-list strong{overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.position-test-timeline-section{border-bottom:0}.position-test-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.position-test-section-head h4{margin:0}.position-test-section-head span{color:#2563eb;font-size:11px;font-weight:900;white-space:nowrap}.position-test-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin:0 0 10px}.position-test-summary div{min-width:0;border:1px solid #e4ebf5;border-radius:6px;background:#f8fafc;padding:7px 8px}.position-test-summary span,.position-test-summary strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-test-summary span{color:#64748b;font-size:10px;font-weight:900}.position-test-summary strong{margin-top:3px;color:#0f172a;font-size:12px;font-weight:900}.position-test-note,.position-test-message{margin:0 0 10px;color:#64748b;font-size:11px;font-weight:800;line-height:1.4}.position-test-message{color:#166534}.position-test-message.error{color:#b91c1c}.position-test-timeline{display:grid;gap:8px;margin:0;padding:0;list-style:none}.position-test-timeline li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;min-width:0;border:1px solid #e4ebf5;border-radius:8px;background:#f8fafc;padding:9px 10px}.position-test-step-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e2e8f0;color:#475569;font-size:11px;font-weight:900}.position-test-timeline strong,.position-test-timeline em,.position-test-timeline small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-test-timeline strong{color:#0f172a;font-size:12px;font-weight:900}.position-test-timeline em{margin-top:3px;color:#64748b;font-size:10px;font-style:normal;font-weight:900;letter-spacing:0}.position-test-timeline small{margin-top:4px;color:#64748b;font-size:11px;font-weight:800}.position-test-timeline li.running{border-color:#bfdbfe;background:#eff6ff}.position-test-timeline li.running .position-test-step-index{background:#2563eb;color:#fff}.position-test-timeline li.success{border-color:#bbf7d0;background:#f0fdf4}.position-test-timeline li.success .position-test-step-index{background:#22c55e;color:#fff}.position-test-timeline li.failed{border-color:#fecaca;background:#fef2f2}.position-test-timeline li.failed .position-test-step-index{background:#ef4444;color:#fff}.position-runtime-icon-button{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#334155;padding:0;cursor:pointer}.position-runtime-icon-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.position-runtime-icon-button:hover,.position-runtime-icon-button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.position-runtime-icon-button.active{box-shadow:0 0 0 3px #2563eb29}.position-runtime-report-modal{width:min(920px,calc(100vw - 32px));border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a3d;padding:18px}.position-runtime-report-modal .modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.position-runtime-report-modal .modal-head h3{margin:0 0 4px;color:#0f172a;font-size:18px}.position-runtime-report-modal .modal-head p{margin:0;color:#64748b;font-size:13px;font-weight:800}.position-runtime-report-modal .modal-close{width:32px;height:32px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#475569;font-size:20px;font-weight:900}.position-runtime-report-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.position-runtime-report-meta span{border-radius:999px;background:#f1f5f9;color:#475569;padding:5px 9px;font-size:12px;font-weight:900}.position-runtime-report-json{max-height:520px;overflow:auto;border:1px solid #dbe5f1;border-radius:8px;background:#0f172a;color:#e2e8f0;padding:14px;font-size:12px;line-height:1.55;white-space:pre-wrap}.position-monitor-table th,.position-monitor-table td,.position-overfill-table th,.position-overfill-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap}.position-monitor-table th,.position-overfill-table th{background:#f8fafc;color:#475569;font-size:12px;font-weight:900}.position-monitor-table th{position:sticky;top:0;z-index:1}.position-monitor-table th,.position-monitor-table td{padding:11px 10px;font-size:13px;font-weight:800}.position-monitor-table th:last-child,.position-monitor-table td:last-child{min-width:220px;padding-right:16px}.position-monitor-table th:nth-child(8),.position-monitor-table td:nth-child(8){min-width:132px}.position-monitor-row{cursor:pointer;transition:background .14s ease,box-shadow .14s ease}.position-monitor-row:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.position-monitor-row.is-selected{background:#eff6ff;box-shadow:inset 3px 0 #2563eb}.position-stock-cell strong,.position-money-stack strong{color:#0f172a}.position-stock-cell small{letter-spacing:0}.position-money-stack{display:grid;gap:3px}.position-money-stack span{color:#64748b;font-size:11px;font-weight:800}.position-reason-cell{display:block;max-width:260px;overflow:hidden;color:#334155;text-overflow:ellipsis;white-space:nowrap}.position-work-status-badge{display:inline-flex;align-items:center;justify-content:center;max-width:132px;min-height:24px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-work-status-badge.buy{background:#dcfce7;color:#15803d}.position-work-status-badge.sell{background:#fee2e2;color:#dc2626}.position-work-status-badge.approval{background:#dbeafe;color:#1d4ed8}.position-work-status-badge.hold{background:#e0f2fe;color:#0369a1}.position-work-status-badge.wait{background:#f1f5f9;color:#475569}.position-work-status-badge.warning{background:#ffedd5;color:#ea580c}.position-overfill-table th,.position-overfill-table td{padding:11px 8px;font-size:12px;font-weight:800}.position-monitor-table tbody tr:hover{background:#f8fafc}.position-monitor-table tbody tr.is-selected:hover{background:#eff6ff}.position-monitor-table td strong,.position-monitor-table td small{display:block}.position-monitor-table td small{margin-top:3px;color:#64748b;font-size:11px}.position-trend-context{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:98px}.position-trend-context strong{color:#0f172a;font-size:16px;line-height:1}.dashboard-trend-context{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:98px}.dashboard-trend-context.compact{flex-direction:row;align-items:center;justify-content:center;gap:3px;width:86px;min-width:86px;white-space:nowrap}.trend-context-separator{color:#94a3b8;font-size:10px;font-weight:900;line-height:1}.trend-strength-badge,.trend-cycle-badge,.trend-readiness-badge,.trend-validation-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:22px;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:900;line-height:1.1}.trend-strength-badge.compact,.trend-cycle-badge.compact,.trend-readiness-badge.compact{min-width:20px;min-height:18px;border-radius:5px;padding:2px 3px;font-size:9.5px;font-weight:500;line-height:1}.trend-strength-badge.strong,.trend-cycle-badge.knee,.trend-cycle-badge.strong-trend,.trend-readiness-badge.ready,.trend-validation-badge.green{background:#dcfce7;color:#166534}.trend-strength-badge.normal,.trend-cycle-badge.trend{background:#dbeafe;color:#1d4ed8}.trend-strength-badge.weak,.trend-cycle-badge.shoulder,.trend-readiness-badge.warning,.trend-validation-badge.orange{background:#ffedd5;color:#c2410c}.trend-strength-badge.very-weak,.trend-cycle-badge.breakdown,.trend-readiness-badge.blocked,.trend-validation-badge.red{background:#fee2e2;color:#b91c1c}.trend-strength-badge.empty,.trend-cycle-badge.empty,.trend-readiness-badge.not-ready,.trend-validation-badge.empty{background:#f1f5f9;color:#64748b}.position-score-pill,.position-operating-badge,.position-fill-status,.position-intent-status,.position-execution-status{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:24px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.position-score-pill.positive{background:#dcfce7;color:#15803d}.position-score-pill.negative{background:#fee2e2;color:#dc2626}.position-score-pill.final{background:#dbeafe;color:#1d4ed8}.position-score-pill.trend-context-link{border:0;cursor:pointer;font-family:inherit}.position-score-pill.trend-context-link:hover,.inline-score-link:hover{text-decoration:underline}.inline-score-link{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:800;padding:0}.position-score-pill.empty{background:#f1f5f9;color:#64748b}.position-quality-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:24px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.position-quality-badge.pass{background:#dcfce7;color:#15803d}.position-quality-badge.fail{background:#fee2e2;color:#dc2626}.position-operating-badge.active{background:#dcfce7;color:#15803d}.position-operating-badge.waiting{background:#ffedd5;color:#ea580c}.position-operating-badge.excluded{background:#111827;color:#fff}.position-fill-status.normal,.position-execution-status.executed{background:#dcfce7;color:#15803d}.position-fill-status.warning,.position-intent-status.skipped,.position-execution-status.skipped{background:#ffedd5;color:#ea580c}.position-fill-status.danger,.position-fill-status.abnormal,.position-intent-status.failed,.position-execution-status.failed{background:#fee2e2;color:#dc2626}.position-intent-status.blocked{background:#ffedd5;color:#c2410c}.position-intent-status.approval,.position-intent-status.executed{background:#dbeafe;color:#1d4ed8}.position-intent-status.buy{background:#dcfce7;color:#15803d}.position-intent-status.sell{background:#fee2e2;color:#dc2626}.position-intent-status.idle,.position-execution-status.idle{background:#f1f5f9;color:#475569}.position-fill-cell{display:grid;grid-template-columns:72px minmax(70px,auto);align-items:center;gap:8px}.position-fill-cell b{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.position-fill-cell i{display:block;height:100%;border-radius:inherit}.position-fill-cell.under i{background:#22c55e}.position-fill-cell.balanced i{background:#3b82f6}.position-fill-cell.over i{background:#f97316}.position-fill-cell.danger i{background:#ef4444}.position-fill-cell.abnormal span{color:#dc2626;font-weight:900}.position-fill-cell small{grid-column:1 / -1;display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px;color:#ea580c;font-size:11px;font-weight:900}.position-fill-cell small em{color:#64748b;font-style:normal;font-weight:800}.position-fill-cell.abnormal small{color:#dc2626}.position-monitor-summary-list{display:grid;gap:10px}.position-monitor-summary-list div,.position-monitor-state-mini div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e4ebf5;padding:9px 0;color:#475569;font-size:12px;font-weight:800}.position-monitor-summary-list strong,.position-monitor-state-mini b{color:#0f172a;font-size:14px;font-weight:900}.position-monitor-state-mini{margin-top:16px}.position-monitor-state-mini span,.position-legend span{display:inline-flex;align-items:center;gap:7px}.position-monitor-state-mini i,.position-legend i{width:9px;height:9px;border-radius:2px}.position-monitor-state-mini i.accumulate,.position-legend i.accumulate{background:#16a34a}.position-monitor-state-mini i.hold,.position-legend i.hold{background:#2563eb}.position-monitor-state-mini i.reduce,.position-legend i.reduce{background:#f97316}.position-monitor-state-mini i.exit,.position-legend i.exit{background:#dc2626}.position-monitor-state-mini i.wait,.position-legend i.wait{background:#94a3b8}.position-monitor-analysis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.position-donut-panel{display:grid;grid-template-columns:138px minmax(0,1fr);gap:16px;align-items:center;margin-top:16px}.position-donut{width:132px;height:132px;display:grid;place-items:center;border-radius:50%;position:relative}.position-donut:after{content:"";position:absolute;top:26px;right:26px;bottom:26px;left:26px;border-radius:inherit;background:#fff}.position-donut strong,.position-donut span{position:relative;z-index:1;color:#0f172a;font-weight:900}.position-donut span{margin-top:30px;color:#64748b;font-size:11px}.position-donut.amount strong{max-width:82px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.position-legend{display:grid;gap:9px}.position-legend div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#334155;font-size:11px;font-weight:800}.position-legend strong{color:#0f172a;text-align:right;font-size:11px;font-weight:900}.position-fill-distribution{display:grid;gap:13px;margin-top:18px}.position-fill-distribution div{display:grid;grid-template-columns:88px minmax(0,1fr) 74px;align-items:center;gap:10px;color:#334155;font-size:12px;font-weight:800}.position-fill-distribution b{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.position-fill-distribution i{display:block;height:100%;border-radius:inherit}.position-fill-distribution i.under{background:#22c55e}.position-fill-distribution i.balanced{background:#3b82f6}.position-fill-distribution i.over{background:#f97316}.position-fill-distribution i.danger{background:#ef4444}.position-fill-distribution strong{color:#0f172a;text-align:right;font-size:11px;font-weight:900}.position-monitor-footnote{margin:18px 0 0;color:#64748b;font-size:12px;font-weight:800}.position-alert-list,.position-history-list{display:grid;gap:9px;margin-top:14px}.position-alert-list div,.position-history-list div{display:grid;gap:4px;border-bottom:1px solid #e4ebf5;padding:9px 0}.position-alert-list div:last-child,.position-history-list div:last-child{border-bottom:0}.position-alert-list strong,.position-history-list strong{color:#0f172a;font-size:13px;font-weight:900}.position-alert-list span,.position-history-list span,.position-history-list time{color:#64748b;font-size:12px;font-weight:800}.position-alert-list .danger span{color:#dc2626}.position-alert-list .warning span{color:#ea580c}@media (max-width: 1280px){.position-monitor-layout,.position-monitor-analysis-grid{grid-template-columns:1fr}.position-diagnosis-card{position:static;height:auto;max-height:none;min-height:0}.position-monitor-table-card{height:auto;min-height:0}.position-monitor-table-wrap{max-height:560px;min-height:340px}.position-monitor-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.position-monitor-kpi-grid{grid-template-columns:1fr}.position-monitor-card-head{flex-direction:column}.position-monitor-filter-bar{justify-content:flex-start;flex-wrap:wrap}.position-trigger-note{text-align:left}.position-diagnosis-list,.position-budget-grid{grid-template-columns:1fr}}.auto-trading-center-page{background:#f8fafc}.trade-intent-page{display:grid;gap:16px;background:#f8fafc}.trade-intent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.trade-intent-head h2{margin:0 0 8px;color:#0f172a;font-size:28px;line-height:1.2}.trade-intent-head p,.trade-intent-head time{margin:0;color:#64748b;font-size:14px;font-weight:800}.trade-intent-error{margin:0;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;padding:10px 12px;font-size:13px;font-weight:900}.trade-intent-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}.trade-intent-kpi-card,.trade-intent-card,.trade-intent-filter-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.trade-intent-kpi-card{min-height:112px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px}.trade-intent-kpi-card span,.trade-intent-kpi-card small{display:block;color:#64748b;font-size:13px;font-weight:800}.trade-intent-kpi-card strong{display:block;margin:10px 0 8px;color:#0f172a;font-size:26px;line-height:1}.trade-intent-kpi-card i{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;font-style:normal;font-size:13px;font-weight:900}.trade-intent-kpi-card.green i{background:#dcfce7;color:#15803d}.trade-intent-kpi-card.blue i{background:#dbeafe;color:#1d4ed8}.trade-intent-kpi-card.red i{background:#fee2e2;color:#dc2626}.trade-intent-kpi-card.orange i{background:#ffedd5;color:#ea580c}.trade-intent-kpi-card.purple i{background:#f3e8ff;color:#7e22ce}.trade-intent-kpi-card.accumulate i{background:#dcfce7;color:#15803d}.trade-intent-kpi-card.hold i{background:#dbeafe;color:#1d4ed8}.trade-intent-kpi-card.reduce i{background:#ffedd5;color:#ea580c}.trade-intent-kpi-card.exit i{background:#fee2e2;color:#dc2626}.trade-intent-kpi-card.wait i{background:#f1f5f9;color:#64748b}.trade-intent-filter-card{padding:16px}.trade-intent-filter-grid{display:grid;grid-template-columns:minmax(118px,.9fr) minmax(118px,.9fr) minmax(170px,1.35fr) minmax(96px,.8fr) minmax(108px,.86fr) minmax(132px,1fr) minmax(132px,1fr) minmax(116px,.9fr) minmax(142px,1.08fr);gap:10px}.trade-intent-filter-grid label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:900}.trade-intent-filter-grid input,.trade-intent-filter-grid select{min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:800}.trade-intent-quick-filter{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;border-top:1px solid #e4ebf5;padding-top:14px}.trade-intent-quick-filter button{min-height:31px;border:1px solid #dbe5f1;border-radius:999px;background:#fff;color:#475569;padding:0 12px;font-size:12px;font-weight:900}.trade-intent-quick-filter button.active{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}.trade-intent-quick-filter span{margin-left:5px}.trade-intent-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px;align-items:stretch}.trade-intent-card{min-width:0;padding:16px}.trade-intent-table-card{height:560px;display:flex;flex-direction:column}.trade-intent-table-wrap{flex:1 1 auto;overflow-x:auto;overflow-y:auto}.trade-intent-table,.trade-intent-related-table{width:100%;border-collapse:collapse}.trade-intent-table{min-width:1040px;table-layout:fixed}.trade-intent-table th:nth-child(1),.trade-intent-table td:nth-child(1){width:96px;text-align:center}.trade-intent-table th:nth-child(2),.trade-intent-table td:nth-child(2){width:140px}.trade-intent-table th:nth-child(3),.trade-intent-table td:nth-child(3){width:70px;text-align:center}.trade-intent-table th:nth-child(4),.trade-intent-table td:nth-child(4){width:92px;text-align:center}.trade-intent-table th:nth-child(5),.trade-intent-table td:nth-child(5){width:116px;text-align:right}.trade-intent-table th:nth-child(6),.trade-intent-table td:nth-child(6){width:82px;text-align:center}.trade-intent-table th:nth-child(7),.trade-intent-table td:nth-child(7){width:160px}.trade-intent-table th:nth-child(8),.trade-intent-table td:nth-child(8){width:86px;text-align:center}.trade-intent-table th:nth-child(9),.trade-intent-table td:nth-child(9){width:170px}.trade-intent-table th,.trade-intent-table td,.trade-intent-related-table th,.trade-intent-related-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap}.trade-intent-table th,.trade-intent-related-table th{background:#f8fafc;color:#475569;font-size:12px;font-weight:900}.trade-intent-table th,.trade-intent-table td,.trade-intent-related-table th,.trade-intent-related-table td{padding:12px 10px;font-size:12px;font-weight:800}.trade-intent-table .text-right{text-align:right}.trade-intent-table th:nth-child(1),.trade-intent-table td:nth-child(1),.trade-intent-table th:nth-child(3),.trade-intent-table td:nth-child(3),.trade-intent-table th:nth-child(4),.trade-intent-table td:nth-child(4),.trade-intent-table th:nth-child(6),.trade-intent-table td:nth-child(6),.trade-intent-table th:nth-child(8),.trade-intent-table td:nth-child(8){text-align:center}.trade-intent-table th:nth-child(5),.trade-intent-table td:nth-child(5){text-align:right}.trade-intent-table .text-center{text-align:center}.trade-intent-table tbody tr{cursor:pointer}.trade-intent-table tbody tr.active,.trade-intent-table tbody tr:hover{background:#f8fafc}.trade-intent-stock-text,.trade-intent-related-table button{border:0;background:transparent;color:inherit;padding:0;text-align:left;font:inherit}.trade-intent-stock-text{display:block;min-width:0}.trade-intent-stock-text strong,.trade-intent-stock-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-intent-stock-text strong{font-weight:900}.trade-intent-stock-text small{margin-top:3px;color:#64748b;font-size:11px}.trade-intent-date-cell span,.trade-intent-date-cell small{display:block;text-align:center}.trade-intent-date-cell small{margin-top:3px;color:#64748b;font-size:11px}.trade-intent-ellipsis,.trade-intent-key{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-intent-side,.trade-intent-status,.trade-intent-risk{display:inline-flex;min-width:54px;min-height:24px;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.trade-intent-side.buy{background:#dcfce7;color:#15803d}.trade-intent-side.sell{background:#fee2e2;color:#dc2626}.trade-intent-status.pending{background:#ffedd5;color:#ea580c}.trade-intent-status.executed{background:#dcfce7;color:#15803d}.trade-intent-status.skipped{background:#f3e8ff;color:#7e22ce}.trade-intent-status.failed{background:#fee2e2;color:#dc2626}.trade-intent-page .trade-intent-table td{font-size:12px;font-weight:650;line-height:1.35}.trade-intent-page .trade-intent-table .text-right{font-weight:800}.trade-intent-page .trade-intent-stock-text strong,.trade-intent-page .trade-intent-stock-text small,.trade-intent-page .trade-intent-date-cell span,.trade-intent-page .trade-intent-date-cell small,.trade-intent-page .trade-intent-ellipsis,.trade-intent-page .trade-intent-skip-reason{font-size:12px;line-height:1.35}.trade-intent-page .trade-intent-stock-text strong{font-weight:800}.trade-intent-page .trade-intent-stock-text small,.trade-intent-page .trade-intent-date-cell small{font-weight:650}.trade-intent-page .trade-intent-side,.trade-intent-page .trade-intent-status,.trade-intent-page .state-badge{min-height:22px;padding:2px 8px;font-size:11px;line-height:1.2}.live-trading-link-button,.live-trading-inline-button{border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:900;cursor:pointer}.live-trading-link-button{min-height:26px;padding:0 10px}.live-trading-inline-button{min-height:24px;margin-left:6px;padding:0 8px}.live-trading-page{display:grid;gap:14px;background:#f8fafc}.live-trading-filter-card,.live-trading-list-card,.live-trading-detail-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.live-trading-filter-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 130px;gap:10px;align-items:end;padding:14px}.live-trading-filter-card label{display:grid;min-width:0;gap:6px;color:#475569;font-size:12px;font-weight:900}.live-trading-filter-card input,.live-trading-filter-card select{width:100%;min-width:0;height:36px;min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:800}.live-trading-filter-card button{height:36px;min-height:36px;border:0;border-radius:6px;background:#2563eb;color:#fff;padding:0 16px;font-size:13px;font-weight:900;cursor:pointer}.live-trading-filter-submit{width:130px;max-width:130px;justify-self:stretch;white-space:nowrap}.live-trading-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;align-items:start}.live-trading-list-card,.live-trading-detail-card{min-width:0;padding:14px}.live-trading-list-card{position:sticky;top:12px;height:min(960px,calc(100vh - 72px));max-height:min(960px,calc(100vh - 72px));overflow:hidden}.live-trading-card-head,.live-trading-selected-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.live-trading-detail-actions{display:inline-flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:6px}.live-trading-detail-button-row{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.live-trading-intent-link-button{display:inline-flex;min-height:30px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:7px;background:#fff;color:#334155;cursor:pointer;padding:0 10px;font-size:11px;font-weight:900;line-height:1}.live-trading-intent-link-button:hover,.live-trading-intent-link-button:focus-visible{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.live-trading-json-copy-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#2563eb;cursor:pointer;padding:0 9px;font-size:11px;font-weight:900;line-height:1}.live-trading-json-copy-button:hover,.live-trading-json-copy-button:focus-visible{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.live-trading-json-copy-button.success{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.live-trading-json-copy-button.error{border-color:#fecaca;background:#fef2f2;color:#dc2626}.live-trading-json-copy-button span{font-size:14px}.live-trading-json-copy-button b{font-size:11px}.live-trading-json-copy-feedback{max-width:120px;margin:0;color:#64748b;font-size:11px;font-weight:900;line-height:1.2;text-align:right}.live-trading-json-copy-feedback.success{color:#15803d}.live-trading-json-copy-feedback.error{color:#dc2626}.live-trading-card-head.compact{align-items:center;margin-bottom:12px}.live-trading-card-head h3,.live-trading-selected-title h3{margin:0;color:#0f172a;font-size:17px;line-height:1.25}.live-trading-card-head p,.live-trading-card-head span,.live-trading-selected-title span,.live-trading-selected-title small{margin:3px 0 0;color:#64748b;font-size:12px;font-weight:800}.live-trading-request-list{max-height:calc(100% - 52px);overflow:auto;padding-right:2px}.live-trading-request-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px;text-align:left;cursor:pointer}.live-trading-request-row.active,.live-trading-request-row:hover{border-color:#2563eb;background:#eff6ff}.live-trading-request-row strong,.live-trading-request-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-trading-request-row strong{color:#0f172a;font-size:14px;font-weight:900}.live-trading-request-row small,.live-trading-request-row dt{color:#64748b;font-size:11px;font-weight:800}.live-trading-request-row dl{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.live-trading-request-row dt,.live-trading-request-row dd{margin:0}.live-trading-request-row dd{color:#0f172a;font-size:12px;font-weight:900}.live-trading-request-reason{grid-column:1 / -1;display:block;overflow:hidden;color:#b45309;font-size:11px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.live-trading-status-badge{display:inline-flex;min-width:64px;min-height:25px;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-style:normal;font-weight:900}.live-trading-status-badge.completed,.live-trading-status-badge.success{background:#dcfce7;color:#15803d}.live-trading-status-badge.active{background:#dbeafe;color:#1d4ed8}.live-trading-status-badge.pending{background:#f1f5f9;color:#64748b}.live-trading-status-badge.approval{background:#ffedd5;color:#ea580c}.live-trading-status-badge.failed{background:#fee2e2;color:#dc2626}.live-trading-status-badge.blocked{background:#fef3c7;color:#b45309}.live-trading-status-badge.expired{background:#e5e7eb;color:#4b5563}.live-trading-detail-panel{display:grid;gap:14px;min-width:0}.live-trading-overview-card{display:grid;gap:14px}.live-trading-overview-grid,.live-trading-data-grid{display:grid;gap:8px;margin:0}.live-trading-overview-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.live-trading-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-trading-summary-grid-compact{grid-template-columns:repeat(5,minmax(0,1fr))}.live-trading-data-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.live-trading-overview-grid div,.live-trading-data-grid div{min-width:0;border-radius:6px;background:#f8fafc;padding:9px}.live-trading-overview-grid dt,.live-trading-data-grid dt,.live-trading-overview-grid dd,.live-trading-data-grid dd{margin:0}.live-trading-overview-grid dt,.live-trading-data-grid dt{color:#64748b;font-size:11px;font-weight:900}.live-trading-overview-grid dd,.live-trading-data-grid dd{margin-top:5px;overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.live-trading-overview-grid dd.danger,.live-trading-overview-grid dd.dashboard-red,.live-trading-data-grid dd.dashboard-red{color:#dc2626}.live-trading-overview-grid dd.dashboard-blue,.live-trading-data-grid dd.dashboard-blue{color:#2563eb}.live-trading-overview-grid dd.dashboard-gray,.live-trading-data-grid dd.dashboard-gray{color:#64748b}.live-trading-policy-summary{display:grid;gap:8px;margin-top:10px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;padding:10px}.live-trading-policy-summary>strong{color:#1d4ed8;font-size:12px;font-weight:900}.live-trading-policy-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:0}.live-trading-policy-summary div{display:grid;gap:2px;min-width:0}.live-trading-policy-summary dt{color:#64748b;font-size:11px;font-weight:800}.live-trading-policy-summary dd{margin:0;color:#0f172a;font-size:12px;font-weight:900;line-height:1.35;overflow-wrap:anywhere}.live-trading-session-summary{display:grid;gap:8px;margin-top:10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px}.live-trading-session-summary>strong{color:#334155;font-size:12px;font-weight:900}.live-trading-session-summary ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.live-trading-session-summary li{display:grid;gap:2px}.live-trading-session-summary span{color:#0f172a;font-size:12px;font-weight:900;white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.live-trading-session-summary small{color:#64748b;font-size:11px;font-weight:800;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.live-trading-block-detail-list{display:grid;gap:8px;margin-top:10px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;padding:10px}.live-trading-block-detail-list>strong{color:#9a3412;font-size:12px;font-weight:900}.live-trading-block-detail-list ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.live-trading-block-detail-list li{display:grid;gap:3px}.live-trading-block-detail-list span{color:#7c2d12;font-size:12px;font-weight:900}.live-trading-block-detail-list small{color:#9a3412;font-size:11px;font-weight:800;line-height:1.35}.aggregate-sell-inline-badge{display:inline-flex;width:fit-content;min-height:22px;align-items:center;border-radius:999px;background:#e0f2fe;color:#0369a1;padding:3px 8px;font-size:11px;font-style:normal;font-weight:900}.live-trading-aggregate-card{display:grid;gap:12px}.live-trading-aggregate-hero{display:grid;gap:6px;border:1px solid #bae6fd;border-radius:8px;background:#f0f9ff;padding:12px}.live-trading-aggregate-hero strong{color:#0f172a;font-size:16px;font-weight:900}.live-trading-aggregate-hero span,.live-trading-aggregate-hero em{color:#475569;font-size:13px;font-style:normal;font-weight:900}.live-trading-aggregate-hero em.dashboard-red{color:#dc2626}.live-trading-aggregate-hero em.dashboard-blue{color:#2563eb}.live-trading-allocation-summary{display:grid;gap:8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px}.live-trading-allocation-summary strong{color:#0f172a;font-size:12px;font-weight:900}.live-trading-allocation-summary ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.live-trading-allocation-summary li{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#475569;font-size:12px;font-weight:900}.live-trading-allocation-summary em{color:#64748b;font-style:normal}.live-trading-allocation-summary em.dashboard-red{color:#dc2626}.live-trading-allocation-summary em.dashboard-blue{color:#2563eb}.aggregate-lot-table{margin-top:12px}.aggregate-lot-table .order-history-table th,.aggregate-lot-table .order-history-table td{font-size:12px}.live-trading-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:10px;margin:0;padding:0;list-style:none}.live-trading-timeline-compact{grid-template-columns:repeat(5,minmax(0,1fr))}.live-trading-timeline-detail{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));margin-top:10px}.live-trading-timeline li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;min-height:70px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px}.live-trading-timeline li>span{width:14px;height:14px;margin-top:2px;border-radius:50%;background:#cbd5e1}.live-trading-timeline li.completed>span{background:#22c55e}.live-trading-timeline li.active>span{background:#2563eb}.live-trading-timeline li.failed>span{background:#ef4444}.live-trading-timeline li.blocked>span{background:#9333ea}.live-trading-timeline li.expired>span{background:#94a3b8}.live-trading-timeline li.skipped>span{background:#cbd5e1}.live-trading-timeline-date{color:#64748b;font-size:13px;font-weight:900}.live-trading-timeline strong,.live-trading-timeline small,.live-trading-timeline time{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-trading-timeline strong{color:#0f172a;font-size:13px;font-weight:900}.live-trading-timeline small,.live-trading-timeline time{margin-top:4px;color:#64748b;font-size:11px;font-weight:800}.live-trading-timeline time{overflow:visible;text-overflow:clip;font-variant-numeric:tabular-nums}.live-trading-foldout{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:10px}.live-trading-foldout>summary{cursor:pointer;color:#2563eb;font-size:12px;font-weight:900}.live-trading-foldout>summary span{margin-left:6px;color:#64748b}.live-trading-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.live-trading-log-list{display:grid;gap:8px;max-height:320px;overflow:auto}.live-trading-log-list>div{display:grid;grid-template-columns:minmax(118px,.8fr) minmax(110px,.8fr) minmax(140px,1fr) minmax(240px,2.4fr);gap:8px;align-items:start;border-bottom:1px solid #e4ebf5;padding:8px 0;min-width:0}.live-trading-log-list time,.live-trading-log-list span,.live-trading-log-list strong,.live-trading-log-list p,.live-trading-log-list small{margin:0;font-size:12px;font-weight:800;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.live-trading-log-list time,.live-trading-log-list span{color:#64748b}.live-trading-log-list strong{color:#0f172a}.live-trading-log-list p{color:#334155;line-height:1.55}.live-trading-log-list small{grid-column:2 / -1;color:#dc2626}.live-trading-log-list .live-trading-log-status{display:inline-flex;width:fit-content;max-width:100%;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;padding:2px 6px;color:#334155}@media (max-width: 1180px){.live-trading-layout,.live-trading-detail-grid{grid-template-columns:1fr}.live-trading-list-card{position:static;height:auto;max-height:none}.live-trading-request-list{max-height:560px}.live-trading-overview-grid,.live-trading-summary-grid-compact,.live-trading-data-grid-compact,.live-trading-timeline-compact{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 980px){.live-trading-filter-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px}.live-trading-filter-submit{width:100%;max-width:none;justify-self:stretch}}@media (max-width: 720px){.live-trading-overview-grid,.live-trading-data-grid,.live-trading-timeline-compact,.live-trading-log-list>div{grid-template-columns:1fr}.live-trading-filter-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 84px;gap:8px}.live-trading-log-list small{grid-column:auto}.live-trading-selected-title{flex-direction:column}.live-trading-detail-actions{align-items:flex-start}.live-trading-detail-button-row{flex-wrap:wrap;justify-content:flex-start}.live-trading-json-copy-feedback{max-width:none;text-align:left}}.worker-monitor-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.worker-monitor-role-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid #c7d2fe;border-radius:8px;background:#f8fafc;color:#1e293b}.worker-monitor-role-banner div{display:flex;flex-direction:column;gap:2px;min-width:0}.worker-monitor-role-banner strong{color:#1d4ed8;font-size:14px;font-weight:900}.worker-monitor-role-banner span,.worker-monitor-role-banner em{color:#64748b;font-size:12px;font-style:normal;font-weight:800}.worker-monitor-kpis .trade-intent-kpi-card{min-height:76px;padding:12px}.worker-monitor-kpis .trade-intent-kpi-card span,.worker-monitor-kpis .trade-intent-kpi-card small{white-space:nowrap}.worker-monitor-kpis .trade-intent-kpi-card strong{margin:5px 0 3px;font-size:21px}.worker-monitor-kpis .trade-intent-kpi-card i{width:32px;height:32px}.worker-monitor-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.worker-monitor-filters select,.worker-monitor-filters input{width:auto;min-width:132px;height:36px;margin:0;padding:6px 10px;font-size:13px}.worker-monitor-filters input{max-width:120px}.worker-task-panel{display:grid;gap:10px;margin-bottom:12px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;padding:14px}.worker-task-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.worker-task-panel-head h3{margin:0;color:#0f172a;font-size:16px;font-weight:900}.worker-task-panel-head span{color:#64748b;font-size:12px;font-weight:900}.worker-task-table-row{cursor:pointer}.worker-task-table-row.active,.worker-task-table-row:hover{background:#eff6ff}.worker-task-table-row strong,.worker-task-table-row small{display:block}.worker-task-table-row strong{color:#0f172a}.worker-task-table-row small{color:#64748b;font-size:11px;font-weight:800}.worker-selected-task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:0}.worker-selected-task-grid div{min-width:0;border-radius:6px;background:#f8fafc;padding:9px}.worker-selected-task-grid dt,.worker-selected-task-grid dd{margin:0}.worker-selected-task-grid dt{color:#64748b;font-size:11px;font-weight:900}.worker-selected-task-grid dd{margin-top:5px;overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}#admin-app .worker-filter-button{width:auto;height:34px;min-height:34px;margin:0;padding:0 12px;font-size:13px}.compact-toggle{display:inline-flex;align-items:center;gap:6px;margin:0;color:#475569;font-size:13px;font-weight:900;line-height:1;white-space:nowrap}.compact-toggle input{width:15px;height:15px;margin:0;flex:0 0 auto}.worker-monitor-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:stretch}.worker-task-list,.worker-task-detail,.worker-event-log{border:1px solid #dbe5f1;border-radius:8px;background:#fff}.worker-task-list{max-height:560px;overflow:auto;padding:10px}.worker-task-row{width:100%;display:grid;gap:6px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px;text-align:left;cursor:pointer}.worker-task-row.active,.worker-task-row:hover{border-color:#2563eb;background:#eff6ff}.worker-task-row strong{color:#0f172a;font-size:14px}.worker-task-row small,.worker-task-row span{color:#64748b;font-size:12px;font-weight:800}.worker-task-row em{justify-self:flex-start;font-style:normal}.worker-task-badges{display:flex;flex-wrap:wrap;gap:5px}.worker-task-detail{min-height:360px;padding:16px}.worker-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.worker-detail-head h3{margin:0;color:#0f172a;font-size:18px}.worker-detail-head small{color:#64748b;font-size:13px}.worker-detail-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.worker-detail-grid dd{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-debug-panel{display:flex;flex-direction:column;min-height:430px;border:1px solid #223149;border-radius:8px;background:#101827;color:#d8e3f5;padding:14px}.worker-debug-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.worker-debug-head h3{margin:0;color:#f6f9ff;font-size:16px;line-height:1.2}.worker-debug-actions,.worker-debug-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.worker-debug-actions label,.worker-debug-filter-row label{display:inline-flex;align-items:center;gap:5px;color:#d8e3f5;font-size:12px;font-weight:800;white-space:nowrap}.worker-debug-actions input,.worker-debug-filter-row input{width:14px;height:14px;accent-color:#7fb0ff}.worker-debug-actions button{min-height:30px;border:1px solid #334561;border-radius:6px;background:#172338;color:#d8e3f5;padding:0 10px;font-size:12px;font-weight:900}.worker-debug-actions button:hover{border-color:#7fb0ff;color:#f6f9ff}.worker-debug-filter-row{margin-bottom:10px}.worker-debug-counts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.worker-debug-counts span{border:1px solid #334561;border-radius:6px;background:#172338;color:#d8e3f5;padding:5px 8px;font-size:12px;font-weight:800}.worker-debug-terminal{flex:0 0 300px;box-sizing:border-box;height:300px;min-height:300px;max-height:300px;overflow-x:hidden;overflow-y:scroll;border:1px solid #263955;border-radius:6px;background:#0b1220;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.worker-debug-terminal p{display:flex;align-items:center;gap:8px;min-width:0;margin:0 0 6px;color:#c7d2e4;font-size:12px;line-height:1.45;white-space:nowrap}.worker-debug-terminal time{flex:0 0 auto;color:#8ea4c7}.worker-debug-terminal span{flex:0 0 auto;font-weight:900}.worker-debug-terminal strong,.worker-debug-terminal em,.worker-debug-terminal b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-debug-terminal strong{flex:0 0 auto;color:#f6f9ff;font-style:normal}.worker-debug-terminal em{flex:0 1 auto;color:#d8e3f5;font-style:normal}.worker-debug-terminal b{flex:1 1 auto;color:#c7d2e4;font-weight:800}.worker-debug-terminal .debug-ok span{color:#54d48a}.worker-debug-terminal .debug-wait span{color:#7fb0ff}.worker-debug-terminal .debug-skip span{color:#f6c85f}.worker-debug-terminal .debug-error span{color:#ff6b7d}.worker-debug-terminal .debug-empty{display:flex;align-items:center;min-height:100%;color:#8ea4c7;font-style:normal}#admin-app .worker-debug-panel{min-height:430px}#admin-app .worker-debug-panel .worker-debug-terminal{flex:0 0 300px;height:300px;min-height:300px;max-height:300px;overflow-y:scroll}.worker-event-log{margin-top:14px;padding:14px}.worker-event-log h3{margin:0 0 10px;color:#0f172a;font-size:15px}.worker-recent-events{max-height:280px;overflow-x:hidden;overflow-y:auto}.worker-recent-events table{width:100%;min-width:0;table-layout:fixed}.worker-recent-events th,.worker-recent-events td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-recent-events thead th{position:sticky;top:0;z-index:1;background:#f8fafc}@media (max-width: 960px){.worker-monitor-layout{grid-template-columns:1fr}.worker-debug-head{align-items:flex-start;flex-direction:column}}.opportunity-monitor-page{display:grid;gap:16px;background:#f8fafc}.opportunity-toolbar{display:flex;justify-content:flex-end;align-items:center}.opportunity-test-button{min-height:34px;padding:7px 12px;font-size:12px}.opportunity-message{margin:0;border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;padding:10px 12px;font-size:13px;font-weight:900}.opportunity-notice{margin:0;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;padding:12px 14px;font-size:13px;font-weight:900}.opportunity-checkbox{align-items:center;grid-template-columns:1fr auto}.opportunity-checkbox input{width:18px;height:18px}.opportunity-filter-grid{grid-template-columns:repeat(7,minmax(130px,1fr)) auto auto;align-items:end}.opportunity-filter-card{display:grid;gap:12px}.opportunity-filter-card.collapsed{gap:6px}.opportunity-filter-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;min-width:0}.opportunity-filter-card-title{display:flex;align-items:center;min-width:0;min-height:36px;color:#0f172a;font-size:14px;font-weight:900;line-height:1.25}.opportunity-filter-summary{min-width:0;margin:0;overflow:hidden;color:#64748b;font-size:12px;font-weight:800;height:16px;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.opportunity-filter-toggle-button{flex:0 0 auto;font-size:13px;font-weight:900}.opportunity-watch-filter-grid{grid-template-columns:minmax(160px,220px) minmax(220px,1fr) auto;align-items:end}.opportunity-watch-kpi-grid{grid-template-columns:repeat(6,minmax(92px,1fr));gap:8px}.opportunity-watch-kpi-card{min-height:58px;padding:10px 12px}.opportunity-watch-kpi-card strong{margin:4px 0 2px;font-size:18px}.opportunity-watch-kpi-card span,.opportunity-watch-kpi-card small{font-size:11px}.opportunity-query-button{width:72px;min-width:72px;justify-self:end}.opportunity-filter-icon-button{display:inline-flex;width:36px;min-width:36px;height:36px;align-items:center;justify-content:center;justify-self:end;padding:0;font-size:17px;line-height:1}.opportunity-filter-icon-button.opportunity-filter-toggle-button{align-self:center;margin-top:0;font-size:13px}.opportunity-detail-copy-row{display:flex;justify-content:flex-end;margin:10px 0 4px}.opportunity-detail-head-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.opportunity-manual-push-progress{color:var(--muted-text, #64748b);font-size:.8rem;white-space:nowrap}.opportunity-report-actions{display:flex;align-items:end;gap:8px}.opportunity-report-actions .opportunity-filter-icon-button{min-height:36px;padding:0}.opportunity-monitor-layout{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:14px;align-items:start}.opportunity-events-layout{align-items:stretch;height:clamp(680px,calc(100vh - 220px),920px);min-height:680px}.opportunity-events-layout>.trade-intent-card{min-height:0}.opportunity-events-list-card{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.opportunity-events-list-card .opportunity-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.opportunity-events-list-card .opportunity-table thead th{position:sticky;top:0;z-index:2}.opportunity-watch-page .opportunity-monitor-layout{align-items:stretch;height:max(1120px,calc(100vh - 180px));min-height:1120px}.opportunity-watch-prepare-banner{margin:0;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px;font-weight:900}.opportunity-watch-prepare-banner.success{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.opportunity-watch-prepare-banner.warning{border-color:#fde68a;background:#fffbeb;color:#b45309}.opportunity-watch-prepare-banner.error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.opportunity-watch-prepare-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#0f172a5c;cursor:wait}.opportunity-watch-prepare-modal{display:grid;width:min(420px,calc(100vw - 48px));gap:10px;border:1px solid #dbeafe;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a38;padding:18px;color:#0f172a}.opportunity-watch-prepare-modal strong{font-size:15px;font-weight:900}.opportunity-watch-prepare-modal span,.opportunity-watch-prepare-modal small{color:#64748b;font-size:13px;font-weight:800}.opportunity-watch-prepare-progress{position:relative;overflow:hidden;height:6px;border-radius:999px;background:#e2e8f0}.opportunity-watch-prepare-progress span{position:absolute;inset:0 auto 0 0;width:42%;border-radius:inherit;background:#2563eb;animation:opportunity-watch-prepare-progress 1s ease-in-out infinite}@keyframes opportunity-watch-prepare-progress{0%{transform:translate(-110%)}to{transform:translate(250%)}}.opportunity-watch-page .opportunity-monitor-layout>.trade-intent-card{min-height:0}.opportunity-watch-list-card,.opportunity-watch-detail-card{min-height:0}.opportunity-watch-list-card{display:grid;grid-template-rows:auto minmax(540px,1fr) auto 560px;height:100%;min-height:0;overflow:hidden}.opportunity-watch-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #e2e8f0;padding:0 0 10px;margin-bottom:10px}.opportunity-watch-card-head h3{margin:0 0 3px;color:#0f172a;font-size:14px;font-weight:900}.opportunity-watch-card-head p{margin:0;color:#64748b;font-size:12px;font-weight:800;line-height:1.35}.opportunity-watch-list-card .opportunity-table-wrap{min-height:0;height:100%;max-height:none;overflow:auto}.opportunity-watch-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e2e8f0;padding-top:8px;color:#64748b;font-size:11px;font-weight:900}.opportunity-watch-pagination>div{display:flex;gap:6px}.opportunity-watch-pagination button{min-height:28px;padding:5px 10px}.opportunity-watch-status-line{margin:8px 0 0;border-top:1px solid #223149;padding-top:8px;color:#8ea4c7;font-size:11px;font-weight:800;line-height:1.35}.opportunity-trace-console{display:flex;flex-direction:column;gap:10px;margin-top:10px;box-sizing:border-box;height:100%;min-height:0;max-height:none;border:1px solid #223149;border-radius:8px;background:#0b1220;color:#d8e3f5;padding:14px}.opportunity-trace-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.opportunity-trace-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-width:0}.opportunity-trace-head h3{margin:0;color:#f6f9ff;font-size:16px;line-height:1.25}.opportunity-trace-stock-select{flex:0 1 190px;min-width:128px;max-width:210px;height:28px;margin-left:4px;border:1px solid #263955;border-radius:6px;background:#000;color:#fff;padding:4px 26px 4px 8px;color-scheme:dark;font-size:11px;font-weight:800;line-height:1.2;outline:none}.opportunity-trace-stock-select:hover{border-color:#64748b;background:#05070b;color:#fff}.opportunity-trace-stock-select:focus{border-color:#7fb0ff;color:#fff;box-shadow:0 0 0 2px #7fb0ff29}.opportunity-trace-stock-select option{background:#000;color:#fff}.opportunity-trace-live-badge{flex:0 0 auto;color:#54d48a;font-size:12px;font-weight:900;line-height:1.35;white-space:nowrap}.opportunity-trace-actions,.opportunity-trace-toolbar{display:flex;align-items:center;gap:8px}.opportunity-trace-actions{flex-wrap:wrap;gap:6px}.opportunity-trace-actions button,.opportunity-trace-stage-filter button,.opportunity-trace-detail-button{min-height:30px;border:1px solid #334561;border-radius:6px;background:#172338;color:#d8e3f5;padding:0 10px;font-size:12px;font-weight:900}.opportunity-trace-actions button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:8px;background:#121b2c;color:#f8fafc;font-size:13px;line-height:1}.opportunity-trace-actions button:hover,.opportunity-trace-stage-filter button:hover,.opportunity-trace-detail-button:hover{border-color:#7fb0ff;background:#1b2a44;color:#f6f9ff}.opportunity-trace-actions button:disabled{cursor:not-allowed;opacity:.45}.opportunity-trace-toolbar{flex:0 0 auto;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;min-width:0}.opportunity-trace-stage-filter{display:flex;flex:1 1 auto;flex-wrap:nowrap;gap:2px;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin}.opportunity-trace-stage-filter button{flex:0 0 auto;min-height:21px;border-radius:5px;padding:0 4px;font-size:10px;font-weight:800;letter-spacing:0;line-height:1;white-space:nowrap}.opportunity-trace-stage-filter button.active{border-color:#7fb0ff;background:#1d3456;color:#f6f9ff}.opportunity-trace-stage-description{flex:0 1 180px;min-width:0;margin:2px 0 0;overflow:hidden;color:#8ea4c7;font-size:10px;font-weight:900;line-height:1.35;text-align:right;text-overflow:ellipsis;white-space:nowrap}.opportunity-trace-table-wrap{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid #263955;border-radius:6px;background:#08101d}.opportunity-trace-table{width:100%;min-width:1040px;border-collapse:collapse;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;table-layout:fixed}.opportunity-trace-table th,.opportunity-trace-table td{border-bottom:1px solid #182844;padding:8px 9px;color:#c7d2e4;font-size:12px;line-height:1.45;text-align:left;vertical-align:top;white-space:nowrap}.opportunity-trace-table th{position:sticky;top:0;z-index:1;background:#101827;color:#8ea4c7;font-size:11px;font-weight:900}.opportunity-trace-table th:nth-child(1),.opportunity-trace-table td:nth-child(1){width:82px}.opportunity-trace-table th:nth-child(2),.opportunity-trace-table td:nth-child(2){width:118px}.opportunity-trace-table th:nth-child(3),.opportunity-trace-table td:nth-child(3){width:88px}.opportunity-trace-table th:nth-child(4),.opportunity-trace-table td:nth-child(4){width:82px}.opportunity-trace-table th:nth-child(5),.opportunity-trace-table td:nth-child(5){width:96px}.opportunity-trace-table th:nth-child(6),.opportunity-trace-table td:nth-child(6){width:auto;min-width:0;max-width:100%}.opportunity-trace-table th:nth-child(7),.opportunity-trace-table td:nth-child(7){width:170px;max-width:190px;overflow:hidden;text-overflow:ellipsis}.opportunity-trace-table th:nth-child(8),.opportunity-trace-table td:nth-child(8){width:78px}.opportunity-trace-table th:nth-child(9),.opportunity-trace-table td:nth-child(9){width:70px;text-align:center}.opportunity-trace-message{color:#f6f9ff;display:-webkit-box;max-height:34px;overflow:hidden;text-overflow:ellipsis;white-space:normal!important;word-break:break-word;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.opportunity-trace-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;border:1px solid #334561;border-radius:999px;background:#172338;color:#d8e3f5;padding:0 8px;font-size:10px;font-weight:900;line-height:1}.opportunity-trace-badge.stage-price,.opportunity-trace-badge.stage-price-tick{border-color:#3b82f6;color:#93c5fd}.opportunity-trace-badge.stage-target-loader,.opportunity-trace-badge.stage-price-listener{border-color:#38bdf8;color:#bae6fd}.opportunity-trace-badge.stage-prefilter,.opportunity-trace-badge.stage-event-store{border-color:#22c55e;color:#86efac}.opportunity-trace-badge.stage-trend-gate,.opportunity-trace-badge.stage-normalizer{border-color:#a855f7;color:#d8b4fe}.opportunity-trace-badge.stage-rule-dispatcher,.opportunity-trace-badge.stage-notification{border-color:#ec4899;color:#f9a8d4}.opportunity-trace-badge.stage-detector,.opportunity-trace-badge.stage-cooldown{border-color:#f59e0b;color:#fcd34d}.opportunity-trace-badge.stage-dedup,.opportunity-trace-badge.stage-mqtt{border-color:#14b8a6;color:#7dd3fc}.opportunity-trace-badge.stage-error{border-color:#ef4444;color:#fca5a5}.opportunity-trace-badge.stage-heartbeat{border-color:#64748b;color:#cbd5e1}.opportunity-trace-badge.level-pass,.opportunity-trace-badge.level-stored,.opportunity-trace-badge.level-published{border-color:#22c55e;color:#86efac}.opportunity-trace-badge.level-blocked,.opportunity-trace-badge.level-skipped{border-color:#f59e0b;color:#fcd34d}.opportunity-trace-badge.level-error{border-color:#ef4444;color:#fca5a5}.opportunity-trace-badge.level-info{border-color:#3b82f6;color:#93c5fd}.opportunity-trace-detail-row td{background:#0d1728;white-space:normal}.opportunity-trace-detail-row pre{max-height:180px;margin:0;overflow:auto;color:#d8e3f5;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.opportunity-trace-empty{height:310px;color:#8ea4c7!important;text-align:center!important;vertical-align:middle!important}.opportunity-trace-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;overflow:hidden}.opportunity-trace-footer-metrics{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:8px;min-width:0}.opportunity-trace-footer-metrics span{flex:0 0 auto;border:1px solid #334561;border-radius:6px;background:#101827;color:#8ea4c7;padding:4px 8px;font-size:11px;font-weight:900}.opportunity-trace-update-message{flex:1 1 auto;min-width:0;margin:0;overflow:hidden;color:#8ea4c7;font-size:11px;font-weight:900;line-height:1.35;text-align:right;text-overflow:ellipsis;white-space:nowrap}.opportunity-table{min-width:1110px}.opportunity-monitor-page .opportunity-table{table-layout:fixed}.opportunity-monitor-page .opportunity-table th:nth-child(1),.opportunity-monitor-page .opportunity-table td:nth-child(1){width:110px;text-align:center}.opportunity-monitor-page .opportunity-table th:nth-child(2),.opportunity-monitor-page .opportunity-table td:nth-child(2){width:130px}.opportunity-monitor-page .opportunity-table th:nth-child(3),.opportunity-monitor-page .opportunity-table td:nth-child(3){width:180px;min-width:180px;text-align:left}.opportunity-monitor-page .opportunity-table th:nth-child(4),.opportunity-monitor-page .opportunity-table td:nth-child(4){width:130px;min-width:130px;text-align:right}.opportunity-monitor-page .opportunity-table th:nth-child(5),.opportunity-monitor-page .opportunity-table td:nth-child(5),.opportunity-monitor-page .opportunity-table th:nth-child(6),.opportunity-monitor-page .opportunity-table td:nth-child(6){width:90px;text-align:center}.opportunity-monitor-page .opportunity-table th:nth-child(7),.opportunity-monitor-page .opportunity-table td:nth-child(7){width:120px}.opportunity-monitor-page .opportunity-table th:nth-child(8),.opportunity-monitor-page .opportunity-table td:nth-child(8){width:110px;text-align:center}.opportunity-monitor-page .opportunity-table th:nth-child(9),.opportunity-monitor-page .opportunity-table td:nth-child(9){width:130px;text-align:center}.opportunity-monitor-page .opportunity-table td{vertical-align:top}.opportunity-monitor-page .opportunity-table td:nth-child(2) strong,.opportunity-monitor-page .opportunity-table td:nth-child(2) small,.opportunity-monitor-page .opportunity-table td:nth-child(3) strong,.opportunity-monitor-page .opportunity-table td:nth-child(3) small,.opportunity-monitor-page .opportunity-table td:nth-child(7){max-width:100%;overflow:hidden;text-overflow:ellipsis}.opportunity-monitor-page .opportunity-table td:nth-child(3) strong,.opportunity-monitor-page .opportunity-table td:nth-child(3) small{white-space:nowrap}.opportunity-watch-table{min-width:890px;table-layout:fixed}.opportunity-watch-col-stock{width:124px}.opportunity-watch-col-price{width:112px}.opportunity-watch-col-target{width:132px}.opportunity-watch-col-v2,.opportunity-watch-col-status{width:152px}.opportunity-watch-col-event{width:218px}.opportunity-watch-table th:nth-child(1),.opportunity-watch-table td:nth-child(1){width:124px}.opportunity-watch-table th:nth-child(2),.opportunity-watch-table td:nth-child(2){width:112px}.opportunity-watch-table th:nth-child(3),.opportunity-watch-table td:nth-child(3){width:132px}.opportunity-watch-table th:nth-child(4),.opportunity-watch-table td:nth-child(4){width:152px}.opportunity-watch-table th:nth-child(5),.opportunity-watch-table td:nth-child(5){width:152px}.opportunity-watch-table th:nth-child(6),.opportunity-watch-table td:nth-child(6){width:218px}.opportunity-watch-table td{padding-top:14px;padding-bottom:14px;vertical-align:top}.opportunity-watch-table td strong,.opportunity-watch-table td small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.opportunity-watch-table td strong{color:#0f172a;font-size:12px;font-weight:900;line-height:1.25;white-space:nowrap}.opportunity-watch-table td small{margin-top:3px;color:#64748b;font-size:11px;font-weight:800;line-height:1.25;white-space:nowrap}.opportunity-watch-table .opportunity-grade{max-width:100%;min-width:0;justify-content:flex-start;white-space:nowrap}.opportunity-watch-target-cell strong,.opportunity-watch-target-cell small,.opportunity-watch-v2-cell strong,.opportunity-watch-v2-cell small,.opportunity-watch-status-cell strong,.opportunity-watch-status-cell small,.opportunity-watch-event-cell strong,.opportunity-watch-event-cell small{max-width:none;overflow:hidden;overflow-wrap:normal;word-break:keep-all;text-overflow:ellipsis}.opportunity-watch-target-cell strong,.opportunity-watch-target-cell small,.opportunity-watch-v2-cell strong,.opportunity-watch-v2-cell small,.opportunity-watch-status-cell strong,.opportunity-watch-status-cell small,.opportunity-watch-event-cell strong,.opportunity-watch-event-cell small{white-space:nowrap}.opportunity-watch-target-cell,.opportunity-watch-v2-cell,.opportunity-watch-status-cell,.opportunity-watch-event-cell{min-width:0;min-height:58px;padding-top:14px;padding-bottom:14px}.opportunity-watch-target-cell .opportunity-grade,.opportunity-watch-v2-cell .opportunity-grade{margin-bottom:4px}.opportunity-watch-v2-cell small{max-width:100%}.opportunity-watch-event-cell{position:relative;padding-right:42px}.opportunity-table td:first-child strong,.opportunity-table td:first-child small,.opportunity-table td:nth-child(2) strong,.opportunity-table td:nth-child(2) small,.opportunity-table td:nth-child(3) strong,.opportunity-table td:nth-child(3) small,.opportunity-table td:nth-child(4) strong,.opportunity-table td:nth-child(4) small,.opportunity-table td:nth-child(8) strong,.opportunity-table td:nth-child(8) small,.opportunity-table td:nth-child(9) strong,.opportunity-table td:nth-child(9) small,.opportunity-table td:nth-child(10) strong,.opportunity-table td:nth-child(10) small{display:block}.opportunity-table td:first-child small,.opportunity-table td:nth-child(2) small,.opportunity-table td:nth-child(3) small,.opportunity-table td:nth-child(4) small,.opportunity-table td:nth-child(8) small,.opportunity-table td:nth-child(9) small,.opportunity-table td:nth-child(10) small{margin-top:3px;color:#64748b;font-size:11px}.opportunity-time-cell,.opportunity-price-cell{display:grid;min-width:92px;gap:3px}.opportunity-value-cell{display:grid;min-width:0;gap:3px;justify-items:center}.opportunity-time-cell strong,.opportunity-price-cell strong,.opportunity-value-cell strong{color:#0f172a;font-size:12px;font-weight:900;line-height:1.2;white-space:nowrap}.opportunity-time-cell small,.opportunity-price-cell small,.opportunity-value-cell small{color:#64748b;font-size:11px;font-weight:900;line-height:1.2;white-space:nowrap}.price-change-up,.opportunity-change-up{color:#dc2626!important}.price-change-down,.opportunity-change-down{color:#2563eb!important}.price-change-flat,.opportunity-change-flat{color:#15803d!important}.price-change-unknown{color:#64748b!important}.opportunity-grade{display:inline-flex;min-width:58px;min-height:24px;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.opportunity-grade.grade-skip{background:#f1f5f9;color:#64748b}.opportunity-grade.grade-low{background:#e0f2fe;color:#0369a1}.opportunity-grade.grade-medium{background:#dcfce7;color:#15803d}.opportunity-grade.grade-high{background:#ffedd5;color:#ea580c}.opportunity-grade.grade-extreme{background:#fee2e2;color:#dc2626}.opportunity-grade.decision-no-opportunity,.opportunity-grade.decision-unknown{background:#f1f5f9;color:#64748b}.opportunity-grade.decision-watch{background:#e0f2fe;color:#0369a1}.opportunity-grade.decision-watch-limited{background:#ffedd5;color:#c2410c}.opportunity-grade.opportunity-status-watch,.opportunity-grade.watch-target-normal{background:#dcfce7;color:#15803d}.opportunity-grade.opportunity-status-limited,.opportunity-grade.watch-target-disabled{background:#fee2e2;color:#b91c1c}.opportunity-grade.watch-target-limited{background:#fef3c7;color:#b45309}.opportunity-grade.watch-target-not-prepared{background:#f1f5f9;color:#64748b}.opportunity-grade.decision-accumulate-candidate{background:#dcfce7;color:#15803d}.opportunity-grade.decision-strong-accumulate-candidate{background:#d1fae5;color:#047857}.opportunity-grade.decision-blocked-by-risk,.opportunity-grade.decision-blocked-by-cooldown{background:#fee2e2;color:#b91c1c}.opportunity-grade.decision-insufficient-data{background:#fef3c7;color:#b45309}.opportunity-grade.v2-decision-stored,.opportunity-grade.v2-decision-allow{background:#dcfce7;color:#15803d}.opportunity-grade.v2-decision-pending{background:#dbeafe;color:#1d4ed8}.opportunity-grade.v2-decision-suppressed,.opportunity-grade.v2-decision-unknown{background:#f1f5f9;color:#64748b}.opportunity-grade.v2-decision-blocked{background:#fee2e2;color:#b91c1c}.opportunity-grade.preview-accumulate{background:#dcfce7;color:#15803d}.opportunity-grade.preview-hold{background:#dbeafe;color:#1d4ed8}.opportunity-grade.preview-wait,.opportunity-grade.preview-unknown{background:#f1f5f9;color:#64748b}.opportunity-grade.preview-reduce{background:#ffedd5;color:#c2410c}.opportunity-grade.preview-exit{background:#fee2e2;color:#b91c1c}.opportunity-detail-card{position:sticky;top:16px;max-height:calc(100vh - 140px);overflow:auto}.opportunity-detail-card .trade-intent-detail-head{margin-bottom:10px}.opportunity-events-detail-card{display:flex;flex-direction:column;height:100%;max-height:none;overflow:hidden}.opportunity-events-detail-card .opportunity-event-log-section{flex:1 1 auto;display:flex;min-height:0}.opportunity-events-detail-card .opportunity-event-compact-log{flex:1 1 auto;min-height:0;max-height:none}.opportunity-event-summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.opportunity-event-summary-strip div{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:7px 8px}.opportunity-event-summary-strip span,.opportunity-event-summary-strip small{display:block;overflow:hidden;color:#64748b;font-size:10px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.opportunity-event-summary-strip strong{display:block;overflow:hidden;margin:3px 0 2px;color:#0f172a;font-size:12px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.opportunity-event-log-section{margin-top:10px}.opportunity-event-compact-log{display:block;min-height:420px;max-height:calc(100vh - 330px);overflow:auto;margin:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#111827;padding:10px 11px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;font-weight:400;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;-webkit-user-select:text;user-select:text}.opportunity-event-empty-detail{display:flex;flex-direction:column;gap:6px;align-items:flex-start;color:#64748b;line-height:1.45}.opportunity-event-empty-detail strong{color:#0f172a;font-size:13px;font-weight:800}.opportunity-event-empty-detail span{font-size:12px;font-weight:400}.opportunity-watch-detail-card{display:flex;flex-direction:column;height:100%;max-height:none;overflow:hidden}.opportunity-row-actions,.opportunity-detail-actions{display:flex;gap:6px}.opportunity-row-actions{flex-wrap:nowrap;justify-content:center}.opportunity-detail-actions{flex-wrap:wrap}.opportunity-icon-action-button{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#2563eb;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.opportunity-icon-action-button:hover:not(:disabled){border-color:#2563eb;background:#dbeafe}.opportunity-icon-action-button.danger{border-color:#fecaca;background:#fff1f2;color:#dc2626}.opportunity-icon-action-button.danger:hover:not(:disabled){border-color:#dc2626;background:#fee2e2}.opportunity-icon-action-button:disabled{cursor:not-allowed;opacity:.45}.opportunity-icon-action-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.opportunity-watch-event-button{width:28px;height:28px;min-width:28px;padding:0}.opportunity-watch-event-button.inline{position:absolute;top:50%;right:10px;transform:translateY(-50%)}.opportunity-watch-event-button.inline svg{width:15px;height:15px}.secondary-button.danger{border-color:#fecaca;color:#dc2626}.opportunity-action-note,.opportunity-detail-message{margin:0 0 10px;color:#64748b;font-size:13px;font-weight:800;line-height:1.5}.opportunity-action-note.warning{border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;color:#c2410c;padding:9px 10px}.opportunity-detail-section{margin-top:14px;border-top:1px solid #e4ebf5;padding-top:14px}.opportunity-detail-section h3{margin:0 0 10px;color:#0f172a;font-size:13px;font-weight:900}.opportunity-detail-section h4{margin:0 0 7px;color:#334155;font-size:12px;font-weight:900}.opportunity-detail-card .trade-intent-detail-grid dd{overflow:visible;text-overflow:initial;white-space:pre-wrap;word-break:break-word}.opportunity-watch-detail-card .trade-intent-detail-head{gap:8px}.opportunity-watch-detail-card .trade-intent-detail-head strong{font-size:16px}.opportunity-watch-detail-card .trade-intent-detail-head small{font-size:11px;line-height:1.3}.opportunity-watch-summary-head-actions{display:grid;gap:6px;justify-items:end}.opportunity-watch-summary-actions{display:flex;align-items:center;gap:5px}.opportunity-watch-trigger-button{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border:1px solid #bbf7d0;border-radius:6px;background:#ecfdf5;color:#047857;font-size:11px;font-weight:900;line-height:1;cursor:pointer;white-space:nowrap}.opportunity-watch-trigger-button:hover,.opportunity-watch-trigger-button:focus-visible{border-color:#86efac;background:#dcfce7;color:#065f46}.opportunity-watch-trigger-button:disabled{cursor:not-allowed;opacity:.55}.opportunity-watch-report-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#2563eb;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.opportunity-watch-report-icon-btn:hover,.opportunity-watch-report-icon-btn:focus-visible{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.opportunity-watch-report-icon-btn:disabled{cursor:not-allowed;opacity:.55}.opportunity-watch-report-icon-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.opportunity-watch-trigger-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:hidden;border:1px solid #dbeafe;border-radius:14px;background:#fff;box-shadow:0 24px 72px #0f172a3d;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.opportunity-watch-trigger-head,.opportunity-watch-trigger-actions{padding:16px 18px;border-bottom:1px solid #e2e8f0}.opportunity-watch-trigger-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.opportunity-watch-trigger-head span{color:#64748b;font-size:12px;font-weight:900}.opportunity-watch-trigger-head h2{margin:2px 0 0;color:#0f172a;font-size:20px}.opportunity-watch-trigger-head .modal-close-button{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#475569;cursor:pointer;font-size:20px;line-height:1}.opportunity-watch-trigger-body{min-height:420px;overflow:auto;padding:18px}.opportunity-watch-trigger-notice{margin:0 0 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;padding:10px 12px;color:#1e40af;font-size:12px;font-weight:800;line-height:1.5}.opportunity-watch-trigger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.opportunity-watch-trigger-grid>div{min-width:0;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:10px 12px}.opportunity-watch-trigger-grid span,.opportunity-watch-trigger-grid small{display:block;color:#64748b;font-size:11px;font-weight:800}.opportunity-watch-trigger-grid strong{display:block;margin:4px 0 2px;color:#0f172a;font-size:13px;font-weight:900;overflow-wrap:anywhere}.opportunity-watch-trigger-result{margin-top:14px;border:1px solid #dcfce7;border-radius:12px;background:#f0fdf4;padding:12px}.opportunity-watch-trigger-result h3{margin:0 0 10px;color:#065f46;font-size:14px}.opportunity-watch-trigger-result dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 10px;margin:0 0 12px;color:#064e3b;font-size:12px}.opportunity-watch-trigger-result dt{font-weight:900}.opportunity-watch-trigger-result dd{margin:0;overflow-wrap:anywhere}.opportunity-watch-trigger-actions{border-top:1px solid #e2e8f0;border-bottom:0;margin-top:0;background:#f8fafc}.text-success{color:#047857!important}.text-danger{color:#b91c1c!important}.opportunity-watch-detail-card .opportunity-detail-section{margin-top:10px;padding-top:10px}.opportunity-watch-detail-card .opportunity-detail-section h3{margin-bottom:7px;font-size:12px}.opportunity-watch-summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.opportunity-watch-summary-strip div{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:7px 8px}.opportunity-watch-summary-strip span,.opportunity-watch-summary-strip small{display:block;overflow:hidden;color:#64748b;font-size:10px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.opportunity-watch-summary-strip strong{display:block;overflow:hidden;margin:3px 0 2px;color:#0f172a;font-size:12px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.opportunity-watch-summary-strip .opportunity-watch-summary-badge{display:inline-flex;max-width:100%;min-width:0;margin:3px 0 2px;padding:3px 8px;line-height:1.25}.opportunity-watch-log-section{display:grid;grid-template-rows:minmax(0,1fr) auto;flex:1 1 auto;min-height:0;gap:8px;margin-top:10px}.opportunity-watch-compact-log{display:block;min-height:0;height:100%;max-height:none;overflow:auto;margin:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#111827;padding:10px 11px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;font-weight:400;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;-webkit-user-select:text;user-select:text}.opportunity-watch-log-line{min-height:16px;color:#111827}.opportunity-watch-log-line.section{margin-top:9px;color:#334155;font-weight:800}.opportunity-watch-log-line.section:first-child{margin-top:0}.opportunity-watch-log-line.entry{display:flex;min-width:0;gap:4px}.opportunity-watch-log-line.blank{min-height:7px}.opportunity-watch-log-key{flex:0 0 auto;color:#475569;font-weight:400}.opportunity-watch-log-equals{flex:0 0 auto;color:#94a3b8;font-weight:400}.opportunity-watch-log-value{min-width:0;overflow:hidden;color:#111827;font-weight:400;text-overflow:ellipsis;white-space:pre-wrap}.opportunity-watch-log-value.is-muted{color:#94a3b8}.opportunity-watch-log-value.is-ok{color:#15803d}.opportunity-watch-log-value.is-limited{color:#b45309}.opportunity-watch-log-value.is-blocked{color:#b91c1c}.opportunity-watch-log-value.is-default{color:#111827}.opportunity-watch-log-event-button{justify-self:start;min-height:30px;padding:6px 10px;font-size:11px}.opportunity-watch-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px}.opportunity-watch-summary-grid div{padding:7px 8px}.opportunity-watch-summary-grid dt,.opportunity-watch-summary-grid dd{font-size:11px;line-height:1.25}.opportunity-watch-target-cell small{line-height:1.35}.opportunity-runtime-context-summary-grid{margin-top:8px}.opportunity-decision-summary,.opportunity-preview-summary{display:grid;gap:6px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;padding:10px}.opportunity-preview-summary{border-color:#e2e8f0;background:#f8fafc}.opportunity-watch-detail-card .opportunity-preview-summary{gap:4px;padding:8px}.opportunity-decision-summary strong,.opportunity-preview-summary strong{color:#0f172a;font-size:18px}.opportunity-watch-detail-card .opportunity-preview-summary strong{font-size:14px}.opportunity-decision-summary small,.opportunity-preview-summary small{color:#475569;font-size:12px;font-weight:900}.opportunity-watch-detail-card .opportunity-preview-summary small,.opportunity-watch-detail-card .opportunity-action-note,.opportunity-watch-detail-card .opportunity-detail-message{font-size:11px;line-height:1.35}.opportunity-watch-detail-card .opportunity-chip-list{gap:5px}.opportunity-watch-detail-card .opportunity-chip-list span,.opportunity-watch-detail-card .opportunity-chip-list em{padding:4px 7px;font-size:10px}.opportunity-simulation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.opportunity-simulation-head h3{margin-bottom:4px}.opportunity-simulation-head p{margin:0;color:#64748b;font-size:12px;font-weight:800}.opportunity-simulation-button{flex:0 0 auto;min-height:30px;padding:6px 10px;font-size:12px}.opportunity-simulation-badges{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.opportunity-simulation-badges span{border-radius:999px;background:#eef2ff;color:#3730a3;padding:5px 9px;font-size:11px;font-weight:900}.opportunity-simulation-badges span.warning{background:#fee2e2;color:#b91c1c}.opportunity-simulation-summary{margin-top:8px}.opportunity-simulation-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}.opportunity-simulation-metrics div{display:grid;gap:4px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:8px}.opportunity-simulation-metrics span{color:#64748b;font-size:11px;font-weight:900}.opportunity-simulation-metrics strong{color:#0f172a;font-size:15px;font-weight:900}.opportunity-compact-grid{margin-top:10px}.opportunity-reason-groups{display:grid;gap:10px;margin-top:10px}.opportunity-recovery-panel{margin-top:10px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;padding:10px}.opportunity-recovery-panel p{margin:0 0 8px;color:#9a3412;font-size:12px;font-weight:800;line-height:1.45}.opportunity-recovery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:8px}.opportunity-recovery-item{display:grid;gap:4px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:8px}.opportunity-recovery-item span{color:#475569;font-size:11px;font-weight:900}.opportunity-recovery-item strong{color:#0f172a;font-size:12px;font-weight:900}.opportunity-recovery-item small{width:fit-content;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900}.opportunity-recovery-item.status-met small{background:#dcfce7;color:#15803d}.opportunity-recovery-item.status-unmet small{background:#fee2e2;color:#b91c1c}.opportunity-recovery-item.status-unknown small{background:#f1f5f9;color:#64748b}.opportunity-context-grid{display:grid;gap:10px}.opportunity-watch-context-grid{gap:7px}.opportunity-context-card{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:10px}.opportunity-watch-detail-card .opportunity-context-card{padding:8px}.opportunity-context-card header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.opportunity-watch-detail-card .opportunity-context-card header{margin-bottom:5px}.opportunity-context-card header span{color:#0f172a;font-size:12px;font-weight:900}.opportunity-context-card header strong{color:#2563eb;font-size:12px;font-weight:900}.opportunity-watch-detail-card .opportunity-context-card header span,.opportunity-watch-detail-card .opportunity-context-card header strong{font-size:11px}.opportunity-context-card dl{display:grid;gap:6px;margin:0}.opportunity-watch-detail-card .opportunity-context-card dl{gap:4px}.opportunity-context-summary-list{margin-bottom:8px}.opportunity-watch-detail-card .opportunity-context-summary-list{margin-bottom:0}.opportunity-context-card dl div{display:flex;justify-content:space-between;gap:8px;color:#475569;font-size:12px}.opportunity-watch-detail-card .opportunity-context-card dl div{font-size:11px}.opportunity-context-card dt{font-weight:800}.opportunity-context-card dd{margin:0;color:#0f172a;font-weight:900;text-align:right}.opportunity-context-details{margin-top:8px;border-top:1px solid #e2e8f0;padding-top:8px}.opportunity-context-details summary,.opportunity-debug-details summary{cursor:pointer;color:#2563eb;font-size:12px;font-weight:900}.opportunity-context-details[open] summary,.opportunity-debug-details[open] summary{margin-bottom:8px}.opportunity-detail-section pre{max-height:220px;overflow:auto;margin:0;border:1px solid #dbe5f1;border-radius:8px;background:#0f172a;color:#e2e8f0;padding:12px;font-size:12px;line-height:1.5;white-space:pre-wrap}.opportunity-chip-list{display:flex;flex-wrap:wrap;gap:8px}.opportunity-chip-list span,.opportunity-chip-list em{border-radius:999px;background:#ecfdf5;color:#15803d;padding:5px 9px;font-size:11px;font-style:normal;font-weight:900}.opportunity-chip-list.skipped span,.opportunity-chip-list.skipped em{background:#fff7ed;color:#c2410c}.opportunity-chip-list.warning span,.opportunity-chip-list.warning em{background:#fef3c7;color:#b45309}.opportunity-chip-list.blocked span,.opportunity-chip-list.blocked em{background:#fee2e2;color:#b91c1c}.opportunity-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:10px 0}.opportunity-request-row input{min-width:0;border:1px solid #dbe5f1;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:800}.opportunity-test-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a3d;padding:18px}.opportunity-test-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.opportunity-test-modal-head h2{margin:0 0 4px;color:#0f172a;font-size:18px}.opportunity-test-modal-head p{margin:0;color:#64748b;font-size:13px;font-weight:800}.opportunity-test-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.opportunity-test-form label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:900}.opportunity-test-form input,.opportunity-test-form select,.opportunity-test-form textarea{width:100%;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#0f172a;padding:9px 10px;font-size:13px}.opportunity-form-wide{grid-column:1 / -1}@media (max-width: 1100px){.opportunity-monitor-layout{grid-template-columns:1fr}.opportunity-watch-page .opportunity-monitor-layout,.opportunity-events-layout{align-items:start;height:auto;min-height:0}.opportunity-events-list-card{height:auto;min-height:520px;overflow:visible}.opportunity-events-list-card .opportunity-table-wrap{max-height:520px}.opportunity-watch-list-card{height:auto;min-height:520px;overflow:visible}.opportunity-trace-console{height:360px;min-height:360px;max-height:360px}.opportunity-detail-card{position:static;max-height:none}.opportunity-events-detail-card{height:auto;overflow:visible}.opportunity-event-compact-log{min-height:340px;max-height:520px}.opportunity-watch-detail-card{height:auto;overflow:visible}.opportunity-watch-compact-log{min-height:320px;max-height:420px}}@media (max-width: 720px){.opportunity-toolbar,.opportunity-test-modal-head{flex-direction:column}.opportunity-toolbar,.opportunity-test-form,.opportunity-request-row{grid-template-columns:1fr;width:100%}.opportunity-toolbar button,.opportunity-query-button,.opportunity-watch-filter-grid{min-width:0;width:100%}.opportunity-watch-filter-grid{grid-template-columns:1fr}.opportunity-watch-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.trade-intent-risk.high{background:#fee2e2;color:#b91c1c}.trade-intent-risk.normal{background:#ffedd5;color:#c2410c}.trade-intent-risk.low{background:#dcfce7;color:#15803d}.trade-intent-risk.none{background:#f1f5f9;color:#64748b}.trade-intent-skip-reason{max-width:180px;overflow:hidden;color:#475569;text-overflow:ellipsis}.trade-intent-table-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px;min-height:34px;color:#64748b;font-size:12px;font-weight:900}.trade-intent-table-footer>span{margin-right:auto}.trade-intent-table-footer select{height:34px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-weight:800}.trade-intent-pagination{display:inline-flex;align-items:center;gap:4px}.trade-intent-pagination button{width:30px;height:30px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#475569;font-size:12px;font-weight:900}.trade-intent-pagination button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.trade-intent-detail-card{position:sticky;top:16px;height:560px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow-y:auto}.trade-intent-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.trade-intent-detail-actions{display:inline-flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:6px}.trade-intent-detail-head span,.trade-intent-detail-head small{display:block;color:#64748b;font-size:12px;font-weight:800}.trade-intent-detail-head strong{display:block;margin:5px 0;color:#0f172a;font-size:20px;font-weight:900}.trade-intent-json-copy-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#2563eb;cursor:pointer;padding:0 9px;font-size:11px;font-weight:900;line-height:1}.trade-intent-json-copy-button:hover,.trade-intent-json-copy-button:focus-visible{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.trade-intent-json-copy-button.success{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.trade-intent-json-copy-button.error{border-color:#fecaca;background:#fef2f2;color:#dc2626}.trade-intent-json-copy-button span{font-size:14px}.trade-intent-json-copy-button b{font-size:11px}.trade-intent-json-copy-feedback{max-width:132px;margin:0;color:#64748b;font-size:11px;font-weight:900;line-height:1.2;text-align:right}.trade-intent-json-copy-feedback.success{color:#15803d}.trade-intent-json-copy-feedback.error{color:#dc2626}.trade-intent-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.trade-intent-tabs{display:flex;flex-wrap:nowrap;gap:4px;margin:18px 0 14px;border-bottom:1px solid #e4ebf5}.trade-intent-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;padding:0 9px 9px;font-size:12px;font-weight:900;white-space:nowrap}.trade-intent-tabs button.active{border-color:#2563eb;color:#1d4ed8}.trade-intent-detail-grid,.trade-intent-related-info dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trade-intent-detail-grid div,.trade-intent-related-info div{display:grid;gap:5px;border-bottom:1px solid #eef2f7;padding-bottom:8px}.trade-intent-detail-grid dt,.trade-intent-related-info dt{color:#64748b;font-size:12px;font-weight:800}.trade-intent-detail-grid dd,.trade-intent-related-info dd{margin:0;color:#0f172a;font-size:13px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-intent-log-list{display:grid;gap:9px}.trade-intent-log-list div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px;border-bottom:1px solid #eef2f7;padding:8px 0;color:#334155;font-size:12px;font-weight:800}.trade-intent-summary-box,.trade-intent-related-info{margin-top:16px;border:1px solid #e4ebf5;border-radius:8px;padding:14px}.trade-intent-summary-box h3,.trade-intent-related-info h3{margin:0 0 10px;color:#0f172a;font-size:15px}.trade-intent-summary-box p{margin:0;color:#334155;font-size:13px;font-weight:800;line-height:1.7}@media (max-width: 1280px){.trade-intent-layout,.trade-intent-filter-grid{grid-template-columns:1fr}.trade-intent-detail-card{position:static;max-height:none}}.order-history-page{display:grid;gap:16px;background:#f8fafc}.portfolio-dashboard-page{display:grid;gap:14px;background:#f8fafc}.portfolio-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.portfolio-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}.portfolio-dashboard-head h2{margin:0;color:#0f172a;font-size:26px;line-height:1.2}.portfolio-dashboard-head time{margin:0;color:#64748b;font-size:14px;font-weight:800}.portfolio-kpi-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.portfolio-kpi-grid .trade-intent-kpi-card{min-width:0;min-height:86px;gap:7px;padding:11px 10px}.portfolio-kpi-grid .trade-intent-kpi-card div{min-width:0}.portfolio-kpi-grid .trade-intent-kpi-card span,.portfolio-kpi-grid .trade-intent-kpi-card small{overflow:hidden;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.portfolio-kpi-grid .trade-intent-kpi-card strong{overflow:hidden;margin:7px 0 5px;font-size:18px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.portfolio-kpi-grid .trade-intent-kpi-card i{width:28px;height:28px;flex:0 0 28px;border-radius:7px;font-size:11px}.mock-account-summary-card{display:grid;gap:14px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;padding:16px;box-shadow:0 14px 34px #0f172a0b}.mock-account-summary-card.collapsed{gap:0;padding:12px 14px}.mock-account-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mock-account-title-area{min-width:0}.mock-account-title-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.mock-account-title-row h2{margin:0;color:#0f172a;font-size:18px;line-height:1.2}.mock-account-card-header p{margin:0;color:#64748b;font-size:13px;font-weight:800}.mock-account-actions-compact{display:inline-flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.mock-account-icon-button{display:inline-flex;width:32px;height:32px;flex:0 0 32px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#475569;cursor:pointer;padding:0;font-size:16px;font-weight:900;line-height:1}.mock-account-icon-button.primary{border-color:#2563eb;background:#2563eb;color:#fff}.mock-account-icon-button:hover:not(:disabled){border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.mock-account-icon-button.primary:hover:not(:disabled){border-color:#1d4ed8;background:#1d4ed8;color:#fff}.mock-account-icon-button:disabled{cursor:not-allowed;opacity:.45}.mock-account-reset-button{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#b91c1c;cursor:pointer;padding:0 10px;font-size:12px;font-weight:900;line-height:1;white-space:nowrap}.mock-account-reset-button:hover:not(:disabled){border-color:#ef4444;background:#fef2f2;color:#991b1b}.mock-account-reset-button:disabled{cursor:not-allowed;opacity:.45}.mock-account-collapsible-body{display:grid;gap:14px}.mock-account-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.trade-intent-kpi-card.compact{min-height:96px;padding:12px}.trade-intent-kpi-card.compact strong{font-size:18px;line-height:1.15}.trade-intent-kpi-card.compact small{line-height:1.25}.mock-account-empty{display:grid;gap:5px;border:1px dashed #bfdbfe;border-radius:8px;background:#eff6ff;padding:14px}.mock-account-empty strong{color:#1d4ed8;font-size:14px;font-weight:900}.mock-account-empty span{color:#475569;font-size:12px;font-weight:800}.mock-account-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid #e4ebf5;border-radius:8px;overflow:hidden}.mock-account-detail-grid div{display:grid;gap:5px;border-right:1px solid #e4ebf5;border-bottom:1px solid #e4ebf5;background:#f8fafc;padding:10px 12px}.mock-account-detail-grid div:nth-child(4n){border-right:0}.mock-account-detail-grid div:nth-last-child(-n+4){border-bottom:0}.mock-account-detail-grid span{color:#64748b;font-size:11px;font-weight:900}.mock-account-detail-grid strong{color:#0f172a;font-size:13px;font-weight:900}.mock-account-transaction-list{display:grid;gap:9px}.mock-account-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.mock-account-subhead strong{color:#0f172a;font-size:13px;font-weight:900}.mock-account-subhead span{color:#64748b;font-size:12px;font-weight:800}.portfolio-table.compact.mock-account-transaction-table{width:100%;min-width:680px}.mock-account-transaction-table th,.mock-account-transaction-table td{padding:9px 10px}.mock-account-modal{width:min(560px,calc(100vw - 40px))}.mock-account-form{grid-template-columns:1fr}.mock-account-form .manual-sell-estimate{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-filter-card,.portfolio-main-card,.portfolio-side-card,.portfolio-lot-card,.portfolio-summary-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.portfolio-filter-card{padding:14px}.portfolio-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr);gap:10px}.portfolio-filter-grid label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:900}.portfolio-filter-grid input,.portfolio-filter-grid select{min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:800}.portfolio-check-filter{grid-template-columns:18px minmax(0,1fr);align-items:center}.portfolio-check-filter input{min-height:auto}.portfolio-check-filter small{color:#64748b}.portfolio-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;min-width:0}.portfolio-content-column{display:grid;grid-template-columns:minmax(280px,3fr) minmax(0,7fr);gap:14px;align-items:stretch;min-width:0;overflow-x:visible}.portfolio-main-card,.portfolio-lot-card,.portfolio-summary-card{min-width:0;padding:15px}.portfolio-main-card,.portfolio-lot-card{display:flex;flex-direction:column}.portfolio-main-card,.portfolio-lot-card{min-height:560px}.portfolio-main-card h3,.portfolio-side-card h3,.portfolio-lot-card h3,.portfolio-summary-card h3{margin:0 0 14px;color:#0f172a;font-size:15px}.portfolio-main-card h3 small,.portfolio-side-card h3 small,.portfolio-lot-card h3 small{margin-left:8px;color:#64748b;font-size:12px}.portfolio-table-wrap{flex:1;width:100%;max-width:100%;min-width:0;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin}.portfolio-main-card .portfolio-table-wrap{min-height:480px;max-height:62vh}.portfolio-table{width:max-content;min-width:1780px;border-collapse:collapse}.portfolio-table.position-holdings-table{width:100%;min-width:430px}.portfolio-table.lots{min-width:1020px}.portfolio-table th,.portfolio-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap;padding:11px 10px;font-size:12px;font-weight:800}.position-holdings-table th,.position-holdings-table td{padding:9px 8px}.portfolio-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;font-weight:900}.position-holdings-table th,.position-holdings-table td{text-align:right;vertical-align:middle}.position-holdings-table th:first-child,.position-holdings-table td.text-left{text-align:left}.portfolio-table tbody tr{cursor:default}.portfolio-table tbody tr.selected,.portfolio-table tbody tr:hover{background:#f8fafc}.portfolio-table tbody tr.selected td{background:#eff6ff;border-top:1px solid #93c5fd;border-bottom-color:#93c5fd;box-shadow:inset 0 1px #bfdbfe,inset 0 -1px #bfdbfe}.portfolio-table tbody tr.selected td:first-child{border-left:4px solid #2563eb}.portfolio-stock-cell{display:grid;gap:2px;min-width:92px}.position-holdings-table .portfolio-stock-cell{min-width:92px}.position-holdings-table .portfolio-stock-cell strong{color:#0f172a;font-size:12px;font-weight:700;line-height:1.3}.position-holdings-table .portfolio-stock-cell small{color:#64748b;font-size:11px;font-weight:600;line-height:1.25}.portfolio-stacked-cell{display:grid;gap:4px;justify-items:end}.portfolio-stacked-cell strong{color:#0f172a;font-size:12px;font-weight:900}.portfolio-stacked-cell small{color:#64748b;font-size:11px;font-weight:800}.portfolio-trend-badge{display:inline-flex;min-width:34px;min-height:24px;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900}.portfolio-fill-cell{display:grid;gap:5px;min-width:120px}.portfolio-fill-cell strong.under{color:#15803d}.portfolio-fill-cell strong.balanced{color:#2563eb}.portfolio-fill-cell strong.over{color:#ea580c}.portfolio-fill-cell strong.danger{color:#dc2626}.portfolio-fill-bar{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.portfolio-fill-bar i{display:block;height:100%;border-radius:inherit}.portfolio-fill-bar i.under{background:#22c55e}.portfolio-fill-bar i.balanced{background:#2563eb}.portfolio-fill-bar i.over{background:#f97316}.portfolio-fill-bar i.danger{background:#dc2626}.portfolio-fill-cell small{color:#ea580c;font-size:11px;font-weight:900}.portfolio-side-panel{display:grid;gap:12px}.portfolio-side-card{padding:15px}.portfolio-distribution-body{display:grid;grid-template-columns:134px minmax(0,1fr);align-items:center;gap:12px}.portfolio-distribution-body .order-history-donut{width:142px;height:142px;margin:0}.portfolio-distribution-body .order-history-donut:after{top:36px;right:36px;bottom:36px;left:36px}.portfolio-distribution-body .order-history-donut strong{font-size:22px;line-height:1}.portfolio-distribution-body .order-history-donut span{margin-top:4px;font-size:11px;line-height:1.15}.portfolio-distribution-body ul{gap:6px}.portfolio-side-card ul,.portfolio-sync-list,.portfolio-summary-card dl{display:grid;gap:8px;margin:0;padding:0}.portfolio-side-card li,.portfolio-sync-list div,.portfolio-summary-card dl div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;padding-bottom:8px;color:#475569;font-size:12px;font-weight:800;list-style:none}.portfolio-side-card strong,.portfolio-sync-list dd,.portfolio-summary-card dd{margin:0;color:#0f172a;font-weight:900}.portfolio-risk-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 88px 76px;align-items:center;gap:6px 10px;border-bottom:1px solid #eef2f7;padding:10px 0}.portfolio-risk-head{display:grid;grid-template-columns:minmax(0,1fr) 78px 88px 76px;gap:10px;border-bottom:1px solid #e4ebf5;padding-bottom:8px;color:#64748b;font-size:11px;font-weight:900}.portfolio-risk-row strong,.portfolio-risk-row small{display:block}.portfolio-risk-row small{color:#64748b}.portfolio-risk-row span{color:#dc2626;font-size:12px;font-weight:900}.portfolio-risk-row em{border-radius:999px;padding:3px 8px;font-style:normal;font-size:11px;font-weight:900;text-align:center}.portfolio-investment-bars{display:grid;gap:10px}.portfolio-investment-bars div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px}.portfolio-investment-bars span{display:inline-flex;align-items:center;gap:6px;color:#475569;font-size:12px;font-weight:900}.portfolio-investment-bars span i{width:9px;height:9px;border-radius:999px}.portfolio-investment-bars strong{color:#0f172a;font-size:12px;font-weight:900}.portfolio-investment-bars b{grid-column:1 / -1;height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.portfolio-investment-bars b i{display:block;height:100%;border-radius:inherit}.portfolio-investment-bars i.accumulate{background:#22c55e}.portfolio-investment-bars i.hold{background:#2563eb}.portfolio-investment-bars i.reduce{background:#f97316}.portfolio-investment-bars i.exit{background:#ef4444}.portfolio-investment-bars i.wait{background:#94a3b8}.portfolio-alert-list li{justify-content:flex-start}.portfolio-alert-list li span{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:999px;background:#ffedd5;color:#ea580c;font-size:11px;font-weight:900}.portfolio-text-action{display:inline-flex;justify-self:end;margin-top:10px;border:0;background:transparent;color:#2563eb;cursor:pointer;font-size:12px;font-weight:900}.portfolio-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.portfolio-card-head h3{min-width:0;margin-bottom:0}.portfolio-card-head h3 small{display:block;margin:3px 0 0}.portfolio-refresh-button{display:inline-flex;width:36px;height:36px;flex:0 0 36px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#2563eb;cursor:pointer}.portfolio-refresh-button:hover{border-color:#93c5fd;background:#eff6ff}.portfolio-refresh-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.portfolio-lot-table-scroll{min-height:480px;max-height:62vh;overflow:auto}.portfolio-lot-table-scroll .portfolio-table th{position:sticky;top:0;z-index:2}.portfolio-lot-status{display:inline-flex;min-width:58px;min-height:24px;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.portfolio-lot-status.open{background:#dcfce7;color:#15803d}.portfolio-lot-status.partial{background:#ffedd5;color:#ea580c}.portfolio-lot-status.closed{background:#f1f5f9;color:#64748b}.asset-lot-two-line-table th,.asset-lot-two-line-table td{padding:8px 9px;vertical-align:middle}.asset-lot-two-line-table th:first-child,.asset-lot-two-line-table td:first-child{text-align:center}.asset-lot-no{display:inline-flex;min-width:28px;min-height:28px;align-items:center;justify-content:center;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:900}.asset-lot-cell{display:grid;gap:3px;min-width:0}.asset-lot-cell strong,.asset-lot-cell small{display:block;line-height:1.25}.asset-lot-cell strong{color:#0f172a;font-size:12px;font-weight:900}.asset-lot-cell small{color:#64748b;font-size:11px;font-weight:800}.asset-lot-actions{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px}.asset-icon-action-button{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#2563eb;cursor:pointer}.asset-protection-action-button{width:auto;min-width:58px;gap:4px;padding:0 7px;font-size:11px;font-weight:900;white-space:nowrap}.asset-protection-action-button.assign{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.asset-protection-action-button.release{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.asset-icon-action-button:hover:not(:disabled){border-color:#2563eb;background:#dbeafe}.asset-icon-action-button:disabled{cursor:not-allowed;opacity:.45}.asset-icon-action-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.portfolio-direct-sell-button{min-width:86px;min-height:32px;align-items:center;justify-content:center;margin-top:0;border:0;background:#2563eb;color:#fff;padding:0 12px;font-size:12px;font-weight:900}.portfolio-direct-buy-button{width:auto;min-width:0;height:38px;min-height:38px;margin-top:0;align-items:center;justify-content:center;padding:0 16px;font-size:13px;font-weight:900;white-space:nowrap}.portfolio-direct-sell-button:disabled{border-color:#e2e8f0;background:#f8fafc;color:#94a3b8;cursor:not-allowed}.portfolio-source-badge{display:inline-flex;min-height:23px;align-items:center;justify-content:center;border-radius:999px;background:#f1f5f9;color:#475569;padding:3px 8px;font-size:10px;font-weight:900;white-space:nowrap}.portfolio-source-badge.danger{background:#fee2e2;color:#b91c1c}.portfolio-source-badge.protected{background:#dbeafe;color:#1d4ed8}.portfolio-source-badge.auto-trading{background:#dcfce7;color:#15803d}.manual-sell-backdrop{z-index:1200}.manual-sell-modal{display:grid;width:min(760px,calc(100vw - 40px));max-height:calc(100vh - 80px);overflow:auto;gap:14px;border-radius:10px;background:#fff;padding:20px;box-shadow:0 22px 70px #0f172a3d}.manual-sell-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #e4ebf5;padding-bottom:12px}.manual-sell-head h3{margin:0 0 6px;color:#0f172a;font-size:18px}.manual-sell-head p,.manual-sell-confirm{margin:0;color:#64748b;font-size:13px;font-weight:800}.manual-sell-summary,.manual-sell-estimate{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.manual-sell-summary div,.manual-sell-estimate div{display:grid;gap:5px;border:1px solid #e4ebf5;border-radius:8px;background:#f8fafc;padding:10px}.manual-sell-summary span,.manual-sell-estimate span{color:#64748b;font-size:11px;font-weight:900}.manual-sell-summary strong,.manual-sell-estimate strong{color:#0f172a;font-size:13px;font-weight:900}.manual-sell-summary small,.manual-sell-estimate small,.manual-buy-subtext{color:#64748b;font-size:11px;font-weight:800}.manual-sell-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.manual-sell-form label{display:grid;gap:7px;color:#475569;font-size:12px;font-weight:900}.manual-sell-form input,.manual-sell-form select{min-height:38px;border:1px solid #dbe5f1;border-radius:7px;background:#fff;color:#0f172a;padding:0 10px;font-size:14px;font-weight:900}.manual-buy-confirm-modal{width:min(680px,calc(100vw - 40px))}.manual-buy-warning{margin:0;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;padding:10px 12px;font-size:13px;font-weight:900;line-height:1.55}.manual-sell-form .manual-sell-memo{grid-column:1 / -1}.manual-sell-actions{display:flex;justify-content:flex-end;gap:10px}.portfolio-source-badge.item-override{background:#e0f2fe;color:#0369a1}.portfolio-source-badge.user-default{background:#fef3c7;color:#b45309}.portfolio-source-badge.system-default{background:#f1f5f9;color:#64748b}.sync-badge.error{background:#fee2e2;color:#dc2626}.portfolio-disabled-action{opacity:.65;cursor:not-allowed}.portfolio-valuation-chart{display:flex;min-height:150px;align-items:flex-end;gap:8px;border-left:1px solid #e4ebf5;border-bottom:1px solid #e4ebf5;padding:12px 4px 0 8px}.portfolio-valuation-chart span{position:relative;display:flex;flex:1;min-width:0;align-items:flex-end;justify-content:center}.portfolio-valuation-chart span:before{content:"";display:block;width:100%;max-width:18px;height:100%;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#2563eb,#bfdbfe)}.portfolio-valuation-chart i{position:absolute;top:-4px;width:7px;height:7px;border-radius:999px;background:#2563eb}.portfolio-valuation-chart small{position:absolute;bottom:-20px;color:#64748b;font-size:10px;font-weight:800}.portfolio-trend-card{padding-bottom:28px}.evaluation-profit-page{display:grid;gap:14px;background:#f8fafc}.evaluation-profit-head{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:16px}.evaluation-profit-head h2{margin:0;color:#0f172a;font-size:23px;font-weight:950;line-height:1.2}.evaluation-profit-head time{margin:0;color:#64748b;font-size:13px;font-weight:800}.evaluation-profit-kpi-grid{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:12px}.evaluation-profit-kpi,.evaluation-profit-filter-card,.evaluation-profit-main-card,.evaluation-profit-risk-card,.evaluation-profit-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.evaluation-profit-kpi{display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 9px;align-items:center;min-height:104px;padding:14px 16px}.evaluation-profit-kpi span{grid-row:span 2;display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:999px;font-size:17px;font-weight:900}.evaluation-profit-kpi small{color:#475569;font-size:12px;font-weight:900}.evaluation-profit-kpi strong{color:#0f172a;font-size:23px;font-weight:950;line-height:1.15}.evaluation-profit-kpi.tone-green span{background:#dcfce7;color:#16a34a}.evaluation-profit-kpi.tone-green strong{color:#16a34a}.evaluation-profit-kpi.tone-red span{background:#fee2e2;color:#ef4444}.evaluation-profit-kpi.tone-red strong{color:#ef4444}.evaluation-profit-kpi.tone-blue span{background:#dbeafe;color:#2563eb}.evaluation-profit-kpi.tone-blue strong{color:#2563eb}.evaluation-profit-kpi.tone-orange span{background:#ffedd5;color:#d97706}.evaluation-profit-kpi.tone-orange strong{color:#d97706}.evaluation-profit-kpi.tone-purple span{background:#ede9fe;color:#7c3aed}.evaluation-profit-kpi.tone-purple strong{color:#7c3aed}.evaluation-profit-filter-card{display:grid;grid-template-columns:repeat(5,minmax(118px,1fr)) minmax(140px,.85fr) 116px 98px;gap:12px;align-items:end;min-height:86px;padding:14px 20px}.evaluation-profit-filter-card label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:900}.evaluation-profit-filter-card select{min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:800}.evaluation-profit-checkbox{display:flex!important;min-height:36px;align-items:center;grid-template-columns:none!important;gap:8px!important}.evaluation-profit-checkbox input{width:16px;height:16px}.evaluation-profit-filter-card button{min-height:36px}.evaluation-profit-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:stretch}.evaluation-profit-main-card,.evaluation-profit-risk-card,.evaluation-profit-card{padding:14px}.evaluation-profit-main-card h3,.evaluation-profit-risk-card h3,.evaluation-profit-card h3{margin:0 0 12px;color:#0f172a;font-size:16px;font-weight:950}.evaluation-profit-table-scroll{height:352px;overflow:auto;border:1px solid #e4ebf5;border-radius:8px}.evaluation-profit-table{width:100%;min-width:1280px;border-collapse:collapse}.evaluation-profit-table th,.evaluation-profit-table td{border-bottom:1px solid #eef2f7;border-right:1px solid #eef2f7;padding:10px;white-space:nowrap;text-align:center;font-size:12px;font-weight:850}.evaluation-profit-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#334155}.evaluation-profit-table td:first-child,.evaluation-profit-table th:first-child{text-align:left}.evaluation-profit-table .number{text-align:right;font-variant-numeric:tabular-nums}.evaluation-profit-link{display:grid;gap:2px;border:0;background:transparent;color:#0f172a;padding:0;text-align:left;cursor:pointer}.evaluation-profit-link strong{font-size:13px}.evaluation-profit-link small,.evaluation-risk-row em{color:#64748b;font-size:11px;font-style:normal}.evaluation-profit-positive{color:#16a34a!important}.evaluation-profit-negative{color:#ef4444!important}.score-badge,.fill-rate-badge,.risk-badge,.lot-status-badge{display:inline-flex;min-width:44px;min-height:24px;align-items:center;justify-content:center;border-radius:6px;padding:0 8px;font-size:11px;font-weight:950}.score-badge.green,.fill-rate-badge.green,.risk-badge.ok,.lot-status-badge.open{background:#dcfce7;color:#15803d}.score-badge.blue,.fill-rate-badge.blue{background:#dbeafe;color:#2563eb}.score-badge.orange,.fill-rate-badge.orange,.risk-badge.watch,.lot-status-badge.partial{background:#ffedd5;color:#ea580c}.score-badge.red,.fill-rate-badge.red,.risk-badge.risk,.risk-badge.critical{background:#fee2e2;color:#dc2626}.lot-status-badge.closed{background:#f1f5f9;color:#64748b}.button-badge{border:0;cursor:pointer}.risk-hint{display:block;margin-top:3px;color:#dc2626;font-size:10px;font-weight:950}.evaluation-risk-list{display:grid;height:352px;overflow:auto;border:1px solid #e4ebf5;border-radius:8px}.evaluation-risk-row{display:grid;grid-template-columns:36px minmax(96px,1fr) 68px 86px 92px;gap:8px;align-items:center;min-height:52px;border-bottom:1px solid #eef2f7;padding:0 10px;font-size:12px;font-weight:900}.evaluation-risk-head{position:sticky;top:0;z-index:1;min-height:38px;background:#f8fafc;color:#475569;font-size:11px}.evaluation-risk-row button{display:grid;border:0;background:transparent;color:#0f172a;padding:0;text-align:left;font-weight:950;cursor:pointer}.evaluation-risk-row strong.green{color:#16a34a}.evaluation-risk-row strong.blue{color:#2563eb}.evaluation-risk-row strong.orange{color:#d97706}.evaluation-risk-row strong.red{color:#dc2626}.evaluation-profit-bottom-grid{display:grid;grid-template-columns:1.35fr 1fr .95fr 1fr .95fr;gap:14px;align-items:stretch}.evaluation-profit-card{height:246px;min-height:0;overflow:hidden}.evaluation-donut-wrap{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;height:190px}.evaluation-donut{display:flex;width:148px;height:148px;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;color:#0f172a;box-shadow:inset 0 0 0 36px #fff;text-align:center}.evaluation-donut strong,.evaluation-donut span{max-width:90px;font-size:12px;font-weight:950}.evaluation-donut span{color:#2563eb}.evaluation-donut-wrap ul{display:grid;max-height:188px;gap:7px;margin:0;overflow-y:auto;padding:0;list-style:none}.evaluation-donut-wrap li{display:grid;grid-template-columns:10px minmax(0,1fr);gap:6px 8px;color:#334155;font-size:12px;font-weight:900}.evaluation-donut-wrap li em{grid-column:2;color:#0f172a;font-style:normal;font-weight:800}.state-dot{width:10px;height:10px;border-radius:999px;margin-top:3px}.state-dot.accumulate{background:#22c55e}.state-dot.hold{background:#2563eb}.state-dot.reduce{background:#8b5cf6}.state-dot.exit{background:#ef4444}.state-dot.wait{background:#94a3b8}.evaluation-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:188px;align-items:end;gap:24px;padding:8px 20px 0;border-bottom:2px solid #0f172a}.evaluation-bar-item{display:flex;align-items:center;flex-direction:column;gap:5px;text-align:center}.evaluation-bar-item strong,.evaluation-bar-item span,.evaluation-bar-item em{font-size:12px;font-weight:950;font-style:normal}.evaluation-bar-item i{display:block;width:54px;border-radius:7px 7px 0 0}.evaluation-bar-item i.profit{background:#ef4444}.evaluation-bar-item i.loss{background:#2563eb}.evaluation-mini-table{width:100%;border-collapse:collapse}.evaluation-mini-table th,.evaluation-mini-table td{border-bottom:1px solid #eef2f7;padding:8px 6px;color:#334155;font-size:11px;font-weight:850;text-align:center}.evaluation-mini-table th{background:#f8fafc;color:#475569}.evaluation-alert-card{display:grid;align-content:start;gap:10px}.evaluation-card-scroll{max-height:190px;overflow-y:auto;overflow-x:hidden;padding-right:2px}.evaluation-alert-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;border-bottom:1px solid #eef2f7;padding:7px 0 9px}.evaluation-alert-row span{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:8px;background:#fee2e2;color:#dc2626;font-weight:950}.evaluation-alert-row.overfill span,.evaluation-alert-row.loss span{background:#ffedd5;color:#d97706}.evaluation-alert-row strong{display:block;margin-bottom:4px;color:#0f172a;font-size:12px;font-weight:950}.evaluation-alert-row p,.evaluation-empty{margin:0;color:#64748b;font-size:11px;font-weight:800}@media (max-width: 1500px){.evaluation-profit-kpi-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.evaluation-profit-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px){.evaluation-profit-layout,.evaluation-profit-filter-card,.evaluation-profit-bottom-grid{grid-template-columns:1fr}.evaluation-profit-kpi-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}.realized-profit-page{display:grid;gap:10px;background:#f8fafc}.realized-profit-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.realized-profit-kpi-grid .trade-intent-kpi-card{min-height:92px;padding:12px}.realized-profit-kpi-grid .trade-intent-kpi-card strong{overflow:hidden;font-size:18px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.realized-profit-kpi-grid .trade-intent-kpi-card small{line-height:1.25}.realized-profit-filter-card,.realized-profit-main-card,.realized-profit-summary-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}#admin-app .realized-profit-filter-card{display:grid;grid-template-columns:132px 152px 152px minmax(190px,1fr) 82px max-content;align-items:end;gap:8px;padding:11px 12px}#admin-app .realized-profit-filter-field{display:grid;grid-template-rows:16px 36px;align-content:end;gap:5px;min-width:0}#admin-app .realized-profit-filter-field{color:#475569;font-size:12px;font-weight:900}#admin-app .realized-profit-filter-field>span,#admin-app .realized-profit-filter-spacer{display:block;overflow:hidden;min-height:16px;color:#475569;font-size:12px;font-weight:900;line-height:16px;text-overflow:ellipsis;white-space:nowrap}#admin-app .realized-profit-filter-card input,#admin-app .realized-profit-filter-card select{width:100%;height:36px;min-height:34px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:800;line-height:36px}#admin-app .realized-profit-filter-card input:disabled,#admin-app .realized-profit-filter-card select:disabled{background:#f8fafc;color:#64748b}#admin-app .realized-profit-filter-card button{align-self:end;height:36px;min-height:36px;margin-top:0;white-space:nowrap}#admin-app .realized-profit-filter-card .realized-filter-submit{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2563eb;background:#fff;color:#2563eb;width:82px;padding:0 12px;font-size:13px;font-weight:800;line-height:1}#admin-app .realized-profit-filter-card .secondary-button{border-color:#dbe5f1;background:#fff;color:#475569}.realized-profit-date-filter div{display:block}.realized-profit-layout{display:block;min-width:0}.realized-profit-main-card,.realized-profit-summary-card{min-width:0;padding:15px}.realized-profit-main-card h3{margin:0 0 10px;color:#0f172a;font-size:15px}.realized-profit-table-scroll{height:560px;overflow:auto}.realized-profit-table{width:100%;min-width:1118px;border-collapse:collapse;table-layout:fixed}.realized-profit-table th,.realized-profit-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap;overflow:hidden;padding:9px 8px;font-size:12px;font-weight:800;line-height:1.25;text-overflow:ellipsis}.realized-profit-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;font-weight:900}.realized-profit-table tbody tr{cursor:default}.realized-profit-table tbody tr:hover,.realized-profit-table tbody tr.selected td{background:#f8fafc}.realized-profit-table tbody tr.selected td:first-child{border-left:4px solid #2563eb}.realized-col-name{width:120px}.realized-col-lot{width:70px}.realized-col-datetime{width:96px}.realized-col-days{width:70px}.realized-col-price{width:88px}.realized-col-profit{width:92px}.realized-col-rate{width:74px}.realized-col-qty{width:54px}.realized-col-strategy{width:86px}.realized-col-position{width:110px}.realized-col-policy{width:74px}.realized-profit-table .realized-stock-cell{text-align:left}.realized-profit-table .realized-center-cell,.realized-profit-table .realized-position-cell{text-align:center}.realized-profit-table .realized-number-cell{text-align:right;font-variant-numeric:tabular-nums}.realized-stock-cell .realized-stock-text{display:grid;gap:2px;max-width:100%;color:#0f172a;cursor:default;font-size:12px;line-height:inherit;text-align:left}.realized-stock-cell .realized-stock-text strong{display:block;overflow:hidden;max-width:100%;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.realized-stock-cell .realized-stock-text small{overflow:hidden;color:#64748b;font-size:11px;font-weight:600;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.realized-lot-text{display:inline-block;max-width:100%;overflow:hidden;color:#334155;cursor:default;font-size:12px;font-weight:500;line-height:inherit;text-overflow:ellipsis;white-space:nowrap}.realized-date-stack{display:grid;gap:2px;min-width:0;line-height:1.12}.realized-date-stack strong,.realized-date-stack small{overflow:hidden;color:#0f172a;font-size:11px;font-weight:700;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.realized-date-stack small{color:#64748b;font-variant-numeric:tabular-nums}.realized-meta-badge,.realized-policy-badge{display:inline-flex;max-width:100%;min-height:20px;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:#475569;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.realized-position-cell span{display:block;overflow:hidden;color:#475569;font-size:11px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.realized-profit-table-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #eef2f7;padding-top:10px;color:#475569;font-size:12px;font-weight:900}.realized-profit-summary-card{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.realized-profit-summary-card div{display:grid;gap:6px;border-right:1px solid #e4ebf5;padding:4px 14px}.realized-profit-summary-card div:last-child{border-right:0}.realized-profit-summary-card span{color:#64748b;font-size:12px;font-weight:900}.realized-profit-summary-card strong{color:#0f172a;font-size:18px;font-weight:900}.realized-profit-positive{color:var(--color-stock-up, #ef0000)!important}.realized-profit-negative{color:var(--color-stock-down, #165cff)!important}.realized-profit-zero{color:var(--color-success, #0b8a24)!important}.realized-profit-neutral{color:#334155!important}.realized-profit-note{margin:0;color:#64748b;font-size:12px;font-weight:800}.portfolio-text-action.inline{justify-self:start;margin-top:0}@media (max-width: 1440px){.mock-account-kpi-grid,.mock-account-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mock-account-detail-grid div:nth-child(6n){border-right:1px solid #e4ebf5}.mock-account-detail-grid div:nth-child(4n){border-right:0}.mock-account-detail-grid div:nth-last-child(-n+6){border-bottom:1px solid #e4ebf5}.mock-account-detail-grid div:nth-last-child(-n+4){border-bottom:0}}@media (max-width: 1200px){.portfolio-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 700px){.portfolio-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1280px){.portfolio-filter-grid,.portfolio-layout,.portfolio-content-column,.realized-profit-filter-card,.realized-profit-layout{grid-template-columns:1fr}.portfolio-head-actions{align-items:flex-end;flex-direction:column}.mock-account-card-header{align-items:flex-start}.mock-account-actions-compact{justify-content:flex-end}.mock-account-kpi-grid,.mock-account-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-account-detail-grid div:nth-child(4n){border-right:1px solid #e4ebf5}.mock-account-detail-grid div:nth-child(2n){border-right:0}.mock-account-detail-grid div:nth-last-child(-n+4){border-bottom:1px solid #e4ebf5}.mock-account-detail-grid div:nth-last-child(-n+2){border-bottom:0}.realized-profit-summary-card{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.mock-account-summary-card{padding:12px}.mock-account-card-header{flex-wrap:wrap}.mock-account-actions-compact{justify-content:flex-start}.mock-account-kpi-grid,.mock-account-detail-grid,.mock-account-form .manual-sell-estimate{grid-template-columns:1fr}.mock-account-detail-grid div,.mock-account-detail-grid div:nth-child(2n){border-right:0}.mock-account-detail-grid div:nth-last-child(-n+2){border-bottom:1px solid #e4ebf5}.mock-account-detail-grid div:last-child{border-bottom:0}}.order-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.order-history-head h2{margin:0 0 8px;color:#0f172a;font-size:28px;line-height:1.2}.order-history-head p,.order-history-head time{margin:0;color:#64748b;font-size:14px;font-weight:800}.order-history-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.order-history-filter-card,.order-history-main,.order-history-detail-card,.order-history-stat-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.order-history-filter-card{padding:12px}.order-history-filter-grid{grid-template-columns:150px 150px minmax(220px,1fr) 120px 130px 84px;align-items:end;gap:8px}.order-history-filter-grid label{display:grid;grid-template-rows:16px 36px;gap:5px;min-width:0}.order-history-filter-grid label>span{overflow:hidden;min-height:16px;color:#475569;font-size:12px;font-weight:900;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.order-history-filter-grid input,.order-history-filter-grid select,.order-history-search-button{width:100%;height:36px;min-height:36px}.order-history-search-button{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;line-height:1}.order-history-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}.order-history-main,.order-history-detail-card{min-width:0;padding:16px}.order-history-main{display:flex;height:540px;flex-direction:column}.order-history-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid #e4ebf5}.order-history-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;padding:0 16px 11px;font-size:13px;font-weight:900}.order-history-tabs button.active{border-color:#2563eb;color:#1d4ed8}.order-history-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.order-history-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed}.order-history-table.trades{min-width:1040px}.order-history-table th,.order-history-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap;padding:9px 10px;font-size:12px;font-weight:800;vertical-align:middle}.order-history-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475569;font-weight:900}.order-history-table tbody tr{cursor:pointer}.order-history-table.trades tbody tr{cursor:default}.order-history-table tbody tr.active,.order-history-table tbody tr:hover{background:#f8fafc}.order-history-table th:nth-child(1),.order-history-table td:nth-child(1){width:92px;text-align:center}.order-history-table th:nth-child(2),.order-history-table td:nth-child(2){width:132px}.order-history-table th:nth-child(3),.order-history-table td:nth-child(3),.order-history-table th:nth-child(4),.order-history-table td:nth-child(4){width:86px;text-align:center}.order-history-table th:nth-child(5),.order-history-table td:nth-child(5),.order-history-table th:nth-child(6),.order-history-table td:nth-child(6),.order-history-table th:nth-child(7),.order-history-table td:nth-child(7),.order-history-table th:nth-child(8),.order-history-table td:nth-child(8){width:88px;text-align:right}.order-history-table:not(.trades) th:nth-child(8),.order-history-table:not(.trades) td:nth-child(8){width:170px;text-align:left}.order-history-table th:nth-child(9),.order-history-table td:nth-child(9),.order-history-table th:nth-child(10),.order-history-table td:nth-child(10){width:84px;text-align:center}.order-history-status,.order-history-fill{display:inline-flex;min-width:64px;min-height:24px;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:900}.order-history-status.completed,.order-history-fill.completed{background:#dcfce7;color:#15803d}.order-history-status.pending,.order-history-fill.unfilled{background:#f1f5f9;color:#64748b}.order-history-fill.partial{background:#ffedd5;color:#ea580c}.order-history-status.failed,.order-history-fill.failed{background:#fee2e2;color:#dc2626}.order-history-link{border:0;background:transparent;color:#2563eb;padding:0;font:inherit;font-weight:900}.order-history-stock-text{display:grid;min-width:0;gap:2px;line-height:1.15}.order-history-stock-text strong,.order-history-stock-text small,.order-history-message-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-history-stock-text strong{color:#0f172a;font-size:12px;font-weight:800}.order-history-stock-text small{color:#64748b;font-size:10.5px;font-weight:700}.order-history-date-cell{text-align:center}.order-history-date-cell span,.order-history-date-cell small{display:block;line-height:1.15}.order-history-date-cell small{margin-top:2px;color:#64748b;font-size:10.5px}.order-history-message-cell{max-width:180px;color:#64748b}.order-history-pagination{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;padding-top:10px}.order-history-pagination button{display:inline-flex;min-width:28px;height:26px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:7px;background:#fff;color:#64748b;padding:0 8px;font-size:11px;font-weight:900}.order-history-pagination button.active,.order-history-pagination button:hover{border-color:#bfdbfe;background:#dbeafe;color:#1d4ed8}.order-history-detail-card{position:sticky;top:16px;height:540px;max-height:540px;display:flex;flex-direction:column;overflow-y:auto}.order-history-detail-card .trade-intent-tabs{flex:0 0 auto;flex-wrap:nowrap;gap:2px;margin:12px 0 10px}.order-history-detail-card .trade-intent-tabs button{flex:1 1 0;min-width:0;overflow:hidden;padding:0 6px 8px;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.order-history-detail-card .trade-intent-detail-grid{gap:8px}.order-history-detail-card .trade-intent-detail-grid div{min-width:0;gap:4px;padding-bottom:7px}.order-history-detail-card .trade-intent-detail-grid dt{font-size:11px}.order-history-detail-card .trade-intent-detail-grid dd{overflow:hidden;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.order-history-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.order-history-detail-actions button{min-height:36px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:900}.order-history-stats-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr 1fr;gap:14px}.order-history-stat-card{min-width:0;padding:16px}.order-history-stat-card h3{margin:0 0 14px;color:#0f172a;font-size:15px}.order-history-donut{width:132px;height:132px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;position:relative}.order-history-donut:after{content:"";position:absolute;top:24px;right:24px;bottom:24px;left:24px;border-radius:50%;background:#fff}.order-history-donut strong,.order-history-donut span{position:relative;z-index:1;display:block;text-align:center}.order-history-donut strong{color:#0f172a;font-size:24px;line-height:1}.order-history-donut span{color:#64748b;font-size:12px;font-weight:900}.order-history-stat-card ul,.order-history-stat-card dl{display:grid;gap:8px;margin:0;padding:0}.order-history-stat-card li,.order-history-stat-card dl div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;padding-bottom:8px;color:#475569;font-size:12px;font-weight:800;list-style:none}.order-history-stat-card strong,.order-history-stat-card dd{margin:0;color:#0f172a;font-weight:900}.order-history-trend-bars{height:170px;display:grid;grid-template-columns:repeat(auto-fit,minmax(32px,1fr));align-items:end;gap:10px;border-bottom:1px solid #dbe5f1;padding:12px 8px 0}.order-history-trend-bars div{height:100%;display:grid;align-items:end;gap:7px}.order-history-trend-bars span{display:block;min-height:8px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#2563eb,#93c5fd)}.order-history-trend-bars small{color:#64748b;font-size:11px;font-weight:800;text-align:center}@media (max-width: 1280px){.order-history-layout,.order-history-filter-grid,.order-history-stats-grid{grid-template-columns:1fr}.order-history-detail-card{position:static;max-height:none}}.auto-trading-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.auto-trading-center-head h2{margin:0 0 8px;color:#0f172a;font-size:28px;line-height:1.2}.auto-trading-center-head p,.auto-trading-center-head time{margin:0;color:#64748b;font-size:14px;font-weight:700}.auto-trading-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.auto-trading-kpi-card,.auto-trading-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 14px 34px #0f172a0b}.auto-trading-kpi-card{min-height:84px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 13px}.auto-trading-kpi-card.clickable{cursor:pointer}.auto-trading-kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 16px 38px #2563eb1f}.auto-trading-kpi-card.clickable:focus{outline:3px solid rgba(59,130,246,.25);outline-offset:2px}.auto-trading-kpi-card span,.auto-trading-kpi-card small{display:block;color:#64748b;font-size:11px;font-weight:800;line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis}.auto-trading-kpi-card strong{display:block;margin:6px 0 5px;color:#0f172a;font-size:clamp(18px,1.2vw,21px);line-height:1.05;max-width:100%;overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}.auto-trading-kpi-card .auto-kpi-sub-detail{margin-top:2px;color:#475569;font-size:10px}.auto-trading-kpi-card i{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:8px;font-style:normal;font-size:14px;font-weight:900}.auto-trading-kpi-card.green i{background:#dcfce7;color:#15803d}.auto-trading-kpi-card.blue i{background:#dbeafe;color:#1d4ed8}.auto-trading-kpi-card.red i{background:#fee2e2;color:#dc2626}.auto-trading-kpi-card.orange i{background:#ffedd5;color:#ea580c}.auto-trading-kpi-card.purple i{background:#f3e8ff;color:#7e22ce}.auto-trading-kpi-card.gray i{background:#f1f5f9;color:#475569}.auto-trading-main-grid,.auto-trading-situation-grid{display:grid;gap:12px;margin-bottom:12px}.auto-trading-main-grid{grid-template-columns:minmax(0,1fr) 320px}.auto-trading-situation-grid{grid-template-columns:minmax(360px,1.15fr) minmax(320px,1fr) minmax(260px,.72fr);align-items:stretch;grid-auto-rows:minmax(320px,auto)}.auto-trading-bottom-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(420px,1.3fr);gap:12px;align-items:stretch}.auto-trading-bottom-grid.compact{grid-template-columns:minmax(0,1fr)}.auto-trading-card{min-width:0;padding:14px}.auto-trading-situation-grid>.auto-trading-card{display:flex;flex-direction:column;min-height:320px}.auto-trading-bottom-grid>.auto-trading-card{min-height:148px;height:100%;display:flex;flex-direction:column}.auto-trading-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.auto-trading-card-head.compact{align-items:center}.auto-trading-card-head h3{margin:0 0 6px;color:#0f172a;font-size:16px;line-height:1.25;white-space:nowrap}.auto-trading-card-head p,.auto-trading-card-head span{margin:0;color:#64748b;font-size:12px;font-weight:700}.auto-card-head-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;flex:0 1 auto}.auto-card-head-actions span{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.auto-card-head-actions button{min-height:26px;border:1px solid #d5def2;border-radius:6px;background:#f8fafc;color:#1e3a5f;padding:0 9px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.auto-card-head-actions button:hover,.auto-card-head-actions button:focus{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.auto-trading-filter-bar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.auto-trading-filter-bar select{height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;font-size:13px;font-weight:800;padding:0 28px 0 10px}.auto-overfill-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;border:1px solid #dbe5f1;border-radius:6px;background:#fff;color:#0f172a;padding:0 10px;font-size:13px;font-weight:900}.auto-overfill-toggle input{width:15px;height:15px;accent-color:#f97316}.auto-trading-table-wrap,.auto-mini-table-wrap{overflow-x:auto}.auto-trading-table,.auto-mini-table{width:100%;border-collapse:collapse}.auto-trading-table{min-width:1220px}.auto-mini-table{min-width:520px}.auto-trading-table th,.auto-trading-table td,.auto-mini-table th,.auto-mini-table td{border-bottom:1px solid #e4ebf5;color:#0f172a;text-align:left;white-space:nowrap}.auto-trading-table th,.auto-mini-table th{background:#f8fafc;color:#475569;font-size:12px;font-weight:900}.auto-trading-table th,.auto-trading-table td{padding:12px 10px;font-size:13px;font-weight:800}.auto-mini-table th,.auto-mini-table td{padding:11px 8px;font-size:12px;font-weight:800}.auto-trading-table td strong{display:block;font-size:13px}.auto-trading-table td small{display:block;margin-top:3px;color:#64748b;font-size:11px}.auto-trend-badge,.auto-action-badge,.auto-side-badge,.auto-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:24px;border-radius:999px;padding:0 9px;font-size:11px;font-weight:900}.auto-trend-badge.trend-score-green{background:#dcfce7;color:#15803d}.auto-trend-badge.trend-score-blue{background:#dbeafe;color:#1d4ed8}.auto-trend-badge.trend-score-orange{background:#ffedd5;color:#ea580c}.auto-trend-badge.trend-score-red{background:#fee2e2;color:#dc2626}.auto-action-badge.buy,.auto-side-badge.buy{background:#dcfce7;color:#15803d}.auto-action-badge.sell,.auto-side-badge.sell{background:#fee2e2;color:#dc2626}.auto-action-badge.hold{background:#dbeafe;color:#1d4ed8}.auto-action-badge.wait,.auto-action-badge.exit{background:#f1f5f9;color:#475569}.auto-fill-cell{display:grid;grid-template-columns:72px minmax(70px,auto);align-items:center;gap:8px}.auto-fill-cell b{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.auto-fill-cell i{display:block;height:100%;border-radius:inherit}.auto-fill-cell.under i{background:#22c55e}.auto-fill-cell.balanced i{background:#3b82f6}.auto-fill-cell.over i{background:#f97316}.auto-fill-cell.danger i{background:#ef4444}.auto-fill-cell.abnormal span{color:#dc2626;font-weight:900}.auto-fill-warning{grid-column:1 / -1;display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px;color:#ea580c;font-size:11px;font-weight:900}.auto-fill-warning em{color:#64748b;font-style:normal;font-weight:800}.auto-fill-cell.abnormal .auto-fill-warning{color:#dc2626}.auto-position-state-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:center;flex:1 1 auto}.auto-position-state-row{display:grid;grid-template-rows:auto auto;place-items:center;gap:6px;border:1px solid #e4ebf5;border-radius:7px;background:#f8fafc;padding:10px 8px}.auto-position-state-row:last-child{border-bottom:1px solid #e4ebf5}.auto-position-state-row strong{color:#0f172a;font-size:20px;font-weight:900;line-height:1;text-align:center}.auto-position-state-row small{color:#64748b;font-size:12px;font-weight:800}.auto-attention-list,.auto-operation-event-list.compact{display:grid;gap:0}.auto-scroll-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.auto-attention-row{display:grid;grid-template-columns:minmax(116px,.9fr) auto minmax(160px,1.4fr);align-items:center;gap:10px;border-bottom:1px solid #e4ebf5;min-height:34px;padding:7px 0}.auto-attention-row:last-child{border-bottom:0}.auto-attention-row strong,.auto-operation-event-row strong{display:block;color:#0f172a;font-size:13px;font-weight:900}.auto-attention-row small,.auto-operation-event-row span{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:800}.auto-attention-row p{margin:0;color:#b45309;font-size:12px;font-weight:900;line-height:1.35}.auto-attention-row em{color:#475569;font-size:12px;font-style:normal;font-weight:800;text-align:right}.auto-operation-event-list.compact .auto-operation-event-row{grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid #e4ebf5;min-height:34px;padding:6px 0}.auto-operation-event-list.compact .auto-operation-event-row:first-child{padding-top:0}.auto-system-list{display:grid;gap:0}.auto-system-list div{display:grid;grid-template-columns:minmax(86px,1fr) auto 42px;align-items:center;gap:8px;border-bottom:1px solid #e4ebf5;min-height:32px;padding:7px 0;color:#0f172a;font-size:12px;font-weight:900}.auto-system-list div:last-child{border-bottom:0}.auto-system-list em,.auto-status-badge{border-radius:999px;padding:4px 7px;font-style:normal;font-size:10px;font-weight:900}.auto-system-list em.ok,.auto-status-badge.filled{background:#dcfce7;color:#15803d}.auto-system-list em.checking{background:#fef3c7;color:#b45309}.auto-system-list em.error,.auto-status-badge.failed{background:#fee2e2;color:#dc2626}.auto-status-badge.created{background:#ffedd5;color:#ea580c}.auto-status-badge.skipped{background:#f1f5f9;color:#475569}.auto-system-list time{color:#64748b;font-size:11px;text-align:right}.auto-system-list small{grid-column:1 / -1;color:#64748b;font-size:11px;font-weight:800}.auto-worker-log-list{display:grid;gap:12px;max-height:236px;overflow-y:auto}.auto-worker-log-list div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;color:#0f172a;font-size:13px;font-weight:800}.auto-worker-log-list time{color:#64748b}.auto-operation-budget-line{margin-top:4px;color:#475569;font-size:11px;font-weight:900;line-height:1.35}.auto-today-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1 1 auto}.auto-today-summary div{display:grid;gap:5px;align-content:center;color:#334155;border:1px solid #e4ebf5;border-radius:7px;background:#f8fafc;min-height:48px;padding:8px 9px;font-size:12px;font-weight:800}.auto-today-summary span{color:#64748b;font-size:11px;font-weight:900;line-height:1.2}.auto-today-summary strong{color:#0f172a;font-size:13px;font-weight:900;line-height:1.2;text-align:left}.auto-operation-event-summary-card .auto-trading-card-head{min-width:0}.auto-operation-event-summary-card .auto-trading-card-head h3{flex:0 0 auto;min-width:max-content;white-space:nowrap}.auto-operation-event-summary-card .auto-trading-card-head span,.today-summary-card .auto-trading-card-head span{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.auto-trading-card .empty-card-message{min-height:34px;display:grid;place-items:center;margin:0;color:#64748b;font-size:12px;font-weight:800}@media (max-width: 1440px){.auto-trading-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.auto-trading-situation-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.75fr)}.auto-trading-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px){.auto-trading-main-grid,.auto-trading-situation-grid{grid-template-columns:minmax(0,1fr)}.auto-trading-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auto-trading-situation-grid>.auto-trading-card{height:auto;min-height:0}.auto-scroll-body{max-height:220px}}@media (max-width: 720px){.auto-trading-center-head,.auto-trading-card-head{flex-direction:column}.auto-trading-kpi-grid,.auto-trading-situation-grid,.auto-trading-bottom-grid{grid-template-columns:minmax(0,1fr)}.auto-attention-row{grid-template-columns:minmax(0,1fr);align-items:start}.auto-attention-row em{text-align:left}.auto-trading-filter-bar{width:100%;justify-content:stretch}.auto-trading-filter-bar select{width:100%}.auto-position-state-list,.auto-today-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.auto-card-head-actions{width:100%;justify-content:space-between}}.trade-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.trade-group-tabs{display:flex;flex-wrap:wrap;gap:22px}.trade-group-tabs button,.add-group-button{height:43px;border-radius:6px;font-size:18px;font-weight:900}.trade-group-tabs button{min-width:82px;border:1px solid #d6e0ee;background:#fff;color:#111827;padding:0 24px}.trade-group-tabs button.active,.add-group-button{border:0;background:#1057e8;color:#fff;box-shadow:0 12px 28px #1057e833}.add-group-button{min-width:128px;padding:0 20px}.trade-list-table-card,.trade-summary-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09}.trade-list-table-card{overflow-x:auto}.trade-list-table{width:100%;min-width:980px;border-collapse:collapse}.trade-list-table th,.trade-list-table td{border-bottom:1px solid #e4ebf5;padding:19px 21px;color:#111827;text-align:left;font-size:19px;white-space:nowrap}.trade-list-table th{background:#fbfcfe;font-weight:900}.trade-list-table tr:last-child td{border-bottom:0}.status-active{color:#07822d;font-weight:900}.status-waiting{color:#111827;font-weight:800}.auto-trade-toggle{position:relative;width:46px;height:26px;border:0;border-radius:999px;background:#aeb7c8;padding:3px;transition:background .16s ease}.auto-trade-toggle span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0f172a3d;transition:transform .16s ease}.auto-trade-toggle.active{background:#07936d}.auto-trade-toggle.active span{transform:translate(20px)}.trade-list-actions{display:flex;align-items:center;gap:12px}.trade-list-actions button{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:#111827;font-size:22px}.trade-list-actions .mock-buy-action{width:auto;min-width:48px;height:30px;border:1px solid #ef4444;border-radius:6px;background:#fff5f5;color:#b91c1c;font-size:13px;font-weight:700;padding:0 10px}.strategy-override-chip{display:inline-flex;align-items:center;justify-content:center;min-width:58px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:800;padding:5px 9px;white-space:nowrap}.strategy-override-chip.active{background:#ecfdf3;color:#047857}.mock-buy-modal{width:min(100%,560px);max-height:calc(100vh - 48px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:24px}.mock-buy-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.mock-buy-modal-head h2{margin:0;font-size:22px}.mock-buy-modal-head p{margin:6px 0 0;color:var(--muted);font-size:14px}.mock-buy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mock-buy-form label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:700}.mock-buy-form input,.mock-buy-form textarea{width:100%}.mock-buy-memo,.mock-buy-form .modal-actions{grid-column:1 / -1}.lot-sell-modal{width:min(100%,600px);max-height:calc(100vh - 48px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:24px}.lot-sell-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.lot-sell-modal-head h2{margin:0;font-size:22px}.lot-sell-modal-head p{margin:6px 0 0;color:var(--muted);font-size:14px}.lot-sell-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lot-sell-form label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:700}.lot-sell-form input,.lot-sell-form textarea{width:100%}.lot-sell-memo,.lot-sell-form .modal-actions{grid-column:1 / -1}.trade-list-note{margin:28px 0 34px;color:#66748a;font-size:17px}.trade-list-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.trade-summary-card{min-height:218px;padding:20px}.trade-summary-card h2{margin:0 0 22px;color:#111827;font-size:20px}.donut-summary{display:grid;grid-template-columns:126px minmax(0,1fr);align-items:center;gap:20px}.donut-chart{width:118px;height:118px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#0aa35b 0,#0aa35b 33%,#125bed 33%,#125bed 66%,#7c3aed 66%,#7c3aed 83%,#a8b0c1 83%,#a8b0c1)}.donut-chart span{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#111827;font-size:16px;line-height:1.35;text-align:center}.donut-chart strong{font-size:19px}.summary-legend,.simple-summary{display:grid;gap:13px}.summary-legend p,.simple-summary p{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;border-bottom:1px solid #e4ebf5;padding-bottom:10px;color:#111827;font-size:17px}.summary-legend p:last-child,.simple-summary p:last-child{border-bottom:0}.summary-legend i,.simple-summary i{width:11px;height:11px;flex:0 0 auto;border-radius:50%}.summary-legend p{justify-content:flex-start}.summary-legend strong{margin-left:auto}.risk-card{display:grid;align-content:start;gap:16px}.risk-card button{min-height:54px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:1px solid #cfe0fb;border-radius:6px;background:#f8fbff;color:#111827;padding:0 16px;text-align:left;font-size:17px}.risk-card button:nth-of-type(2){border-color:#f8c898;background:#fff9f1}.risk-card button strong{color:#1057e8}.risk-card button:nth-of-type(2) strong{color:#f97316}.strategy-page{padding:28px 34px}.strategy-toolbar{display:grid;grid-template-columns:minmax(220px,265px) minmax(220px,270px) minmax(320px,1fr) 118px;align-items:end;gap:88px;margin-bottom:26px}.strategy-toolbar label{display:grid;gap:10px;margin:0}.strategy-toolbar label span{color:#111827;font-size:17px;font-weight:900}.strategy-toolbar select,.strategy-toolbar input,.condition-row input,.condition-row select,.automation-row select{height:48px;border:1px solid #d3dfef;border-radius:6px;background:#fff;color:#111827;padding:0 16px;font-size:20px}.strategy-save-button{height:48px;border:0;border-radius:6px;background:#1057e8;color:#fff;font-size:20px;font-weight:900;box-shadow:0 12px 28px #1057e833}.strategy-grid{display:grid;grid-template-columns:.95fr 1.14fr 1.02fr;gap:16px}.strategy-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09;padding:24px 28px}.strategy-card h2{margin:0 0 32px;color:#111827;font-size:26px;line-height:1.2}.strategy-description h3{margin:0 0 22px;color:#111827;font-size:27px}.strategy-description p{max-width:330px;margin:0;color:#111827;font-size:20px;line-height:1.6}.strategy-mini-chart{margin-top:54px}.strategy-mini-chart svg{width:100%;height:190px}.strategy-mini-chart polyline{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.strategy-mini-chart .short{stroke:#1e73dc}.strategy-mini-chart .middle{stroke:#ff7a00}.strategy-mini-chart .long{stroke:#078f5b}.strategy-mini-chart div{display:grid;justify-content:end;gap:12px;margin-top:6px;color:#111827;font-size:19px}.strategy-mini-chart span{display:flex;align-items:center;gap:12px}.strategy-mini-chart i{width:32px;height:2px;display:inline-block}.strategy-mini-chart i.short{background:#1e73dc}.strategy-mini-chart i.middle{background:#ff7a00}.strategy-mini-chart i.long{background:#078f5b}.condition-card,.automation-card{display:grid;align-content:start}.condition-row,.automation-row{display:grid;grid-template-columns:1fr 112px 64px;align-items:center;gap:14px;margin-bottom:16px;color:#111827;font-size:21px}.condition-row select{grid-column:2 / 4;width:194px}.condition-row em{font-style:normal}.automation-row{grid-template-columns:1fr auto;min-height:48px;margin-bottom:25px}.automation-row select{width:136px;font-size:19px}.strategy-bottom-grid{display:grid;grid-template-columns:.86fr 1.64fr;gap:16px;margin-top:18px}.status-card p{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4ebf5;margin:0;padding:16px 0;color:#111827;font-size:20px}.status-card p:last-child{border-bottom:0}.history-card{overflow-x:auto}.history-card table{width:100%;border-collapse:collapse}.history-card th,.history-card td{border-bottom:1px solid #e4ebf5;padding:15px 14px;color:#111827;text-align:left;font-size:19px}.history-card th{background:#fbfcfe;font-weight:900}.realtime-page{position:relative;padding:26px 28px 28px}.realtime-header-tools{position:absolute;top:-62px;right:28px;display:flex;align-items:center;gap:28px;color:#111827;font-size:17px}.realtime-header-tools strong{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;background:#07936d;color:#fff;padding:0 14px;margin-left:6px}.realtime-header-tools button{width:34px;height:34px;border:0;background:transparent;color:#31405a;font-size:25px}.realtime-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-bottom:26px}.realtime-metrics article,.realtime-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09}.realtime-metrics article{min-height:120px;display:grid;place-items:center;align-content:center;gap:8px;color:#111827}.realtime-metrics span{font-size:19px;font-weight:900}.realtime-metrics strong{display:inline-block;font-size:50px;line-height:1}.realtime-metrics em{margin-left:8px;font-size:20px;font-style:normal}.realtime-orange{color:#f97316!important}.realtime-muted{color:#58627a!important}.realtime-card{padding:18px 16px 14px;margin-bottom:16px}.realtime-card h2{margin:0 0 14px;color:#111827;font-size:22px}.realtime-table-wrap{overflow-x:auto}.realtime-table{width:100%;min-width:980px;border-collapse:collapse}.realtime-table th,.realtime-table td{border-bottom:1px solid #e4ebf5;padding:14px 13px;color:#111827;text-align:left;font-size:18px;white-space:nowrap}.realtime-table th{background:#fbfcfe;font-weight:900}.condition-state{display:inline-flex;align-items:center;gap:10px;font-weight:900}.condition-state.matched{color:#079246}.condition-state.warning{color:#ff6b00}.condition-state.idle{color:#111827}.condition-state.matched:first-letter{color:#079246}.realtime-status-active{color:#07822d!important;font-weight:900}.realtime-status-warning{color:#ff6b00!important;font-weight:900}.realtime-status-waiting{color:#64748b!important;font-weight:800}.log-card{margin-top:14px}.log-table{min-width:900px}.realtime-note{margin:18px 0 0;color:#66748a;font-size:17px}.signal-page{display:grid;grid-template-columns:minmax(420px,.92fr) minmax(520px,1.08fr);gap:20px;padding:28px 34px}.signal-list-panel,.signal-detail-panel{min-height:740px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09;padding:28px 26px}.signal-list-panel h2,.signal-detail-panel h2{margin:0 0 20px;color:#111827;font-size:29px;line-height:1.2}.signal-card-list{display:grid;gap:18px}.signal-item-card{position:relative;min-height:172px;border:1px solid #b7ead0;border-radius:7px;background:linear-gradient(90deg,#f0fff7eb,#fff);padding:16px 18px;color:#111827;text-align:left}.signal-item-card.sell{border-color:#ffc7c7;background:linear-gradient(90deg,#fff3f3f0,#fff)}.signal-item-card.active{box-shadow:inset 4px 0 #0a8f4f}.signal-item-card.active.sell{box-shadow:inset 4px 0 #df111c}.signal-item-head{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:16px}.signal-item-head strong{min-height:48px;display:inline-grid;place-items:center;border-radius:5px;color:#fff;font-size:27px;line-height:1}.signal-item-head strong.buy,.signal-detail-head strong.buy{background:linear-gradient(135deg,#0aa05b,#087d3c)}.signal-item-head strong.sell,.signal-detail-head strong.sell{background:linear-gradient(135deg,#ef1f2f,#c80f1d)}.signal-item-head span{font-size:22px;font-weight:900}.signal-item-head time{color:#1f2a44;font-size:18px}.signal-item-card dl{display:grid;gap:13px;margin:20px 0 0}.signal-item-card dl div{display:grid;grid-template-columns:90px 1fr;gap:16px;font-size:20px}.signal-item-card dt{color:#111827}.signal-item-card dd{margin:0;font-weight:700}.signal-item-card em{position:absolute;right:18px;bottom:22px;min-width:72px;min-height:44px;display:inline-grid;place-items:center;border:1px solid #a6e2c1;border-radius:5px;background:#effaf4;color:#087d3c;font-size:22px;font-style:normal;font-weight:900}.signal-item-card em.order-status-badge,.signal-detail-head em.order-status-badge,.order-status-badge{min-height:34px;display:inline-grid;place-items:center;border-radius:5px;padding:0 12px;font-size:16px;font-style:normal;font-weight:900;white-space:nowrap}.signal-item-card em.order-status-badge{min-width:118px;min-height:38px;font-size:18px}.signal-detail-head em.order-status-badge{min-width:132px;min-height:42px;font-size:18px}.order-status-badge.validated{border:1px solid #8ed7ad;background:#eefaf3;color:#087d3c}.order-status-badge.requested{border:1px solid #9ec2ff;background:#eef5ff;color:#1057e8}.order-status-badge.rejected{border:1px solid #ffb8b8;background:#fff0f0;color:#df111c}.order-status-badge.pending{border:1px solid #c9d4e6;background:#f7f9fc;color:#1f2a44}.signal-more-button{display:block;margin:28px auto 0;border:0;background:transparent;color:#1057e8;font-size:21px;font-weight:900}.signal-detail-content{padding:18px 8px 0}.signal-detail-head{display:grid;grid-template-columns:88px minmax(0,1fr) 82px;align-items:center;gap:18px;margin-bottom:38px}.signal-detail-head strong{background:transparent!important;color:#0a8f4f;font-size:45px;line-height:1}.signal-detail-head strong.sell{color:#df111c}.signal-detail-head span{font-size:25px;font-weight:900}.signal-detail-head em{min-height:48px;display:grid;place-items:center;border:1px solid #a6e2c1;border-radius:5px;background:#effaf4;color:#087d3c;font-size:23px;font-style:normal;font-weight:900}.signal-detail-grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:23px 28px;color:#111827;font-size:23px}.signal-detail-grid>span{font-weight:700}.signal-detail-grid strong{font-weight:700}.confidence-cell{display:grid;grid-template-columns:96px minmax(0,260px);align-items:center;gap:22px}.confidence-cell i{height:15px;border-radius:999px;background:#d7deea;overflow:hidden}.confidence-cell b{height:100%;display:block;border-radius:inherit;background:#0a8f4f}.condition-summary{margin-top:34px}.condition-summary h3{margin:0 0 24px;color:#111827;font-size:24px}.condition-summary ul{display:grid;gap:20px;margin:0;padding-left:28px;color:#111827;font-size:24px}.condition-summary .order-guard-summary{padding-left:0;list-style:none;font-size:20px}.signal-actions{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:68px}.execute-order-button,.continue-watch-button{height:68px;border-radius:7px;font-size:26px;font-weight:900}.execute-order-button{border:0;background:#1057e8;color:#fff;box-shadow:0 16px 32px #1057e838}.continue-watch-button{border:1px solid #d6e0ee;background:#fff;color:#111827}.order-execution-page{display:grid;grid-template-columns:.95fr .8fr 1.1fr 1.35fr;gap:14px;padding:28px 34px}.order-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09;padding:22px}.order-panel h2{margin:0 0 28px;color:#111827;font-size:24px;line-height:1.2}.order-info-panel,.order-step-panel,.order-status-panel{min-height:735px}.order-info-panel dl,.order-status-panel dl{display:grid;gap:27px;margin:0}.order-info-panel dl div,.order-status-panel dl div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:18px;color:#111827;font-size:19px}.order-info-panel dt,.order-status-panel dt{color:#111827}.order-info-panel dd,.order-status-panel dd{margin:0;font-weight:700;text-align:right}.order-steps{position:relative;display:grid;gap:54px;padding:22px 0 0 8px}.order-steps:before{content:"";position:absolute;top:54px;bottom:70px;left:28px;width:1px;background:#c9d4e6}.order-step{position:relative;display:grid;grid-template-columns:42px 1fr;gap:18px;align-items:center}.order-step>span{z-index:1;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#a8b0c1;color:#fff;font-weight:900}.order-step.done>span{background:#0a8f4f}.order-step.current>span{background:#1057e8}.order-step strong{display:block;color:#111827;font-size:21px}.order-step em{display:block;margin-top:10px;color:#1f2a44;font-size:18px;font-style:normal}.order-validation-panel{display:grid;grid-template-rows:auto auto auto 1fr;gap:18px}.validation-list{display:grid;gap:20px}.validation-list p{display:flex;align-items:center;justify-content:space-between;margin:0;color:#111827;font-size:19px}.validation-list span{color:#111827}.validation-list strong{color:#07822d}.validation-pass-box{min-height:98px;display:grid;place-items:center;align-content:center;gap:8px;border:1px solid #a6e2c1;border-radius:7px;background:#f2fbf6;color:#07822d}.validation-pass-box strong{font-size:26px}.validation-pass-box span{font-size:19px;font-weight:800}.order-memo-box h2{margin-top:18px;margin-bottom:14px}.order-memo-box{position:relative}.order-memo-box textarea{width:100%;min-height:190px;resize:vertical;border:1px solid #d3dfef;border-radius:7px;padding:18px;color:#111827;font:inherit;font-size:18px}.order-memo-box small{position:absolute;right:18px;bottom:16px;color:#1f2a44;font-size:18px}.order-log-box{margin-top:32px;border:1px solid #dbe5f1;border-radius:7px;padding:18px 16px}.order-log-box h3{margin:0 0 20px;color:#111827;font-size:20px}.order-log-box p{display:grid;grid-template-columns:82px 1fr;gap:16px;margin:0 0 18px;color:#111827;font-size:17px}.order-execution-actions{grid-column:2 / 4;display:grid;grid-template-columns:1fr .95fr;gap:24px;margin-top:32px}.order-execution-page>.message{grid-column:1 / -1;text-align:center}.order-management-page{display:grid;grid-template-columns:minmax(620px,.95fr) minmax(540px,.72fr);gap:18px;padding:28px 34px}.mock-mode-banner{grid-column:1 / -1;min-height:58px;display:flex;align-items:center;gap:16px;border:1px solid #9ec2ff;border-radius:7px;background:#eef5ff;padding:14px 18px;color:#111827}.mock-mode-banner strong{color:#1057e8;font-size:20px}.mock-mode-banner span{font-size:17px;font-weight:700}.order-management-panel,.order-request-panel{min-height:720px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09;padding:22px}.order-management-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.order-management-head h2,.order-request-panel h2{margin:0;color:#111827;font-size:24px}.order-filter-bar{display:flex;gap:10px}.order-filter-bar select,.order-filter-bar input{height:38px;border:1px solid #cfd9ea;border-radius:6px;padding:0 10px;color:#111827;font:inherit;font-size:16px}.order-filter-bar input{width:96px}.order-filter-bar button:not(.icon-button){height:38px;border:0;border-radius:6px;background:#1057e8;color:#fff;padding:0 14px;font-weight:900}.order-filter-bar .order-search-button{width:38px;height:38px;flex:0 0 38px;border-radius:6px}.order-table-wrap{overflow-x:auto}.order-management-table{width:100%;border-collapse:collapse;color:#111827;font-size:16px}.order-management-table th,.order-management-table td{border-bottom:1px solid #e3ebf6;padding:12px 10px;text-align:left;vertical-align:top}.order-management-table th{color:#66748a;font-size:15px;font-weight:900}.order-management-table tbody tr{cursor:pointer}.order-management-table tbody tr.active{background:#f4f8ff}.order-management-table td strong{display:block;font-size:16px}.order-management-table td small{display:block;margin-top:4px;color:#66748a;font-size:14px}.mock-badge{display:inline-grid;min-height:28px;place-items:center;border:1px solid #9ec2ff;border-radius:5px;background:#eef5ff;color:#1057e8;padding:0 9px;font-size:14px;font-weight:900}.order-request-panel dl{display:grid;gap:12px;margin:18px 0}.order-request-panel dl div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;color:#111827;font-size:16px}.order-request-panel dt{color:#66748a;font-weight:800}.order-request-panel dd{margin:0;font-weight:800;min-width:0;overflow:visible;white-space:nowrap}.order-payload-summary{display:grid;gap:14px}.order-guard-card,.order-summary-section{border:1px solid #dbe5f1;border-radius:8px;background:#f8fbff;padding:14px}.order-guard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.order-guard-card-head strong{display:block;color:#111827;font-size:18px;font-weight:900}.order-guard-card-head span{display:block;margin-top:4px;color:#66748a;font-size:14px;font-weight:800}.order-payload-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.order-payload-badge{display:inline-grid;min-height:26px;place-items:center;border-radius:999px;padding:0 10px;font-size:12px;font-weight:900}.order-payload-badge.pass{background:#e8f7ee;color:#067647}.order-payload-badge.fail{background:#ffe9e9;color:#c91818}.order-payload-badge.warning{background:#fff4df;color:#b86b00}.order-payload-badge.test{background:#e8f1ff;color:#1057e8}.order-summary-grid,.order-summary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.order-summary-grid .wide{grid-column:1 / -1}.order-summary-grid div,.order-summary-list div{min-width:0;border:1px solid #e3ebf6;border-radius:7px;background:#fff;padding:10px}.order-summary-grid span,.order-summary-list span{display:block;color:#66748a;font-size:13px;font-weight:800}.order-summary-grid strong,.order-summary-list strong{display:block;margin-top:5px;color:#111827;font-size:15px;font-weight:900;word-break:keep-all}.order-summary-section h3{margin:0 0 10px;color:#111827;font-size:16px;font-weight:900}.raw-json-details{border:1px solid #dbe5f1;border-radius:8px;background:#fff}.raw-json-details summary{cursor:pointer;padding:12px 14px;color:#334155;font-size:14px;font-weight:900}.order-request-panel pre{max-height:500px;overflow:auto;border:1px solid #dbe5f1;border-radius:7px;background:#f7f9fc;padding:16px;color:#111827;font-size:15px;line-height:1.55;white-space:pre-wrap}.raw-json-details pre{margin:0;border-right:0;border-bottom:0;border-left:0;border-radius:0 0 8px 8px}.empty-table-cell{color:#66748a;text-align:center!important}.holdings-page{padding:26px 30px}.holdings-tabs{display:inline-grid;grid-template-columns:150px 150px;border:1px solid #d6e0ee;border-radius:7px;overflow:hidden;margin-bottom:22px}.holdings-tabs button{height:52px;border:0;background:#fff;color:#111827;font-size:20px;font-weight:900}.holdings-tabs button.active{background:#1057e8;color:#fff}.holdings-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09;padding:24px 20px;margin-bottom:22px}.holdings-panel h2{margin:0 0 18px;color:#111827;font-size:24px}.account-sync-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fbfcfe;padding:18px;margin-bottom:22px}.account-sync-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.account-sync-head h2{margin-bottom:6px}.account-sync-head p,.sync-message,.sync-warning-text{margin:0;color:#66748a;font-size:15px;font-weight:700}.account-sync-actions{display:flex;align-items:center;gap:10px}.account-sync-actions .primary-button{min-width:170px;height:42px;font-size:15px}.account-sync-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.account-sync-grid div{border:1px solid #e4ebf5;border-radius:7px;background:#fff;padding:14px}.account-sync-grid span{display:block;color:#66748a;font-size:13px;font-weight:800;margin-bottom:8px}.account-sync-grid strong{color:#111827;font-size:18px;font-weight:900}.sync-badge{display:inline-flex;align-items:center;justify-content:center;min-width:66px;min-height:28px;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:900}.sync-badge.ok{background:#e8f8ef;color:#067a34}.sync-badge.warning{background:#fee2e2;color:#b42318}.sync-message{margin-top:12px;color:#1057e8}.sync-warning-text{margin-top:12px;color:#b42318}.holdings-table-wrap{overflow-x:auto;border:1px solid #dbe5f1;border-radius:7px}.holdings-table{width:100%;min-width:980px;border-collapse:collapse}.holdings-table th,.holdings-table td{border-bottom:1px solid #e4ebf5;padding:20px;color:#111827;text-align:left;font-size:20px;white-space:nowrap}.holdings-table th{background:#fbfcfe;font-weight:900}.holdings-table tr:last-child td{border-bottom:0}.holdings-table tr.selected td{background:#eef6ff}.holdings-lot-detail{margin-top:18px}.holdings-lot-detail .asset-buy-history-head{padding:0 0 12px}.holdings-summary-bar{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:24px;border:1px solid #dbe5f1;border-radius:7px;padding:30px 70px;color:#111827;font-size:22px;font-weight:900}.holdings-summary-bar span{display:flex;align-items:center;justify-content:center;gap:44px}.holdings-summary-bar strong{color:#07822d;font-size:26px}.report-page{position:relative;padding:26px 28px 28px}.report-date-picker{position:absolute;top:-60px;right:28px;min-width:280px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid #d6e0ee;border-radius:6px;background:#fff;color:#1f2a44;font-size:17px;font-weight:800}.report-metrics{display:grid;grid-template-columns:1.2fr 1.15fr 1.08fr 1fr 1.08fr;gap:20px;margin-bottom:22px}.report-metrics article,.report-card{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 16px 42px #0f172a09}.report-metrics article{min-height:130px;display:grid;align-content:center;gap:13px;padding:18px 30px;color:#111827}.report-metrics span{font-size:19px;font-weight:900}.report-metrics strong{font-size:32px;line-height:1.1}.report-metrics em{font-size:19px;font-style:normal}.report-metrics small{font-size:21px;font-weight:900}.report-grid{display:grid;grid-template-columns:1.25fr 1.25fr 1.12fr;gap:20px}.report-card{min-height:330px;padding:22px 24px}.report-card h2{margin:0 0 18px;color:#111827;font-size:22px}.report-line-chart svg{width:100%;height:230px}.report-line-chart line{stroke:#e2e8f0;stroke-width:1}.report-line-chart polyline{fill:none;stroke:#1057e8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.report-line-chart circle{fill:#fff;stroke:#1057e8;stroke-width:3}.report-line-chart div{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));color:#31405a;font-size:16px;text-align:center}.asset-mix{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:26px}.asset-donut{width:220px;height:220px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#1057e8 0,#1057e8 40.2%,#0a9b70 40.2%,#0a9b70 86%,#f59e0b 86%,#f59e0b 93.5%,#6d4bd6 93.5%,#6d4bd6)}.asset-donut span{width:124px;height:124px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#111827;font-size:18px;font-weight:900;text-align:center}.asset-donut strong{font-size:18px}.asset-mix-legend{display:grid;gap:22px}.asset-mix-legend p{display:grid;grid-template-columns:14px 1fr auto;gap:12px;margin:0;color:#1f2a44;font-size:18px}.asset-mix-legend i{width:14px;height:14px;border-radius:50%}.asset-mix-legend .cash{background:#1057e8}.asset-mix-legend .stock{background:#0a9b70}.asset-mix-legend .etf{background:#f59e0b}.asset-mix-legend .etc{background:#6d4bd6}.report-table{width:100%;border-collapse:collapse}.report-table td{border-bottom:1px solid #e4ebf5;padding:13px 0;color:#111827;font-size:19px;font-weight:800}.report-table td:nth-child(2),.report-table td:nth-child(3){text-align:right}.download-card{display:grid;align-content:start;gap:17px}.download-card button{height:64px;border:1px solid #c7dbff;border-radius:7px;background:#f8fbff;color:#1057e8;font-size:23px;font-weight:900;text-align:left;padding:0 28px}.download-card button.excel{border-color:#bde4d5;background:#f7fffb;color:#07822d}.report-note{margin:24px 0 0;color:#66748a;font-size:17px}.performance-analysis-page{background:#f8fafc;display:grid;gap:14px;padding:18px var(--admin-page-padding-x) 22px}.performance-analysis-page .performance-kpi-grid{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:12px}.performance-analysis-page .performance-kpi-card,.performance-analysis-page .performance-filter-card,.performance-analysis-page .performance-card,.performance-analysis-page .performance-footnote{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 6px 18px #0f172a0a}.performance-analysis-page .performance-kpi-card{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 9px;min-height:108px;align-content:start;padding:14px 16px;overflow:hidden}.performance-analysis-page .performance-kpi-head{display:flex;align-items:center;grid-column:span 2;gap:8px}.performance-analysis-page .performance-kpi-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:999px;font-size:17px;font-weight:900}.performance-analysis-page .performance-kpi-card small{color:#64748b;font-size:12px;font-weight:900}.performance-analysis-page .performance-kpi-card strong{color:#0f172a;font-size:23px;font-weight:950;line-height:1.15}.performance-analysis-page .performance-kpi-card em{color:#64748b;grid-column:span 2;margin-top:-2px;font-size:11px;font-style:normal;font-weight:800}.performance-analysis-page .performance-sparkline{width:100%;grid-column:span 2;height:34px;margin-top:3px}.performance-analysis-page .performance-sparkline polyline{fill:none;stroke:currentColor;stroke-width:3}.performance-analysis-page .performance-kpi-card.green .performance-kpi-icon,.performance-analysis-page .performance-kpi-card.tone-green .performance-kpi-icon{background:#dcfce7;color:#16a34a}.performance-analysis-page .performance-kpi-card.green .performance-sparkline,.performance-analysis-page .performance-kpi-card.tone-green .performance-sparkline,.performance-analysis-page .performance-kpi-card.green strong,.performance-analysis-page .performance-kpi-card.tone-green strong{color:#16a34a}.performance-analysis-page .performance-kpi-card.blue .performance-kpi-icon,.performance-analysis-page .performance-kpi-card.tone-blue .performance-kpi-icon{background:#dbeafe;color:#2563eb}.performance-analysis-page .performance-kpi-card.blue .performance-sparkline,.performance-analysis-page .performance-kpi-card.tone-blue .performance-sparkline,.performance-analysis-page .performance-kpi-card.blue strong,.performance-analysis-page .performance-kpi-card.tone-blue strong{color:#2563eb}.performance-analysis-page .performance-kpi-card.purple .performance-kpi-icon,.performance-analysis-page .performance-kpi-card.tone-purple .performance-kpi-icon{background:#f3e8ff;color:#a855f7}.performance-analysis-page .performance-kpi-card.purple .performance-sparkline,.performance-analysis-page .performance-kpi-card.tone-purple .performance-sparkline,.performance-analysis-page .performance-kpi-card.purple strong,.performance-analysis-page .performance-kpi-card.tone-purple strong{color:#a855f7}.performance-analysis-page .performance-kpi-card.orange .performance-kpi-icon,.performance-analysis-page .performance-kpi-card.tone-orange .performance-kpi-icon{background:#ffedd5;color:#f97316}.performance-analysis-page .performance-kpi-card.orange .performance-sparkline,.performance-analysis-page .performance-kpi-card.tone-orange .performance-sparkline,.performance-analysis-page .performance-kpi-card.orange strong,.performance-analysis-page .performance-kpi-card.tone-orange strong{color:#f97316}.performance-analysis-page .performance-kpi-card.red .performance-kpi-icon,.performance-analysis-page .performance-kpi-card.tone-red .performance-kpi-icon{background:#fee2e2;color:#ef4444}.performance-analysis-page .performance-kpi-card.red .performance-sparkline,.performance-analysis-page .performance-kpi-card.tone-red .performance-sparkline,.performance-analysis-page .performance-kpi-card.red strong,.performance-analysis-page .performance-kpi-card.tone-red strong{color:#ef4444}.performance-analysis-page .positive{color:#16a34a}.performance-analysis-page .negative{color:#dc2626}.performance-analysis-page .performance-filter-card{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px}.performance-analysis-page .performance-period-filter{display:grid;grid-template-columns:minmax(130px,1fr) minmax(220px,2fr);gap:0 10px;flex:1 1 420px}.performance-analysis-page .performance-filter-card label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:800}.performance-analysis-page .performance-date-range{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr);gap:10px;flex:1 1 340px}.performance-analysis-page .performance-filter-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.performance-analysis-page .performance-period-buttons{display:grid;grid-template-columns:repeat(5,minmax(52px,1fr));align-self:end;gap:8px}.performance-analysis-page .performance-period-buttons button{min-height:36px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#334155;padding:0 10px;font-size:12px;font-weight:800}.performance-analysis-page .performance-period-buttons button.active{border-color:#2563eb;background:#2563eb;color:#fff}.performance-analysis-page .performance-filter-card .date-pick{white-space:nowrap}.performance-analysis-page .performance-analysis-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.performance-analysis-page .performance-card{min-width:0;padding:14px}.performance-analysis-page .performance-card h2{margin:0 0 12px;color:#0f172a;font-size:16px;font-weight:900}.performance-analysis-page .performance-card h3{margin:0 0 8px;color:#334155;font-size:13px;font-weight:900}.performance-analysis-page .performance-trend-card,.performance-analysis-page .performance-strategy-card,.performance-analysis-page .performance-stock-card,.performance-analysis-page .performance-position-card{grid-column:span 6}.performance-analysis-page .performance-lot-card,.performance-analysis-page .performance-heatmap-card,.performance-analysis-page .performance-insight-card{grid-column:span 4}.performance-analysis-page .performance-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.performance-analysis-page .performance-legend{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;color:#64748b;font-size:11px;font-weight:800}.performance-analysis-page .performance-legend span{width:10px;height:10px;border-radius:999px}.performance-analysis-page .performance-legend .line{background:#2563eb}.performance-analysis-page .performance-legend .realized{background:#16a34a}.performance-analysis-page .performance-legend .evaluation{background:#a855f7}.performance-analysis-page .performance-chart{position:relative;height:300px;overflow:hidden}.performance-analysis-page .performance-chart svg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.performance-analysis-page .performance-chart line{stroke:#e2e8f0;stroke-width:1}.performance-analysis-page .performance-chart polyline{fill:none;stroke:#2563eb;stroke-width:3}.performance-analysis-page .performance-chart circle{fill:#2563eb}.performance-analysis-page .performance-bars{position:absolute;top:34px;right:32px;bottom:30px;left:32px;z-index:1;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cbd5e1}.performance-analysis-page .performance-bar-group{position:relative;display:flex;height:210px;min-width:24px;align-items:center;justify-content:center;gap:3px}.performance-analysis-page .performance-bar-group .bar{width:7px;border-radius:999px 999px 0 0}.performance-analysis-page .performance-bar-group .realized{background:#16a34a}.performance-analysis-page .performance-bar-group .evaluation{background:#a855f7}.performance-analysis-page .performance-bar-group small{position:absolute;bottom:-25px;color:#64748b;font-size:10px;font-weight:700;white-space:nowrap}.performance-analysis-page .performance-table-scroll,.performance-analysis-page .performance-list-scroll,.performance-analysis-page .performance-heatmap-scroll,.performance-analysis-page .performance-insight-scroll{overflow:auto;scrollbar-width:thin}.performance-analysis-page .performance-table-scroll{height:260px}.performance-analysis-page .performance-list-scroll{height:168px}.performance-analysis-page .performance-heatmap-scroll,.performance-analysis-page .performance-insight-scroll{height:214px}.performance-analysis-page .performance-table,.performance-analysis-page .performance-mini-table{width:100%;border-collapse:collapse;font-size:12px}.performance-analysis-page .performance-table th,.performance-analysis-page .performance-mini-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475569;font-size:11px;font-weight:900;text-align:left}.performance-analysis-page .performance-table th,.performance-analysis-page .performance-table td,.performance-analysis-page .performance-mini-table th,.performance-analysis-page .performance-mini-table td{border-bottom:1px solid #e2e8f0;padding:10px 8px;white-space:nowrap}.performance-analysis-page .performance-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.performance-analysis-page .performance-lot-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center}.performance-analysis-page .performance-donut{display:grid;width:136px;height:136px;place-items:center;border-radius:999px}.performance-analysis-page .performance-donut span{display:grid;width:78px;height:78px;place-items:center;border-radius:999px;background:#fff;color:#0f172a;font-size:12px;font-weight:900;text-align:center}.performance-analysis-page .performance-mini-table i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:999px}.performance-analysis-page .performance-heatmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.performance-analysis-page .performance-heat-cell{display:grid;min-height:64px;align-content:center;gap:6px;border-radius:6px;padding:10px;text-align:center}.performance-analysis-page .performance-heat-cell small{color:#475569;font-size:11px;font-weight:800}.performance-analysis-page .performance-heat-cell strong{font-size:14px;font-weight:900}.performance-analysis-page .performance-heat-cell.strong-positive{background:#86efac;color:#14532d}.performance-analysis-page .performance-heat-cell.positive{background:#dcfce7;color:#15803d}.performance-analysis-page .performance-heat-cell.negative{background:#fee2e2;color:#dc2626}.performance-analysis-page .performance-heat-cell.strong-negative{background:#fecaca;color:#991b1b}.performance-analysis-page .performance-heat-cell.neutral{background:#f1f5f9;color:#475569}.performance-analysis-page .performance-insight-scroll{display:grid;gap:10px}.performance-analysis-page .performance-insight-scroll article{border:1px solid #e2e8f0;border-left:4px solid #3b82f6;border-radius:8px;padding:10px 12px}.performance-analysis-page .performance-insight-scroll article.success{border-left-color:#16a34a}.performance-analysis-page .performance-insight-scroll article.warning{border-left-color:#f97316}.performance-analysis-page .performance-insight-scroll strong{color:#0f172a;font-size:13px;font-weight:900}.performance-analysis-page .performance-insight-scroll p{margin:5px 0 0;color:#64748b;font-size:12px}.performance-analysis-page .performance-footnote{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 16px;color:#475569}.performance-analysis-page .performance-footnote span{border-radius:999px;background:#dbeafe;color:#2563eb;padding:4px 10px;font-size:12px;font-weight:900}.performance-analysis-page .performance-footnote p,.performance-analysis-page .performance-footnote time{margin:0;font-size:12px;font-weight:700}@media (max-width: 1400px){.performance-analysis-page .performance-period-filter,.performance-analysis-page .performance-date-range{flex-basis:100%}.performance-analysis-page .performance-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.performance-analysis-page .performance-filter-card{gap:12px}}.dashboard-topbar{padding:0 var(--admin-page-padding-x)}.dashboard-page,.stock-search-page,.trade-list-page,.strategy-page,.realtime-page,.signal-page,.order-management-page,.holdings-page,.report-page{padding:var(--admin-page-padding-y) var(--admin-page-padding-x)}.strategy-page{width:100%;max-width:100%;min-width:0;overflow-x:hidden}.strategy-page .strategy-layout,.strategy-page .strategy-lower-grid,.strategy-page .strategy-bottom-grid,.strategy-page .strategy-monitoring-summary,.strategy-page .strategy-backtest-summary,.strategy-page .strategy-simulation-layout,.strategy-page .position-strategy-layout-grid{min-width:0}.strategy-page .strategy-panel,.strategy-page .strategy-backtest-chart-panel,.strategy-page .trading-simulation-chart-panel,.strategy-page .trading-simulation-chart-canvas,.strategy-page .compact-monitor-scroll,.strategy-page .compact-monitor-report-scroll,.strategy-page .trading-simulation-summary-scroll,.strategy-page .table-scroll{max-width:100%;width:100%;min-width:0}.strategy-page .strategy-panel{overflow-x:hidden}.stock-manager,.user-manager,.service-status-manager,.settings-manager,.watchlist-manager,.placeholder-manager{gap:var(--admin-card-gap);margin:var(--admin-page-padding-y) var(--admin-page-padding-x)}.stock-search-page,.order-management-page,.strategy-grid,.service-status-grid,.report-grid,.report-metrics,.dashboard-summary-grid,.dashboard-content-grid,.trade-list-content,.signal-layout,.realtime-grid,.holdings-grid{gap:var(--admin-card-gap)}.stock-filter-panel,.stock-result-panel,.filter-summary-panel,.strategy-card,.realtime-card,.signal-list-panel,.signal-detail-panel,.order-management-panel,.order-request-panel,.holdings-panel,.report-card,.service-status-card,.service-status-toolbar,.stock-form,.user-form,.settings-form,.dart-upload-panel,.settings-summary,.stock-realtime-bar,.placeholder-panel{padding:var(--admin-card-padding)}.report-metrics article,.summary-card{padding-left:calc(var(--admin-card-padding) + 10px);padding-right:calc(var(--admin-card-padding) + 10px)}@media (max-width: 1280px){.dashboard-summary-grid,.dashboard-content-grid,.trading-kpi-grid,.trading-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.position-target-card,.performance-card{grid-column:1 / -1}.watch-card,.asset-chart-card{grid-column:span 2}.trade-list-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-toolbar,.strategy-grid,.strategy-bottom-grid{grid-template-columns:1fr;gap:16px}.realtime-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.signal-page{grid-template-columns:1fr}.order-execution-page,.report-metrics,.report-grid,.account-sync-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-execution-actions{grid-column:1 / -1}}@media (max-width: 1100px){.dashboard-table .stock-price-row-grid-watchlist{grid-template-columns:minmax(110px,1.35fr) minmax(74px,.75fr) minmax(74px,.75fr) minmax(70px,.72fr);gap:6px}.dashboard-table .watchlist-summary-head{grid-template-columns:minmax(110px,1.35fr) minmax(74px,.75fr) minmax(74px,.75fr) minmax(70px,.72fr) minmax(40px,.3fr);gap:6px}.dashboard-watch-row{grid-template-columns:minmax(0,1fr) minmax(40px,.3fr);gap:6px}.dashboard-table th,.dashboard-table td{padding-left:0;padding-right:0}}@media (max-width: 1100px){.stock-candidate-action-grid{grid-template-columns:minmax(0,1fr);height:auto}.stock-management-page.search-collapsed .stock-candidate-action-grid{height:auto}.stock-discovery-registered-card,.stock-discovery-action-card{height:520px}.stock-discovery-action-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.dashboard-layout{grid-template-columns:1fr}.dashboard-sidebar{position:relative;height:auto}.dashboard-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-grid,.dashboard-content-grid,.trading-kpi-grid,.trading-dashboard-grid,.dashboard-nav{display:grid;grid-template-columns:1fr}.watch-card,.asset-chart-card{grid-column:auto}.dashboard-topbar{padding:18px}.trading-dashboard-head,.mode-strip,.card-head-row,.position-distribution-layout,.mock-order-summary,.performance-metrics{align-items:stretch;flex-direction:column}.mode-strip{justify-content:flex-start}.position-target-card,.performance-card{grid-column:auto}.intent-stream-list div{grid-template-columns:52px minmax(0,1fr)}.intent-stream-list div>*{min-width:0}.dashboard-footnote{flex-direction:column}.stock-search-page,.stock-management-grid{grid-template-columns:1fr}.company-info-modal{width:100%;max-height:calc(100vh - 24px)}.company-info-modal-head{padding:16px}.company-info-modal-head h2{font-size:20px}.company-info-tabs{padding:10px 16px;overflow-x:auto}.company-info-modal-body{padding:16px}.company-info-grid{grid-template-columns:1fr}.company-info-grid div{grid-template-columns:112px minmax(0,1fr)}.financial-score-panel dl,.financial-chart-grid{grid-template-columns:1fr}.trade-list-toolbar{align-items:stretch;flex-direction:column}.trade-group-tabs,.trade-group-tabs button,.add-group-button{width:100%}.trade-list-summary-grid{grid-template-columns:1fr}.realtime-header-tools{position:static;flex-wrap:wrap;margin-bottom:16px}.realtime-metrics,.order-execution-page,.order-management-page{grid-template-columns:1fr}.mock-mode-banner,.order-management-panel,.order-request-panel{grid-column:1}.holdings-summary-bar{grid-template-columns:1fr;padding:22px}.holdings-tabs{width:100%;grid-template-columns:1fr 1fr}.account-sync-head,.account-sync-actions{align-items:stretch;flex-direction:column}.account-sync-grid{grid-template-columns:1fr}.report-date-picker{position:static;margin-bottom:16px}.report-metrics,.report-grid,.asset-mix{grid-template-columns:1fr}}@media (max-width: 1280px){.performance-analysis-page .performance-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.performance-analysis-page .performance-filter-card{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-analysis-page .performance-trend-card,.performance-analysis-page .performance-strategy-card,.performance-analysis-page .performance-stock-card,.performance-analysis-page .performance-position-card,.performance-analysis-page .performance-lot-card,.performance-analysis-page .performance-heatmap-card,.performance-analysis-page .performance-insight-card{grid-column:span 12}.stock-discovery-search-form{grid-template-columns:repeat(3,minmax(0,1fr))}.stock-discovery-search-actions{grid-column:1 / -1;justify-self:end;min-width:160px}#admin-app .trading-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#admin-app .trading-dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:"positions positions positions positions positions positions positions intents intents intents system system" "orders orders orders orders performance performance performance performance distribution distribution distribution distribution" "skip skip skip skip alerts alerts alerts alerts logs logs logs logs"}}@media (max-width: 900px){.performance-analysis-page .performance-kpi-grid,.performance-analysis-page .performance-filter-card,.performance-analysis-page .performance-top-grid,.performance-analysis-page .performance-lot-layout,.performance-analysis-page .performance-footnote{grid-template-columns:1fr}.performance-analysis-page .performance-chart{height:260px}.performance-analysis-page .performance-donut{justify-self:center}.stock-discovery-search-form{grid-template-columns:1fr}.universe-card-head{align-items:stretch;flex-direction:column}.universe-list-grid{grid-template-columns:1fr}.universe-items-card,.universe-candidates-card{height:520px}.stock-discovery-search-actions{justify-self:stretch}.stock-discovery-action-list{grid-template-columns:1fr}#admin-app .trading-kpi-grid,#admin-app .trading-dashboard-grid{grid-template-columns:1fr;grid-template-areas:none}#admin-app .position-target-card,#admin-app .intent-stream-card,#admin-app .system-card{height:420px}#admin-app .mock-order-card,#admin-app .performance-card,#admin-app .position-distribution-card,#admin-app .skip-reason-card,#admin-app .alert-card,#admin-app .log-card{height:260px}#admin-app .position-target-card,#admin-app .intent-stream-card,#admin-app .mock-order-card,#admin-app .performance-card,#admin-app .position-distribution-card,#admin-app .skip-reason-card,#admin-app .alert-card,#admin-app .log-card,#admin-app .system-card{grid-area:auto;grid-column:auto;grid-row:auto}#admin-app .performance-card{height:300px}}#admin-app .admin-shell{background:var(--color-page-bg);color:var(--color-text-main);font-size:var(--font-content)}#admin-app .dashboard-layout{grid-template-columns:204px minmax(0,1fr)}#admin-app .dashboard-sidebar,#admin-app .admin-sidebar{height:100vh;overflow-y:auto;overscroll-behavior:contain;padding:16px 10px;background:var(--color-sidebar-bg);color:var(--color-sidebar-text);border-right:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:#CBD5E1 #F8FAFC}#admin-app .dashboard-product{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;min-height:42px;margin:0 4px 14px;padding:0 4px;gap:8px;color:var(--color-text-main);line-height:1.25}#admin-app .brand-core-icon{position:relative;display:inline-grid;width:28px;height:28px;place-items:center;border:1px solid #bfdbfe;border-radius:8px;background:linear-gradient(145deg,#eff6ff,#dbeafe);color:#1d4ed8;font-size:10px;font-weight:900;letter-spacing:0;line-height:1}#admin-app .brand-core-icon:after{content:"";position:absolute;right:5px;bottom:5px;width:4px;height:4px;border-radius:999px;background:#2563eb;box-shadow:-7px -7px #60a5fa,0 -8px #93c5fd}#admin-app .brand-title{min-width:0;overflow:hidden;color:#0f172a;font-size:14px;font-weight:800;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}#admin-app .brand-mode-badge{display:inline-flex;min-height:20px;align-items:center;justify-content:center;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;line-height:1.1;white-space:nowrap}#admin-app .brand-mode-badge.mock{border:1px solid #bfdbfe;background:#dbeafe;color:#1d4ed8}#admin-app .brand-mode-badge.real{border:1px solid #fecaca;background:#fee2e2;color:#b91c1c}#admin-app .brand-mode-badge.check{border:1px solid #e2e8f0;background:#f8fafc;color:#64748b}#admin-app .sidebar-user-panel{display:grid;grid-template-columns:22px minmax(0,1fr) 28px;align-items:center;gap:7px;min-height:34px;margin:0 4px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:5px 7px}#admin-app .sidebar-user-avatar{position:relative;display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:999px;background:#e0edff;color:#2563eb}#admin-app .sidebar-user-avatar:before{content:"";position:absolute;top:5px;width:7px;height:7px;border-radius:999px;background:currentColor}#admin-app .sidebar-user-avatar:after{content:"";position:absolute;bottom:4px;width:12px;height:6px;border-radius:999px 999px 4px 4px;background:currentColor}#admin-app .sidebar-user-panel strong{min-width:0;overflow:hidden;color:#0f172a;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}#admin-app .sidebar-logout-button{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border:1px solid #dbe5f1;border-radius:999px;background:#fff;color:#dc2626;padding:0;font-size:16px;font-weight:900;line-height:1;cursor:pointer}#admin-app .sidebar-logout-button:hover{border-color:#fecaca;background:#fee2e2;color:#b91c1c}#admin-app .dashboard-nav,#admin-app .admin-nav{gap:2px}#admin-app .dashboard-nav a,#admin-app .dashboard-nav .admin-sub-link,#admin-app .admin-nav a,#admin-app .admin-sub-link{min-height:31px;gap:8px;border-radius:8px;padding:0 9px;color:var(--color-sidebar-text);font-size:var(--font-menu);font-weight:500;line-height:1.2}#admin-app .dashboard-nav .sidebar-parent-item,#admin-app .admin-nav .sidebar-parent-item{margin-top:4px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}#admin-app .sidebar-parent-item span:nth-child(2){min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#admin-app .dashboard-nav a.active,#admin-app .dashboard-nav .admin-sub-link.active,#admin-app .admin-nav a.active,#admin-app .admin-sub-link.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);box-shadow:none}#admin-app .dashboard-nav a:not(.active):hover,#admin-app .dashboard-nav .admin-sub-link:not(.active):hover,#admin-app .admin-nav a:not(.active):hover,#admin-app .admin-sub-link:not(.active):hover{background:#f1f5f9;color:var(--color-text-main)}#admin-app .dashboard-nav .admin-sub-nav,#admin-app .admin-sub-nav{display:grid;gap:1px;margin:0 0 3px;padding-left:24px}#admin-app .dashboard-nav .admin-sub-link,#admin-app .admin-sub-link{position:relative;min-height:27px;border-radius:7px;padding:0 8px 0 12px;color:#64748b;font-size:12px;font-weight:650}#admin-app .dashboard-nav .admin-sub-link:before,#admin-app .admin-sub-link:before{content:"";position:absolute;left:2px;width:4px;height:4px;border-radius:999px;background:#cbd5e1}#admin-app .dashboard-nav .admin-sub-link.active:before,#admin-app .admin-sub-link.active:before{background:var(--color-sidebar-active-text)}#admin-app .nav-icon{width:17px;height:17px;flex-basis:17px;font-size:var(--font-menu)}#admin-app .nav-chevron{flex:0 0 auto;color:#94a3b8;font-size:11px;font-weight:900;transform:rotate(180deg);transition:transform .16s ease,color .16s ease}#admin-app .sidebar-parent-item.collapsed .nav-chevron{transform:rotate(90deg)}#admin-app .sidebar-parent-item.active .nav-chevron{color:var(--color-sidebar-active-text)}#admin-app .admin-nav-label{color:var(--color-text-muted)}#admin-app .dashboard-main,#admin-app .admin-main{background:var(--color-page-bg)}#admin-app .dashboard-topbar,#admin-app .admin-topbar{min-height:72px;border-bottom:1px solid var(--color-border);background:var(--color-content-bg);padding:0 28px 0 22px}#admin-app .dashboard-topbar h1,#admin-app .admin-topbar h1,#admin-app .page-title{margin-bottom:4px;color:var(--color-text-main);font-size:var(--font-main-title);font-weight:700}#admin-app .dashboard-topbar .sub,#admin-app .admin-topbar .sub{color:var(--color-text-sub);font-size:var(--font-small)}#admin-app .dashboard-title-block{min-width:0}#admin-app .topbar-actions{display:inline-flex;align-items:center;gap:12px;margin-left:auto}#admin-app .topbar-last-updated{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-muted);font-size:12px;font-weight:600;white-space:nowrap}#admin-app .topbar-last-updated strong{color:var(--color-text-sub);font-size:12px;font-weight:800}#admin-app .topbar-refresh-button{display:inline-flex;width:36px;height:36px;flex:0 0 36px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-main);padding:0;font-size:20px;font-weight:900;line-height:1;cursor:pointer}#admin-app .topbar-refresh-button:hover:not(:disabled){border-color:#bfdbfe;background:#eff6ff;color:#2563eb}#admin-app .topbar-prepare-button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;padding:0 12px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}#admin-app .topbar-prepare-button:hover:not(:disabled){border-color:#93c5fd;background:#dbeafe}#admin-app .topbar-prepare-button:disabled{cursor:not-allowed;opacity:.65}#admin-app .topbar-refresh-button:disabled{cursor:not-allowed;opacity:.65}#admin-app .topbar-refresh-button span{display:inline-block}#admin-app .topbar-refresh-button.loading span{animation:admin-refresh-spin .8s linear infinite}@keyframes admin-refresh-spin{to{transform:rotate(360deg)}}#admin-app .dashboard-title-status{display:inline-flex;align-items:center;gap:10px;color:var(--color-text-sub);font-size:12px;white-space:nowrap}#admin-app .dashboard-title-status .mode-badge.mock{min-height:22px;border-radius:999px;background:#dbeafe;color:#1d4ed8;padding:3px 14px;font-size:11px;font-weight:900}#admin-app .dashboard-title-status time{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;color:var(--color-text-sub);font-size:11px;line-height:1.25}#admin-app .dashboard-title-status time:before{content:"◷";grid-row:span 2;color:var(--color-text-muted);font-size:15px}#admin-app .dashboard-title-status time span{color:var(--color-text-muted);font-size:11px}#admin-app .dashboard-title-status time strong{color:var(--color-text-sub);font-size:12px;font-weight:700}#admin-app :where(.dashboard-card,.summary-card,.stock-management-panel,.profile-form,.profile-summary-grid>div,.profile-table-wrap,.broker-modal,.settings-form,.stock-form,.user-form,.watchlist-panel,.service-status-card,.account-sync-panel,.order-management-panel,.order-request-panel,.report-card,.download-card,.trade-list-table-card,.realtime-card,.signal-detail-panel,.signal-list-panel,.holdings-panel,.terminal-panel,.dart-upload-panel){border:1px solid var(--color-border);border-radius:12px;background:var(--color-content-bg)}#admin-app :where(.dashboard-card h2,.stock-management-panel h2,.settings-manager h2,.profile-page h2,.broker-modal h2,.service-status-manager h2,.watchlist-manager h2,.trade-list-page h2,.realtime-watch-page h2,.signal-page h2,.order-management-page h2,.holdings-page h2,.report-card h2,.download-card h2,.section-title){color:var(--color-text-main);font-size:var(--font-sub-title);font-weight:600}#admin-app :where(label,.form-label,.required-label,.condition-row span,.summary-card span:not(.summary-icon),.profile-summary-grid span,.broker-token-panel span,.dashboard-table th,.stock-table th,.stock-result-table th,.trade-list-table th,.realtime-table th,.order-management-table th,.holdings-table th,.profile-table th,.report-table th){color:var(--color-text-sub);font-size:var(--font-field-label);font-weight:500}#admin-app :where(input:not([type=checkbox]):not([type=radio]),select,textarea,.form-input){min-height:36px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-main);padding:8px 12px;font-size:var(--font-input);font-weight:400}#admin-app :where(button,.btn,.primary-button,.secondary-button,.light-button,.strategy-save-button,.add-stock-button,.danger-button,.execute-order-button,.continue-watch-button,.logout-button){min-height:36px;border-radius:8px;font-size:var(--font-button);font-weight:600}#admin-app :where(.primary-button,.btn-primary,.strategy-save-button,.execute-order-button){background:var(--color-primary);color:#fff}#admin-app :where(.primary-button,.btn-primary,.strategy-save-button,.execute-order-button):hover{background:var(--color-primary-hover)}#admin-app :where(.secondary-button,.light-button,.btn-secondary,.continue-watch-button){border:1px solid var(--color-border);background:#e2e8f0;color:var(--color-text-main)}#admin-app :where(.danger-button,.icon-button.danger,.row-icon-button.danger,.btn-danger){background:var(--color-danger);color:#fff}#admin-app :where(.dashboard-table,.stock-table,.stock-result-table,.trade-list-table,.realtime-table,.order-management-table,.holdings-table,.profile-table,.report-table,.data-table){background:var(--color-content-bg);font-size:var(--font-list)}#admin-app :where(.dashboard-table th,.stock-table th,.stock-result-table th,.trade-list-table th,.realtime-table th,.order-management-table th,.holdings-table th,.profile-table th,.data-table th){background:#f1f5f9;color:var(--color-text-sub);font-size:var(--font-field-label);font-weight:600}#admin-app :where(.dashboard-table td,.stock-table td,.stock-result-table td,.trade-list-table td,.realtime-table td,.order-management-table td,.holdings-table td,.profile-table td,.report-table td,.data-table td){color:var(--color-text-main);font-size:var(--font-list)}#admin-app :where(p,span,small,em,dd,dt,li){font-size:var(--font-content)}#admin-app :where(small,.sub,.message,.terminal-description){color:var(--color-text-muted);font-size:var(--font-small)}#admin-app :where(.dashboard-red,.stock-up){color:var(--color-stock-up)!important}#admin-app :where(.dashboard-blue,.stock-down){color:var(--color-stock-down)!important}#admin-app :where(.dashboard-gray,.stock-flat){color:var(--color-stock-flat)!important}#admin-app :where(.dashboard-green){color:var(--color-success)!important}#admin-app .stock-price-row-grid-watchlist .stock-price-secondary{font-size:11px}#admin-app .dashboard-table .stock-price-primary,#admin-app .dashboard-table .stock-price-name span{font-size:12px;line-height:1.2}#admin-app .dashboard-table .stock-price-secondary,#admin-app .dashboard-table .stock-price-name small{font-size:10px;line-height:1.2}.strategy-page{display:flex;flex-direction:column;gap:16px;color:#263a5e}.strategy-toolbar,.panel-head,.segmented-actions,.strategy-filters{display:flex;align-items:center;gap:8px}.strategy-toolbar,.panel-head{justify-content:space-between}.strategy-toolbar,.panel-head{flex-wrap:wrap}.strategy-toolbar{min-height:48px;border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:10px 12px}.strategy-stock-toolbar{align-items:stretch;flex-direction:column;gap:14px}.strategy-stock-toolbar .strategy-toolbar-title{display:grid;gap:4px}.strategy-stock-toolbar .strategy-toolbar-title strong{color:#102a56;font-size:22px;font-weight:900}.strategy-stock-toolbar .strategy-toolbar-title span{color:#4d5f7a;font-size:13px;font-weight:700}.strategy-filters input,.strategy-filters select,.strategy-form input,.strategy-form select,.strategy-form textarea{border:1px solid #d5def2;border-radius:6px;min-height:36px;padding:8px 11px;background:#fff;color:#263a5e;font-size:13px;font-weight:700}.strategy-filters{flex-wrap:wrap;gap:10px}.strategy-filters select{width:148px}.strategy-filters input{width:260px}.strategy-stock-filters{width:100%}.strategy-stock-filters select{width:168px}.strategy-stock-filters input{width:min(280px,100%)}.position-stocks-page .strategy-stock-toolbar{flex-direction:row;align-items:center;flex-wrap:nowrap;gap:7px;min-height:0;padding:8px 10px;box-shadow:0 8px 20px #19356b0a}.position-stocks-page{gap:10px}.position-stocks-page .strategy-stock-toolbar .strategy-toolbar-title strong{font-size:19px;line-height:1.2}.position-stocks-page .strategy-stock-toolbar .strategy-toolbar-title{flex:0 0 292px;min-width:0}.position-stocks-page .strategy-stock-toolbar .strategy-toolbar-title span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.25}.position-stocks-page .strategy-stock-filters{flex:1 1 auto;width:auto;align-items:center;flex-wrap:nowrap;gap:6px;min-width:0}.position-stocks-page .strategy-stock-filters select,.position-stocks-page .strategy-stock-filters input{min-height:30px;padding:5px 9px;border-color:#cfd9ec;background:#fbfdff;font-size:12px}.position-stocks-page .strategy-stock-filters select{width:126px}.position-stocks-page .strategy-stock-filters select:first-child,.position-stocks-page .strategy-stock-filters select:last-child{width:112px}.position-stocks-page .strategy-stock-filters input{width:180px}.position-stocks-page .strategy-socket-status{flex:0 0 auto;padding:6px 8px;font-size:11px}.strategy-socket-status{margin-left:auto;border:1px solid #d5def2;border-radius:6px;padding:7px 10px;background:#f8fbff;color:#4b5f7d;font-size:12px;font-weight:700}.strategy-socket-status.socket-connected{border-color:#b7ebc9;background:#eafaf0;color:#087a3d}.strategy-socket-status.socket-connecting{border-color:#c7d8ff;background:#eef4ff;color:#1e5bd8}.strategy-socket-status.socket-error,.strategy-socket-status.socket-unsupported{border-color:#ffd0d5;background:#fff1f2;color:#c7223d}.strategy-socket-status.socket-disconnected{border-color:#e3e8f2;background:#f4f6fa;color:#66728a}.strategy-button,.strategy-icon-button,.segmented-actions button{min-height:36px;border:1px solid #cfdaf0;border-radius:6px;background:#f8fbff;color:#183d78;font-size:12px;font-weight:800;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.strategy-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;margin:2px 0;white-space:nowrap}.strategy-icon-button{width:36px;padding:0}.strategy-button:hover,.strategy-icon-button:hover,.segmented-actions button:hover{border-color:#9fb6e6;background:#f3f7ff;box-shadow:0 2px 8px #1e5bd814}.strategy-button-primary{border-color:#1e5bd8;background:#1e5bd8;color:#fff}.strategy-button-primary:hover{border-color:#174bb4;background:#174bb4;color:#fff}.strategy-button-danger{border-color:#f2b8bf;background:#fff5f6;color:#c7223d}.strategy-button-danger:hover{border-color:#dc2626;background:#dc2626;color:#fff}.strategy-button-dark{border-color:#41516b;background:#172338;color:#d8e3f5}.strategy-button-dark:hover{border-color:#60708d;background:#223149;color:#fff}.strategy-action-group{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;margin:0}.strategy-toolbar-title{display:flex;flex-direction:column;gap:3px;min-width:0}.strategy-toolbar-title strong{color:#15356b;font-size:15px;font-weight:900;line-height:1.2}.strategy-toolbar-title span{color:#66728a;font-size:12px;font-weight:700;line-height:1.35}.strategy-layout{display:grid;grid-template-columns:minmax(760px,1fr) minmax(360px,420px);gap:16px;align-items:stretch}.strategy-lower-grid{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr);gap:16px;align-items:start}.strategy-bottom-grid{display:grid;grid-template-columns:minmax(680px,1.35fr) minmax(420px,.65fr);gap:16px;align-items:start}.strategy-monitoring-grid{grid-template-columns:1fr}.strategy-monitoring-summary{display:grid;grid-template-columns:repeat(9,minmax(110px,1fr));gap:12px}.strategy-backtest-summary{grid-template-columns:repeat(7,minmax(0,1fr))}.strategy-monitoring-card{border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:14px 15px;box-shadow:0 8px 20px #19356b0f}.strategy-monitoring-card span{display:block;color:#66728a;font-size:12px;font-weight:800}.strategy-monitoring-card strong{display:block;margin-top:7px;color:#172338;font-size:22px;font-weight:900}.strategy-backtest-summary .strategy-monitoring-card{min-width:0;padding:11px 10px}.strategy-backtest-summary .strategy-monitoring-card strong{font-size:16px;line-height:1.2;overflow-wrap:anywhere}.strategy-monitoring-card.success strong{color:#087a3d}.strategy-monitoring-card.warning strong{color:#d97706}.strategy-monitoring-card.buy strong{color:#dc2626}.strategy-monitoring-card.sell strong{color:#1e5bd8}.candidate-state-timeline{display:flex;gap:8px;align-items:stretch;min-width:max-content;margin-bottom:12px;padding:10px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}.candidate-state-timeline-event{display:grid;gap:4px;min-width:108px;padding:8px 10px;border-left:3px solid #64748b;border-radius:6px;background:#fff}.candidate-state-timeline-event span{color:#64748b;font-size:12px}.candidate-state-timeline-event strong{color:#334155;font-size:13px}.candidate-state-timeline-event small{color:#64748b;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.candidate-state-timeline-event.buy{border-left-color:#dc2626}.candidate-state-timeline-event.sell{border-left-color:#1e5bd8}.candidate-state-timeline-event.warning{border-left-color:#d97706}.strategy-backtest-chart-panel{min-height:640px}.trading-simulation-chart-panel,.trading-simulation-chart-panel-collapsed{min-height:auto}.backtest-chart-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:10px;color:#475569;font-size:12px}.backtest-return-mode{margin-left:auto}.backtest-chart-legend span{display:inline-flex;align-items:center;gap:6px}.backtest-chart-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.backtest-chart-legend .buy{background:#dc2626}.backtest-chart-legend .sell{background:#2563eb}.backtest-chart-legend .ma5{background:#ef4444}.backtest-chart-legend .ma20{background:#2563eb}.backtest-chart-legend .ma60{background:#16a34a}.backtest-chart-legend .ma120{background:#7c3aed}.backtest-chart-legend .return{background:#111827}.trading-simulation-chart-legend{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.trading-simulation-chart-legend-title{font-size:12px;font-weight:700;color:#334155;margin-bottom:6px}.trading-simulation-chart-marker-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.trading-simulation-chart-marker-filters label{border-color:#d9e2f4;background:#f8fafc}.trading-simulation-chart-legend-lines{display:flex;flex-wrap:wrap;gap:10px}.trading-simulation-chart-legend i{width:7px;height:7px}.trading-simulation-chart-legend .ma5{background:#f97316}.trading-simulation-chart-legend .ma10{background:#7c3aed}.trading-simulation-chart-legend .ma20{background:#059669}.trading-simulation-chart-legend .ma60{background:#0f172a}.trading-simulation-chart-legend .buy-candidate{background:#eab308}.trading-simulation-chart-legend .buy{background:#16a34a}.trading-simulation-chart-legend .sell{background:#dc2626}.trading-simulation-chart-canvas{height:clamp(360px,45vh,460px);min-height:clamp(360px,45vh,460px);max-height:clamp(360px,45vh,460px);overflow:hidden;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.trading-simulation-chart-legend .sell-candidate{background:#f97316}.trading-simulation-chart-legend .trigger{background:#7c3aed}.trading-simulation-chart-legend .skip{background:#64748b}.backtest-chart-hover{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-height:34px;margin-bottom:10px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:#334155;font-size:12px}.backtest-chart-hover span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend-score-analysis-charts{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.trend-score-analysis-chart-stack{display:grid;gap:6px;min-width:0;position:relative}.trend-score-analysis-chart-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:-4px 0 12px;color:#475569;font-size:12px;font-weight:800}.trend-score-analysis-chart-legend span{display:inline-flex;gap:6px;align-items:center}.trend-score-legend-line{display:inline-block;width:28px;height:0;border-top:3px solid #111827}.trend-score-legend-v3{border-color:#f97316}.trend-score-legend-dot{width:10px;height:10px;border-radius:999px;background:#9333ea}.trend-score-legend-candle{display:inline-block;width:18px;height:14px;border:2px solid #dc2626;border-radius:2px;background:#fee2e2;box-shadow:12px 0 #dbeafe,12px 0 0 2px #2563eb}.trend-score-price-canvas,.trend-score-volume-canvas,.trend-score-trend-canvas{min-width:0}.trend-score-chart-canvas{width:100%;min-width:0;min-height:260px;max-height:380px;height:260px;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.trend-score-price-canvas .trend-score-chart-canvas{min-height:520px;max-height:520px;height:520px}.trend-score-volume-canvas .trend-score-chart-canvas{min-height:150px;max-height:150px;height:150px}.trend-score-trend-canvas .trend-score-chart-canvas{min-height:280px;max-height:280px;height:280px}.trend-score-inflection-table-wrap{margin-top:14px}.trend-score-inflection-table{min-width:760px}.trend-score-chart-hover{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-height:34px;margin-bottom:10px;padding:8px 10px;border:1px solid #dce4f0;border-radius:6px;background:#f8fafc;color:#334155;font-size:12px}.trend-score-chart-hover span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend-score-chart-hover-full{grid-column:span 6}.trend-score-chart-hover-full strong{white-space:normal}.trend-score-selected-guide{position:absolute;top:0;bottom:0;width:0;border-left:2px solid #f97316;pointer-events:none;z-index:4}.trend-score-selected-guide:before{content:"";position:absolute;top:0;left:-7px;width:12px;height:12px;border:2px solid #f97316;border-radius:999px;background:#fff7ed;box-shadow:0 0 0 4px #f9731629}.trend-score-selected-guide span{position:absolute;top:14px;left:8px;min-width:92px;border:1px solid #fed7aa;border-radius:6px;background:#fff7ed;color:#9a3412;font-size:11px;font-weight:900;line-height:1;padding:6px 8px;white-space:nowrap;box-shadow:0 8px 18px #0f172a1f}.trend-score-analysis-breakdown-panel{display:grid;gap:10px;align-content:start;align-self:start;min-width:0;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fafcff}.trend-score-breakdown-date{margin:0;color:#1f3a64;font-size:12px;font-weight:800}.trend-score-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.trend-score-breakdown-item{display:grid;gap:2px;background:#fff;border:1px solid #edf0f5;border-radius:6px;padding:8px}.trend-score-breakdown-item span,.trend-score-breakdown-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.trend-score-breakdown-item span{color:#516173;font-size:11px;font-weight:800;white-space:nowrap}.trend-score-breakdown-item strong{margin-top:2px;color:#12243d;font-size:15px;font-weight:900}.trend-score-breakdown-item.trend-score-breakdown-state{grid-column:1 / -1;border-style:dashed}.trend-score-breakdown-content{display:grid;gap:8px}.trend-score-breakdown-empty{color:#64748b;font-size:12px;padding:4px 2px}.trend-score-breakdown-state-list{display:grid;gap:4px;border:1px dashed #dbe4f0;border-radius:6px;background:#fff;padding:8px}.trend-score-breakdown-state-list span{color:#64748b;font-size:11px;font-weight:800}.trend-score-breakdown-state-list strong{color:#0f172a;font-size:12px;font-weight:900;line-height:1.45}.trend-score-breakdown-component{display:grid;grid-template-columns:minmax(0,1.1fr) auto;gap:8px;align-items:center;border:1px dashed #dbe4f0;border-radius:6px;padding:8px;background:#fff;min-height:34px}.trend-score-breakdown-component span{color:#475569;font-size:12px;font-weight:700}.trend-score-breakdown-component strong{justify-self:end;color:#0f172a;font-weight:900}.trend-score-breakdown-linkage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:2px;padding-top:10px;border-top:1px dashed #cbd5e1}.trend-score-breakdown-linkage div{display:grid;gap:3px;min-width:0;border:1px solid #e2e8f0;border-radius:6px;background:#fff;padding:8px}.trend-score-breakdown-linkage span{color:#64748b;font-size:11px;font-weight:800;white-space:nowrap}.trend-score-breakdown-linkage strong{min-width:0;overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.trend-score-breakdown-linkage .trend-score-breakdown-linkage-full{grid-column:1 / -1}.trend-score-breakdown-linkage .trend-score-breakdown-linkage-full strong{white-space:normal}.trend-score-breakdown-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:56px;border:1px solid #cbd5e1;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:800;padding:2px 8px}.trend-score-breakdown-indicator.available{background:#f0fdf4;border-color:#86efac;color:#166534}.trend-score-analysis-selected-row{background:#eff6ff!important}.trend-score-analysis-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 10px}.trend-score-analysis-tab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.position-state-hysteresis-panel{display:grid;gap:12px}.position-state-hysteresis-form{align-items:end}.position-state-hysteresis-quick-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#64748b;font-size:12px;font-weight:700}.position-state-hysteresis-result-head{margin-top:4px}.position-state-hysteresis-result-head h3,.position-state-hysteresis-detail h3{margin:0;color:#0f172a;font-size:15px}.position-state-hysteresis-policy-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.position-state-hysteresis-policy-strip article{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:8px 10px}.position-state-hysteresis-policy-strip span{display:block;color:#64748b;font-size:11px;font-weight:800}.position-state-hysteresis-policy-strip strong{display:block;margin-top:3px;color:#0f172a;font-size:14px}.position-state-hysteresis-interpretation{margin:0;color:#475569;font-size:12px;line-height:1.6}.position-state-hysteresis-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}.position-state-hysteresis-table{min-width:980px}.position-state-hysteresis-table td:nth-child(5),.position-state-hysteresis-table td:nth-child(6){white-space:normal;line-height:1.45}.position-state-hysteresis-detail{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px}.position-state-hysteresis-detail dl{display:grid;gap:8px;margin:10px 0 0}.position-state-hysteresis-detail dl div{display:grid;gap:3px}.position-state-hysteresis-detail dt{color:#64748b;font-size:11px;font-weight:800}.position-state-hysteresis-detail dd{margin:0;color:#0f172a;font-size:12px;line-height:1.45;word-break:break-word}.trend-score-analysis-table{table-layout:fixed;min-width:1240px}.trend-score-analysis-table th:nth-child(1){width:82px}.trend-score-analysis-table th:nth-child(2),.trend-score-analysis-table th:nth-child(3),.trend-score-analysis-table th:nth-child(4),.trend-score-analysis-table th:nth-child(5){width:84px}.trend-score-analysis-table th:nth-child(6),.trend-score-analysis-table th:nth-child(7){width:102px}.trend-score-analysis-table th:nth-child(8),.trend-score-analysis-table th:nth-child(9),.trend-score-analysis-table th:nth-child(10),.trend-score-analysis-table th:nth-child(11),.trend-score-analysis-table th:nth-child(12),.trend-score-analysis-table th:nth-child(13),.trend-score-analysis-table th:nth-child(14){width:90px}.trend-score-analysis-table tr{cursor:pointer}.trend-score-analysis-table tr:hover td{background:#f8fbff}.trading-simulation-chart-actions{align-items:center;color:#64748b;font-size:12px}.chart-window-size-select{display:inline-flex;align-items:center;flex:0 0 auto;gap:6px;white-space:nowrap;color:#334155;font-size:12px;font-weight:800}.chart-window-size-select select{height:30px;min-width:86px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;font-size:12px;font-weight:800}.trading-simulation-click-detail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-height:42px;margin-bottom:10px;padding:8px 10px;border:1px solid #dbe4ef;border-radius:6px;background:#f8fafc;color:#475569;font-size:12px}.trading-simulation-click-detail.empty{display:flex;align-items:center}.trading-simulation-click-detail span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trading-simulation-click-detail strong{margin-left:4px;color:#0f172a;font-weight:900}.trading-simulation-chart-scrollbar{margin-top:10px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.trading-simulation-chart-scrollbar input{width:100%;accent-color:#334155}.trading-simulation-chart-scrollbar input:disabled{opacity:.45}.trading-simulation-summary-scroll{max-height:220px}.trading-simulation-log-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.trading-simulation-log-filters label{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid #d9e2f4;border-radius:6px;padding:0 10px;background:#fff;color:#334155;font-size:12px;font-weight:800}.trading-simulation-log-filters input{width:15px;height:15px}.trading-simulation-event-buy td{background:#f0fdf4}.trading-simulation-event-sell td{background:#fef2f2}.trading-simulation-event-candidate td{background:#fffbeb}.trading-simulation-event-trigger td{background:#f5f3ff}.trading-simulation-event-error td{background:#fff1f2}@media (max-width: 900px){.trend-score-analysis-charts,.trend-score-analysis-tab-grid{grid-template-columns:minmax(0,1fr)}.trading-simulation-chart-actions{align-items:flex-start}.trading-simulation-click-detail,.trading-simulation-mode-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}}.backtest-price-chart,.backtest-return-chart{width:100%;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#fff}.backtest-price-chart{height:360px;min-height:360px}.backtest-return-chart{height:170px;min-height:170px;margin-top:10px}.position-state-simulator-panel .position-backtest-form{align-items:end}.position-state-simulator-options{display:grid;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.position-state-lot-help{display:block;margin-top:5px;color:#64748b;font-size:11px;font-weight:700;line-height:1.35}.position-state-cash-injections{grid-column:1 / -1;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.position-state-cash-injections-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.position-state-cash-injection-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1fr) auto;gap:8px;align-items:center;margin-top:6px}.position-state-cash-injection-row.header{margin-top:0;color:#64748b;font-size:12px;font-weight:800}.position-state-summary{grid-template-columns:repeat(8,minmax(0,1fr))}.position-state-chart-panel{min-height:560px}.position-state-chart-legend .state-accumulate{background:#22c55e}.position-state-chart-legend .state-hold{background:#2563eb}.position-state-chart-legend .state-reduce{background:#f97316}.position-state-chart-legend .state-exit{background:#ef4444}.position-state-chart-legend .state-wait{background:#94a3b8}.position-state-hover{grid-template-columns:repeat(5,minmax(0,1fr))}.position-state-chart-shell{position:relative;display:grid;gap:10px}.position-state-chart-shell .backtest-price-chart{position:relative;z-index:0}.position-state-chart-background{position:absolute;top:0;left:0;right:0;z-index:1;display:flex;height:360px;overflow:hidden;border-radius:6px;pointer-events:none;opacity:.07}.position-state-chart-background-segment{min-width:2px}.position-state-chart-background-segment.state-accumulate{background:#22c55e}.position-state-chart-background-segment.state-hold{background:#2563eb}.position-state-chart-background-segment.state-reduce{background:#f97316}.position-state-chart-background-segment.state-exit{background:#ef4444}.position-state-chart-background-segment.state-wait{background:#94a3b8}.position-state-band{display:flex;width:100%;min-height:26px;overflow:hidden;border:1px solid #d9e2f4;border-radius:6px;background:#f8fafc}.position-state-band-segment{min-width:2px;border:0;border-right:1px solid rgba(255,255,255,.7);padding:0;cursor:pointer}.position-state-band-segment:focus{outline:2px solid #111827;outline-offset:-2px}.position-state-band-segment.state-accumulate{background:#22c55ec7}.position-state-band-segment.state-hold{background:#2563ebb3}.position-state-band-segment.state-reduce{background:#f97316c2}.position-state-band-segment.state-exit{background:#ef4444c7}.position-state-band-segment.state-wait{background:#94a3b8b8}.position-state-log-scroll{height:520px;max-height:520px;overflow:auto}.position-state-simulator-log-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc;box-shadow:inset 0 -1px #d9e2f4}.position-state-simulator-log-table td{white-space:nowrap}.position-log-badge,.position-state-transition-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;border-radius:999px;padding:0 8px;min-width:58px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}.position-state-transition-badge{border:1px solid #f59e0b;background:#fffbeb;color:#92400e}.position-log-badge{border:1px solid #dbe4ef;background:#f8fafc;color:#334155}.position-log-badge.state-accumulate,.position-log-badge.acc-in{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.position-log-badge.state-hold,.position-log-badge.tgt-hold{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.position-log-badge.hys-hold{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.position-log-badge.state-reduce,.position-log-badge.red-wait{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.position-log-badge.state-exit,.position-log-badge.exit-wait{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.position-log-badge.state-wait,.position-log-badge.cooldown,.position-log-badge.no-pos,.position-log-badge.execution,.position-log-badge.neutral{border-color:#cbd5e1;background:#f8fafc;color:#475569}.position-log-badge.over-hold{border-color:#ddd6fe;background:#faf5ff;color:#7e22ce}.position-log-badge.under-target{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.position-log-badge.near-target{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.position-log-badge.target-filled{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.position-log-badge.over-target{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.position-state-log-accumulate td{background:#22c55e0e}.position-state-log-hold td{background:#2563eb0b}.position-state-log-reduce td{background:#f973160e}.position-state-log-exit td{background:#ef44440e}.position-state-log-wait td{background:#94a3b80d}.position-state-log-executed td{box-shadow:inset 0 0 0 9999px #fff7ed73}.position-state-log-transition td{box-shadow:inset 0 0 0 9999px #fffbeba8}.position-state-log-accumulate td:first-child{border-left:4px solid #22c55e}.position-state-log-hold td:first-child{border-left:4px solid #2563eb}.position-state-log-reduce td:first-child{border-left:4px solid #f97316}.position-state-log-exit td:first-child{border-left:4px solid #ef4444}.position-state-log-wait td:first-child{border-left:4px solid #94a3b8}.position-state-log-legend{margin-top:12px;border:1px solid #d9e2f4;border-radius:8px;padding:12px;background:#fff}.position-state-log-legend h3{margin:0 0 10px;color:#172338;font-size:13px;font-weight:900}.position-state-log-legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.position-state-log-legend section{min-width:0}.position-state-log-legend strong{display:block;margin-bottom:8px;color:#334155;font-size:12px;font-weight:900}.position-state-log-legend dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 8px;margin:0;align-items:center}.position-state-log-legend dt,.position-state-log-legend dd{margin:0;min-width:0}.position-state-log-legend dd{color:#475569;font-size:12px;font-weight:700}.strategy-simulation-compact-card.strategy-backtest-chart-panel{min-height:448px}.strategy-simulation-compact-card .backtest-price-chart{height:252px;min-height:252px}.strategy-simulation-compact-card .backtest-return-chart{height:119px;min-height:119px}.strategy-simulation-compact-card .compact-monitor-report-scroll{height:300px;max-height:300px}.strategy-simulation-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:14px;align-items:stretch}.strategy-simulation-config,.strategy-simulation-json{min-width:0;border:1px solid #e1e8f6;border-radius:8px;background:#fbfdff;padding:12px}.strategy-simulation-json{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.strategy-simulation-config h3,.strategy-simulation-json h3{margin:0 0 10px;color:#15356b;font-size:13px;font-weight:900}.strategy-simulation-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-items:end}.strategy-simulation-form label{display:grid;gap:5px;min-width:0;color:#52637e;font-size:11px;font-weight:900}.strategy-simulation-form :where(input,select){min-width:0;width:100%}.strategy-simulation-form .test-signal-toggle{min-height:36px;align-self:end}.position-backtest-settings-toggle{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px}.position-backtest-settings-toggle span{display:grid;gap:3px;min-width:0;color:#183d78;font-size:12px;font-weight:900}.position-backtest-settings-toggle small{color:#66728a;font-size:11px;font-weight:800;line-height:1.25}.strategy-simulation-form .test-signal-actions{grid-column:1 / -1}.strategy-benchmark-panel{padding:10px 12px}.strategy-benchmark-panel .panel-head{margin-bottom:5px}.strategy-benchmark-panel .panel-head h2{margin-bottom:1px;font-size:15px}.strategy-benchmark-panel .panel-head span{font-size:11px}.benchmark-compact-note.strategy-rule-note{margin:0 0 6px;padding:5px 8px;font-size:10px;line-height:1.25}.benchmark-compact-form.strategy-simulation-form{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.benchmark-compact-form label{gap:2px;font-size:10px}.benchmark-compact-form :where(input,select){min-height:27px;height:27px;border:1px solid #d9e2f4;border-radius:6px;background:#fff;padding:3px 7px;color:#172338;font-size:11px;font-weight:800}.benchmark-compact-form .position-state-simulator-options{grid-column:span 4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;align-items:end}.benchmark-compact-form .test-signal-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:27px;padding:3px 7px;font-size:10px;line-height:1.2}.benchmark-compact-form .test-signal-toggle input{width:14px;height:14px}.benchmark-compact-form .test-signal-actions{grid-column:span 4;align-self:end;gap:4px}.benchmark-compact-form .strategy-button{min-height:27px;padding:5px 8px;font-size:10px}.benchmark-mtf-compact-form.strategy-simulation-form{grid-template-columns:minmax(140px,220px) minmax(160px,220px) minmax(180px,auto);align-items:end}.benchmark-mtf-compact-form .test-signal-actions{grid-column:auto;justify-content:flex-start}.strategy-benchmark-tabs.company-timeframe-tabs{margin-top:6px;padding:2px}.strategy-benchmark-tabs.company-timeframe-tabs button{height:26px;padding:0 10px;font-size:11px}.benchmark-result-panel{margin-top:0}.benchmark-empty-state-panel{padding:12px}.benchmark-empty-state{display:flex;align-items:center;justify-content:center;min-height:64px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:800;text-align:center}.benchmark-baseline-info{margin-bottom:8px;border:1px solid #d9e2f4;border-radius:8px;background:#f8fafc;padding:8px 10px}.benchmark-baseline-info-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.benchmark-baseline-info-head strong{color:#172338;font-size:12px;font-weight:900}.benchmark-baseline-info dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;margin:0}.benchmark-baseline-info dl>div{min-width:0}.benchmark-baseline-info dt{margin:0 0 2px;color:#64748b;font-size:10px;font-weight:800}.benchmark-baseline-info dd{margin:0;overflow:hidden;color:#172338;font-size:11px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.benchmark-operation-badge{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;background:#e2e8f0;color:#475569;padding:2px 8px;font-size:10px;font-weight:900;white-space:nowrap}.benchmark-operation-badge.connected{background:#fee2e2;color:#b91c1c}.trading-simulation-mode-comparison{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end}.trading-simulation-mode-comparison>span{grid-column:1 / -1;color:#52637e;font-size:11px;font-weight:900}.trading-simulation-mode-comparison .test-signal-toggle{min-width:0}@media (max-width: 900px){.trading-simulation-mode-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}}.strategy-json-preview-grid,.strategy-json-editor-panel{display:grid;gap:10px}.strategy-json-editor-panel{grid-template-rows:auto minmax(0,1fr);min-height:0}.strategy-json-tabs{display:inline-flex;gap:6px;width:fit-content;border:1px solid #d9e2f4;border-radius:8px;background:#f8fafc;padding:5px}.strategy-json-tabs button{min-height:30px;border:0;border-radius:6px;background:transparent;padding:0 12px;color:#52637e;font-size:12px;font-weight:900;cursor:pointer}.strategy-json-tabs button.active{background:#15356b;color:#fff}.strategy-json-preview{min-width:0;border:1px solid #d9e2f4;border-radius:8px;background:#fff;overflow:hidden}.strategy-json-preview header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e1e8f6;background:#f4f7fd;padding:9px 10px}.strategy-json-preview-title{display:grid;min-width:0;gap:2px}.strategy-json-preview strong{color:#183d78;font-size:12px;font-weight:900}.strategy-json-preview span{min-width:0;color:#66728a;font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-json-editor-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.strategy-json-action-button{width:30px;min-height:30px;flex:0 0 auto}.strategy-json-action-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.strategy-json-save-button{color:#fff;background:#15356b;border-color:#15356b}.strategy-clear-action-button{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.strategy-json-action-button:disabled{cursor:not-allowed;opacity:.45}.strategy-json-editor-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.strategy-json-editor{width:100%;height:100%;min-height:360px;border:0;resize:vertical;padding:10px;color:#172338;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.45;outline:none}.strategy-json-editor:focus{box-shadow:inset 0 0 0 2px #7fa7e8}.strategy-json-editor:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.strategy-json-preview pre{max-height:196px;margin:0;overflow:auto;padding:10px;color:#172338;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.strategy-test-signal-panel{display:grid;gap:12px}.test-signal-mode-tabs{display:inline-flex;gap:6px;width:fit-content;border:1px solid #d9e2f4;border-radius:8px;background:#f8fafc;padding:5px}.test-signal-mode-tabs button{min-height:34px;border:0;border-radius:6px;background:transparent;padding:0 12px;color:#52637e;font-size:12px;font-weight:900;cursor:pointer}.test-signal-mode-tabs button.active{background:#15356b;color:#fff}.test-signal-form{display:grid;grid-template-columns:minmax(190px,1.4fr) repeat(5,minmax(120px,1fr)) minmax(120px,.7fr);gap:10px;align-items:end}.test-signal-form label{display:grid;gap:6px;color:#52637e;font-size:12px;font-weight:900}.test-signal-form input,.test-signal-form select{width:100%;height:38px;border:1px solid #d9e2f4;border-radius:6px;background:#fff;padding:0 10px;color:#172338;font-size:13px;font-weight:800}.test-signal-toggle{min-height:38px;grid-template-columns:1fr auto;align-items:center;border:1px solid #d9e2f4;border-radius:6px;padding:0 10px}.test-signal-toggle input{width:18px;height:18px}.test-signal-reason{grid-column:span 2}.test-signal-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.test-signal-message{margin:0;border:1px solid #bbf7d0;border-radius:6px;background:#f0fdf4;padding:9px 11px;color:#087a3d;font-size:12px;font-weight:800}.test-signal-message.error{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.test-signal-history{display:flex;flex-wrap:wrap;gap:7px;align-items:center;color:#66728a;font-size:12px;font-weight:800}.test-signal-history strong{color:#15356b}.test-signal-history span{border:1px solid #d9e2f4;border-radius:999px;background:#f8fafc;padding:5px 9px}.strategy-monitor-tabs{display:inline-flex;align-items:center;gap:6px;border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:5px;width:fit-content}.strategy-monitor-tabs button{min-height:34px;border:0;border-radius:6px;background:transparent;padding:0 13px;color:#52637e;font-size:12px;font-weight:900;cursor:pointer}.strategy-monitor-tabs button.active{background:#1e5bd8;color:#fff}.strategy-panel{border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:15px;box-shadow:0 8px 20px #19356b0f}.strategy-panel h2{margin:0;font-size:15px;color:#15356b}.position-strategy-management,.position-strategy-page{display:grid;gap:24px}.position-strategy-main-panel{display:grid;gap:14px}.position-strategy-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.position-strategy-page-head h2{margin:0;color:#15356b;font-size:16px;font-weight:800}.position-strategy-page-head span{color:var(--muted);font-size:13px}.position-strategy-purpose{margin:0;color:var(--muted);font-size:12px;font-weight:700}.position-strategy-page-actions{display:inline-flex;align-items:center}.position-strategy-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.position-strategy-kpi-card{border:1px solid #d9e2f4;border-radius:10px;background:#fbfdff;padding:16px}.position-strategy-kpi-card span{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:8px}.position-strategy-kpi-card strong{display:block;font-size:26px;color:#122d64}.position-strategy-kpi-card small{display:block;min-height:15px;margin-top:6px;color:#7a869a;font-size:11px;line-height:1.35}.position-strategy-filter-panel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}.position-strategy-filter-actions{display:inline-flex;gap:10px;align-items:end;justify-content:flex-end;width:100%}.position-strategy-filter-actions .strategy-button{width:fit-content;min-height:40px;padding-left:14px;padding-right:14px}.position-strategy-filter-panel label,.position-strategy-filter-panel select,.position-strategy-filter-panel input{display:grid;gap:8px;width:100%}.position-strategy-filter-panel label{color:#263a5e;font-size:12px;font-weight:700}.position-strategy-filter-panel select,.position-strategy-filter-panel input,.position-strategy-filter-panel .strategy-button{min-height:38px}.position-strategy-layout-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.position-strategy-list-panel,.position-strategy-detail-panel,.position-strategy-extra-panel{display:grid;gap:10px}.position-strategy-list-panel{min-height:0;padding:12px}.position-strategy-detail-panel{min-height:0;padding:12px;align-content:start}.position-strategy-list-panel .panel-head{min-height:32px;margin-bottom:2px}.position-strategy-list-panel .panel-head .strategy-button{min-height:34px;padding:0 14px}.position-strategy-list-panel .table-scroll,.position-strategy-detail-panel .position-strategy-detail-content{min-height:0;overflow:hidden}.position-strategy-scroll{max-height:360px;overflow:auto}.position-strategy-row{cursor:pointer}.position-strategy-row:hover td{background:#f8fbff}.position-strategy-row.selected td{border-top-color:#b8cdfb;border-bottom-color:#b8cdfb;background:#eef4ff}.position-strategy-row.selected td:first-child{border-left:3px solid #1e5bd8}.position-strategy-empty-detail{border:1px solid #e1e8f6;border-radius:8px;background:#f8fbff;padding:12px;color:#66728a;font-size:12px}.position-strategy-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:32px}.position-strategy-detail-head h2{margin:0;color:#15356b;font-size:15px;font-weight:800}.position-strategy-detail-head span{display:block;margin-top:4px;color:#66728a;font-size:12px;line-height:1.35;word-break:keep-all}.position-strategy-tabs{display:flex;flex-wrap:wrap;gap:6px;border:1px solid #d9e2f4;border-radius:8px;padding:6px;background:#f8fbff;margin:0}.position-strategy-tabs button{flex:0 0 auto;min-height:32px;border:1px solid transparent;border-radius:7px;padding:0 12px;background:#fff;color:#334155;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.position-strategy-tabs button:hover{background:#eef4ff;border-color:#c9d8f7}.position-strategy-tabs button.active{border-color:#1e5bd8;background:#1e5bd8;color:#fff}.position-strategy-detail-content{min-height:0;overflow:visible}.position-detail-group{border:1px solid #e1e8f6;border-radius:8px;background:#f8fbff;padding:14px}.position-detail-group h3{margin:0 0 12px;color:#15356b;font-size:14px;font-weight:800}.position-detail-group dl,.position-detail-group ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;color:#263a5e;font-size:12.5px}.position-detail-group dl div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:start}.position-detail-group dt,.position-detail-group dd{margin:0;min-width:0}.position-detail-group dt{color:#66728a}.position-state-steps{display:grid;gap:14px;align-items:center;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr}.position-state-step{border:1px solid #d7e2f2;border-radius:8px;background:#fff;padding:12px}.position-state-step span{display:block;color:#334155;font-size:11px;margin-bottom:6px;font-weight:800}.position-state-step strong{display:block;color:#1e5bd8;font-size:15px;margin-bottom:4px}.position-state-step small{color:#64748b;font-size:11.5px}.position-state-arrow{justify-self:center;color:#1e5bd8;font-weight:900}.position-state-diagram{margin:14px 0 0;list-style:none;border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:11px 12px;color:#1e293b;font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-weight:700}.position-state-diagram span{display:inline-block}.position-state-diagram strong{color:#64748b}.position-detail-sub-list{margin-top:14px!important}.position-policy-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.position-policy-matrix article{border:1px solid #d7e2f2;border-radius:8px;background:#fff;padding:12px}.position-policy-matrix article h4,.position-policy-matrix article p{margin:0}.position-policy-matrix article h4{color:#334155;font-size:12px;margin-bottom:6px}.position-policy-matrix article p{color:#1e5bd8;font-size:13.5px;font-weight:800}.position-policy-list{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}.position-policy-list li{display:flex;justify-content:space-between;border:1px solid #d7e2f2;border-radius:8px;background:#fff;padding:10px;color:#263a5e;font-size:12px}.position-detail-caption{margin:14px 0 0;color:#66728a;font-size:11px}.position-strategy-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.position-strategy-summary-grid article{border:1px solid #e1e8f6;border-radius:8px;background:#fff;padding:12px 14px;display:grid;gap:8px}.position-strategy-summary-grid span{color:#64748b;font-size:12px}.position-strategy-summary-grid strong{color:#163d91;font-size:21px}.position-comparison-wrap{border:1px solid #d9e2f4;border-radius:8px;overflow:auto;min-height:0;background:#fff}.position-strategy-extra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.position-strategy-extra-card{border:1px solid #d9e2f4;border-radius:8px;background:#fbfdff;padding:14px;display:flex;flex-direction:column;min-height:260px}.position-strategy-extra-card h3{margin:0 0 12px;color:#15356b;font-size:13px;flex-shrink:0}.position-strategy-extra-card-content{min-height:0;flex:1;overflow:auto}.position-market-fit-grid{display:grid;gap:8px}.position-market-fit-grid div{display:flex;justify-content:space-between;border:1px solid #d7e2f2;border-radius:8px;padding:10px 12px;background:#fff}.position-market-fit-grid span{font-size:12px;color:#64748b}.position-market-fit-grid strong{color:#1e5bd8;font-size:13px;letter-spacing:.5px}.position-insight-card ul{margin:0;padding:0 0 0 18px;display:grid;gap:10px;color:#334155;font-size:12px;line-height:1.4}.position-insight-card li{padding-left:0}.position-strategy-advanced-switch{display:grid;gap:6px;border:1px solid #d9e2f4;border-radius:8px;background:#f8fbff;padding:10px}.position-strategy-advanced-switch span{color:#64748b;font-size:12px}.position-strategy-advanced-switch .strategy-button{width:fit-content}.position-strategy-form-grid{grid-template-columns:repeat(4,minmax(140px,1fr))!important}.position-strategy-form-grid .template-description{grid-column:span 4}.position-strategy-empty-detail strong,.position-strategy-empty-detail,.position-detail-group ul,.position-detail-group dl{margin-bottom:0}.panel-head{min-height:36px;margin-bottom:10px}.panel-head>span,.panel-head>div>span{color:#66728a;font-size:12px;font-weight:800}.panel-head-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.trading-simulation-card-actions{width:100%}.trading-simulation-card-toggle{margin-left:auto}.panel-head-actions span{color:#66728a;font-size:12px;font-weight:800}.strategy-watch-panel{display:flex;flex-direction:column;height:430px;min-height:0}.strategy-summary-panel{min-height:430px}.position-stocks-page .strategy-stock-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:stretch;gap:14px}.position-stocks-page .strategy-stock-layout .strategy-panel,.position-stocks-page .strategy-stock-summary-card{border-color:#d7e0ef;box-shadow:0 8px 20px #19356b0d}.position-stocks-page .strategy-watch-panel{height:430px;padding:10px}.position-stocks-page .strategy-summary-panel{display:flex;flex-direction:column;height:430px;min-height:0;overflow:hidden;padding:10px}.position-stocks-page .strategy-summary-panel>h2{flex:0 0 auto;margin-bottom:8px}.position-stocks-page .selected-strategy-summary{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:3px;scrollbar-gutter:stable;scrollbar-width:thin}.position-stocks-page .strategy-watch-panel .panel-head{min-height:26px;margin-bottom:6px}.strategy-summary-lot-panel{margin-top:14px;border-top:1px solid #e1e8f6;padding-top:12px}.strategy-table{width:100%;border-collapse:collapse;min-width:820px;font-size:12px}.strategy-table.compact{min-width:680px;table-layout:fixed}.strategy-table th,.strategy-table td{border:1px solid #e1e8f6;padding:8px 9px;text-align:left;vertical-align:middle}.strategy-table th{background:#f4f7fd;color:#183d78;font-size:12px;font-weight:800;line-height:1.25}.strategy-table small{display:block;color:#66728a;margin-top:3px;line-height:1.35}.strategy-table .strategy-volume-line,.strategy-table .strategy-rate-line{color:#66728a;font-size:11px;font-weight:500}.strategy-backtest-trades-table{min-width:1320px;table-layout:fixed;font-size:11px}.strategy-backtest-trades-table th,.strategy-backtest-trades-table td{padding:6px}.strategy-backtest-trades-table .backtest-trade-col-date{width:82px}.strategy-backtest-trades-table .backtest-trade-col-side{width:46px}.strategy-backtest-trades-table .backtest-trade-col-source{width:92px}.strategy-backtest-trades-table .backtest-trade-col-lot{width:44px}.strategy-backtest-trades-table .backtest-trade-col-qty{width:42px}.strategy-backtest-trades-table .backtest-trade-col-rate{width:64px}.strategy-backtest-trades-table .backtest-trade-col-condition{width:130px}.strategy-backtest-trades-table .backtest-trade-col-value{width:76px}.strategy-backtest-trades-table .backtest-trade-col-price{width:78px}.strategy-backtest-trades-table .backtest-trade-col-amount,.strategy-backtest-trades-table .backtest-trade-col-profit{width:88px}.strategy-backtest-trades-table .backtest-trade-col-reason{width:auto}.strategy-backtest-trades-table th:not(:last-child),.strategy-backtest-trades-table td:not(.backtest-trade-reason-cell){white-space:nowrap}.backtest-trade-reason-cell span{display:-webkit-box;overflow:hidden;color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.3;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.strategy-simulation-compact-card .backtest-trade-reason-cell span{color:inherit;font-size:11px;font-weight:400}.strategy-backtest-analysis-table{min-width:960px;table-layout:fixed}.strategy-backtest-analysis-table th,.strategy-backtest-analysis-table td{padding:7px 8px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.strategy-backtest-analysis-table .backtest-analysis-col-condition{width:24%}.strategy-backtest-analysis-table .backtest-analysis-col-field{width:15%}.strategy-backtest-analysis-table .backtest-analysis-col-count{width:9%}.strategy-backtest-analysis-table .backtest-analysis-col-value{width:11%}.strategy-backtest-analysis-table .backtest-analysis-col-nearest{width:12%}.strategy-backtest-analysis-table td:nth-child(3),.strategy-backtest-analysis-table td:nth-child(4),.strategy-backtest-analysis-table td:nth-child(5),.strategy-backtest-analysis-table td:nth-child(6),.strategy-backtest-analysis-table td:nth-child(7){white-space:nowrap}.strategy-backtest-analysis-table td:last-child span,.strategy-backtest-analysis-table td:last-child small{display:block}.table-scroll{overflow-x:auto;scrollbar-gutter:stable;scrollbar-width:thin}.table-scroll::-webkit-scrollbar,.compact-monitor-scroll::-webkit-scrollbar,.strategy-debug-terminal::-webkit-scrollbar,.strategy-modal::-webkit-scrollbar{width:8px;height:8px}.table-scroll::-webkit-scrollbar-thumb,.compact-monitor-scroll::-webkit-scrollbar-thumb,.strategy-debug-terminal::-webkit-scrollbar-thumb,.strategy-modal::-webkit-scrollbar-thumb{border-radius:8px;background:#b8c7df}.table-scroll::-webkit-scrollbar-track,.compact-monitor-scroll::-webkit-scrollbar-track,.strategy-modal::-webkit-scrollbar-track{background:#f4f7fd}.strategy-watch-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;border:1px solid #e1e8f6;border-radius:8px;scrollbar-gutter:stable;scrollbar-width:thin}.strategy-watch-scroll::-webkit-scrollbar{width:8px;height:8px}.strategy-watch-scroll::-webkit-scrollbar-thumb{border-radius:8px;background:#b8c7df}.strategy-watch-scroll::-webkit-scrollbar-track{background:#f4f7fd}.strategy-watch-table{table-layout:fixed;min-width:1040px}.strategy-position-items-table,.position-stocks-page .strategy-position-items-table{min-width:1110px}.strategy-watch-table th,.strategy-watch-table td{height:48px;padding:7px 9px}.position-stocks-page .strategy-position-items-table th,.position-stocks-page .strategy-position-items-table td{height:58px;padding:6px 8px}.position-stocks-page .strategy-position-items-table th{color:#163d78;background:#f5f8fd;font-size:11px}.position-stocks-page .strategy-position-items-table td{color:#263a5e;font-size:11px;line-height:1.2}.position-stocks-page .strategy-position-items-table .watch-primary{font-size:11px;line-height:1.2}.position-stocks-page .strategy-position-items-table .watch-secondary,.position-stocks-page .strategy-position-items-table small{margin-top:3px;font-size:9.5px;line-height:1.15}.position-stocks-page .strategy-position-items-table .strategy-button{min-height:24px;padding:3px 7px;border-radius:5px;font-size:10.5px}.position-stocks-page .strategy-position-items-table .position-state-badge,.position-stocks-page .strategy-position-items-table .strategy-config-status-badge{min-width:74px;min-height:24px;padding:5px 8px;border-radius:5px;font-size:9.5px;white-space:nowrap}.position-stocks-page .strategy-position-items-table .strategy-config-cell{min-width:96px}.position-stocks-page .strategy-position-items-table .strategy-config-hint{display:block;max-width:96px;margin:4px auto 0;color:#9a3412;font-weight:800;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.strategy-watch-table thead th{position:sticky;top:0;z-index:1}.watch-col-name{width:142px}.watch-col-trend{width:108px}.watch-col-trend-state{width:116px}.watch-col-investment{width:150px}.watch-col-adjustment{width:140px}.watch-col-money{width:128px}.watch-col-fill{width:112px}.watch-col-state{width:126px}.watch-col-position-strategy{width:142px}.watch-col-config{width:100px}.watch-col-action{width:156px}.watch-col-price,.watch-col-rate{width:118px}.watch-col-strategy{width:156px}.watch-col-threshold{width:112px}.watch-col-signal{width:116px}.watch-col-action{width:82px}.position-stocks-page .strategy-position-items-table .watch-cell-name,.position-stocks-page .strategy-position-items-table .watch-cell-number,.position-stocks-page .strategy-position-items-table .watch-cell-center{vertical-align:middle}.position-stocks-page .strategy-position-items-table .watch-cell-name,.position-stocks-page .strategy-position-items-table .watch-cell-number{text-align:left}.position-stocks-page .strategy-position-items-table .watch-cell-number{text-align:right}.position-stocks-page .strategy-position-items-table .watch-cell-center,.position-stocks-page .strategy-position-items-table .watch-cell-actions{text-align:center}.watch-cell-trend-state{min-width:0}.watch-cell-trend-state strong,.watch-cell-trend-state .position-state-badge{display:inline-flex;justify-content:center}.watch-cell-trend-state strong{width:100%;margin-bottom:4px;font-size:12px;line-height:1}.position-stocks-page .strategy-position-items-table .watch-cell-trend-state .position-state-badge{min-width:96px}.strategy-icon-action-group{justify-content:center;gap:6px}.strategy-icon-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #d5def2;border-radius:6px;background:#fff;color:#1d3f76;font-size:15px;font-weight:900;line-height:1;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.strategy-icon-action-button:hover{border-color:#1e5bd8;background:#edf4ff;color:#1e5bd8}.fill-rate-cell{display:grid;gap:6px}.fill-rate-cell strong{color:#142c57;font-size:12px;font-weight:900}.fill-rate-track{display:block;width:100%;height:7px;overflow:hidden;border-radius:999px;background:#e4eaf3}.fill-rate-track i{display:block;height:100%;border-radius:inherit;background:#22a85a}.fill-rate-track.accumulate i{background:#16a34a}.fill-rate-track.hold i{background:#2563eb}.fill-rate-track.reduce i{background:#f97316}.fill-rate-track.exit i{background:#dc2626}.fill-rate-track.wait i{background:#94a3b8}.position-stocks-page .fill-rate-cell{gap:4px}.position-stocks-page .fill-rate-track{height:6px;background:#edf2f8}.position-state-badge,.strategy-config-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:68px;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:900;line-height:1}.position-state-badge.accumulate,.position-state-dot.accumulate{background:#dcfce7;color:#047857}.position-state-dot.accumulate{background:#16a34a}.position-state-badge.hold,.position-state-dot.hold{background:#dbeafe;color:#1d4ed8}.position-state-dot.hold{background:#2563eb}.position-state-badge.reduce,.position-state-dot.reduce{background:#ffedd5;color:#c2410c}.position-state-dot.reduce{background:#f97316}.position-state-badge.exit,.position-state-dot.exit{background:#fee2e2;color:#dc2626}.position-state-dot.exit{background:#dc2626}.position-state-badge.wait,.position-state-dot.wait{background:#f1f5f9;color:#475569}.position-state-dot.wait{background:#94a3b8}.strategy-config-status-badge.configured{background:#dcfce7;color:#047857}.strategy-config-status-badge.partial{background:#fff7ed;color:#c2410c}.strategy-config-status-badge.unconfigured{background:#f1f5f9;color:#475569}.strategy-config-status-badge.unknown{background:#f8fafc;color:#64748b}.watch-primary,.watch-secondary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-primary{color:inherit;font-size:12.5px;font-weight:800;line-height:1.3}.watch-secondary,.strategy-table .watch-secondary{margin-top:2px;color:#74829a;font-size:10.5px;font-weight:600;line-height:1.2}.strategy-watch-row{cursor:pointer}.strategy-watch-row:hover td{background:#f8fbff}.strategy-watch-row.selected td{border-top-color:#b8cdfb;border-bottom-color:#b8cdfb;background:#eef4ff}.strategy-watch-row.selected td:first-child{border-left:3px solid #1e5bd8}.strategy-template-scroll,.strategy-lot-scroll{max-height:300px;overflow:auto;border:1px solid #e1e8f6;border-radius:8px}.strategy-template-scroll thead th,.strategy-lot-scroll thead th{position:sticky;top:0;z-index:1}.strategy-template-scroll .strategy-table,.strategy-lot-scroll .strategy-table{border:0}.strategy-template-table{width:100%;min-width:640px;table-layout:fixed}.strategy-template-table .template-col-name{width:52%}.strategy-template-table .template-col-type{width:18%}.strategy-template-table .template-col-active{width:12%}.strategy-template-table .template-col-action{width:18%}.strategy-template-table th,.strategy-template-table td{padding:9px 12px}.strategy-template-table th:nth-child(3),.strategy-template-table td:nth-child(3){text-align:center}.strategy-template-table th:last-child,.strategy-template-table td:last-child{text-align:right}.strategy-template-table td:first-child strong,.strategy-template-table td:first-child small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-select-row{cursor:pointer}.strategy-select-row:hover td{background:#f8fbff}.strategy-select-row.selected td{background:#eef4ff}.strategy-lot-table{min-width:640px}.monitor-watch-row td{background:#fbfdff}.monitor-watch-row td:last-child{color:#66728a;font-size:12px;font-weight:800}.compact-monitor-scroll{height:310px;max-height:310px;overflow-y:auto;overflow-x:auto;border:1px solid #e1e8f6;border-radius:8px;scrollbar-gutter:stable;scrollbar-width:thin}.compact-monitor-table{min-width:1120px;table-layout:fixed}.compact-monitor-report-scroll{height:430px;max-height:430px;max-width:100%;overflow-x:auto;overflow-y:auto;width:100%}.compact-monitor-report-scroll td,.compact-monitor-report-scroll th,.trading-simulation-summary-scroll td,.trading-simulation-summary-scroll th{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.compact-monitor-report-table{min-width:1280px}.compact-monitor-performance-table{min-width:1180px}.compact-monitor-table th,.compact-monitor-table td{height:40px;padding:7px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-monitor-table thead th{position:sticky;top:0;z-index:1}.monitor-row.status-guard-pass td{background:#f1fbf5}.monitor-row.status-guard-fail td,.monitor-row.status-fail td{background:#fff4f2}.monitor-row.status-buy-done td{background:#fff1f3}.monitor-row.status-sell-done td,.monitor-row.status-buy-candidate td{background:#f0f6ff}.monitor-row.status-buy-signal td{background:#f1fbf5}.monitor-row.status-sell-signal td{background:#fff7ed}.monitor-row.status-skip td{background:#fffaf0}.status-pill{display:inline-flex;align-items:center;max-width:100%;min-height:21px;border-radius:4px;padding:2px 7px;background:#eef1f7;color:#5d687d;font-size:11px;font-weight:800;white-space:nowrap}.status-pill.status-guard-pass{background:#e4f7ec;color:#087a3d}.status-pill.status-guard-fail,.status-pill.status-fail{background:#ffe8e4;color:#bd2431}.status-pill.status-buy-done{background:#ffe8ed;color:#d1193e}.status-pill.status-sell-done{background:#e6f0ff;color:#1e5bd8}.status-pill.status-skip{background:#fff2cc;color:#9a6200}.status-pill.status-signal{background:#e8f0ff;color:#1e5bd8}.status-pill.status-buy-candidate{background:#e6f0ff;color:#1e5bd8}.status-pill.status-buy-signal{background:#e4f7ec;color:#087a3d}.status-pill.status-sell-signal{background:#ffedd5;color:#c2410c}.system-log-page{display:grid;grid-template-rows:auto auto minmax(360px,1fr);gap:12px;min-height:calc(100vh - 150px);background:#f8fafc}.system-log-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.system-operation-log-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.system-log-summary-card{display:grid;gap:4px;min-height:70px;border:1px solid #dbe5f1;border-left:4px solid #2563eb;border-radius:8px;background:#fff;padding:10px 12px;box-shadow:0 10px 24px #0f172a0a}.system-log-summary-card.green{border-left-color:#16a34a}.system-log-summary-card.orange{border-left-color:#f97316}.system-log-summary-card.red{border-left-color:#dc2626}.system-log-summary-card.gray{border-left-color:#64748b}.worker-heartbeat-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.worker-heartbeat-page{grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:calc(100vh - 136px)}.system-log-summary-card span,.system-log-summary-card small{overflow:hidden;color:#64748b;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.system-log-summary-card strong{overflow:hidden;color:#0f172a;font-size:22px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.system-operation-log-summary-grid .system-log-summary-card{min-height:58px;gap:3px;padding:8px 10px}.system-operation-log-summary-grid .system-log-summary-card span,.system-operation-log-summary-grid .system-log-summary-card small{font-size:11px}.system-operation-log-summary-grid .system-log-summary-card strong{font-size:18px}.price-watch-page{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-height:calc(100vh - 150px);background:#f8fafc}.price-watch-topbar-status,.worker-heartbeat-topbar-status{gap:10px}.price-watch-auto-refresh-badge{display:inline-grid;gap:1px;min-width:150px;max-width:240px;border:1px solid #dbe5f1;border-radius:999px;background:#f8fafc;padding:4px 12px;color:#475569;line-height:1.2}.price-watch-auto-refresh-badge strong,.price-watch-auto-refresh-badge small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-watch-auto-refresh-badge strong{color:inherit;font-size:11px;font-weight:900}.price-watch-auto-refresh-badge small{color:#64748b;font-size:10px;font-weight:800}.price-watch-auto-refresh-badge.mqtt-connected{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.price-watch-auto-refresh-badge.mqtt-reloading{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.price-watch-auto-refresh-badge.mqtt-error,.price-watch-auto-refresh-badge.mqtt-unsupported{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.price-watch-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.price-watch-main-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(360px,2fr);gap:12px;align-items:stretch;height:max(1140px,calc(100vh - 260px));min-height:0}.price-watch-card-panel,.price-watch-detail-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 10px 24px #0f172a0a;min-height:0;height:100%}.price-watch-card-panel,.price-watch-detail-panel{padding:12px}.price-watch-card-panel{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.price-watch-detail-panel{position:static;display:grid;align-content:start;grid-auto-rows:max-content;gap:12px;max-height:none;overflow-y:auto;overscroll-behavior:contain}.price-watch-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.price-watch-panel-head.compact{margin-bottom:6px}.price-watch-panel-head h2,.price-watch-panel-head h3,.price-watch-detail-head h2{margin:0;color:#0f172a;font-size:17px;line-height:1.2}.price-watch-panel-head p,.price-watch-detail-head p{margin:4px 0 0;color:#64748b;font-size:12px;font-weight:800}.price-watch-source-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.price-watch-source-badges span{display:inline-flex;align-items:center;min-height:22px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#64748b;padding:0 7px;font-size:11px;font-weight:900}.price-watch-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;min-height:0;overflow-y:auto;padding-right:2px}.price-watch-stock-card{display:grid;gap:10px;min-width:0;border:1px solid #dbe5f1;border-radius:8px;background:#fff;padding:12px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.price-watch-stock-card:hover,.price-watch-stock-card:focus-visible,.price-watch-stock-card.selected{border-color:#2563eb;background:#f8fbff;box-shadow:0 10px 20px #2563eb14;outline:none}.price-watch-stock-card header,.price-watch-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.price-watch-stock-card header div,.price-watch-detail-head div{min-width:0}.price-watch-stock-card header strong,.price-watch-stock-card header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-watch-stock-card header strong{color:#0f172a;font-size:15px}.price-watch-stock-card header small{color:#64748b;font-size:11px;font-weight:900}.price-watch-card-quote{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:7px;min-width:0;border:1px solid #e2e8f0;border-radius:7px;background:#fff;padding:9px 10px}.price-watch-card-quote span{color:#64748b;font-size:11px;font-weight:900}.price-watch-card-quote strong{overflow:hidden;font-size:19px;font-weight:950;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.price-watch-card-quote em{font-size:12px;font-style:normal;font-weight:950;line-height:1.1}.price-watch-card-ohlc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;min-width:0;padding:0 2px}.price-watch-card-ohlc span{overflow:hidden;color:#64748b;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.price-watch-card-ohlc b{color:#475569;font-weight:900}.price-watch-card-phase{overflow:hidden;margin:-2px 0 0;color:#334155;font-size:11px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.price-watch-plan-stack{display:grid;gap:7px;min-width:0}.price-watch-plan-block{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:stretch;gap:8px;min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:8px}.price-watch-plan-block.buy{border-color:#bfdbfe;background:#f8fbff}.price-watch-plan-block.sell{border-color:#fecaca;background:snow}.price-watch-plan-side{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#fff;font-size:11px;font-weight:950;letter-spacing:0}.price-watch-plan-block.buy .price-watch-plan-side{color:#2563eb}.price-watch-plan-block.sell .price-watch-plan-side{color:#dc2626}.price-watch-plan-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0}.price-watch-plan-values span{min-width:0;border:1px solid rgba(148,163,184,.22);border-radius:7px;background:#fff;padding:5px 6px}.price-watch-plan-values small,.price-watch-plan-values strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-watch-plan-values small{color:#64748b;font-size:10px;font-weight:900}.price-watch-plan-values strong{margin-top:2px;color:#0f172a;font-size:12px;font-weight:950}.price-watch-json-copy-box{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc;padding:9px 10px}.price-watch-phase-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e3a8a;padding:10px}.price-watch-phase-banner.status-observing,.price-watch-phase-banner.status-running{border-color:#86efac;background:#f0fdf4;color:#166534}.price-watch-phase-banner.status-failed{border-color:#fecaca;background:#fef2f2;color:#991b1b}.price-watch-phase-banner.status-waiting,.price-watch-phase-banner.status-running-waiting-open{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.price-watch-phase-banner div{min-width:0}.price-watch-phase-banner strong,.price-watch-phase-banner span,.price-watch-phase-banner b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-watch-phase-banner strong{font-size:13px;font-weight:950}.price-watch-phase-banner span{margin-top:2px;font-size:11px;font-weight:800}.price-watch-phase-banner b{flex:0 0 auto;font-size:12px;font-weight:950}.price-watch-json-copy-box.success{border-color:#bbf7d0;background:#f0fdf4}.price-watch-json-copy-box.error{border-color:#fecaca;background:#fef2f2}.price-watch-json-copy-box div{min-width:0}.price-watch-json-copy-box strong,.price-watch-json-copy-box span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-watch-json-copy-box strong{color:#0f172a;font-size:12px;font-weight:900}.price-watch-json-copy-box span{margin-top:2px;color:#64748b;font-size:11px;font-weight:800}.price-watch-json-copy-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;min-height:32px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#2563eb;cursor:pointer;padding:0 9px;font-size:12px;font-weight:900}.price-watch-json-copy-button:hover,.price-watch-json-copy-button:focus-visible{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.price-watch-json-copy-button span{font-size:15px;line-height:1}.price-watch-json-copy-button b{font-size:11px;line-height:1}.price-watch-detail-basics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.price-watch-detail-basics div{min-width:0;border-radius:7px;background:#f8fafc;padding:8px}.price-watch-detail-basics dt,.price-watch-detail-basics dd{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.price-watch-detail-basics dt{color:#64748b;font-size:11px;font-weight:900}.price-watch-detail-basics dd{color:#0f172a;font-size:13px;font-weight:900}.price-watch-session-table-wrap{overflow:auto}.price-watch-session-table{min-width:920px}.price-watch-intraday-chart-panel{display:grid;gap:10px;min-width:0;border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:12px}.price-watch-intraday-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.price-watch-intraday-chart-head h3{margin:0;color:#0f172a;font-size:14px;line-height:1.2}.price-watch-intraday-chart-head p{margin:4px 0 0;color:#64748b;font-size:11px;font-weight:800}.price-watch-intraday-chart-head>span{flex:0 0 auto;border-radius:999px;background:#eff6ff;color:#2563eb;padding:4px 8px;font-size:11px;font-weight:900}.price-watch-intraday-chart-stack{display:grid;gap:8px;min-width:0}.price-watch-intraday-chart-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.price-watch-intraday-chart-meta span{min-width:0;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:var(--color-text-sub);padding:6px 7px;font-size:11px;font-weight:900}.price-watch-intraday-chart-meta strong{display:block;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap}.price-watch-combined-chart{display:block;width:100%;overflow:hidden;border:1px solid #cbd5e1;border-radius:8px;background:#fff;height:330px}.price-watch-candle-wick{stroke-width:1.2;vector-effect:non-scaling-stroke}.price-watch-candle-body{vector-effect:non-scaling-stroke}.price-watch-candle-wick.is-up,.price-watch-candle-body.is-up,.price-watch-volume-bar.is-up{stroke:#dc2626;fill:#dc2626}.price-watch-candle-wick.is-down,.price-watch-candle-body.is-down,.price-watch-volume-bar.is-down{stroke:#2563eb;fill:#2563eb}.price-watch-candle-wick.is-flat,.price-watch-candle-body.is-flat,.price-watch-volume-bar.is-flat{stroke:#94a3b8;fill:#94a3b8}.price-watch-volume-bar{opacity:.52}.price-watch-chart-grid-line{stroke:#e2e8f0;stroke-width:1;vector-effect:non-scaling-stroke}.price-watch-chart-grid-line.vertical{opacity:.55}.price-watch-chart-axis{stroke:#cbd5e1;stroke-width:1;vector-effect:non-scaling-stroke}.price-watch-chart-tick-label{fill:#64748b;font-size:10px;font-weight:800}.price-watch-chart-tick-label.price{text-anchor:start}.price-watch-chart-tick-label.time{text-anchor:middle}.price-watch-current-price-line{stroke:#0f172a;stroke-dasharray:5 4;stroke-width:1.1;opacity:.72;vector-effect:non-scaling-stroke}.price-watch-current-price-label{fill:#0f172a;font-size:10px;font-weight:900}.price-watch-session-marker-line{stroke:#64748b;stroke-dasharray:3 5;stroke-width:1;opacity:.7;vector-effect:non-scaling-stroke}.price-watch-session-marker-label{fill:#475569;font-size:10px;font-weight:900}.price-watch-chart-section-label{fill:#64748b;font-size:10px;font-weight:900}.price-watch-chart-scrollbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;color:#64748b;font-size:11px;font-weight:900}.price-watch-chart-scrollbar input[type=range]{width:100%;accent-color:#2563eb}.price-watch-chart-scrollbar input[type=range]:disabled{opacity:.45}@media (max-width: 1180px){.price-watch-page{grid-template-rows:auto;min-height:0}.price-watch-main-grid{grid-template-columns:1fr;height:auto}.price-watch-card-panel,.price-watch-detail-panel{height:auto;overflow:visible}.price-watch-card-grid{max-height:none;overflow:visible}}@media (max-width: 720px){.price-watch-card-grid,.price-watch-detail-basics,.price-watch-intraday-chart-meta{grid-template-columns:1fr}.price-watch-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-watch-combined-chart{height:310px}.price-watch-chart-scrollbar{grid-template-columns:1fr}}.price-watch-up{color:#dc2626!important}.price-watch-down{color:#2563eb!important}.price-watch-flat{color:#64748b!important}.status-pill.status-partial-failed,.status-pill.status-ttl-expired,.status-pill.status-intraday-candles-not-found{background:#fffbeb;color:#c2410c}.status-pill.status-waiting{background:#f1f5f9;color:#475569}.status-pill.status-observing,.status-pill.status-running{background:#dcfce7;color:#166534}.status-pill.status-running-waiting-open{background:#ffedd5;color:#9a3412}.status-pill.status-session-calculated,.status-pill.status-finished{background:#dbeafe;color:#1d4ed8}.status-pill.status-not-started,.status-pill.status-no-targets{background:#f1f5f9;color:#64748b}.system-log-filter-bar,.system-log-table-panel{border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 10px 24px #0f172a0a}.system-log-filter-bar{padding:10px}.system-log-filter-form{display:grid;grid-template-columns:190px 150px 190px minmax(260px,1fr) 86px;gap:8px;align-items:center}.system-log-filter-form.system-operation-log-filter-form{grid-template-columns:172px 132px 156px minmax(220px,1fr) 72px;gap:6px}.worker-heartbeat-filter-form{grid-template-columns:136px 190px minmax(220px,1fr) auto auto 74px;justify-content:start;gap:6px}.worker-heartbeat-stale-toggle{display:flex;gap:7px;min-height:34px;align-items:center;justify-content:flex-start;border:1px solid #dbe5f1;border-radius:7px;background:#f8fafc;padding:0 9px;color:#334155;font-size:12px;font-weight:900;white-space:nowrap}.worker-heartbeat-stale-toggle input{width:14px;height:14px;min-height:0;margin:0;padding:0}.system-log-filter-form select,.system-log-filter-form input{width:100%;min-width:0;min-height:36px;border:1px solid #dbe5f1;border-radius:7px;background:#fff;padding:0 10px;color:#0f172a;font-size:13px;font-weight:800}.system-operation-log-filter-form select,.system-operation-log-filter-form input,.system-operation-log-filter-form .system-log-period-control,.system-operation-log-filter-form .system-log-filter-submit{height:34px;min-height:34px}.system-operation-log-filter-form .system-log-filter-submit{width:100%;margin:0;align-self:center;grid-column:auto;padding:0 12px;font-size:12px;line-height:1}#admin-app .system-operation-log-filter-form .system-log-filter-submit{height:34px;min-height:34px;margin:0;padding:0 12px}.system-log-filter-form .worker-heartbeat-stale-toggle input{width:14px;min-width:14px;min-height:14px;height:14px;border-radius:4px;padding:0}.system-log-period-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-height:36px;border:1px solid #dbe5f1;border-radius:7px;background:#f8fafc;padding:3px}.system-log-period-control button{min-width:0;border:0;border-radius:5px;background:transparent;color:#64748b;font-size:12px;font-weight:900;cursor:pointer}.system-operation-log-filter-form .system-log-period-control button{min-height:0;padding:0 4px;line-height:1}#admin-app .system-operation-log-filter-form .system-log-period-control button{height:100%;min-height:0;margin:0;padding:0 4px}.system-log-period-control button.active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0f172a1f}.system-log-table-panel{display:grid;grid-template-rows:auto minmax(280px,1fr);min-height:420px;overflow:hidden}.worker-heartbeat-table-panel{grid-template-rows:auto auto minmax(260px,1fr);min-height:0}.system-log-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;border-bottom:1px solid #e2e8f0;padding:10px 12px}.system-log-table-head h3{margin:0;color:#0f172a;font-size:15px;line-height:1.2}.system-log-table-head p{margin:2px 0 0;color:#64748b;font-size:12px;font-weight:800}.system-log-pagination{display:flex;align-items:center;gap:8px;color:#475569;font-size:13px;font-weight:800;white-space:nowrap}.system-log-table-wrap{overflow:auto;min-height:280px}.system-log-table{width:100%;min-width:1160px;border-collapse:collapse;table-layout:fixed}.system-log-table th{position:sticky;top:0;z-index:1;border-bottom:1px solid #dbe5f1;background:#f8fafc;color:#475569;padding:9px 10px;font-size:11px;font-weight:900;text-align:left;white-space:nowrap}.system-log-table td{border-bottom:1px solid #eef2f7;color:#334155;padding:10px;font-size:12px;font-weight:800;vertical-align:middle}.system-operation-log-table{min-width:1080px}.system-operation-log-table th{padding:7px 8px}.system-operation-log-table td{padding:6px 8px;line-height:1.25}.system-log-table th:nth-child(1),.system-log-table td:nth-child(1){width:105px}.system-log-table th:nth-child(2),.system-log-table td:nth-child(2),.system-log-table th:nth-child(3),.system-log-table td:nth-child(3){width:150px}.system-log-table th:nth-child(4),.system-log-table td:nth-child(4){width:80px}.system-log-table th:nth-child(5),.system-log-table td:nth-child(5){width:260px}.system-log-table th:nth-child(6),.system-log-table td:nth-child(6){width:190px}.system-log-table th:nth-child(7),.system-log-table td:nth-child(7){width:170px}.system-log-table th:nth-child(8),.system-log-table td:nth-child(8){width:145px}.system-log-table th:nth-child(9),.system-log-table td:nth-child(9){width:84px}.system-operation-log-table th:nth-child(1),.system-operation-log-table td:nth-child(1){width:92px}.system-operation-log-table th:nth-child(2),.system-operation-log-table td:nth-child(2),.system-operation-log-table th:nth-child(3),.system-operation-log-table td:nth-child(3){width:124px}.system-operation-log-table th:nth-child(4),.system-operation-log-table td:nth-child(4){width:68px}.system-operation-log-table th:nth-child(5),.system-operation-log-table td:nth-child(5){width:250px}.system-operation-log-table th:nth-child(6),.system-operation-log-table td:nth-child(6){width:150px}.system-operation-log-table th:nth-child(7),.system-operation-log-table td:nth-child(7){width:140px}.system-operation-log-table th:nth-child(8),.system-operation-log-table td:nth-child(8){width:112px}.system-operation-log-table th:nth-child(9),.system-operation-log-table td:nth-child(9){width:54px;text-align:center}.worker-heartbeat-source-note{margin:0;color:#64748b;font-size:12px;font-weight:800}.worker-heartbeat-table-toolbar{border-bottom:1px solid #e2e8f0;background:#fff;padding:8px 10px}.worker-heartbeat-table-panel .system-log-loading-state,.worker-heartbeat-table-panel .system-log-empty-state{min-height:180px}.worker-heartbeat-table{min-width:1260px}.worker-heartbeat-table th:nth-child(1),.worker-heartbeat-table td:nth-child(1){width:105px}.worker-heartbeat-table th:nth-child(2),.worker-heartbeat-table td:nth-child(2){width:230px}.worker-heartbeat-table th:nth-child(3),.worker-heartbeat-table td:nth-child(3){width:200px}.worker-heartbeat-table th:nth-child(4),.worker-heartbeat-table td:nth-child(4){width:160px}.worker-heartbeat-table th:nth-child(5),.worker-heartbeat-table td:nth-child(5){width:180px}.worker-heartbeat-table th:nth-child(6),.worker-heartbeat-table td:nth-child(6){width:180px}.worker-heartbeat-table th:nth-child(7),.worker-heartbeat-table td:nth-child(7){width:90px}.worker-heartbeat-table th:nth-child(8),.worker-heartbeat-table td:nth-child(8),.worker-heartbeat-table th:nth-child(9),.worker-heartbeat-table td:nth-child(9),.worker-heartbeat-table th:nth-child(10),.worker-heartbeat-table td:nth-child(10){width:72px;text-align:right}.worker-heartbeat-table th:nth-child(11),.worker-heartbeat-table td:nth-child(11){width:84px}.worker-heartbeat-delay-stale{color:#c2410c!important}.worker-heartbeat-detail-wide{grid-column:span 2}.worker-heartbeat-alert{display:grid;gap:3px;margin-top:10px;border:1px solid #fecaca;border-radius:8px;background:#fff5f5;padding:10px 12px;color:#991b1b;font-size:12px;font-weight:800}.worker-heartbeat-alert strong{color:#7f1d1d;font-size:13px}.worker-heartbeat-alert small{color:#b45309;font-size:11px}.data-collection-status-page{grid-template-rows:minmax(0,1fr);gap:10px;min-height:calc(100vh - 112px);overflow:auto}#admin-app .data-collection-topbar-status{gap:12px}.data-collection-status-page .system-log-filter-bar{padding:8px 10px}.data-collection-status-page .message{min-height:0;margin:0 10px 8px;font-size:12px}.data-collection-status-page .message.info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.data-collection-status-page .message.warning{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.data-collection-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.data-collection-filter-form{grid-template-columns:160px 130px 112px 142px 142px 142px 74px;gap:6px;justify-content:start}.data-collection-filter-form select,.data-collection-filter-form input,.data-collection-filter-form .primary-button{min-height:36px;height:36px;padding-top:0;padding-bottom:0;font-size:12px}.data-collection-readiness-panel{display:grid;grid-template-rows:auto minmax(0,1fr);height:auto;min-height:max(760px,calc(100vh - 150px));overflow:visible}.data-collection-readiness-panel .system-log-table-head{padding:10px 12px}.data-collection-readiness-panel .system-log-table-head h3{font-size:15px}.data-collection-readiness-panel .system-log-table-head p{margin-top:2px;font-size:11px}.data-collection-readiness-body{display:grid;grid-template-rows:minmax(520px,1fr) minmax(160px,200px);gap:12px;min-height:0;padding:10px;overflow:visible}.data-collection-readiness-top{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px;min-height:0}.data-collection-readiness-list{display:grid;align-content:start;gap:6px;min-height:520px;overflow-y:auto;padding-right:2px}.data-collection-readiness-row{display:flex;min-height:50px;min-width:0;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;padding:7px 9px}.data-collection-readiness-row .readiness-label{min-width:230px;max-width:480px}.data-collection-readiness-row strong,.data-collection-failure-row strong{display:block;overflow:hidden;color:#0f172a;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.data-collection-readiness-row small,.data-collection-failure-row small{display:block;overflow:hidden;margin-top:3px;color:#64748b;font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.readiness-fill{flex:1 1 auto;min-width:24px;border-bottom:1px dashed #d8e0ea}.readiness-status{display:grid;justify-items:end;min-width:172px;gap:2px}.readiness-status .status-pill{justify-content:center;min-width:86px}.data-collection-repair-actions{display:grid;align-content:start;gap:6px;height:100%;min-height:0;max-height:100%;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;padding:8px;overflow:hidden}.data-collection-repair-actions>span{margin:0 0 2px;color:#64748b;font-size:11px;font-weight:900}.data-collection-repair-actions>small{color:#94a3b8;font-size:11px;font-weight:800}.data-collection-repair-button{min-height:32px;height:32px;justify-content:flex-start;width:100%;padding:0 9px;font-size:11px}.data-collection-repair-button:disabled,.data-collection-repair-button:disabled:hover{background:#e2e8f0;color:#64748b;cursor:not-allowed;transform:none}.data-repair-modal-backdrop{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0f172a57;padding:24px;pointer-events:all;cursor:wait}.data-repair-modal{display:grid;width:min(420px,100%);gap:10px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a38;padding:18px 20px;cursor:default}.data-repair-modal-title{color:#0f172a;font-size:16px;font-weight:900}.data-repair-modal-message{margin:0;color:#475569;font-size:13px;font-weight:800;line-height:1.5}.data-repair-modal small{color:#64748b;font-size:11px;font-weight:800;line-height:1.45}.data-repair-progress{position:relative;height:5px;overflow:hidden;border-radius:999px;background:#dbeafe}.data-repair-progress-bar{position:absolute;top:0;bottom:0;left:-40%;width:40%;border-radius:inherit;background:#2563eb;animation:data-repair-progress .9s ease-in-out infinite}@keyframes data-repair-progress{0%{transform:translate(0)}to{transform:translate(350%)}}.data-collection-failure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0}.data-collection-failure-grid article{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;padding:8px;overflow:hidden}.data-collection-failure-grid h4{margin:0 0 6px;color:#0f172a;font-size:12px;font-weight:900}.data-collection-failure-list{display:grid;align-content:start;gap:6px;min-height:0;overflow-y:auto;padding-right:2px}.data-collection-failure-row{min-width:0;border-radius:6px;background:#fff;padding:8px 9px}.data-collection-mini-empty{align-self:stretch;display:grid;align-content:center;border-radius:6px;background:#fff;padding:12px;color:#64748b;font-size:12px;font-weight:800;text-align:center}.data-collection-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.data-collection-card{min-height:300px}.data-collection-card-wide{grid-column:1 / -1}.data-collection-step-list,.data-collection-compact-list,.data-collection-trend-grid{display:grid;gap:8px;padding:10px;overflow:auto}.data-collection-step-row,.data-collection-compact-row,.data-collection-trend-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:10px}.data-collection-compact-row,.data-collection-trend-row{grid-template-columns:auto minmax(0,1fr)}.data-collection-step-row strong,.data-collection-compact-row strong,.data-collection-trend-row strong{display:block;overflow:hidden;color:#0f172a;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.data-collection-step-row small,.data-collection-compact-row small,.data-collection-trend-row small{display:block;overflow:hidden;margin-top:3px;color:#64748b;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.data-collection-step-row dl{display:grid;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.data-collection-step-row dl div{border-radius:6px;background:#f8fafc;padding:7px}.data-collection-step-row dt{color:#64748b;font-size:11px;font-weight:900}.data-collection-step-row dd{margin:2px 0 0;color:#0f172a;font-size:13px;font-weight:900}.data-collection-log-table{min-width:1320px}.data-collection-log-table th:nth-child(1),.data-collection-log-table td:nth-child(1){width:155px}.data-collection-log-table th:nth-child(2),.data-collection-log-table td:nth-child(2){width:150px}.data-collection-log-table th:nth-child(3),.data-collection-log-table td:nth-child(3){width:250px}.data-collection-log-table th:nth-child(4),.data-collection-log-table td:nth-child(4){width:100px}.data-collection-log-table th:nth-child(5),.data-collection-log-table td:nth-child(5){width:160px}.data-collection-log-table th:nth-child(6),.data-collection-log-table td:nth-child(6){width:130px}.data-collection-log-table th:nth-child(7),.data-collection-log-table td:nth-child(7){width:135px}.data-collection-log-table th:nth-child(8),.data-collection-log-table td:nth-child(8){width:260px}.data-collection-log-table th:nth-child(9),.data-collection-log-table td:nth-child(9){width:84px}.system-log-table td,.system-log-table td strong,.system-log-table td small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-log-table td strong{display:block;color:#0f172a;font-size:12px}.system-log-table td small{display:block;margin-top:3px;color:#64748b;font-size:11px}.system-operation-log-table td small{margin-top:2px;font-size:10px}#admin-app .system-log-pagination .compact-button{display:inline-flex;width:28px;height:28px;min-height:28px;align-items:center;justify-content:center;margin:0;padding:0;border-radius:7px;font-size:16px;line-height:1}#admin-app .system-log-detail-toggle{display:inline-flex;width:28px;height:28px;min-height:28px;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc;color:#334155;padding:0;cursor:pointer}#admin-app .system-log-detail-toggle:hover{border-color:#94a3b8;background:#eef2f7}#admin-app .system-log-detail-toggle:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.system-log-detail-icon{display:block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}.system-log-detail-icon.expanded{transform:translateY(2px) rotate(225deg)}.system-log-table-row{cursor:pointer}.system-log-table-row:hover td{background:#f8fafc}.system-log-detail-row td{padding:0;background:#f8fafc}.system-log-detail-panel{display:grid;gap:10px;border-top:1px solid #dbe5f1;border-bottom:1px solid #dbe5f1;background:#f8fafc;padding:14px}.system-log-detail-panel h3{margin:0;color:#0f172a;font-size:14px}.system-log-detail-panel dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.system-log-detail-panel dl div{min-width:0;border:1px solid #e2e8f0;border-radius:7px;background:#fff;padding:8px}.system-log-detail-panel dt{color:#64748b;font-size:11px;font-weight:900}.system-log-detail-panel dd{overflow:hidden;margin:3px 0 0;color:#0f172a;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.system-log-context-box{display:grid;gap:6px}.system-log-context-box span{color:#64748b;font-size:11px;font-weight:900}.system-log-context-box pre{overflow:auto;max-height:220px;margin:0;border:1px solid #dbe5f1;border-radius:7px;background:#0f172a;padding:10px;color:#e2e8f0;font-size:12px;line-height:1.5}.system-log-loading-state,.system-log-empty-state{display:grid;align-content:center;justify-items:center;min-height:260px;gap:6px;padding:24px;color:#64748b;font-size:13px;font-weight:800;text-align:center}.system-log-empty-state strong{color:#0f172a;font-size:15px}.system-log-empty-state small{color:#94a3b8;font-size:12px}.system-log-empty-state.compact{min-height:120px}.status-pill.status-success{background:#e4f7ec;color:#087a3d}.status-pill.status-failed{background:#ffe8e4;color:#bd2431}.status-pill.status-warning{background:#fff2cc;color:#9a6200}.status-pill.status-resolved{background:#e7f5ee;color:#26734d}.status-pill.status-partial{background:#fff2cc;color:#9a6200}.status-pill.status-stale{background:#ffedd5;color:#c2410c}.status-pill.status-running,.status-pill.status-started{background:#e8f0ff;color:#1e5bd8}.status-pill.status-stopped{background:#eef1f7;color:#475569}.status-pill.status-skipped{background:#eef1f7;color:#5d687d}@media (max-width: 1180px){.system-log-filter-form{grid-template-columns:190px 150px 190px minmax(240px,1fr)}.worker-heartbeat-filter-form{grid-template-columns:160px 220px minmax(220px,1fr)}.data-collection-filter-form{grid-template-columns:180px 140px minmax(150px,1fr)}.data-collection-failure-grid{grid-template-columns:1fr}.system-log-filter-form .primary-button{grid-column:4}.system-operation-log-filter-form .system-log-filter-submit,.data-collection-filter-form .primary-button,.worker-heartbeat-filter-form .primary-button,.worker-heartbeat-filter-form .secondary-button{grid-column:auto}.system-log-detail-panel dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 780px){.system-log-page{min-height:auto}.system-log-table-head{align-items:flex-start;flex-direction:column}.system-log-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-collection-status-grid{grid-template-columns:1fr}.data-collection-card-wide{grid-column:auto}.data-collection-readiness-panel{height:auto;min-height:0;overflow:visible}.data-collection-readiness-body{grid-template-rows:auto;overflow:visible}.data-collection-readiness-top{grid-template-columns:1fr}.data-collection-readiness-list{min-height:0;max-height:none}.system-log-filter-form,.system-log-filter-form.system-operation-log-filter-form{grid-template-columns:1fr 1fr}.worker-heartbeat-filter-form,.data-collection-filter-form{grid-template-columns:1fr}.data-collection-readiness-row{align-items:stretch;flex-direction:column}.data-collection-readiness-row .readiness-label,.readiness-status{min-width:0;max-width:none;justify-items:start}.readiness-fill{display:none}.system-log-filter-form input,.system-log-filter-form .primary-button,.worker-heartbeat-filter-form select,.worker-heartbeat-filter-form input,.worker-heartbeat-filter-form label,.worker-heartbeat-filter-form .primary-button,.worker-heartbeat-filter-form .secondary-button{grid-column:1 / -1}.system-log-detail-panel dl{grid-template-columns:1fr}.worker-heartbeat-detail-wide{grid-column:auto}}.mini-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;min-width:34px;min-height:20px;padding:2px 6px;border-radius:4px;background:#e4f7ec;color:#087a3d;font-size:11px;font-weight:800}.mini-badge.off{background:#eef1f7;color:#5d687d}.strategy-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.strategy-summary-grid div,.strategy-rule-note{border:1px solid #e1e8f6;border-radius:8px;padding:12px;background:#fbfdff}.strategy-summary-grid strong{display:block;font-size:24px;color:#163d91}.strategy-rule-note{margin-top:12px;padding:10px 12px;line-height:1.4;font-size:12px}.strategy-rule-note-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.strategy-rule-note-head .strategy-button{min-height:30px;padding:6px 10px;font-size:11px}.selected-strategy-summary{display:grid;gap:10px}.selected-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e1e8f6;border-radius:8px;background:#f8fbff;padding:10px 11px}.selected-summary-head strong,.selected-summary-head span{display:block}.selected-summary-head strong{color:#15356b;font-size:16px}.selected-summary-head span{margin-top:2px;color:#66728a;font-size:11px;font-weight:700}.selected-summary-metrics,.selected-summary-list{display:grid;gap:7px;margin:0}.selected-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-summary-metrics div,.selected-summary-list div,.selected-summary-strategy article{border:1px solid #e1e8f6;border-radius:8px;background:#fff;padding:9px 10px}.selected-summary-list div{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:8px}.selected-summary-metrics dt,.selected-summary-list dt,.selected-summary-strategy span{color:#66728a;font-size:11px;font-weight:700}.selected-summary-metrics dd,.selected-summary-list dd{margin:0;color:#263a5e;font-size:12.5px;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-summary-strategy{display:grid;gap:7px}.selected-summary-strategy article{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:8px}.selected-summary-strategy strong{display:block;min-width:0;margin-top:0;color:#263a5e;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-summary-strategy .mini-badge{margin:0}.selected-summary-actions{display:flex;gap:8px;margin-top:2px}.selected-summary-actions .strategy-button{flex:1 1 0}.position-stocks-page .selected-summary-head{background:linear-gradient(180deg,#fbfdff,#f5f8fd);padding:7px 9px}.position-stocks-page .selected-summary-head strong{font-size:14px}.position-stocks-page .selected-summary-metrics{gap:6px}.position-stocks-page .selected-summary-metrics div{min-height:48px;padding:7px 8px;background:#fbfdff}.position-stocks-page .selected-summary-metrics dd{color:#122d64;font-size:13px;font-weight:900}.position-stocks-page .selected-summary-list{gap:0}.position-stocks-page .selected-summary-list.compact-detail-list div{position:relative;display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:10px;min-height:30px;border:0;border-bottom:1px solid #edf2f8;border-radius:0;background:transparent;padding:5px 2px}.position-stocks-page .selected-summary-list.compact-detail-list dt{display:block;color:#66728a;font-size:11px;font-weight:800;line-height:1.2;text-align:right;white-space:nowrap}.position-stocks-page .selected-summary-list.compact-detail-list dt:after{content:" :"}.position-stocks-page .selected-summary-list.compact-detail-list div:before{content:none}.position-stocks-page .selected-summary-list.compact-detail-list dd{display:flex;align-items:center;gap:8px;color:#172f5f;font-size:12px;font-weight:900;line-height:1.2;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.position-stocks-page .selected-summary-list.compact-detail-list .selected-summary-separator{display:block;min-height:8px;border:0;padding:0}.position-stocks-page .selected-summary-list.compact-detail-list .position-state-badge,.position-stocks-page .selected-summary-list.compact-detail-list .strategy-config-status-badge{flex:0 0 auto;min-width:82px}.position-stocks-page .selected-summary-list.compact-detail-list .strategy-config-summary{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.position-stocks-page .selected-summary-list.compact-detail-list .strategy-config-detail-hint{color:#9a3412;font-size:11px;font-weight:700;line-height:1.45;max-width:280px;white-space:normal}.required-policy-list{display:grid;gap:8px;border:1px solid #e1e8f6;border-radius:8px;background:#fff;padding:10px}.required-policy-list>strong{color:#163d78;font-size:13px}.required-policy-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;color:#263a5e;font-size:12px;font-weight:800}.position-stocks-page .required-policy-list{gap:5px;background:#fbfdff;padding:7px 8px}.position-stocks-page .required-policy-list>strong{padding-bottom:5px;border-bottom:1px solid #e1e8f6}.position-stocks-page .required-policy-list div{font-size:11px}.position-stocks-page .required-policy-list span{display:inline-flex;align-items:center;gap:6px}.position-stocks-page .required-policy-list span:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;background:#dcfce7;color:#047857;font-size:10px;font-weight:900}.position-stocks-page .required-policy-list span.off:before{content:"×";background:#e2e8f0;color:#64748b}.position-stocks-page .selected-summary-actions{position:sticky;bottom:0;z-index:2;margin-top:0;padding-top:7px;background:linear-gradient(180deg,#ffffffc2,#fff 45%)}.position-stocks-page .selected-summary-actions .strategy-button{min-height:32px;padding:7px 10px}.required-policy-list b{border-radius:5px;padding:4px 7px;background:#dcfce7;color:#047857;font-size:10px;font-weight:900}.required-policy-list b.off{background:#f1f5f9;color:#64748b}.strategy-stock-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.position-stocks-page .strategy-stock-summary-grid{align-items:stretch;gap:12px}.strategy-stock-summary-card{border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:14px}.position-stocks-page .strategy-stock-summary-card{display:flex;flex-direction:column;min-height:0;padding:10px 12px}.strategy-stock-summary-card h3{margin:0 0 12px;color:#102a56;font-size:14px;font-weight:900}.position-stocks-page .strategy-stock-summary-card h3{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #e7edf7;font-size:13px}.position-stocks-page .strategy-stock-summary-card h3:before{content:"";width:9px;height:9px;border-radius:999px;background:#2563eb}.strategy-stock-summary-card dl{display:grid;gap:8px;margin:0}.position-stocks-page .strategy-stock-summary-card dl{flex:1 1 auto;align-content:start;gap:4px}.strategy-stock-summary-card div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.position-stocks-page .strategy-stock-summary-card div{min-height:18px}.strategy-stock-summary-card dt{color:#66728a;font-size:11px;font-weight:800}.strategy-stock-summary-card dd{margin:0;color:#102a56;font-size:13px;font-weight:900;text-align:right}.position-stocks-page .strategy-stock-summary-card dd{font-size:13px}.state-distribution-list dt{display:inline-flex;align-items:center;gap:7px}.position-state-dot{width:9px;height:9px;border-radius:999px}.segmented-actions button{padding:0 14px;margin:0}.segmented-actions button.active{border-color:#1e5bd8;background:#1e5bd8;color:#fff}.condition-preview-sections{display:grid;gap:10px;margin-top:10px;max-height:270px;overflow:auto;padding-right:2px;scrollbar-gutter:stable;scrollbar-width:thin}.condition-preview-sections article{border:1px solid #e1e8f6;border-radius:6px;padding:10px;background:#f8fbff}.condition-preview>strong,.condition-preview>p{display:block;min-width:0}.condition-preview>p{margin:6px 0 0;color:#66728a;font-size:12px;line-height:1.45}.condition-preview-sections h3{margin:0 0 8px;color:#263a5e;font-size:13px}.condition-preview-sections ul{display:grid;gap:6px;margin:0;padding-left:18px;color:#4f6282;font-size:12px}.condition-runtime-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.condition-runtime-summary span{border-radius:999px;padding:5px 9px;background:#edf4ff;color:#1e5bd8;font-size:12px;font-weight:800}.strategy-modal{width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;border-radius:8px;background:#fff;padding:18px}.strategy-setting-modal{width:min(760px,calc(100vw - 32px))}.strategy-template-modal{width:min(980px,calc(100vw - 32px))}.target-adjustment-modal{width:min(860px,calc(100vw - 32px));padding:20px}.strategy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.strategy-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#263a5e}.strategy-form .full{grid-column:1 / -1}.strategy-form .inline-check{flex-direction:row;align-items:center;font-weight:600}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.target-adjustment-form{display:grid;gap:14px}.target-adjustment-summary-grid,.target-adjustment-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.target-adjustment-summary-grid>div,.target-adjustment-result>div{border:1px solid #d9e2f4;border-radius:8px;background:#f8fbff;padding:10px 12px}.target-adjustment-summary-grid span,.target-adjustment-result span{display:block;color:#66728a;font-size:12px;font-weight:700}.target-adjustment-summary-grid strong,.target-adjustment-result strong{display:block;margin-top:4px;color:#15356b;font-size:15px;font-weight:900}.target-adjustment-summary-grid strong.dashboard-red,.target-adjustment-result strong.dashboard-red{color:#d84242}.target-adjustment-summary-grid strong.dashboard-blue,.target-adjustment-result strong.dashboard-blue{color:#1f6ed4}.target-adjustment-input-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.target-adjustment-input-grid fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;margin:0;border:0;padding:0}.target-adjustment-input-grid legend{grid-column:1 / -1;padding:0;color:#263a5e;font-size:12px;font-weight:800}.target-adjustment-input-grid label{display:flex;flex-direction:column;gap:6px;color:#263a5e;font-size:12px;font-weight:800}.target-adjustment-input-grid .full{grid-column:1 / -1}.target-adjustment-input-grid input:not([type=radio]){min-width:0;min-height:38px;border:1px solid #d5def2;border-radius:6px;background:#fff;padding:8px 10px;color:#263a5e;font-size:13px;font-weight:700}.target-adjustment-input-grid .strategy-radio-option{position:relative;display:block!important;min-width:0;margin:0;padding:0;white-space:nowrap}.target-adjustment-input-grid .strategy-radio-option input{position:absolute;opacity:0;pointer-events:none}.target-adjustment-input-grid .strategy-radio-option span{display:flex;align-items:center;justify-content:center;min-height:38px;border:1px solid #d5def2;border-radius:6px;background:#fff;color:#41516b;padding:8px 10px;font-size:12px;font-weight:900}.target-adjustment-input-grid .strategy-radio-option input:checked+span{border-color:#1e5bd8;background:#1e5bd8;color:#fff}.target-adjustment-input-preview{color:#66728a;font-size:11px;font-weight:800;text-align:right}.target-adjustment-result{grid-template-columns:repeat(3,minmax(0,1fr))}.target-adjustment-warning{margin:0;border:1px solid #f7c56b;border-radius:8px;background:#fff8e8;padding:9px 11px;color:#9a5b00;font-size:12px;font-weight:800}.target-adjustment-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.target-adjustment-submit-actions{display:flex;justify-content:flex-end;gap:8px}.target-adjustment-history{border:1px solid #d9e2f4;border-radius:8px;overflow:hidden}.target-adjustment-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e3eaf6;background:#f5f8fd;padding:9px 11px;color:#263a5e;font-size:12px;font-weight:800}.target-adjustment-history-scroll{max-height:220px}.strategy-setting-form{display:grid;gap:12px}.setting-stock-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.setting-stock-strip>div{border:1px solid #e1e8f6;border-radius:8px;background:#f8fbff;padding:10px 12px}.setting-stock-strip span{display:block;color:#66728a;font-size:12px;font-weight:700}.setting-stock-strip strong{display:block;margin-top:5px;color:#15356b;font-size:15px}.setting-section{border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:12px}.setting-section.full{grid-column:1 / -1}.setting-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.setting-section-head h3{margin:0;color:#15356b;font-size:14px;font-weight:800}.setting-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.strategy-setting-form label{display:flex;flex-direction:column;gap:6px;color:#263a5e;font-size:12px;font-weight:700}.strategy-setting-form input:not([type=checkbox]),.strategy-setting-form select{min-width:0;border:1px solid #d5def2;border-radius:6px;background:#fff;min-height:38px;padding:8px 10px;color:#263a5e;font-size:13px;font-weight:700}.setting-input-pair{display:grid;grid-template-columns:minmax(0,1fr) 58px;align-items:center;gap:6px}.setting-input-pair em{color:#66728a;font-size:12px;font-style:normal;font-weight:700;white-space:nowrap}.strategy-toggle,.setting-inline-toggles{display:inline-flex;align-items:center;gap:8px}.strategy-toggle{flex-direction:row!important;color:#263a5e;font-size:12px;font-weight:800}.strategy-toggle input{width:38px;height:20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cfdaf0;border-radius:999px;background:#dbe3f1;cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease}.strategy-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #0f172a38;transition:transform .15s ease}.strategy-toggle input:checked{border-color:#1e5bd8;background:#1e5bd8}.strategy-toggle input:checked:after{transform:translate(18px)}.setting-inline-toggles{flex-wrap:wrap}.template-detail-form{display:grid;gap:12px}.template-basic-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(150px,.7fr) minmax(140px,.7fr) 96px;gap:10px;align-items:end;border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:12px}.template-basic-grid label,.template-condition-tools label,.template-runtime-grid label{display:flex;flex-direction:column;gap:6px;color:#263a5e;font-size:12px;font-weight:700}.template-basic-grid input:not([type=checkbox]),.template-basic-grid select,.template-condition-tools select,.template-runtime-grid input{min-width:0;border:1px solid #d5def2;border-radius:6px;background:#fff;min-height:38px;padding:8px 10px;color:#263a5e;font-size:13px;font-weight:700}.template-description{grid-column:1 / span 3}.template-active-toggle{align-self:center;justify-self:end}.template-condition-section,.template-example-box{border:1px solid #d9e2f4;border-radius:8px;background:#fff;padding:12px}.template-json-section{display:grid;gap:10px}.template-condition-tools{display:inline-flex;align-items:end;gap:8px;flex-wrap:wrap}.template-condition-tools label{min-width:120px}.template-condition-table-wrap{max-height:310px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin}.template-condition-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.template-condition-table th,.template-condition-table td{border:1px solid #e1e8f6;padding:8px;vertical-align:middle}.template-condition-table th{position:sticky;top:0;z-index:1;background:#f4f7fd;color:#183d78;font-weight:800;text-align:left}.template-condition-table select,.template-condition-table input{width:100%;min-height:36px;border:1px solid #d5def2;border-radius:6px;background:#fff;padding:7px 9px;font-size:12px}.template-condition-table th:last-child,.template-condition-table td:last-child{width:54px;text-align:center}.template-json-editor{width:100%;min-height:260px;resize:vertical;border:1px solid #d5def2;border-radius:6px;background:#0f172a;padding:10px 12px;color:#e5edf8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45;-moz-tab-size:2;tab-size:2}.template-json-editor:focus{border-color:#2f6feb;box-shadow:0 0 0 2px #2f6feb26;outline:none}.template-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px}.template-example-box{background:#f8fbff}.template-example-box h3{margin:0 0 8px;color:#15356b;font-size:14px;font-weight:800}.template-example-box p{margin:0;color:#263a5e;font-size:13px;line-height:1.5}.strategy-debug-panel{background:#101827;border-color:#223149;color:#d8e3f5;box-shadow:none}.strategy-debug-panel h2{color:#f6f9ff}.strategy-debug-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px 12px;flex-wrap:wrap}.strategy-debug-tools label{display:inline-flex;align-items:center;gap:5px;color:#d8e3f5;font-size:12px;font-weight:700}.strategy-debug-tools input{width:14px;height:14px;accent-color:#7fb0ff}.strategy-debug-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.strategy-debug-summary span{border:1px solid #334561;border-radius:6px;padding:5px 8px;background:#172338;color:#d8e3f5;font-size:12px}.strategy-debug-terminal{height:156px;max-height:156px;overflow:auto;border:1px solid #263955;border-radius:6px;background:#0b1220;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.strategy-debug-terminal p{margin:0 0 6px;color:#c7d2e4;font-size:12px;line-height:1.45;white-space:pre-wrap}.strategy-debug-terminal time{color:#8ea4c7;margin-right:8px}.strategy-debug-terminal span{margin-right:8px;font-weight:700}.strategy-debug-terminal .debug-ok span{color:#54d48a}.strategy-debug-terminal .debug-info span{color:#7fb0ff}.strategy-debug-terminal .debug-error span{color:#ff6b7d}.strategy-debug-terminal .debug-buy span{color:#ff7a8a}.strategy-debug-terminal .debug-sell span{color:#7fb0ff}.strategy-debug-terminal .debug-skip span{color:#f6c85f}.strategy-debug-terminal .debug-empty{color:#8ea4c7;font-style:normal}.trading-simulation-input-panel{grid-column:1 / -1;border:1px solid #d8e2f3;border-radius:8px;background:#f8fbff;padding:14px}.panel-head.compact{margin-bottom:12px}.panel-head.compact h3{margin:0;color:#10284f;font-size:15px;font-weight:800}.panel-head.compact span{font-size:12px}.trading-simulation-input-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.trading-simulation-lot-panel{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:12px;margin-top:12px}.trading-simulation-no-lot-toggle{align-self:start;justify-content:space-between;border:1px solid #d8e2f3;border-radius:6px;background:#fff;padding:9px 10px}.trading-simulation-temp-lots{border:1px solid #d8e2f3;border-radius:6px;background:#fff;padding:10px}.trading-simulation-temp-lots.disabled{opacity:.58;pointer-events:none}.trading-simulation-temp-lot-head,.trading-simulation-temp-lot-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;align-items:end}.trading-simulation-temp-lot-head{grid-template-columns:1fr auto;margin-bottom:8px;align-items:center}.trading-simulation-temp-lot-head strong{color:#10284f;font-size:13px}.trading-simulation-temp-lot-row+.trading-simulation-temp-lot-row{margin-top:8px}.trading-simulation-input-warnings{display:grid;gap:4px;margin:12px 0 0;padding:10px 12px 10px 28px;border:1px solid #f7d48a;border-radius:6px;background:#fff8e6;color:#7a4b00;font-size:12px;line-height:1.45}@media (max-width: 1100px){.strategy-layout,.strategy-lower-grid,.strategy-bottom-grid,.strategy-monitoring-summary,.strategy-simulation-layout{grid-template-columns:1fr}.strategy-backtest-summary,.position-strategy-kpi-grid,.position-strategy-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.position-strategy-page-head{flex-direction:column}.position-strategy-layout-grid,.position-strategy-extra-grid{grid-template-columns:1fr}.position-strategy-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.position-strategy-detail-panel,.position-strategy-list-panel{min-height:0}.test-signal-form,.strategy-simulation-form,.benchmark-compact-form.strategy-simulation-form{grid-template-columns:repeat(2,minmax(0,1fr))}.benchmark-compact-form .position-state-simulator-options{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.benchmark-compact-form .test-signal-actions{grid-column:1 / -1}.benchmark-mtf-compact-form.strategy-simulation-form,.benchmark-baseline-info dl,.trading-simulation-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trading-simulation-lot-panel,.trading-simulation-temp-lot-row{grid-template-columns:1fr}.strategy-watch-panel,.strategy-summary-panel{height:auto;min-height:0}.strategy-watch-scroll{max-height:420px}}@media (max-width: 720px){.strategy-toolbar{align-items:stretch}.strategy-filters,.strategy-toolbar{flex-direction:column}.strategy-filters input,.strategy-filters select,.strategy-button,.strategy-socket-status{width:100%}.strategy-panel{padding:12px}.strategy-simulation-form,.benchmark-compact-form.strategy-simulation-form,.benchmark-mtf-compact-form.strategy-simulation-form,.benchmark-compact-form .position-state-simulator-options{grid-template-columns:1fr}.benchmark-baseline-info-head{align-items:flex-start;flex-direction:column}.benchmark-baseline-info dl{grid-template-columns:1fr}.benchmark-compact-form .position-state-simulator-options,.benchmark-compact-form .test-signal-actions{grid-column:auto}.trading-simulation-input-grid,.trading-simulation-lot-panel,.trading-simulation-temp-lot-row,.setting-stock-strip,.setting-grid,.setting-control-row,.template-basic-grid,.template-runtime-grid,.test-signal-form{grid-template-columns:1fr}.test-signal-actions{justify-content:stretch}.strategy-backtest-summary{grid-template-columns:1fr}.template-description{grid-column:auto}.template-active-toggle{justify-self:start}.setting-control-row .strategy-button{width:100%}.selected-summary-metrics,.selected-summary-list div,.selected-summary-strategy article{grid-template-columns:1fr}.position-state-steps{grid-template-columns:1fr}.position-state-arrow{transform:rotate(90deg)}.position-state-diagram{justify-content:center}.position-policy-matrix{grid-template-columns:1fr}.position-strategy-summary-grid{grid-template-columns:1fr 1fr}.position-strategy-form-grid,.position-strategy-form-grid .template-description{grid-template-columns:1fr!important}.position-strategy-form-grid .template-description{grid-column:auto!important}.compact-monitor-scroll{height:280px;max-height:280px}.setting-section-head{align-items:flex-start;flex-direction:column}}#admin-app .performance-analysis-page .performance-card{grid-area:auto;height:auto;order:initial}#admin-app .performance-analysis-page .performance-trend-card,#admin-app .performance-analysis-page .performance-strategy-card,#admin-app .performance-analysis-page .performance-stock-card,#admin-app .performance-analysis-page .performance-position-card{grid-column:span 6}#admin-app .performance-analysis-page .performance-lot-card,#admin-app .performance-analysis-page .performance-heatmap-card,#admin-app .performance-analysis-page .performance-insight-card{grid-column:span 4}@media (max-width: 1280px){#admin-app .performance-analysis-page .performance-trend-card,#admin-app .performance-analysis-page .performance-strategy-card,#admin-app .performance-analysis-page .performance-stock-card,#admin-app .performance-analysis-page .performance-position-card,#admin-app .performance-analysis-page .performance-lot-card,#admin-app .performance-analysis-page .performance-heatmap-card,#admin-app .performance-analysis-page .performance-insight-card{grid-column:span 12}}.trend-context-analysis-page{display:flex;flex-direction:column;gap:16px}.trend-context-head,.trend-context-filter-card,.trend-context-card{border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 10px 22px #0f172a0d}.trend-context-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}.trend-context-head h2,.trend-context-card-head h3{margin:0;color:#111827}.trend-context-head p,.trend-context-card-head span,.trend-context-head-actions span{margin:4px 0 0;color:#64748b;font-size:13px}.trend-context-head-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.trend-context-filter-card{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:12px}.trend-context-filter-card label{display:flex;flex-direction:column;gap:4px;color:#475569;font-size:12px;font-weight:800;min-width:0}.trend-context-filter-left{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;align-items:end;min-width:0}.trend-context-stock-field{flex:0 1 320px}.trend-context-date-field{flex:0 0 168px}.trend-context-strategy-field{flex:0 1 240px}.trend-context-recalculate-button{flex:0 0 auto}.trend-context-filter-card select,.trend-context-filter-card input{width:100%;border:1px solid #d1d5db;border-radius:7px;padding:8px 10px;font-size:13px;text-overflow:ellipsis}.trend-context-filter-status{display:flex;flex:0 1 260px;min-height:36px;flex-direction:column;justify-content:center;gap:2px;border:1px solid #e5e7eb;border-radius:7px;background:#f8fafc;padding:6px 9px;color:#475569;font-size:12px;font-weight:700;min-width:180px}.trend-context-filter-status strong{font-weight:900}.trend-context-filter-status small{color:#64748b;font-weight:600}.trend-context-filter-status .complete,.trend-context-filter-status .calculated{color:#166534}.trend-context-filter-status .partial,.trend-context-filter-status .missing{color:#92400e}.trend-context-filter-status .failed{color:#b91c1c}.trend-context-filter-status .unknown{color:#475569}.trend-context-filter-actions{display:flex;flex:0 0 auto;gap:6px;align-items:flex-end}.trend-context-query-button{display:inline-flex;align-items:center;justify-content:center;min-width:88px;height:38px;padding:0 14px;border:1px solid #1d4ed8;border-radius:8px;background:#eff6ff;color:#1d4ed8;cursor:pointer;font-size:13px;font-weight:900;white-space:nowrap}.trend-context-query-button:hover:not(:disabled){background:#dbeafe}.trend-context-query-button:disabled{cursor:not-allowed;opacity:.5}.trend-context-icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:20px;font-weight:900;line-height:1}.trend-context-icon-button:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}.trend-context-icon-button:focus-visible{outline:2px solid rgba(37,99,235,.45);outline-offset:2px}.trend-context-icon-button.primary{border-color:#1d4ed8;background:#eff6ff;color:#1d4ed8}.trend-context-icon-button.primary:hover:not(:disabled){background:#dbeafe}.trend-context-icon-button:disabled{cursor:not-allowed;opacity:.42}.trend-context-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(320px,3fr);gap:16px;align-items:start}.trend-context-main-column{display:flex;min-width:0;flex-direction:column;gap:16px}.trend-context-card{padding:16px;min-width:0}.trend-context-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.trend-context-card-head.compact{margin-bottom:8px}.trend-context-detail-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px}.trend-context-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;color:#64748b;font-size:12px}.trend-context-legend span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:999px;background:#111827}.trend-context-legend .candle:before{background:linear-gradient(90deg,#dc2626 0,#dc2626 50%,#2563eb 50%,#2563eb)}.trend-context-legend .ma20:before{background:#2563eb}.trend-context-legend .ma60:before{background:#16a34a}.trend-context-legend .ma120:before{background:#f97316}.trend-context-legend .volume:before{background:#94a3b8}.trend-context-legend .cycle:before{background:#7c3aed}.trend-context-legend .score:before{background:#7c3aed}.trend-context-chart-wrap{position:relative;display:flex;flex-direction:column;gap:6px}.trend-context-price-chart,.trend-context-volume-chart,.trend-context-score-chart{position:relative;min-width:0}.trend-context-price-chart{height:330px}.trend-context-volume-chart{height:104px}.trend-context-score-chart{height:240px}.trend-context-price-chart canvas,.trend-context-volume-chart canvas,.trend-context-score-chart canvas{display:block;width:100%;height:100%}.trend-context-chart-note{margin:4px 0 0;color:#64748b;font-size:12px;line-height:1.4}.trend-context-empty{display:flex;align-items:center;justify-content:center;min-height:220px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;font-size:13px;text-align:center}.trend-context-empty.compact{min-height:120px}.trend-context-transition-list{display:grid;max-height:178px;overflow-y:auto;border:1px solid #eef2f7;border-radius:8px}.trend-context-transition-row{display:grid;grid-template-columns:112px minmax(96px,.7fr) minmax(120px,1fr);gap:10px;align-items:center;border:0;border-bottom:1px solid #eef2f7;background:#fff;color:#334155;cursor:pointer;font:inherit;font-size:12px;padding:8px 10px;text-align:left}.trend-context-transition-row:last-child{border-bottom:0}.trend-context-transition-row:hover{background:#f8fafc}.trend-context-transition-row strong{color:#111827;font-size:12px}.trend-context-transition-row em{color:#475569;font-style:normal;font-weight:800}.trend-context-detail-card{position:sticky;top:16px}.trend-context-detail-section{border-top:1px solid #eef2f7;padding-top:12px;margin-top:12px}.trend-context-detail-section:first-of-type{border-top:0;padding-top:0;margin-top:0}.trend-context-detail-section h4{margin:0 0 10px;color:#111827;font-size:13px}.trend-context-detail-section p{margin:6px 0;color:#475569;font-size:13px;line-height:1.5}.trend-context-floor-notice{border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;padding:8px 10px;color:#9a3412!important;font-size:12px!important;font-weight:700}.trend-context-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.trend-context-detail-grid div{min-width:0;border-radius:7px;background:#f8fafc;padding:8px}.trend-context-detail-grid dt{margin:0 0 4px;color:#64748b;font-size:11px;font-weight:800}.trend-context-detail-grid dd{margin:0;color:#111827;font-size:13px;font-weight:800;word-break:break-word}.trend-context-score-reason{display:block;margin-top:3px;color:#64748b;font-size:11px;font-weight:700;line-height:1.3}.trend-context-status{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:2px 8px;background:#eef2ff;color:#3730a3;font-size:11px}.trend-context-status.breakdown,.trend-context-status.blocked{background:#fee2e2;color:#b91c1c}.trend-context-status.warning,.trend-context-status.shoulder{background:#fef3c7;color:#92400e}.trend-context-status.ready,.trend-context-status.trend,.trend-context-status.strong,.trend-context-status.strong-trend{background:#dcfce7;color:#166534}.market-position-state-page{gap:16px}.market-position-state-notice{border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e3a8a;padding:12px 14px;font-size:13px;line-height:1.6}.market-position-state-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;width:100%}.market-position-state-summary-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}.market-position-state-distribution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.market-position-state-bars{display:flex;flex-direction:column;gap:10px}.market-position-state-bar-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(80px,1.2fr) 42px;align-items:center;gap:8px;font-size:12px}.market-position-state-bar-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-position-state-bar-row>div{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.market-position-state-bar-row i{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.market-position-state-layout{grid-template-columns:minmax(0,1fr) 360px}.market-position-state-table-scroll{overflow-x:auto}.market-position-state-table{min-width:1180px;table-layout:fixed}.market-position-state-table td{vertical-align:top}.market-position-state-table td strong,.market-position-state-table td small{display:block}.market-position-state-table tr{cursor:pointer}.market-position-state-table tr.selected{background:#eff6ff}.market-position-state-table .mps-col-stock{width:120px}.market-position-state-table .mps-col-state{width:98px}.market-position-state-table .mps-col-watch,.market-position-state-table .mps-col-priority,.market-position-state-table .mps-col-risk,.market-position-state-table .mps-col-long{width:82px}.market-position-state-table .mps-col-number{width:74px}.market-position-state-table .mps-col-scope{width:150px}.market-position-state-table .mps-col-reason{width:280px}.market-position-state-table .mps-event-date{width:92px}.market-position-state-table .mps-event-type{width:150px}.market-position-state-table .mps-event-severity{width:88px}.market-position-state-table .mps-event-watch{width:110px}.market-position-state-table .mps-event-reason{width:300px}.market-position-state-badge{max-width:94px;overflow:hidden;justify-content:center;text-overflow:ellipsis;white-space:nowrap}.market-position-state-badge.compact{max-width:78px}.market-position-state-short-label{display:inline-block;max-width:100%;overflow:hidden;color:#334155;font-size:12px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.market-position-state-short-label.scope,.market-position-state-short-label.event-type{max-width:140px}.market-position-state-number{text-align:right;white-space:nowrap}.market-position-state-reason{display:-webkit-box;overflow:hidden;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.market-position-state-detail-card{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 120px);overflow:hidden}.market-position-state-detail-scroll{max-height:calc(100vh - 200px);overflow:auto;padding-right:2px}.market-position-state-detail-card details,.market-position-state-detail-section{border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;background:#f8fafc;margin-bottom:8px}.market-position-state-detail-card summary,.market-position-state-detail-section>summary{cursor:pointer;color:#0f172a;font-size:13px;font-weight:800}.market-position-state-detail-card pre{max-height:220px;overflow:auto;white-space:pre-wrap;font-size:12px}.market-position-state-event-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.market-position-state-event-list li{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;background:#fff}.market-position-state-event-list small{color:var(--color-text-sub)}.market-position-state-timeline-card{margin-top:16px}.market-position-state-timeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.market-position-state-timeline-grid h4{margin:0 0 8px;font-size:14px}.market-position-state-timeline-table{min-width:760px;table-layout:fixed}.market-position-state-timeline-table td{height:38px;vertical-align:middle}.market-position-state-timeline-table th,.market-position-state-timeline-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend-context-message{margin:0;color:#2563eb;font-size:13px}.trend-context-message.error{color:#dc2626}.trend-state-analysis-page{display:flex;flex-direction:column;gap:16px}.trend-state-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.trend-state-summary-card{min-width:0;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 8px 18px #0f172a0b;padding:9px 10px}.trend-state-summary-card span{display:block;color:#64748b;font-size:10px;font-weight:800;line-height:1.25}.trend-state-summary-card strong{display:block;overflow:hidden;margin-top:4px;color:#111827;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere}.mtf-shadow-analysis-page .trend-context-head{padding:14px 16px}.mtf-shadow-filter-card{align-items:center}.mtf-shadow-runtime-status{flex-basis:320px}.mtf-shadow-empty{flex-direction:column;gap:6px;padding:24px}.mtf-shadow-empty p{margin:0;line-height:1.45}.mtf-shadow-checkbox{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:7px!important;min-height:36px;border:1px solid #e5e7eb;border-radius:7px;background:#fff;padding:0 10px;white-space:nowrap}.mtf-shadow-checkbox input{width:15px!important;height:15px;padding:0!important}.mtf-shadow-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.mtf-shadow-operation-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;color:#475569;font-size:12px;font-weight:800}.mtf-shadow-operation-strip span{display:inline-flex;align-items:center;gap:5px;min-height:22px}.mtf-shadow-operation-strip strong{color:#111827}.mtf-shadow-operation-strip.stability{background:#f9fafb}.mtf-shadow-operation-note{margin:6px 0 0;color:#64748b;font-size:12px;font-weight:700}.mtf-shadow-table-wrap{max-height:560px}.mtf-shadow-table{min-width:1420px}.mtf-shadow-table td:first-child{display:grid;gap:2px}.mtf-shadow-table td:first-child small{color:#64748b;font-size:11px;font-weight:800}.mtf-shadow-table tbody tr.selected td{background:#eff6ff}.trend-state-chart-stack{display:flex;flex-direction:column;gap:6px;min-width:0}.trend-state-price-panel,.trend-state-volume-panel,.trend-state-state-panel{position:relative;min-width:0}.trend-state-price-panel{height:330px}.trend-state-volume-panel{height:104px}.trend-state-state-panel{height:152px}.trend-state-price-panel canvas,.trend-state-volume-panel canvas,.trend-state-state-panel canvas{display:block;width:100%;height:100%}.trend-state-legend-list{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;max-height:44px;overflow:hidden;border:1px solid #eef2f7;border-radius:8px;background:#f8fafc;padding:7px 10px}.trend-state-legend-list div{display:flex;align-items:center;min-width:0;gap:5px;color:#475569;font-size:10px;font-weight:800;line-height:1.2;white-space:nowrap}.trend-state-legend-list i{display:inline-block;width:9px;height:9px;flex:0 0 auto;border:1px solid rgba(15,23,42,.08);border-radius:2px;background:#94a3b8}.trend-state-legend-list i.base{background:#64748b94}.trend-state-legend-list i.knee{background:#14b8a69e}.trend-state-legend-list i.trend{background:#16a34aa8}.trend-state-legend-list i.strong-trend{background:#2563ebad}.trend-state-legend-list i.shoulder{background:#f59e0bad}.trend-state-legend-list i.breakdown{background:#dc2626ad}.trend-state-legend-list i.confirming-breakdown{background:#f871718a}.trend-state-legend-list i.unknown{background:#cbd5e194}.trend-state-table-wrap{max-height:320px;overflow:auto;border:1px solid #eef2f7;border-radius:8px}.trend-state-table{width:100%;border-collapse:collapse;min-width:780px;font-size:12px}.trend-state-table th,.trend-state-table td{border-bottom:1px solid #eef2f7;padding:8px 10px;text-align:left}.trend-state-table th{position:sticky;top:0;background:#f8fafc;color:#475569;font-size:11px;font-weight:900;z-index:1}.trend-state-table tbody tr{cursor:pointer}.trend-state-table tbody tr:hover{background:#f8fafc}@media (max-width: 1100px){.trend-context-layout{grid-template-columns:1fr}.trend-context-filter-card{align-items:stretch;flex-direction:column}.trend-context-filter-left,.trend-context-filter-actions{width:100%}.trend-context-filter-actions{justify-content:flex-end}.trend-context-query-button{width:100%}.trend-context-detail-card{position:static}.trend-state-summary-grid,.mtf-shadow-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.trend-context-head,.trend-context-card-head{align-items:flex-start;flex-direction:column}.trend-context-detail-actions{align-self:flex-end}.trend-context-head-actions{align-items:flex-start;flex-direction:column;white-space:normal}.trend-context-stock-field,.trend-context-date-field,.trend-context-strategy-field,.trend-context-filter-status{flex-basis:100%}.trend-context-price-chart{height:280px}.trend-context-volume-chart{height:92px}.trend-context-score-chart{height:180px}.trend-state-summary-grid,.mtf-shadow-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-context-stock-control{grid-template-columns:1fr}.trend-context-transition-row{grid-template-columns:1fr;gap:3px}.trend-context-detail-grid{grid-template-columns:1fr}}@media (max-width: 480px){.trend-state-summary-grid,.mtf-shadow-summary-grid{grid-template-columns:1fr}}
