.optimizer { display:grid; gap:20px; min-width:0; width:100%; }
.optimizer > *, .optimizer-mode, .optimizer section, .optimizer details, .optimizer label { min-width:0; max-width:100%; box-sizing:border-box; }
.optimizer-workbench { max-width:1540px; margin:0 auto; }
.optimizer-hero { display:flex; gap:24px; justify-content:space-between; align-items:end; padding:8px 0 4px; }
.optimizer-hero h2 { margin:0; font-size:clamp(1.65rem,3vw,2.35rem); }
.optimizer-hero p { max-width:660px; color:var(--text-soft); }
.optimizer h2, .optimizer h3, .optimizer h4 { margin-bottom:12px; }
.optimizer p { margin:8px 0; line-height:1.6; }
.optimizer section, .optimizer details { padding:20px; border:1px solid var(--border); background:var(--bg-1); }
.optimizer-modes { display:flex; gap:8px; flex-wrap:wrap; }
.optimizer-mode-tab { display:flex; align-items:center; gap:9px; min-height:46px; padding:8px 14px; border:1px solid var(--border); background:var(--bg-1); color:var(--text-soft); border-radius:7px; cursor:pointer; font:inherit; font-weight:650; }
.optimizer-mode-tab span { font-size:.72rem; color:var(--muted); letter-spacing:.08em; }
.optimizer-mode-tab:hover, .optimizer-mode-tab.is-active { border-color:var(--cyan); color:var(--text); background:color-mix(in srgb, var(--cyan) 10%, var(--bg-1)); box-shadow:inset 0 -2px var(--cyan); }
.optimizer-mode[hidden] { display:none; }
.optimizer-frame { display:block; width:100%; min-height:1050px; border:0; background:var(--bg-0); }
.optimizer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; margin:16px 0; }
.optimizer-section-title { display:flex; gap:16px; justify-content:space-between; align-items:start; }
.optimizer-section-title h3 { margin:0; }
.optimizer-status-dot { align-self:center; padding:5px 9px; border-radius:99px; background:color-mix(in srgb, var(--green) 13%, var(--bg-2)); color:var(--green); font-size:.78rem; }
.optimizer-ticker-field { position:relative; }
.optimizer-ticker-suggest { position:absolute; top:100%; z-index:10; left:0; right:0; background:var(--bg-1); border:1px solid var(--cyan); box-shadow:0 12px 28px #0006; border-radius:0 0 7px 7px; overflow:hidden; }
.optimizer-ticker-suggest:empty { display:none; }
.optimizer-ticker-suggest button { display:grid; grid-template-columns:70px 1fr auto; gap:8px; width:100%; text-align:left; padding:9px 11px; border:0; border-bottom:1px solid var(--border); background:var(--bg-1); color:var(--text); cursor:pointer; }
.optimizer-ticker-suggest button:hover { background:var(--bg-2); }
.optimizer-ticker-suggest small { color:var(--text-soft); }
.optimizer-space { margin-top:26px; padding-top:18px; border-top:1px solid var(--border); }
.optimizer-param-space { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px; }
.optimizer-param-space article { min-height:86px; padding:10px; border:1px solid var(--border); background:var(--bg-2); border-radius:6px; }
.optimizer-param-space strong, .optimizer-param-space span, .optimizer-param-space small { display:block; }
.optimizer-param-space span, .optimizer-param-space small { color:var(--text-soft); font-size:.78rem; margin-top:4px; }
.optimizer label { display:flex; flex-direction:column; gap:6px; color:var(--text-soft); }
.optimizer input, .optimizer select { min-width:0; min-height:40px; padding:8px; background:var(--bg-2); color:var(--text); border:1px solid var(--border); border-radius:4px; width:100%; box-sizing:border-box; }
.optimizer .optimizer-check { display:flex; flex-direction:row; align-items:center; }
.optimizer input[type=checkbox] { width:18px; min-height:18px; }
.optimizer-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:12px 0; }
.optimizer progress { width:100%; height:20px; accent-color:var(--cyan); }
.optimizer-metric { border-left:2px solid var(--border-strong); padding-left:12px; }
.optimizer-metric strong { display:block; font-size:1.3rem; margin-top:5px; }
.optimizer-live-best { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:1px; border:1px solid var(--border); background:var(--border); margin:16px 0; }
.optimizer-live-best div { padding:12px; background:var(--bg-2); }
.optimizer-live-best span { display:block; color:var(--text-soft); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.optimizer-live-best strong { display:block; margin-top:6px; font-variant-numeric:tabular-nums; }
.optimizer-live-log { border:1px solid var(--border); background:var(--bg-2); border-radius:7px; overflow:hidden; }
.optimizer-live-log-head { display:flex; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid var(--border); }
.optimizer-live-log-head h4 { margin:0; }
.optimizer-live-log-head span { color:var(--text-soft); font-size:.8rem; }
.optimizer-trial { display:grid; grid-template-columns:90px repeat(6,minmax(105px,1fr)); gap:8px; padding:8px 12px; border-bottom:1px solid var(--border); font-size:.82rem; font-variant-numeric:tabular-nums; }
.optimizer-trial:last-child { border-bottom:0; }
.optimizer-trial.is-infeasible { opacity:.55; }
.optimizer-table { overflow-x:auto; }
.optimizer table { border-collapse:collapse; width:100%; font-variant-numeric:tabular-nums; }
.optimizer th, .optimizer td { padding:10px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.optimizer caption { text-align:left; margin-bottom:10px; color:var(--text-soft); }
.optimizer code, .optimizer pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.optimizer summary { cursor:pointer; min-height:32px; }
.optimizer [role=alert] { border-left:3px solid var(--red); padding-left:12px; }
.optimizer-chart { min-height:290px; }
.optimizer :focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
@media(max-width:780px) { .optimizer-hero { display:block; } .optimizer-modes { margin-top:14px; } .optimizer section, .optimizer details { padding:12px; } .optimizer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .optimizer-trial { grid-template-columns:repeat(2,minmax(0,1fr)); } .optimizer-live-log { overflow:auto; } }
