:root{color:#172033;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5f7fb}button,input{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:28px;padding:22px 16px;color:#eef2ff;background:#172033}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;color:#eff6ff;background:#2563eb;border-radius:8px}.brand strong,.brand span{display:block}.brand span{margin-top:2px;color:#b8c4d8;font-size:13px}.nav{display:grid;gap:8px}.nav button,.icon-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px}.nav button{justify-content:flex-start;width:100%;min-height:42px;padding:0 12px;color:#dbe5f4;background:transparent}.nav button.active,.nav button:hover{color:#fff;background:#26324a}.workspace{min-width:0;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.topbar h1{margin:0;font-size:24px;line-height:1.2}.topbar p{margin:6px 0 0;color:#64748b;font-size:14px}.icon-button{width:42px;height:42px;color:#172033;background:#fff;border:1px solid #d9e0ea}.view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-grid .wide{grid-column:span 2}.metric-card,.panel{background:#fff;border:1px solid #dce3ee;border-radius:8px}.metric-card{min-height:96px;padding:16px}.main-metric{border-color:#bfdbfe}.metric-card span,.metric-card small{display:block;color:#64748b;font-size:13px}.metric-card strong{display:block;margin-top:8px;color:#172033;font-size:26px;line-height:1.05}.metric-card small{margin-top:8px}.panel{min-width:0;padding:18px}.panel-title{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#334155}.panel-title h2{margin:0;font-size:16px}.panel-note{margin:-4px 0 14px;color:#64748b;font-size:13px;line-height:1.55}.chart{width:100%;height:320px}.chart.large{height:340px}.kv-list{display:grid;gap:10px}.source-list{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #edf1f7}.kv-list div,.source-list div,.job-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f7}.kv-list div:last-child,.source-list div:last-child,.job-row:last-child{border-bottom:0}.kv-list span,.source-list span,.job-row span{color:#64748b;font-size:13px}.source-list strong{color:#172033;font-size:13px;text-align:right}.backtest-layout,.jobs-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}.control-panel,.job-form{position:sticky;top:20px;display:grid;gap:14px}.form-section{display:grid;gap:10px}.form-section.two{grid-template-columns:1fr 1fr}label{display:grid;gap:6px;color:#475569;font-size:13px}.single-line{grid-template-columns:1fr 140px;align-items:center}input{width:100%;min-height:38px;padding:0 10px;color:#172033;background:#fff;border:1px solid #cfd8e6;border-radius:6px}input:focus{border-color:#2563eb;outline:2px solid rgba(37,99,235,.16)}.primary-button,.secondary-button{min-height:40px;padding:0 14px}.primary-button{color:#fff;background:#0f766e}.primary-button:disabled{cursor:wait;opacity:.72}.secondary-button{color:#172033;background:#eef2f7}.results{display:grid;gap:16px;min-width:0}.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric-strip .metric-card{min-height:86px}.metric-strip .metric-card strong{font-size:22px}.notice,.empty-state{padding:14px;color:#475569;background:#fff;border:1px dashed #cfd8e6;border-radius:8px}.notice.error{color:#991b1b;background:#fff1f2;border-color:#fecdd3}.job-list{min-height:280px}.job-row strong,.job-row span{display:block}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:5;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 14px}.nav{display:flex}.nav button{width:auto}.workspace{padding:16px}.view-grid,.backtest-layout,.jobs-layout,.metric-strip{grid-template-columns:1fr}.dashboard-grid .wide{grid-column:auto}.control-panel,.job-form{position:static}}@media(max-width:560px){.brand span,.nav span{display:none}.topbar h1{font-size:20px}.form-section.two,.single-line{grid-template-columns:1fr}}
