:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#e5e7eb;background:#0b1020}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:#0b1020;color:#e5e7eb}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,input,select{min-height:40px}button,.nav-button,.artifact-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #334155;background:#172033;color:#e5e7eb;border-radius:8px;padding:0 14px;cursor:pointer;transition:border-color .15s ease,background .15s ease}button:hover,.nav-button:hover,.artifact-link:hover,.table-sort:hover,.terminal-toggle:hover{border-color:#475569;background:#1d2940}.artifact-link-active{border-color:#3b82f6;background:#13213a}button:disabled,.nav-button:disabled{cursor:not-allowed;opacity:.55}.button-progress{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.button-spinner{width:14px;height:14px;border:2px solid rgba(226,232,240,.35);border-top-color:#e5e7eb;border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}input,select,textarea{width:100%;border:1px solid #334155;border-radius:8px;background:#0f172a;color:#e5e7eb;padding:0 12px}textarea{min-height:560px;padding:14px;resize:vertical}pre,code{font-family:ui-monospace,SFMono-Regular,monospace}.app-frame{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.app-sidebar{position:sticky;top:0;align-self:start;min-height:100vh;padding:24px 18px;border-right:1px solid #1f2937;background:#0f172a}.app-sidebar h1{margin:0 0 20px;font-size:1.1rem;font-weight:700}.app-sidebar nav{display:grid;gap:8px}.app-sidebar a{padding:10px 12px;border-radius:8px;color:#94a3b8}.app-sidebar a.active,.app-sidebar a:hover{background:#111827;color:#e5e7eb}.app-content{display:flex;justify-content:center}.control-shell,.page-shell{width:min(100%,1600px);min-height:100vh;padding:24px;display:grid;gap:20px}.page-header,.section-header{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}.page-header h1,.section-header h2,.section-header h1{margin:0;font-size:clamp(1.4rem,2vw,2rem)}.section-header p,.muted,.muted-text,.stat-hint,.metric-label,.table-empty,.empty-state p,.error-state p{color:#94a3b8}.section-header p,.page-header p,.muted{margin:4px 0 0}.button-row,.toolbar,.filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar{align-items:end}.toolbar.compact{margin-bottom:0}.filter-row{justify-content:flex-end}.stats-grid,.metrics-grid,.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.dashboard-grid,.details-grid,.configs-grid,.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr)}.strategy-health-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(460px,1fr);gap:20px;align-items:start}.strategy-health-side{display:grid;gap:20px;min-width:0}.accordion-panel{gap:12px}.accordion-trigger{display:flex;justify-content:space-between;gap:12px;width:100%;min-height:0;padding:0;border:0;background:transparent;color:inherit;text-align:left}.accordion-trigger:hover{border:0;background:transparent}.accordion-trigger span:first-child{display:grid;gap:4px}.accordion-trigger small{color:#94a3b8}.accordion-indicator{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid #334155;border-radius:999px;color:#cbd5e1;font-size:.78rem;font-weight:700;white-space:nowrap}.panel,.panel-surface,.editor-panel{display:grid;gap:14px;padding:18px;background:#111827;border:1px solid #1f2937;border-radius:10px;box-shadow:0 8px 24px #0003}.panel-header{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}.panel-title,.panel h2{margin:0;font-size:1rem;font-weight:600}.stat-card,.metric-card{background:#111827;border:1px solid #1f2937;border-radius:10px;padding:16px}.stat-card{display:grid;gap:6px}.stat-label,.metric-label{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em}.stat-value,.metric-value{margin:0;font-size:1.6rem;font-weight:700;line-height:1.15}.metric-card{display:grid;gap:8px}.loading-state,.empty-state,.error-state,.success-banner{border-radius:10px;padding:16px;border:1px solid #1f2937;background:#111827}.empty-state h3,.error-state h3{margin:0 0 6px}.error-state{border-color:#ef444466;background:#7f1d1d33}.success-banner,.status.success{border-color:#10b98166;background:#064e3b59;color:#d1fae5}.status.error{border-color:#ef444466;background:#7f1d1d40;color:#fecaca}.status{margin:0;padding:12px 14px;border-radius:8px;font-weight:600}.status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:28px;min-width:42px;padding:0 10px;border-radius:999px;border:1px solid transparent;font-size:.8rem;font-weight:600;text-transform:uppercase}.status-badge:after{position:absolute;z-index:1001;bottom:calc(100% + 8px);left:50%;display:none;max-width:260px;padding:7px 9px;border:1px solid #334155;border-radius:8px;background:#0f172a;box-shadow:0 12px 28px #00000059;color:#e5e7eb;content:attr(data-tooltip);font-size:.78rem;font-weight:600;line-height:1.25;text-transform:none;transform:translate(-50%);white-space:nowrap}.status-badge:hover:after,.status-badge:focus-visible:after{display:block}.status-green{background:#10b9812e;border-color:#10b98159;color:#6ee7b7}.status-blue{background:#3b82f62e;border-color:#3b82f659;color:#93c5fd}.status-red{background:#ef44442e;border-color:#ef444459;color:#fca5a5}.status-yellow{background:#f59e0b2e;border-color:#f59e0b59;color:#fcd34d}.status-neutral{background:#94a3b82e;border-color:#94a3b859;color:#cbd5e1}.field{display:grid;gap:6px;min-width:180px}.config-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.form-field{display:grid;gap:6px;min-width:180px;flex:1 1 180px}.config-actions .primary-button,.config-actions .nav-button,.config-actions button{flex:0 0 auto}.mode-selector{display:grid;gap:6px;min-width:160px}.mode-copy,.empty-copy{color:#94a3b8;margin:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.json-textarea,.json-preview{width:100%;min-height:360px;background:#0b1020;border:1px solid #1f2937;color:#e5e7eb;border-radius:10px;padding:14px;overflow:auto}.chart-shell{width:100%;min-height:320px}.table-shell{display:grid;gap:14px}.table-toolbar{display:flex;justify-content:space-between;gap:12px}.table-scroll{overflow:auto;border:1px solid #1f2937;border-radius:10px}.data-table,.dense-table{width:100%;min-width:780px;border-collapse:collapse;background:#111827;table-layout:fixed}.dense-table{min-width:980px}.data-table th,.data-table td,.dense-table th,.dense-table td{padding:12px 14px;border-bottom:1px solid #1f2937;text-align:left;vertical-align:top;overflow-wrap:anywhere}.dense-table td,.data-table td{max-width:280px}.data-table th,.dense-table th{font-size:.82rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.02em;background:#0f172a;position:sticky;top:0;z-index:1}.data-table tbody tr:hover,.dense-table tbody tr:hover{background:#94a3b80d}.table-sort{border:0;padding:0;background:transparent;color:inherit;min-height:0}.table-empty{padding:24px 0;text-align:center}.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px}.table-link-button{min-height:0;border:0;background:transparent;color:#93c5fd;padding:0;justify-content:flex-start;max-width:100%}.truncate-text{display:inline-block;max-width:min(100%,36ch);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.cell-stack{display:grid;gap:4px;min-width:0}.align-right{text-align:right;justify-items:end}.cell-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:160px}.cell-actions button,.cell-actions .nav-button{min-height:34px;padding:0 10px}.optimization-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.stack-list,.stack-tight{display:grid;gap:6px}.strategy-detail{display:grid;gap:14px;min-width:0}.strategy-detail-head,.strategy-action-summary{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}.strategy-detail .strategy-kpi-grid{grid-template-columns:repeat(4,minmax(110px,1fr))}.strategy-detail .metric-card{padding:12px}.strategy-detail .metric-value{font-size:1.15rem}.strategy-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;border-top:1px solid #1f2937}.strategy-reason-box{display:grid;gap:6px;padding:12px;border:1px solid #1f2937;border-radius:8px;background:#0b1020;min-width:0}.strategy-reason-box strong{overflow-wrap:anywhere}.state-pill-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.state-pill-list.compact{gap:6px}.state-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid rgba(148,163,184,.26);border-radius:999px;background:#94a3b81a;color:#cbd5e1;font-size:.76rem;font-weight:700;white-space:nowrap}.state-pill-on{border-color:#ef444466;background:#7f1d1d3d;color:#fca5a5}.state-pill-warn{border-color:#f59e0b66;background:#78350f3d;color:#fcd34d}.strategy-history-panel{min-width:0}.health-row,.event-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #1f2937}.event-row:last-child,.health-row:last-child{border-bottom:0}.severity-badge{display:inline-flex;min-width:76px;justify-content:center;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:700}.severity-info{background:#3b82f62e;color:#93c5fd}.severity-warn{background:#f59e0b2e;color:#fcd34d}.severity-critical{background:#ef44442e;color:#fca5a5}.terminal-log{display:grid;gap:12px}.terminal-log-line{display:grid;grid-template-columns:180px 260px minmax(0,1fr);gap:12px;font-size:.88rem}.terminal-log-time{color:#94a3b8}.terminal-log-code{color:#93c5fd}.terminal-log-message{color:#e5e7eb}.terminal-toggle{justify-self:start}.terminal-output{display:grid;gap:8px;max-height:420px;overflow:auto;padding:14px;border:1px solid #1f2937;border-radius:10px;background:#0a0f1c}.terminal-line{display:grid;grid-template-columns:180px 220px minmax(0,1fr);gap:12px;font-size:.88rem}.level-info{color:#cbd5e1}.level-warn{color:#fcd34d}.level-error{color:#fca5a5}.artifact-list{display:grid;gap:10px}.artifact-link{display:grid;gap:4px;text-align:left;padding:14px}.json-inline{margin:0;white-space:pre-wrap}.error-list{margin:0;padding-left:18px;display:grid;gap:10px}.error-list li{display:grid;gap:4px}.error-path{font-size:.9rem}.error-copy{margin:0}.pipeline-step-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.pipeline-step{border:1px solid #1f2937;border-radius:10px;padding:14px;background:#0f172a;display:grid;gap:8px}.pipeline-step-running{border-color:#3b82f666}.pipeline-step-completed,.pipeline-step-skipped{border-color:#10b9814d}.pipeline-step-failed{border-color:#ef444466}.pipeline-step-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.toast-region{position:fixed;right:20px;bottom:20px;z-index:1000;display:grid;gap:10px;width:min(420px,calc(100vw - 32px))}.toast{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid #334155;border-radius:10px;background:#111827;box-shadow:0 18px 48px #0000006b}.toast strong,.toast p{margin:0}.toast p{margin-top:4px;color:#cbd5e1;font-size:.9rem}.toast-success{border-color:#10b9818c}.toast-error{border-color:#ef444499}.toast-info{border-color:#3b82f68c}.toast-close{min-height:28px;width:28px;padding:0;border-radius:6px;flex:0 0 auto}@media(max-width:1399px){.dashboard-grid,.details-grid,.configs-grid,.workspace,.strategy-health-layout{grid-template-columns:1fr}}@media(max-width:839px){.app-frame{grid-template-columns:1fr}.app-sidebar{position:static;min-height:auto;border-right:0;border-bottom:1px solid #1f2937}.control-shell,.page-shell{padding:16px}.terminal-line,.terminal-log-line{grid-template-columns:1fr}.data-table{min-width:900px}.strategy-detail .strategy-kpi-grid,.strategy-secondary-grid{grid-template-columns:1fr}.strategy-detail-head,.strategy-action-summary{display:grid}.align-right{text-align:left;justify-items:start}textarea,.json-preview{min-height:320px}}
