:root{--bg: #f8f5ee;--paper: #fffefa;--panel: rgba(255, 255, 255, .82);--text: #171715;--muted: #746f65;--faint: #a69d8f;--line: #e4dbcb;--line-strong: #d5c8b7;--blue: #2f6fed;--green: #157a4a;--red: #bf3a31;--amber: #a86108;--button-bg: rgba(255,255,255,.9);--button-hover: #ffffff;--field-bg: rgba(255,255,255,.86);--tile-bg: rgba(255,255,255,.52);--tip-bg: rgba(255,255,255,.98);--seg-bg: #eee6d8;--seg-on: #ffffff;--pill-bg: #eee6d8;--buy-bg: #edf8f1;--sell-bg: #fff0ee;--error-bg: #fff1ef;--error-line: #ffd4cf;--notice-bg: #eef8f1;--notice-line: #cdebd6;--shadow: 0 16px 38px rgba(68, 55, 35, .08), inset 0 1px 0 rgba(255, 255, 255, .75)}[data-theme=dark]{--bg: #11100d;--paper: #171511;--panel: rgba(28, 25, 20, .9);--text: #f5efe4;--muted: #b9afa0;--faint: #82796c;--line: #3a3328;--line-strong: #5a4d3d;--blue: #82a8ff;--green: #4fc78a;--red: #ff756f;--amber: #e0a044;--button-bg: rgba(34, 31, 26, .92);--button-hover: rgba(49, 44, 37, .98);--field-bg: rgba(30, 27, 23, .88);--tile-bg: rgba(30, 27, 23, .62);--tip-bg: rgba(30, 27, 23, .98);--seg-bg: #252117;--seg-on: #11100d;--pill-bg: #2b251d;--buy-bg: rgba(28, 96, 61, .28);--sell-bg: rgba(126, 45, 40, .28);--error-bg: rgba(126, 45, 40, .2);--error-line: rgba(255, 117, 111, .35);--notice-bg: rgba(28, 96, 61, .2);--notice-line: rgba(79, 199, 138, .35);--shadow: 0 16px 38px rgba(0, 0, 0, .24), inset 0 1px 0 rgba(255, 255, 255, .05)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);background:linear-gradient(180deg,#fffffff2,#fff0 230px),radial-gradient(circle at 80% 0%,#ffffffb3,#fff0 360px),var(--bg);font:13px/1.38 -apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;letter-spacing:0;-webkit-font-smoothing:antialiased}[data-theme=dark] body{background:linear-gradient(180deg,#14120ef2,#14120e00 230px),radial-gradient(circle at 80% 0%,#74654c24,#11100d00 360px),var(--bg)}button,input,select{font:inherit;letter-spacing:0}button{border:1px solid var(--line);background:var(--button-bg);color:var(--text);border-radius:8px;min-height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}button:hover{border-color:var(--line-strong);background:var(--button-hover)}button:disabled{opacity:.52;cursor:default}input,select{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--field-bg);color:var(--text);min-height:30px;padding:0 9px}input[type=range]{padding:0;accent-color:var(--text)}input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:var(--text)}h1,h2{margin:0;letter-spacing:0}.pos{color:var(--green)}.neg{color:var(--red)}.warn{color:var(--amber)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(360px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:24px}.login-panel h1{font-size:24px;margin-bottom:22px}.login-panel label{margin-bottom:14px;display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.primary{width:100%;color:var(--paper);border-color:var(--text);background:var(--text)}.brand-mark{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--text);color:var(--paper);margin-bottom:18px}.brand-mark.small{width:30px;height:30px;margin:0;flex:0 0 auto}.shell{width:min(1760px,calc(100% - 24px));height:100dvh;margin:0 auto;padding:10px 0;display:grid;grid-template-rows:42px 76px minmax(0,1fr);gap:10px;overflow:hidden}.topbar{display:flex;align-items:center;gap:8px;min-width:0}.brand-line{display:flex;align-items:center;gap:9px;min-width:0;margin-right:auto}.topbar h1{font-size:20px;font-weight:760;line-height:1.05}.topbar span{color:var(--muted);font-size:12px;white-space:nowrap}.toolbar-button{flex:0 0 auto;height:30px}.metric-ribbon{display:grid;grid-template-columns:1.25fr repeat(5,minmax(0,1fr));gap:10px;min-height:0}.stat{min-width:0;border-top:1px solid var(--line);padding-top:8px}.stat strong{display:block;margin-top:5px;font-size:clamp(18px,1.65vw,30px);line-height:1.03;font-weight:760;overflow-wrap:anywhere}.stat em{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-label,.field-head,.table-head{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--muted);font-size:11px;font-weight:760}.layout{min-height:0;display:grid;grid-template-columns:minmax(360px,1.08fr) minmax(380px,.92fr) minmax(500px,1.34fr);grid-template-rows:minmax(0,1.08fr) minmax(0,.78fr);grid-template-areas:"signal controls broker" "risk controls audit";gap:10px}.panel{min-width:0;min-height:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;overflow:hidden}.overview{grid-area:signal;overflow:auto}.strategy-panel{grid-area:controls}.risk-panel{grid-area:risk}.orders-panel{grid-area:broker}.audit-panel{grid-area:audit}.panel-title{display:flex;align-items:center;gap:8px;min-height:24px;margin-bottom:10px;flex:0 0 auto}.panel-icon{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:7px;background:var(--text);color:var(--paper);flex:0 0 auto}.panel-title h2{font-size:15px;font-weight:760}.save-button{margin-left:auto;height:28px;min-height:28px}.info-tip{display:inline-flex;flex:0 0 auto;line-height:1}.info-button{width:18px;height:18px;min-height:18px;padding:0;border-radius:50%;color:var(--muted);border-color:var(--line-strong);background:var(--tile-bg)}.info-button:hover,.info-button:focus-visible{color:var(--text);border-color:var(--text)}.tip-panel{position:fixed;z-index:2147483647;display:block;box-sizing:border-box;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--tip-bg);color:var(--text);box-shadow:0 14px 36px #44372329;font-size:12px;font-weight:650;line-height:1.36;opacity:1;pointer-events:none;white-space:normal!important;text-align:left!important;overflow-wrap:break-word;word-break:normal;max-height:calc(100dvh - 24px);overflow:auto;transform:translateY(0);animation:tip-in .12s ease}.tip-panel[data-ready=false]{visibility:hidden}@keyframes tip-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.chart{width:100%;flex:0 0 132px;min-height:112px;margin:0 0 8px}.chart path{fill:none;stroke:var(--blue);stroke-width:2.2;vector-effect:non-scaling-stroke}.chart text{fill:var(--muted);font-size:13px}.projection-card{border:1px solid var(--line);border-radius:8px;background:var(--tile-bg);padding:8px 9px;margin:0 0 8px;flex:0 0 auto}.projection-head{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:760;min-width:0}.projection-head>span{color:var(--text)}.projection-head em{margin-left:auto;font-style:normal;color:var(--muted);white-space:nowrap}.projection-chart{flex-basis:82px;min-height:72px;margin:4px 0 2px}.projection-chart .projection-good{stroke:var(--green);stroke-width:2.2}.projection-chart .projection-expected{stroke:var(--blue);stroke-width:2;stroke-dasharray:5 5}.projection-chart .projection-bad{stroke:var(--red);stroke-width:2.2}.projection-chart .projection-axis{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.projection-legend,.projection-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0}.projection-legend{margin-top:2px;font-size:11px;font-weight:760}.projection-legend span{display:inline-flex;align-items:center;gap:5px;min-width:0}.projection-legend span:before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto}.projection-legend .good-dot:before{background:var(--green)}.projection-legend .expected-dot:before{background:var(--blue)}.projection-legend .bad-dot:before{background:var(--red)}.projection-meta{margin-top:5px;color:var(--muted);font-size:10.5px;font-weight:700}.projection-meta span{white-space:nowrap}.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;flex:0 0 auto}.health-strip{display:grid;grid-template-columns:1.25fr .82fr .82fr;gap:8px;margin-bottom:8px}.health-tile{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--tile-bg);padding:8px 9px}.health-tile b{display:block;margin-top:4px;font-size:17px;line-height:1.05;overflow-wrap:anywhere}.health-tile em{display:block;margin-top:3px;color:var(--muted);font-style:normal;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-row{min-width:0;border-top:1px solid var(--line);padding:6px 0}.signal-row b{display:block;margin-top:3px;font-size:15px;line-height:1.15;overflow-wrap:anywhere}.signal-row em{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-style:normal}.target-strip{border-top:1px solid var(--line);padding-top:6px;min-width:0}.target-title{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:760;margin-bottom:5px}.target-list{display:flex;flex-wrap:wrap;gap:6px}.target-list span{display:inline-flex;gap:5px;align-items:center;min-height:22px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--tile-bg);white-space:nowrap}.config-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.config-summary span{border-top:1px solid var(--line);padding-top:7px;color:var(--muted);min-width:0}.config-summary b{display:block;color:var(--text);font-size:15px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--seg-bg);border:1px solid var(--line);border-radius:8px;padding:3px;margin-bottom:10px;flex:0 0 auto}.segmented button{min-height:28px;border:0;background:transparent;color:var(--muted);font-weight:750}.segmented button.on{background:var(--seg-on);color:var(--text);box-shadow:0 1px 4px #44372314}.control-grid{flex:1 1 auto;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:9px 10px;padding-right:2px}.control-grid>label{border-top:1px solid var(--line);padding-top:7px}.control-grid.read-only input,.control-grid.read-only select{pointer-events:none;opacity:.62}.control-grid.read-only label{cursor:default}.control-grid label{min-width:0;display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:720}.field-head{justify-content:space-between;width:100%}.control-grid label:has(input[type=range]){grid-template-columns:minmax(0,1fr) auto}.control-grid label:has(input[type=range]) .field-head,.control-grid label:has(input[type=range]) input{grid-column:1 / -1}.control-grid label b{color:var(--text)}.toggle-field{min-height:62px;align-content:start}.toggle-field input{width:18px;justify-self:start}.risk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;margin-bottom:10px;flex:0 0 auto}.broker-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 12px;margin-bottom:10px;flex:0 0 auto}.risk-content{flex:1 1 auto;min-height:0;overflow:auto;padding-right:2px}.risk-panel .risk-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;margin-bottom:6px}.risk-panel .stat{padding-top:6px}.risk-panel .stat strong,.broker-strip .stat strong{font-size:clamp(15px,1.2vw,22px)}.risk-panel .stat strong{margin-top:3px;font-size:clamp(14px,1.05vw,18px)}.risk-panel .metric-label{gap:4px}.risk-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:6px 0}.kv b{text-align:right;overflow-wrap:anywhere}.button-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.inline-actions{border-top:1px solid var(--line);margin-top:6px;padding-top:7px}.inline-actions-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--text);font-weight:760}.inline-actions-title span{display:inline-flex;align-items:center;gap:6px}.action-control{min-width:0;position:relative}.action-control button{width:100%;padding-right:34px;justify-content:flex-start}.action-control>.info-tip{position:absolute;top:6px;right:5px}.table-wrap,.audit-list{flex:1 1 auto;min-height:0;overflow:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:right;border-top:1px solid var(--line);padding:7px 4px;white-space:nowrap}th{color:var(--muted);font-size:11px;font-weight:760}th.left,td:first-child{text-align:left;font-weight:760}.table-head{justify-content:flex-end}th.left .table-head{justify-content:flex-start}.table-price small{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:700;line-height:1.05}.action-pill{display:inline-flex;align-items:center;min-height:22px;border-radius:8px;padding:0 7px;background:var(--pill-bg);color:var(--muted);font-weight:760}.action-pill.buy{color:var(--green);background:var(--buy-bg)}.action-pill.sell{color:var(--red);background:var(--sell-bg)}.warning-list{display:grid;gap:6px;margin-top:8px;color:var(--amber);font-weight:720}.warning-list span{display:inline-flex;align-items:center;gap:6px}.audit-list{display:grid;align-content:start}.audit-row{display:grid;grid-template-columns:74px 108px minmax(0,1fr);gap:8px;align-items:baseline;border-top:1px solid var(--line);padding:8px 0}.audit-row time{color:var(--muted);font-size:12px}.audit-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-row span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{color:var(--muted);border-top:1px solid var(--line);padding:12px 0}.error,.notice{border-radius:8px;padding:9px 11px;font-weight:760}.error{background:var(--error-bg);color:var(--red);border:1px solid var(--error-line)}.notice{background:var(--notice-bg);color:var(--green);border:1px solid var(--notice-line);margin-top:10px}.banner{margin:0}@media(max-width:1220px),(max-aspect-ratio:4 / 3){body{overflow:auto}.shell{width:min(100% - 24px,1180px);height:auto;min-height:100dvh;overflow:visible;grid-template-rows:auto auto auto;padding:14px 0 36px}.metric-ribbon{grid-template-columns:repeat(3,minmax(0,1fr))}.layout{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"signal" "risk" "controls" "broker" "audit"}.chart{height:190px;flex:none}.control-grid,.table-wrap,.audit-list{max-height:none;overflow:visible}}@media(min-width:1221px)and (max-height:820px){body{font-size:12px}.shell{grid-template-rows:40px 66px minmax(0,1fr);gap:8px;padding:8px 0}.layout{grid-template-rows:minmax(0,1.22fr) minmax(0,.64fr)}.topbar h1{font-size:19px}.metric-ribbon{gap:8px}.stat{padding-top:6px}.stat strong{margin-top:3px;font-size:clamp(17px,1.45vw,24px)}.stat em{margin-top:2px}.panel{padding:10px}.panel-title{min-height:22px;margin-bottom:8px}.panel-icon{width:21px;height:21px}.chart{flex-basis:66px;min-height:62px;margin-bottom:5px}.projection-card{padding:6px 7px;margin-bottom:6px}.projection-chart{flex-basis:54px;min-height:50px;margin:2px 0 1px}.projection-meta{display:none}.health-strip{gap:6px;margin-bottom:6px}.health-tile{padding:5px 7px}.health-tile b{font-size:15px;margin-top:2px}.health-tile em{margin-top:1px}.signal-row{padding:3px 0}.signal-row b{margin-top:2px;font-size:14px}.signal-row em{margin-top:1px;font-size:11px}.target-strip{padding-top:5px}.target-list span{min-height:20px;padding:0 7px}.config-summary,.segmented{margin-bottom:8px}.control-grid{gap:7px 8px}input,select,button{min-height:28px}.risk-grid{gap:4px 10px;margin-bottom:4px}.risk-panel .stat{padding-top:5px}.risk-panel .stat strong{font-size:15px;margin-top:2px}.risk-detail-grid{gap:0 10px}.kv{padding:5px 0;gap:8px}.inline-actions{margin-top:5px;padding-top:5px}.inline-actions-title{margin-bottom:5px}.button-row{gap:5px}.action-control button{min-height:26px;height:26px;padding:0 34px 0 8px}.action-control>.info-tip{top:4px;right:4px}.broker-strip{gap:7px 10px;margin-bottom:7px}th,td{padding:6px 3px}.audit-row{padding:7px 0}}@media(max-width:720px){.shell{width:min(100% - 20px,1180px)}.topbar{flex-wrap:wrap}.brand-line{flex-basis:100%}.metric-ribbon,.config-summary,.health-strip,.risk-grid,.broker-strip,.signal-grid,.control-grid,.button-row{grid-template-columns:1fr}.audit-row{grid-template-columns:72px minmax(0,1fr)}.audit-row span{grid-column:1 / -1}}
