:root{color:#122033;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;--ink: #122033;--muted: #647084;--line: #d9e1eb;--soft-line: #edf1f6;--teal: #0f8f8f;--teal-strong: #007c7d;--violet: #7352c7;--coral: #f05252;--amber: #f59e0b;--green: #179b68;--panel: #ffffff;--shadow: 0 14px 34px rgb(18 32 51 / 8%)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:repeating-linear-gradient(0deg,rgb(18 32 51 / .018) 0,rgb(18 32 51 / .018) 1px,transparent 1px,transparent 22px),#fff}button,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:10px 20px 0}.green-dot{width:12px;height:12px;border-radius:999px;background:var(--green);display:inline-block}.app-title-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:2px 2px 14px}.app-title-copy{flex:0 1 470px;min-width:330px}.app-title-row h1{margin:0;color:var(--ink);font-size:30px;line-height:1.05;letter-spacing:0}.app-title-row p{margin:5px 0 0;color:var(--muted);font-size:14px}.setup-grid{display:grid;grid-template-columns:minmax(320px,var(--problem-column, 1.08fr)) 18px minmax(280px,var(--cnf-column, .86fr)) 18px minmax(340px,var(--regression-column, 1fr));gap:0}.column-resize-handle{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:18px;cursor:col-resize;touch-action:none;outline:none}.column-resize-handle:before{content:"";width:4px;height:56px;border-radius:999px;background:#c7d0dc;transition:background .12s ease,box-shadow .12s ease}.column-resize-handle:hover:before,.column-resize-handle:focus-visible:before,.is-resizing-columns .column-resize-handle:before{background:var(--teal);box-shadow:0 0 0 3px #0f8f8f24}.is-resizing-columns,.is-resizing-columns *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.regression-column{display:grid;gap:18px;align-content:start;min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px;min-width:0}.panel-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.panel-header-actions{justify-content:space-between;gap:14px}.problem-header-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px;min-width:0}.sample-select,.strategy-select{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:750}.sample-select select,.strategy-select select{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 34px 0 10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:650}.sample-select select{width:min(250px,30vw)}.panel-title{display:flex;align-items:center;gap:10px;min-width:0}.syntax-help-button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--teal-strong)}.syntax-help-button:hover,.syntax-help-button:focus-visible,.syntax-help-button[aria-expanded=true]{border-color:#8fd3d0;background:#eefafa;outline:none}.syntax-help{margin:-4px 0 14px;padding:9px 12px;border-left:3px solid var(--teal);background:#f5fbfb;color:#475467;font-size:12px}.syntax-help p{margin:0;line-height:1.45}.syntax-help p code{color:var(--teal-strong);font-family:SFMono-Regular,Consolas,monospace;font-weight:750}.syntax-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.syntax-examples code{padding:3px 6px;border:1px solid #cfe4e4;border-radius:4px;background:#fff;color:#26547a;font-family:SFMono-Regular,Consolas,monospace}.panel-header svg,.panel-title svg{color:var(--teal)}.panel-header h2,.panel-title h2{margin:0;font-size:20px;line-height:1.1;letter-spacing:0}.description-box{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:14px;padding:10px 12px;border:1px solid #bfe6e5;border-radius:8px;background:#fbffff;transition:opacity .18s ease,transform .18s ease}.description-box.is-fading{opacity:0;transform:translateY(-5px);pointer-events:none}.sample-description-box{display:block;padding:12px 14px}.sample-problem-statement{color:#354052;font-size:13px;line-height:1.5;white-space:pre-wrap}.description-box h3,.description-box p{margin:0}.description-box h3{font-size:15px;color:var(--teal-strong)}.description-box p{margin-top:3px;color:var(--muted);font-size:13px}.generation-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.cancel-generation-button{color:#b42318;border-color:#fecaca}.description-input-shell{grid-column:1 / -1;position:relative}.description-box textarea{display:block;width:100%;min-height:132px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);line-height:1.45}.description-input-shell.is-reading textarea:disabled{opacity:1;background:#fff;color:transparent;-webkit-text-fill-color:transparent}.generation-reading-text{position:absolute;inset:0;z-index:1;overflow:auto;padding:10px;border:1px solid #8fd3d0;border-radius:8px;background:#fff;color:#354052;font:inherit;line-height:1.45;pointer-events:none;white-space:pre-wrap;overflow-wrap:anywhere}.generation-reading-token{margin:-1px -2px;padding:1px 2px;border-radius:4px;transition:color .12s ease,background-color .12s ease,box-shadow .12s ease}.generation-reading-token.is-focused{background:#d9f5f3;color:#075e5b;box-shadow:0 0 0 1px #0f8f8f33}.generation-progress{grid-column:1 / -1;display:grid;gap:7px;max-height:220px;overflow:auto;padding-top:2px}.generation-active{display:grid;gap:8px;padding:9px 10px;border:1px solid #bfe6e5;border-radius:8px;background:#f5ffff}.generation-active strong{color:var(--teal-strong);font-size:13px}.generation-swoosh{position:relative;height:8px;overflow:hidden;border-radius:999px;background:#dbeafe}.generation-swoosh span{position:absolute;top:0;left:0;width:38%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--violet));animation:generation-swoosh 1.15s ease-in-out infinite alternate}@keyframes generation-swoosh{0%{transform:translate(0)}to{transform:translate(164%)}}@media(prefers-reduced-motion:reduce){.generation-swoosh span{width:100%;animation:none}.generation-reading-token,.description-box{transition:none}}.generation-step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px 9px;align-items:start;padding:8px 10px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.generation-variables{display:grid;gap:8px;padding:10px;border:1px solid #bfe6e5;border-radius:8px;background:#f5ffff}.generation-variables-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--teal-strong);font-size:13px}.generation-variables-heading span{display:inline-flex;align-items:center;gap:5px;font-weight:800}.generation-variables-heading strong{color:var(--ink)}.generation-variable-list{display:flex;flex-wrap:wrap;gap:5px}.generation-variable-list code,.generation-variable-list>span{padding:3px 6px;border:1px solid #cfe4f2;border-radius:999px;background:#fff;color:#26547a;font:11px/1.35 SFMono-Regular,Consolas,monospace}.generation-step span{grid-row:1 / span 2;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e8f7f7;color:var(--teal-strong);font-size:12px;font-weight:780}.generation-step strong{color:var(--ink);font-size:13px}.generation-step code{color:#354052;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;white-space:normal;overflow-wrap:anywhere}.generation-review,.generation-waiting{padding:8px 10px;border-radius:8px;background:#fff9ed;color:#8a5a00;font-size:13px}.generation-waiting{background:#eff6ff;color:#26547a}.editor-shell{display:grid;grid-template-columns:54px minmax(0,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;height:190px;background:#fff}.line-numbers{display:flex;flex-direction:column;align-items:flex-end;gap:0;height:100%;overflow:hidden;padding:15px 12px;background:#f7fafc;border-right:1px solid var(--line);color:#667085;font-family:SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.62}.code-editor{border:0;outline:0;resize:none;width:100%;height:100%;min-height:0;padding:15px 14px;color:#0f172a;font-family:SFMono-Regular,Consolas,monospace;font-size:14px;line-height:1.62;overflow:auto;scrollbar-gutter:stable;white-space:pre}.code-editor::placeholder{color:#8491a3;opacity:1}.panel-foot{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;color:var(--muted);font-size:13px}.source-variables{margin-top:14px;padding-top:12px;border-top:1px solid var(--soft-line)}.source-variables-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.source-variables-heading strong{color:var(--ink);font-size:13px}.source-variables-heading span{color:var(--muted);font-size:12px}.source-variable-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:5px}.source-variable-list code{min-width:0;padding:4px 6px;border:1px solid #dbe7ee;border-radius:4px;background:#f8fbfc;color:#26547a;font:11px/1.35 SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#344054}.clause-list{display:grid;gap:7px;max-height:306px;overflow:auto;padding-right:3px}.clause-row{display:grid;grid-template-columns:34px 1fr;align-items:center;min-height:36px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.clause-row span{justify-self:center;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#efe9ff;color:var(--violet);font-weight:740}.clause-row code{color:#172033;font-family:SFMono-Regular,Consolas,monospace;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);color:#475467;font-size:13px}.validation-list strong{grid-column:1 / -1;color:var(--ink);font-size:15px}.validation-list span{display:inline-flex;align-items:center;gap:6px}.validation-list svg{color:var(--green)}.dataframe-panel{overflow:hidden}.dataframe-scroll{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.dataframe-table{--target-column-width: 72px;--weight-column-width: 78px;width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.dataframe-table th,.dataframe-table td{min-width:34px;height:32px;padding:5px 6px;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line);text-align:center}.dataframe-table thead th{position:sticky;top:0;z-index:2;height:164px;background:#f8fafc;color:var(--muted)}.dataframe-table .row-label{left:0;z-index:3;min-width:112px;height:164px;text-align:left}.dataframe-table tbody th{position:sticky;left:0;z-index:3;min-width:112px;max-width:148px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;box-shadow:2px 0 0 var(--line)}.feature-heading{width:34px;min-width:34px!important;max-width:34px;padding:6px 4px!important;vertical-align:bottom}.feature-heading span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);color:var(--teal-strong);white-space:nowrap}.target-heading,.target-cell{width:var(--target-column-width);min-width:var(--target-column-width)!important;font-weight:800;color:#8a5a00}.weight-heading,.signed-weight-cell{width:var(--weight-column-width);min-width:var(--weight-column-width)!important;font-weight:800}.dataframe-table .target-heading,.dataframe-table .target-cell{position:sticky;right:var(--weight-column-width);z-index:2;box-shadow:-2px 0 0 var(--line)}.dataframe-table .weight-heading,.dataframe-table .signed-weight-cell{position:sticky;right:0;z-index:2}.dataframe-table thead .target-heading,.dataframe-table thead .weight-heading{z-index:4;background:#f8fafc}.dataframe-row.row-constraint th,.dataframe-row.row-constraint td{background:#f4fbfb}.dataframe-row.row-unit-well th,.dataframe-row.row-unit-well td{background:#f8f5ff}.dataframe-row .negative-cell{color:#b42318;font-weight:800}.dataframe-row.row-constraint .negative-weight-cell{color:#b42318;background:#ffe9e9;font-weight:900}.dataframe-row .positive-weight-cell{color:#5b3fb3;font-weight:850}.dataframe-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;color:var(--muted);font-size:12px}.dataframe-legend span{display:inline-flex;align-items:center;gap:6px}.dataframe-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}.legend-constraint{background:#dff5f5}.legend-unit{background:#efe9ff}.legend-negative{background:#ffe9e9;border-color:#f3a4a4!important}.label-scheme-select{margin:0 0 10px;justify-self:start}.label-scheme-select select{width:fit-content}.dataframe-note{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.evaluation-table .decode-cell{white-space:nowrap}.metric-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;min-height:31px;color:#475467}.metric-row strong{color:var(--ink);font-weight:650;text-align:right}.metric-row .accent{color:#d97706}.ready-band{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,auto) auto minmax(130px,auto) auto;align-items:center;gap:18px;margin:0 0 18px;padding:18px;border:1px solid #f5c26b;border-radius:8px;background:#fffdf8;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .9s ease,transform .9s ease,visibility 0s linear .9s}.ready-band.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition-delay:0s}.ready-copy{display:flex;gap:14px;align-items:center}@media(prefers-reduced-motion:reduce){.ready-band,.ready-band.is-visible{transform:none;transition:none}}.ready-copy svg{color:var(--amber)}.ready-copy h2{margin:0;font-size:20px}.ready-copy p{margin:4px 0 0;color:var(--muted)}.strategy-select select{min-width:160px}.stepper{display:grid;grid-template-columns:auto 36px 44px 36px;align-items:center;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.stepper span{padding:0 12px;color:#475467}.stepper button,.stepper strong{display:grid;place-items:center;height:38px;border:0;border-left:1px solid var(--line);background:#fff}.runtime-card{display:grid;gap:2px;color:var(--muted);font-size:12px}.runtime-card strong{color:var(--ink);font-size:20px}.primary-button,.secondary-button,.run-button,.danger-button,.proof-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 17px;border-radius:8px;border:1px solid var(--line);font-weight:760;white-space:nowrap}.primary-button,.run-button{background:linear-gradient(180deg,#0f9c9c,#087f80);color:#fff;border-color:#087f80}.secondary-button{background:#fff;color:var(--teal-strong)}.danger-button{background:#ff4d57;color:#fff;border-color:#ff4d57}.proof-button{background:#7257c9;color:#fff;border-color:#7257c9;width:100%}.run-button:disabled{color:#94a3b8;background:#edf1f6;border-color:#d7dee8;cursor:not-allowed}.error-box,.empty-state{border:1px dashed var(--line);border-radius:8px;padding:18px;color:var(--muted);background:#fbfcfe}.error-box{color:#b42318;border-color:#fecaca;background:#fff8f8}.run-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"workers workers" "log split";gap:14px;margin-top:18px;scroll-margin-top:18px}.worker-dashboard{grid-area:workers}.log-panel{grid-area:log}.split-panel{grid-area:split}.run-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);margin:-4px 0 12px}.stat{display:grid;gap:4px;padding:4px 14px 14px;border-right:1px solid var(--line);text-align:center}.stat:last-child{border-right:0}.stat span{color:var(--muted);font-size:12px}.stat strong{font-size:20px}.global-progress,.lane-progress{display:block;height:10px;overflow:hidden;border-radius:999px;background:#e9eef5}.global-progress{margin-bottom:14px}.global-progress span,.lane-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--violet))}.worker-table{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px}.worker-row{display:grid;grid-template-columns:72px 1.3fr 1fr .9fr 1fr 70px;gap:10px;align-items:center;min-height:38px;padding:0 12px;border-bottom:1px solid var(--soft-line)}.worker-row:last-child{border-bottom:0}.worker-head{background:#f7fafc;color:var(--muted);font-weight:720}.worker-id{color:var(--violet);font-weight:800}.loss-chart{margin-top:14px;border:1px solid var(--line);border-radius:8px;padding:12px}.chart-title{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}.chart-title span{color:var(--muted);font-size:12px}.loss-chart svg{width:100%;height:210px}.floor-line{stroke:var(--teal);stroke-width:2;stroke-dasharray:6 6}.chart-grid-line{stroke:#e5eaf0;stroke-width:1}.chart-axis{stroke:#98a2b3;stroke-width:1.2}.loss-line{fill:none;stroke:var(--violet);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.loss-chart .axis-label{fill:#667085;font-size:12px;font-style:normal}.loss-chart .floor-label{fill:var(--teal-strong);font-size:12px;font-style:italic}.solution-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.algorithm-diagnostic{margin:12px 0 16px;padding:14px;border:1px solid #f2b8b5;border-radius:8px;background:#fff7f6;color:#6c2a26}.algorithm-diagnostic>strong{display:block;margin-bottom:5px;color:#912018}.algorithm-diagnostic p{margin:0;font-size:13px;line-height:1.5}.algorithm-diagnostic .constraint-check{border-top-color:#f2cbc8}.mihara-result-summary{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.solution-equation{margin-bottom:12px;padding:12px;border:1px solid #bfe6e5;border-radius:8px;background:#fbffff}.solution-equation code{display:block;max-height:142px;overflow:auto;color:#122033;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.solution-equation span{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:700}.solution-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px}.solution-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:38px;padding:0 10px;border:1px solid var(--soft-line);border-radius:8px}.solution-row span{display:grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:999px;background:#e8f7f7;color:var(--teal-strong);font-weight:800}.constraint-check{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.constraint-check .metric-row+.metric-row{padding-left:16px;border-left:1px solid var(--line)}.evaluation-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.evaluation-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:10px}.evaluation-heading h3{margin:0;font-size:17px}.evaluation-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}.evaluation-heading>strong{color:var(--teal-strong);font-size:17px;white-space:nowrap}.evaluation-scroll{max-height:540px;overflow:auto;border:1px solid var(--line);border-radius:8px}.evaluation-table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.evaluation-table th,.evaluation-table td{padding:8px 10px;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line);text-align:right;white-space:nowrap}.evaluation-table thead th{position:sticky;top:0;z-index:2;background:#f7fafc;color:var(--muted);font-weight:800}.evaluation-table th:first-child,.evaluation-table .evaluation-observation{text-align:left}.evaluation-table tbody th{color:var(--ink)}.evaluation-observation{width:42%;min-width:340px;max-width:520px;line-height:1.35;white-space:normal!important}.evaluation-row.row-constraint th,.evaluation-row.row-constraint td{background:#f4fbfb}.evaluation-row.row-unit-well th,.evaluation-row.row-unit-well td{background:#f8f5ff}.evaluation-table .negative-evaluation{color:#b42318;font-weight:850}.evaluation-status{font-family:Inter,system-ui,sans-serif;font-weight:750}.status-satisfied,.status-at-target{color:var(--green)}.status-violated{color:#b42318}.status-away-from-target{color:#5b3fb3}.evaluation-table tfoot th,.evaluation-table tfoot td{position:sticky;bottom:0;background:#eef8f8;color:var(--ink);font-weight:850}.run-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:14px}.run-actions .run-status{margin-right:auto}.run-status{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 12px;border-radius:8px;border:1px solid var(--line);font-size:13px;font-weight:760;white-space:nowrap}.run-status.complete{background:#e7f7ef;border-color:#b6e4ca;color:var(--green)}.run-actions .proof-button{width:auto}.log-panel pre{min-height:210px;margin:0;padding:14px;border-radius:8px;background:#061215;color:#9dffce;overflow:auto;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}.split-panel p{margin:0 0 14px;color:var(--muted)}.basis-diagram{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.basis-diagram span{display:grid;min-width:96px;border:1px solid #bfe6e5;border-radius:8px;padding:8px;color:var(--muted);font-size:11px}.basis-diagram strong{color:var(--teal-strong);font-size:13px;font-family:SFMono-Regular,Consolas,monospace}.hyperplane-table{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden}.hyperplane-table div{display:grid;grid-template-columns:54px 1fr 1fr;gap:12px;min-height:32px;align-items:center;padding:0 10px;border-bottom:1px solid var(--soft-line)}.hyperplane-table div:last-child{border-bottom:0}.footer{display:flex;align-items:center;gap:28px;min-height:58px;margin-top:18px;padding:0 10px;border-top:1px solid var(--line);color:#647084;font-size:13px}.footer-status,.footer-lock{display:inline-flex;align-items:center;gap:8px}.footer-lock{margin-left:auto;font-style:italic}.mode-switch{display:flex;flex:1 1 680px;gap:10px;min-width:0;margin:0}.mode-tab{display:flex;align-items:center;gap:10px;flex:1;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;box-shadow:0 6px 18px #1220330d}.mode-tab svg{color:var(--muted);flex:0 0 auto}.mode-tab span{display:flex;flex-direction:column}.mode-tab strong{color:var(--ink);font-size:15px}.mode-tab small{color:var(--muted);font-size:12px}.mode-tab.on{border-color:var(--teal);box-shadow:0 8px 22px #0f8f8f2e}.mode-tab.on svg{color:var(--teal)}.mode-tab.on strong{color:var(--teal-strong)}.clause-forms{display:grid;gap:2px;min-width:0;padding:6px 10px}.clause-forms code{font-family:SFMono-Regular,Consolas,monospace;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clause-forms code.affine{color:var(--teal-strong);font-size:12px}.sudoku-mode{display:grid;grid-template-columns:minmax(340px,440px) 1fr 320px;grid-template-areas:"board objective search" "dataframe dataframe dataframe";gap:16px;align-items:start}.sudoku-mode.has-loss-history{grid-template-areas:"board objective search" "chart chart chart" "dataframe dataframe dataframe"}.sudoku-board-panel{grid-area:board}.sudoku-objective-panel{grid-area:objective}.sudoku-search-panel{grid-area:search}.sudoku-chart-panel{grid-area:chart}.sudoku-dataframe-panel{grid-area:dataframe}.sudoku-dataframe-scroll{max-height:480px}.dataframe-window-status{margin-top:8px;color:var(--muted);font-size:12px}.dataframe-virtual-spacer td{padding:0!important;border:0!important;background:#fff!important}.sudoku-grid{display:grid;grid-template-columns:repeat(9,1fr);width:100%;max-width:420px;margin:0 auto 12px;border:2.5px solid var(--ink);border-radius:6px;overflow:hidden;background:#fff}.sudoku-cell{display:grid;place-items:center;aspect-ratio:1 / 1;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line);font-family:Georgia,Times New Roman,serif;font-size:clamp(15px,2.4vw,22px);font-weight:600;color:var(--teal-strong);transition:background .12s ease}.sudoku-cell input{width:100%;height:100%;min-width:0;border:0;border-radius:0;outline:0;padding:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:center;-webkit-text-fill-color:currentColor;opacity:1}.sudoku-grid.is-editable .sudoku-cell{cursor:text}.sudoku-grid.is-editable .sudoku-cell:focus-within{position:relative;z-index:1;box-shadow:inset 0 0 0 2px var(--teal)}.sudoku-cell.box-right{border-right:2.5px solid var(--ink)}.sudoku-cell.box-bottom{border-bottom:2.5px solid var(--ink)}.sudoku-cell.clue{color:var(--ink);background:#eef3f8;font-weight:800}.sudoku-cell.moved{background:#fff2cf}.sudoku-cell.conflict{background:#ffe1e1;color:var(--coral)}.board-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:12px;color:var(--muted);font-size:12px}.board-legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}.swatch.clue{background:#eef3f8}.swatch.fill{background:#fff}.swatch.conflict{background:#ffe1e1;border-color:#ffc9c9}.sample-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.sample-row .secondary-button{min-height:36px;padding:0 12px}.puzzle-input-label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}.puzzle-input{width:100%;min-height:70px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);font-family:SFMono-Regular,Consolas,monospace;font-size:13px;letter-spacing:1px}.board-status{margin-top:4px}.status-good,.status-warn,.status-run{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600;line-height:1.35}.status-good{background:#e7f7ef;color:var(--green)}.status-warn{background:#fff4e5;color:#b45309}.status-run{background:#eef2f8;color:var(--muted)}.control-block{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.control-label{color:var(--muted);font-size:13px}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segmented .seg{border:0;border-left:1px solid var(--line);background:#fff;padding:0 12px;height:36px;color:var(--muted);font-weight:640;text-transform:capitalize}.segmented .seg:first-child{border-left:0}.segmented .seg.on{background:var(--teal);color:#fff}.segmented .seg:disabled{cursor:not-allowed;opacity:.55}.segmented.small .seg{padding:0 10px;font-size:13px}.sudoku-stats{margin-top:8px}.result-pill{display:inline-flex;align-items:center;gap:8px;padding:0 14px;min-height:44px;border-radius:8px;background:#e7f7ef;color:var(--green);border:1px solid #bfe6cf;font-weight:720}@media(max-width:1180px){.setup-grid,.run-grid{grid-template-columns:1fr;grid-template-areas:none}.app-title-row{align-items:stretch;flex-direction:column}.app-title-copy{flex:none;min-width:0}.mode-switch{flex:none}.column-resize-handle{display:none}.sudoku-mode{grid-template-columns:1fr;grid-template-areas:none}.sudoku-board-panel,.sudoku-objective-panel,.sudoku-search-panel,.sudoku-dataframe-panel,.sudoku-chart-panel,.worker-dashboard,.log-panel,.split-panel{grid-area:auto}.ready-band{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{padding:10px 10px 0}.app-title-row h1{font-size:25px}.footer,.panel-foot{flex-wrap:wrap}.footer-lock{margin-left:0}.run-stats,.worker-row{grid-template-columns:1fr 1fr}.constraint-check{grid-template-columns:1fr}.constraint-check .metric-row+.metric-row{padding-left:0;border-left:0}.evaluation-heading{align-items:flex-start;flex-direction:column}.worker-head{display:none}.ready-band{gap:14px}.panel-header-actions,.problem-header-actions{align-items:stretch;flex-direction:column}.problem-header-actions,.sample-select select{width:100%}}
