:root{--bg:#f4f6f8;--ink:#172b38;--muted:#71838d;--line:#e3e9ed;--teal:#087f7c;--red:#ba4a4a;--nav:#142c38}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}aside{position:fixed;inset:0 auto 0 0;width:224px;background:var(--nav);color:#f5fafb;padding:35px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:650;letter-spacing:2px}.brand-icon{background:#1d8f88;border-radius:12px;padding:10px;font-size:24px}.sub{display:block;font-size:9px;letter-spacing:2px;margin-top:6px;color:#92afb8}nav{display:grid;gap:9px;margin-top:52px}nav button{background:none;color:#b5c8d0;text-align:left;padding:15px 13px;font-size:14px;display:flex;justify-content:space-between;border:0}nav button.active{background:#294650;color:white}nav span{color:#7c9ca7;font-size:11px}.aside-foot{margin-top:auto;font-size:12px;line-height:2;color:#b4c8cf}.aside-foot small{color:#7899a5}.dot{display:inline-block;width:7px;height:7px;background:#4dd4a8;border-radius:50%;margin-right:6px}main{margin-left:224px;padding:40px 42px 20px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--teal);font-weight:700}h1{font-size:27px;letter-spacing:-.5px;margin:8px 0 0;font-weight:650}.header-right{display:flex;align-items:center;gap:12px}button{border:1px solid transparent;background:var(--teal);color:white;padding:10px 17px;border-radius:7px;font:inherit;cursor:pointer;white-space:nowrap}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}.secondary{background:white;border-color:#d6e0e5;color:#39545f}.danger{background:#fbeded;color:var(--red);border-color:#f0d8d8}.pill{font-size:12px;padding:7px 12px;background:#e4f2ed;color:#267768;border-radius:20px}.pill.warn{background:#fff1d8;color:#946327}.tab{display:none}.tab.active{display:block}.notice{background:#edf3f4;border:1px solid #dae7e9;border-left:3px solid var(--teal);border-radius:6px;padding:14px 18px;line-height:1.8;margin-bottom:23px;color:#48626d}.notice.warning{background:#fff7e8;border-color:#f0dfba;border-left-color:#d7a756}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.metrics article,.panel{background:white;border:1px solid var(--line);border-radius:11px}.metrics article{padding:22px}.metrics label{font-size:12px;color:var(--muted)}.metrics strong{display:block;font-size:30px;font-weight:650;margin:14px 0 10px;font-variant-numeric:tabular-nums}.metrics small{font-size:11px;color:var(--muted)}.panel{padding:23px;margin-bottom:24px}.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}h2{font-size:16px;margin:0 0 18px;font-weight:650}.panel-head h2{margin:0}h3{font-size:14px;font-weight:600;margin-top:22px}.muted{color:var(--muted);font-size:12px;line-height:1.8}dl{display:grid;grid-template-columns:130px 1fr;gap:16px;margin:25px 0}dt{color:var(--muted);font-size:12px}dd{margin:0;font-size:13px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.actions input{flex:1;min-width:160px}input,select,textarea{font:inherit;color:var(--ink);background:white;border:1px solid #d4dfe5;border-radius:6px;padding:10px 11px;min-width:0;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #aadbd6;outline-offset:1px}input[type=checkbox]{width:auto}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.formgrid label{display:grid;gap:9px;font-size:12px;color:#5a737d}.formgrid .wide{grid-column:1/-1}.formgrid .check{display:flex;align-items:center;gap:7px}.formgrid button{align-self:end}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f7f9fa;color:#758995;font-size:11px;font-weight:500;white-space:nowrap;padding:13px 12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid #eef2f4;vertical-align:top;line-height:1.6;max-width:420px;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}.ball{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:26px;height:26px;background:#edf4f5;color:#32636c;margin-right:5px;font-weight:600}.positive{color:#087f7c}.negative{color:var(--red)}.badge{display:inline-block;padding:3px 7px;border-radius:4px;background:#edf3f5;color:#4e6e7c;margin-right:4px}.chart{height:210px;width:100%;margin-top:20px}.chart svg{width:100%;height:100%}.empty{display:flex;align-items:center;justify-content:center;color:#9aa9af;font-size:13px;min-height:70px}hr{border:0;border-top:1px solid var(--line);margin:27px 0}details{margin-bottom:20px}summary{cursor:pointer;color:#51717e}textarea{margin-top:15px;font:12px/1.7 Consolas,monospace}#toast{position:fixed;top:20px;left:50%;transform:translateX(-30%);background:#203f4b;color:white;padding:13px 24px;border-radius:8px;display:none;z-index:10;max-width:70vw}footer{font-size:10px;color:#91a1aa;display:flex;justify-content:space-between;padding:10px 0}a{color:var(--teal)}.task-result{background:#f7fafb;padding:16px;border-radius:7px;margin-bottom:12px}.task-result p{margin:8px 0;line-height:1.8}pre{white-space:pre-wrap;font:12px/1.8 Consolas,monospace;max-height:400px;overflow:auto}.numbers{max-width:260px;font-size:10px;color:#8da0aa}@media(max-width:1200px){main{padding:28px 24px}.metrics{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}aside{width:190px;padding:30px 17px}main{margin-left:190px}}@media(max-width:720px){aside{position:static;width:100%;padding:18px}.brand{font-size:18px}.brand-icon{font-size:18px}nav{display:flex;overflow:auto;margin-top:15px;gap:5px}nav button{padding:10px;font-size:12px}nav span,.aside-foot{display:none}main{margin-left:0;padding:24px 14px}h1{font-size:22px}.metrics{gap:10px}.metrics article{padding:17px}.metrics strong{font-size:24px}.header-right{gap:7px}.pill{font-size:10px}.panel{padding:17px}.formgrid{gap:12px}.panel-head{align-items:flex-start;flex-wrap:wrap}footer{line-height:1.8;display:block}.chart{height:160px}}

.pill{white-space:nowrap}.table-wrap table{min-width:640px}.table-wrap td:first-child{white-space:nowrap}@media(max-width:720px){#toast{top:auto;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;width:max-content}}

/* Strategy deletion keeps controls within their column. */
.strategy-delete-button{color:#c73838}.strategy-delete-body{padding:20px;overflow-wrap:anywhere}#strategy-delete-dialog{width:min(520px,calc(100vw - 32px))}#strategy-delete-error{color:#c73838}
