:root{color-scheme:light;--bg: #f6f8fb;--surface: #ffffff;--surface-muted: #f0f4f8;--surface-strong: #e8eef6;--text: #121826;--muted: #5b6472;--line: #d9e0ea;--blue: #2563eb;--blue-soft: #dbeafe;--green: #059669;--green-soft: #d1fae5;--amber: #d97706;--amber-soft: #fef3c7;--red: #dc2626;--red-soft: #fee2e2;--shadow: 0 16px 38px rgba(18, 24, 38, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:Space Grotesk,system-ui,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.login-shell{display:grid;min-height:100vh;place-items:center;padding:20px;background:linear-gradient(135deg,#2563eb1a,#05966914),var(--bg)}.login-panel{display:grid;width:min(100%,430px);gap:14px;padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.login-panel h1,.login-panel p{margin:0}.login-panel h1{font-size:2rem;line-height:1.05}.login-panel p,.login-status,.login-form span{color:var(--muted)}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:6px;font-weight:600}.login-form input{min-height:44px;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--text)}.app-shell{width:100%;min-height:100vh;padding:20px}.command-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:18px 20px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.brand-block{display:grid;gap:6px}.brand-block h1{margin:0;font-size:2rem;line-height:1.05}.brand-block p,.panel-header p,.metric-card p,.source-footer,.worker-row p,.portfolio-hero p,.meter-axis,.chart-axis,.empty-state,.trend-card p,.order-row span,.request-row span,.request-row p,.setting-field span,.settings-footer p,.execution-note,.decision-focus p,.decision-meta,.allocation-row span,.weight-row span{color:var(--muted)}.brand-block p,.panel-header p,.metric-card p,.worker-row p,.trend-card p,.request-row p,.decision-focus p,.settings-footer p{margin:0}.eyebrow{color:var(--blue);font-family:IBM Plex Mono,monospace;font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.command-actions,.control-actions,.decision-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.primary-button,.secondary-button,.ghost-button,.danger-button,.trade-button,.tab-button{min-height:40px;border-radius:8px;padding:10px 14px;border:1px solid transparent;font-weight:600;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.primary-button{color:#fff;background:var(--blue)}.secondary-button{color:var(--blue);border-color:#adc6ff;background:var(--blue-soft)}.ghost-button{color:var(--text);border-color:var(--line);background:var(--surface)}.danger-button{color:#fff;background:var(--red)}.tab-button{color:var(--muted);border-color:var(--line);background:var(--surface-muted)}.tab-button.active{color:var(--text);border-color:#9bb8f1;background:#eef4ff}.small{min-height:34px;padding:7px 10px;font-size:.88rem}button:disabled{opacity:.58;cursor:progress}.error-banner,.success-banner{margin-bottom:14px;padding:12px 14px;border-radius:8px;font-weight:600}.error-banner{color:#7f1d1d;border:1px solid #fecaca;background:var(--red-soft)}.success-banner{color:#064e3b;border:1px solid #a7f3d0;background:var(--green-soft)}.overview-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.operator-guide{display:grid;gap:14px;margin-bottom:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.guide-header{display:flex;align-items:start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.guide-header h2,.guide-explain h3{margin:0}.guide-header h2{margin-top:6px;font-size:1.35rem;line-height:1.1}.guide-header p,.guide-explain p,.guide-step p,.guide-step span,.command-legend span{color:var(--muted)}.guide-header p{max-width:820px;margin:6px 0 0}.guide-main{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.35fr);gap:14px}.guide-explain{display:grid;align-content:start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.guide-explain h3{font-size:.9rem}.guide-explain p{margin:0 0 4px;line-height:1.45}.guide-detail-list,.guide-step-details{display:grid;gap:6px}.guide-detail-list span,.guide-step-details span{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;font-size:.9rem;line-height:1.35}.guide-explain .primary-button{justify-self:start;margin-top:4px}.guide-list{display:grid;gap:10px}.guide-step{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.guide-step strong,.command-legend strong{display:block}.guide-step p{margin:4px 0 0}.guide-step>span{grid-column:1 / -1;line-height:1.4}.guide-step-details{grid-column:1 / -1}.guide-step-details span{font-size:.84rem}.guide-step .ghost-button{justify-self:start}.guide-step-running{border-color:#9ce3ca}.guide-step-waiting{border-color:#adc6ff}.guide-step-degraded{border-color:#f4ce8a}.guide-step-offline{border-color:#f8b4b4}.command-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px solid var(--line)}.command-legend div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.command-legend span{display:block;margin-top:4px;font-size:.84rem;line-height:1.35}.act-page{display:grid;gap:16px}.act-hero{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.act-hero h2{margin:6px 0;font-size:1.8rem;line-height:1.05}.act-hero p,.dummy-instructions p,.act-card p,.act-card footer,.act-detail-grid span,.holding-card p,.holding-card span{color:var(--muted)}.act-hero p,.dummy-instructions p,.act-card p,.holding-card p{margin:0}.act-fast-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:10px}.act-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dummy-instructions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dummy-instructions article,.act-card,.holding-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.dummy-instructions p{margin-top:6px;line-height:1.4}.act-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:16px;align-items:start}.act-card-list,.holdings-list,.act-card{display:grid;gap:12px}.act-card header,.act-card footer,.holding-card>div,.holding-metrics,.act-card-actions{display:flex;align-items:start;justify-content:space-between;gap:12px}.act-card h3{margin:4px 0;font-size:1.2rem}.act-card header span,.act-card footer,.holding-card span,.holding-metrics{font-size:.84rem}.act-buy{border-color:#90d9bd}.act-sell{border-color:#f4a3a3}.act-hold{border-color:#9bb8f1}.act-watch{border-color:#f4ce8a}.priority-pill{flex:0 0 auto;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700;text-transform:uppercase}.priority-high{color:#7f1d1d;background:var(--red-soft)}.priority-medium{color:#075985;background:#e0f2fe}.priority-low{color:#713f12;background:var(--amber-soft)}.act-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.act-detail-grid div{min-width:0;padding:10px;border-radius:8px;background:var(--surface-muted)}.act-detail-grid strong,.act-detail-grid span{display:block}.act-detail-grid span{margin-top:4px;line-height:1.35}.act-card-actions{justify-content:start;flex-wrap:wrap}.holding-card{display:grid;gap:10px}.holding-metrics{flex-wrap:wrap;justify-content:start}.metric-card,.panel,.settings-details{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.metric-card{min-width:0;padding:14px}.metric-card span,.soft-stat{color:var(--muted);font-size:.84rem}.metric-card strong{display:block;margin-top:6px;overflow-wrap:anywhere;font-size:1.35rem;line-height:1.05}.metric-card p{margin-top:8px;font-size:.88rem}.control-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(420px,1.45fr) minmax(300px,.95fr);align-items:start;gap:16px}.live-area,.portfolio-area,.trade-area,.lower-grid{display:grid;gap:16px}.lower-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.panel{min-width:0;padding:16px}.panel-wide,.settings-details{grid-column:1 / -1}.panel-header{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.panel-header h2{margin:0;font-size:1.1rem}.panel-header p{margin-top:4px;font-size:.9rem}.panel-action{flex:0 0 auto}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:8px;font-family:IBM Plex Mono,monospace;font-size:.76rem;font-weight:500;white-space:nowrap}.status-running{color:#065f46;background:var(--green-soft)}.status-waiting{color:#1d4ed8;background:var(--blue-soft)}.status-degraded{color:#92400e;background:var(--amber-soft)}.status-offline{color:#991b1b;background:var(--red-soft)}.run-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.run-summary>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.run-summary span{display:block;color:var(--muted);font-size:.82rem}.run-summary strong{display:block;margin-top:5px;overflow-wrap:anywhere}.source-board,.worker-list,.trend-list,.order-list,.request-list,.weight-list,.decision-list,.allocation-list{display:grid;gap:10px}.source-row,.worker-row,.allocation-row,.trend-card,.order-row,.request-row,.weight-row,.decision-row,.decision-focus{border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.source-row{display:grid;gap:10px;padding:12px}.source-running{border-color:#9ce3ca}.source-degraded{border-color:#f4ce8a}.source-waiting{border-color:#dce4ef}.source-offline{border-color:#f8b4b4}.source-main,.source-footer,.meter-header,.chart-card header,.trend-card footer,.order-row,.request-row>div,.allocation-row,.weight-row,.decision-row,.execution-note{display:flex;align-items:center;justify-content:space-between;gap:12px}.source-main strong,.source-main span,.allocation-row strong,.allocation-row span{display:block}.source-main span,.source-footer,.decision-row span{font-size:.84rem}.source-url{display:block;max-width:100%;overflow-wrap:anywhere;color:#31547a;font-family:var(--mono-font);font-size:.72rem;line-height:1.45;text-decoration:none}.source-url:hover{color:#152c45;text-decoration:underline}.source-footer{align-items:start;font-size:.84rem}.source-meter,.meter-track,.allocation-meter,.weight-meter{position:relative;width:100%;height:8px;overflow:hidden;border-radius:8px;background:#dce4ef}.source-meter span,.meter-track span,.allocation-meter span,.weight-meter span{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--green)}.worker-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px}.worker-row strong,.worker-row span{display:block}.worker-row span{margin-top:3px;color:var(--muted);font-size:.84rem}.worker-row p{grid-column:1 / -1;font-size:.88rem}.worker-running{border-color:#9ce3ca}.worker-degraded{border-color:#f4ce8a}.worker-offline{border-color:#f8b4b4}.portfolio-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;margin-bottom:12px}.portfolio-hero,.portfolio-meter,.chart-card{border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.portfolio-hero,.portfolio-meter{padding:14px}.portfolio-hero span{color:var(--muted)}.portfolio-hero strong{display:block;margin-top:6px;font-size:2rem;line-height:1}.portfolio-hero p{margin-top:10px;font-weight:600}.portfolio-meter{display:grid;align-content:center;gap:12px}.meter-track{height:12px}.meter-track span,.allocation-meter span{background:var(--blue)}.meter-axis,.chart-axis{display:flex;justify-content:space-between;gap:12px;font-size:.84rem}.chart-card{padding:14px}.chart-card header strong,.chart-card header span{display:block}.chart-card header span{color:var(--muted);font-family:IBM Plex Mono,monospace}.sparkline{width:100%;height:132px;margin-top:12px;overflow:visible}.sparkline polyline{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.sparkline-blue polyline{stroke:var(--blue)}.sparkline-amber polyline{stroke:var(--amber)}.sparkline-red polyline{stroke:var(--red)}.sparkline-empty{display:grid;place-items:center;height:132px;margin-top:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}.chart-axis{margin-top:8px}.allocation-list{margin-top:12px}.allocation-row{display:grid;grid-template-columns:minmax(110px,.9fr) minmax(100px,1.2fr) minmax(110px,.8fr);padding:12px}.allocation-row>div:last-child{text-align:right}.chart-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trade-form{display:grid;gap:12px}.setting-field{display:grid;gap:7px}.setting-field input,.setting-field select,.compact-input{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--surface)}.compact-input{width:92px}.side-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.side-toggle button{min-height:42px;border:0;color:var(--muted);background:var(--surface-muted);font-weight:700}.side-toggle button+button{border-left:1px solid var(--line)}.side-toggle .active.buy{color:#065f46;background:var(--green-soft)}.side-toggle .active.sell{color:#991b1b;background:var(--red-soft)}.trade-input-grid,.trade-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trade-button{min-height:52px;color:#fff;font-size:1rem}.trade-button.buy{background:var(--green)}.trade-button.sell{background:var(--red)}.execution-note{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted);font-size:.84rem}.decision-focus{display:grid;gap:8px;margin-bottom:10px;padding:12px}.decision-focus>span{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.76rem}.decision-focus strong{font-size:1.2rem}.decision-buy{border-color:#9ce3ca}.decision-sell{border-color:#f8b4b4}.decision-hold{border-color:#adc6ff}.decision-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.84rem}.risk-note{padding:10px 12px;border:1px solid #f4ce8a;border-radius:8px;color:#92400e!important;background:var(--amber-soft);font-size:.88rem}.decision-row{padding:10px}.decision-list.compact{max-height:320px;overflow:auto}.trend-card{display:grid;gap:8px;padding:12px}.trend-card span{color:var(--muted);font-size:.84rem}.trend-card strong{display:block;margin-top:3px}.trend-card footer,.order-row,.request-row>div{font-size:.88rem}.order-row{padding:12px}.order-row strong,.order-row span{display:block}.order-row>div:last-child{text-align:right}.request-row{display:grid;gap:7px;padding:12px}.request-success{border-color:#9ce3ca}.request-error{border-color:#f8b4b4}.request-pending{border-color:#f4ce8a}.execution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.control-actions{margin-top:12px}.weight-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(120px,1fr) auto;padding:12px}.weight-meter span{background:var(--amber)}.settings-details{padding:0}.settings-details summary{padding:16px;color:var(--text);font-weight:700;cursor:pointer}.settings-form{display:grid;gap:16px;padding:0 16px 16px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.toggle-field{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 4px}.toggle-field input{width:auto;min-height:auto}.settings-footer{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-top:12px;border-top:1px solid var(--line)}.settings-footer button{min-height:40px;border:0;border-radius:8px;padding:10px 14px;color:#fff;background:var(--blue);font-weight:700}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.empty-state{padding:14px;border:1px dashed var(--line);border-radius:8px;background:var(--surface-muted)}@media(max-width:1180px){.control-grid{grid-template-columns:minmax(280px,1fr) minmax(360px,1.2fr)}.guide-main,.command-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.trade-area{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.overview-strip,.act-summary-grid,.dummy-instructions,.execution-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.act-hero,.act-columns{grid-template-columns:1fr}.act-fast-actions{justify-content:start}}@media(max-width:860px){.app-shell{padding:12px}.command-bar,.guide-header,.source-main,.source-footer,.order-row,.settings-footer{flex-direction:column;align-items:stretch}.command-actions{width:100%}.command-actions button{flex:1 1 140px}.control-grid,.guide-main,.command-legend,.act-hero,.act-summary-grid,.dummy-instructions,.act-columns,.act-detail-grid,.trade-area,.lower-grid,.portfolio-grid,.chart-pair,.overview-strip,.execution-grid,.settings-grid,.run-summary,.trade-input-grid,.trade-action-grid{grid-template-columns:1fr}.allocation-row,.weight-row,.act-card header,.act-card footer,.holding-card>div{grid-template-columns:1fr;align-items:stretch}.act-card header,.act-card footer,.holding-card>div{flex-direction:column}.allocation-row>div:last-child,.order-row>div:last-child{text-align:left}.brand-block h1{font-size:1.55rem}}
