:root{--bg:#f6f8fd;--panel:#fff;--text:#1d2736;--muted:#79849a;--line:#e8edf7;--line-strong:#d6def0;--accent:#c8ad7f;--accent-text:#7d6640;--brand:#3d63f2;--brand-soft:#edf2ff;--status-bg:#f1f4fa}*{box-sizing:border-box}html,body{min-height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);margin:0;font-family:Instrument Sans,Segoe UI,sans-serif}button,input,label{font:inherit}a{color:inherit}.page-shell{min-height:100vh}.workspace-shell{grid-template-columns:260px minmax(0,1fr);gap:0;height:100vh;padding:0;transition:grid-template-columns .3s;display:grid;overflow:hidden}.workspace-shell.collapsed{grid-template-columns:80px minmax(0,1fr)}.workspace-shell.collapsed .step-main,.workspace-shell.collapsed .sidebar-module strong,.workspace-shell.collapsed .sidebar-module-caret{display:none}.workspace-shell.collapsed .sidebar-module{grid-template-columns:1fr;justify-items:center;padding:10px}.workspace-shell.collapsed .step-item{grid-template-columns:1fr;justify-content:center;padding:11px 0}.workspace-shell.collapsed .step-index{margin:0 auto}.side-nav{box-shadow:none;background:#fff;border:none;border-right:1px solid #e8edf7;border-radius:0;grid-template-rows:auto auto 1fr;gap:16px;height:100vh;padding:16px;transition:padding .3s;display:grid;position:sticky;top:0;overflow:hidden auto}.workspace-shell.collapsed .side-nav{padding:16px 8px}.section-label{color:var(--brand);letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px;font-size:.72rem;font-weight:700}.brand-block h1,.stage-heading h2,.topbar h2{letter-spacing:-.04em;margin:0}.brand-block{gap:14px;display:grid}.sidebar-profile{text-align:center;background:linear-gradient(#fff 0%,#f9fbff 100%);border:1px solid #edf1f8;border-radius:16px;justify-items:center;gap:4px;padding:18px 14px 14px;display:grid}.sidebar-avatar{color:#7d8799;background:#d9deea;border-radius:999px;place-items:center;width:88px;height:88px;font-size:1.2rem;font-weight:700;display:grid}.sidebar-profile strong{font-size:1.05rem;font-weight:700}.sidebar-profile span,.sidebar-profile small{color:#7b8496;font-size:.86rem}.sidebar-module{appearance:none;cursor:pointer;color:#39445a;text-align:left;background:#f7f9ff;border:none;border-radius:12px;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:10px 14px;font-size:.96rem;font-weight:600;display:grid}.sidebar-module-icon,.sidebar-module-caret{color:#7c87a0}.nav-meta{color:var(--muted);gap:10px;font-size:.8rem;display:flex}.steps-nav{align-content:start;gap:6px;display:grid}.entity-side-list{border-top:1px solid var(--line);align-content:start;gap:6px;padding-top:10px;display:grid}.workspace-inner-shell{grid-template-columns:260px minmax(0,1fr);gap:20px;min-width:0;display:grid}.results-side-nav{border-right:1px solid var(--line);align-content:start;gap:14px;padding-right:16px;display:grid}.results-main{align-content:start;gap:12px;min-width:0;display:grid}.entity-side-item{appearance:none;border:1px solid var(--line);color:var(--text);text-align:left;cursor:pointer;background:#fff;padding:10px 12px}.entity-side-item.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.step-item{appearance:none;color:#7f8aa1;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;display:grid}.step-item.active{color:#3d63f2;background:#edf2ff;border-color:#dfe6ff}.utility-item{border-top:1px solid var(--line);margin-top:10px;padding-top:14px}.step-index{color:#8b95a8;background:#f2f5fb;border-radius:999px;place-items:center;width:28px;height:28px;font-size:.78rem;font-weight:700;display:grid}.step-index.complete{color:#1d6a4d;background:#eaf4ef}.step-main{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.step-copy{gap:2px;min-width:0;display:grid}.step-copy strong{font-size:.88rem;font-weight:600;line-height:1.15}.step-item.active .step-index{color:#3d63f2;background:#dfe7ff}.step-item.active .step-copy small,.step-item.active .step-copy strong{color:#3d63f2}.step-copy small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.status-badge{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;background:var(--status-bg);border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;padding:4px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.status-badge.ready{color:#1a7a53;background:#e6f5ee;border-color:#b8e0cc}.status-badge.warning{color:#9a5d02;background:#fff3e3;border-color:#f5d9a8}.status-badge.error{color:#b42318;background:#fdeceb;border-color:#f5c5c2}.status-badge.idle{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.side-footer{align-self:end;gap:12px;padding-top:8px;display:grid}.sidebar-powered,.sidebar-logout{border-radius:12px;place-items:center;min-height:36px;padding:8px 12px;font-size:.85rem;display:grid}.sidebar-powered{color:#3d63f2;background:#fff;border:1px solid #8aa1ff;font-weight:600}.sidebar-logout{color:#7b8496;background:0 0;justify-content:start}.bulk-upload-link,.upload-zone,.primary-button,.ghost-button{border:1px solid var(--line-strong);min-height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;text-decoration:none;display:inline-flex;position:relative}.bulk-upload-link{width:100%}.primary-button{border-color:var(--brand);background:var(--brand);color:#fff}.ghost-button:disabled,.primary-button:disabled{opacity:.45;cursor:not-allowed}.file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stage-area{min-width:0;height:100vh;padding:16px 20px 32px;overflow:hidden auto}.stage-card{gap:14px;min-width:0;display:grid}.topbar{border:1px solid var(--line);background:#fff;border-radius:18px;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 16px;display:flex;box-shadow:0 8px 24px #233d780a}.topbar h2{font-size:1.35rem;font-weight:700}.topbar p,.section-copy,.meta-row,.empty-preview span,td{color:var(--muted)}.topbar p{margin:8px 0 0;font-size:.92rem}.admin-pill{color:#60708f;background:#f8faff;border:1px solid #dde5fb;border-radius:12px;padding:10px 16px;font-size:.86rem;font-weight:600}.step-switcher{border:1px solid var(--line);z-index:20;background:#fff;border-radius:14px;align-items:flex-start;padding:12px 20px 10px;display:flex;position:sticky;top:0;box-shadow:0 4px 14px #233d780a}.wf-step{cursor:pointer;text-align:center;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;min-width:64px;padding:0;display:flex}.wf-circle{color:#aab0c0;background:#f8f9fc;border:2px solid #dde3ef;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.78rem;font-weight:700;transition:background .3s,border-color .3s,color .3s,box-shadow .3s;display:flex}.wf-step.active .wf-circle{background:var(--brand);border-color:var(--brand);color:#fff;animation:2s ease-in-out infinite wf-pulse;box-shadow:0 0 0 4px #6366f11f,0 3px 10px #6366f147}.wf-step.done .wf-circle{color:#fff;box-shadow:none;background:#10b981;border-color:#10b981}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes wf-pulse{0%,to{box-shadow:0 0 0 4px #6366f11f,0 3px 10px #6366f147}50%{box-shadow:0 0 0 7px #6366f112,0 3px 10px #6366f12e}}.wf-label{color:#aab0c0;white-space:nowrap;font-size:.68rem;font-weight:500;transition:color .3s}.wf-step.active .wf-label{color:var(--brand);font-weight:600}.wf-step.done .wf-label{color:#10b981;font-weight:500}.wf-connector{background:#e8ecf5;border-radius:2px;flex:1;height:2px;margin-top:16px;transition:background .4s;position:relative;overflow:hidden}.wf-connector:after{content:"";transform-origin:0;background:#10b981;transition:transform .4s;position:absolute;inset:0;transform:scaleX(0)}.wf-connector.done:after{transform:scaleX(1)}.step-switcher.ingestion-switcher{gap:4px;align-items:unset;box-shadow:none;border:1px solid var(--line);z-index:auto;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;display:grid;position:static}.step-tab{appearance:none;color:#9aa4b7;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:9px 14px;font-size:.85rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.step-tab-index{color:#9aa4b7;background:#f2f4f8;border-radius:999px;place-items:center;width:20px;height:20px;font-size:.72rem;font-weight:700;display:inline-grid}.step-tab.active{color:var(--brand);background:#6366f114;font-weight:600}.step-tab:disabled{opacity:.45;cursor:not-allowed}.success-banner{color:#1d6a4d;background:#eaf4ef;border:1px solid #cfe5d8;border-radius:14px;padding:10px 14px;font-size:.86rem}.stage-heading{border:1px solid var(--line);background:#fff;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px 4px;display:flex;box-shadow:0 8px 24px #233d780a}.stage-heading h2{font-size:1.5rem;font-weight:700}.stage-heading .section-copy{max-width:760px;margin:10px 0 0;font-size:.95rem;line-height:1.5}.schema-block,.preview-shell{gap:12px;display:grid}.settings-head h3,.preview-head h3,.empty-preview p{font-size:.98rem;font-weight:700}.upload-zone{background:#fcfefe;border-style:dashed;border-color:#cfe0e4;min-height:132px}.upload-zone-copy{text-align:center;gap:6px;display:grid}.upload-zone-copy strong{font-size:1rem}.dataset-list,.warning-stack{gap:10px;display:grid}.dataset-row{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.dataset-row.compact{padding:10px 14px}.dataset-copy{gap:4px;min-width:0;display:grid}.dataset-copy strong{font-size:.92rem}.dataset-copy span,.dataset-file,.helper-copy{color:var(--muted);font-size:.82rem}.uploadable{cursor:pointer;position:relative;overflow:hidden}.dataset-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.inline-button{min-height:34px;padding:7px 12px}.warning-box{color:#9a5d02;background:#fff3e3;border:1px solid #f1dcc1;border-radius:14px;padding:12px 14px;font-size:.86rem}.settings-section{border:1px solid var(--line);background:#fff;border-radius:18px;gap:16px;padding:16px;display:grid;box-shadow:0 8px 24px #233d780a}.status-panel{border:1px solid var(--line);background:#fffdfa;gap:14px;padding:14px;display:grid}.status-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.status-meta-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.status-meta-card{border:1px solid var(--line);background:#fff;border-radius:14px;gap:4px;padding:12px;display:grid}.status-meta-card span{color:var(--muted);font-size:.72rem}.status-meta-card strong{font-size:.82rem;font-weight:600}.settings-head h3{margin:0}.settings-grid{grid-template-columns:repeat(4,max-content);align-items:end;gap:14px;display:grid}.field-compact{width:min(260px,100%)}.field-medium{width:min(220px,100%)}.break-list{justify-content:start;gap:6px;display:grid}.field,.field-stack{gap:8px;display:grid}.field span,.field-label{color:#5b6676;font-size:.8rem;font-weight:500}.field input,.field select{border:1px solid var(--line-strong);width:100%;min-height:44px;color:var(--text);background:#fff;border-radius:12px;padding:10px 14px}.field input:focus,.field select:focus,.search-shell input:focus{border-color:#aebfff;outline:none;box-shadow:0 0 0 3px #3d63f21f}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%237b8496' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.day-toggle-row{flex-wrap:wrap;gap:8px;display:flex}.day-toggle{appearance:none;border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;background:#fff;border-radius:12px;padding:9px 12px}.day-toggle.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.break-section-head{align-items:flex-start;gap:16px;display:flex}.break-section-head .section-copy{margin:6px 0 0}.break-row-compact{grid-template-columns:max-content 170px max-content 170px max-content;justify-content:start;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:4px 0;display:inline-grid}.break-badge{color:var(--brand);background:var(--brand-soft);border-radius:999px;align-self:center;padding:5px 10px;font-size:.78rem;font-weight:600}.break-time-field{gap:0;width:100%}.break-separator{color:var(--muted);align-self:center;font-size:.8rem;font-weight:500}.break-remove-button{justify-self:start}.break-add-button{justify-self:start;margin-top:2px}.icon-action{border:1px solid var(--line-strong);width:32px;height:32px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;place-items:center;padding:0;font-size:1rem;line-height:1;display:inline-grid}.break-empty-state{border:1px dashed var(--line-strong);background:#fffdfa;gap:4px;padding:16px;display:grid}.break-empty-state strong{font-size:.92rem;font-weight:600}.solver-params-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.preview-shell,.empty-preview{border:1px solid var(--line);background:#fff;border-radius:18px}.preview-shell{padding:0}.preview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 18px 0;display:flex}.preview-head h3{margin:0}.meta-row{gap:14px;font-size:.84rem;display:flex}.table-wrap{min-height:0;overflow:auto}.results-controls{align-content:start;gap:10px;display:grid}.toolbar-row{justify-content:flex-start;align-items:flex-start;gap:12px;display:flex}.search-shell{width:min(360px,100%)}.search-shell input{border:1px solid var(--line-strong);background:#fff;border-radius:12px;width:100%;min-height:44px;padding:10px 14px}.entity-subtabs{flex-wrap:wrap;gap:8px;display:flex}.entity-subtab{appearance:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:9px 16px;font-size:.84rem}.entity-subtab.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}table{border-collapse:separate;border-spacing:0;width:100%;min-width:0}.timetable-grid{width:max-content;min-width:100%}.timetable-grid th,.timetable-grid td{box-sizing:border-box}.timetable-grid .slot-column{width:340px;min-width:340px}.timetable-grid .day-column{z-index:3;background:#fffdfa;width:164px;min-width:164px;position:sticky;left:0}.timetable-grid tbody .day-column{z-index:2;background:#fff}.timetable-grid .day-column:after{content:"";background:#e1d6c1;width:2px;height:100%;position:absolute;top:0;right:-2px}.break-row-cell{background:#faf7f1}.cell-stack{gap:8px;display:grid}.class-pill,.break-pill{border:1px solid var(--line);background:#fff;align-items:center;padding:7px 10px;font-size:.8rem;line-height:1.4;display:inline-flex}.break-pill{color:var(--accent-text);background:#fbf5e8;border-color:#eadcc1}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;border-right:1px solid #0000;padding:14px 18px;font-size:.88rem;position:relative}th{color:#5b6676;background:#fffdfa;font-size:.82rem;font-weight:600}.timetable-grid tr>:last-child{border-right-color:#0000}tbody tr:last-child td{border-bottom:0}.empty-preview{text-align:center;place-items:center;min-height:148px;padding:20px;display:grid}.empty-preview p{margin:0 0 8px}.stage-actions{border:1px solid var(--line);background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex;box-shadow:0 8px 24px #233d780a}.stage-actions-left,.stage-actions-right{align-items:center;gap:12px;display:flex}.preview-modal{border:1px solid var(--line);background:#fff;gap:16px;width:min(980px,100%);max-height:min(78vh,760px);padding:20px;display:grid;overflow:hidden}.service-map,.manual-record-list,.validation-column{gap:12px;display:grid}.service-card,.validation-card,.manual-record-card,.integration-card{border:1px solid var(--line);background:#fff;border-radius:16px;gap:8px;padding:16px;display:grid}.service-head,.manual-record-head,.manual-editor-head,.ingestion-head,.integration-actions{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.service-code{width:34px;height:34px;color:var(--brand);background:var(--brand-soft);place-items:center;font-size:.78rem;font-weight:700;display:inline-grid}.service-card strong,.validation-card strong,.manual-editor-head strong,.ingestion-head h3{margin:0;font-size:.98rem}.service-card span,.validation-card span,.manual-editor-head span,.ingestion-head .section-copy{color:var(--muted);font-size:.84rem}.manual-editor-head>div{flex-direction:column;gap:6px;display:flex}.source-overview-grid,.integration-grid,.validation-grid,.export-grid{gap:12px;display:grid}.source-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.integration-grid,.validation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.export-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.manual-entry-shell{grid-template-columns:240px minmax(0,1fr);gap:16px;display:grid}.manual-dataset-nav{align-content:start;gap:8px;display:grid}.manual-dataset-tab{appearance:none;border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;gap:2px;padding:12px;display:grid}.manual-dataset-tab.active{border-color:var(--brand);background:var(--brand-soft)}.manual-dataset-tab small{color:var(--muted);font-size:.78rem}.manual-editor{gap:14px;display:grid}.manual-fields-grid,.chip-grid{gap:12px;display:grid}.manual-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chip-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.validation-column{align-content:start;gap:12px;display:grid}.validation-bar{border:1px solid var(--line);background:#fff;border-radius:18px;flex-wrap:wrap;gap:16px;margin-bottom:4px;padding:14px 16px;display:flex;box-shadow:0 8px 24px #233d780a}.validation-bar-item{border:1px solid var(--line);background:#fbfcff;border-radius:14px;flex:1;align-items:center;gap:12px;min-width:260px;padding:12px 16px;display:flex}.validation-bar-copy{gap:2px;display:grid}.validation-bar-copy strong{font-size:.88rem;font-weight:600}.validation-bar-copy span{color:var(--muted);font-size:.78rem}.rules-layout{grid-template-columns:1fr 1fr;gap:20px;display:grid}.rules-column{border:1px solid var(--line);background:linear-gradient(#fff 0%,#fbfcff 100%);border-radius:20px;align-content:start;gap:14px;padding:18px;display:grid;box-shadow:inset 0 1px #ffffffe6}.constraints-grid-vertical{gap:12px;display:grid}.rules-column h3{color:var(--text);margin:0;font-size:1.02rem;font-weight:700}.rules-column .ingestion-head{border-bottom:1px solid #edf1f7;align-items:center;padding-bottom:12px}.rules-column .ingestion-head:before{content:"";background:linear-gradient(#86a0ff 0%,#3d63f2 100%);border-radius:999px;width:10px;height:10px;margin-top:2px;display:inline-block;box-shadow:0 0 0 6px #3d63f21a}.rules-column:first-child .ingestion-head:before{background:linear-gradient(#8fd1b2 0%,#2d7e62 100%);box-shadow:0 0 0 6px #2d7e621a}.constraints-section{gap:12px;display:grid}.section-label-alt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.mt-8{margin-top:24px}.constraints-grid,.constraints-grid-compact{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.constraint-button{appearance:none;color:#5f6f91;text-align:left;cursor:pointer;background:linear-gradient(#fff 0%,#f8faff 100%);border:1px solid #d8e1fb;border-radius:18px;gap:7px;width:100%;padding:16px 18px;transition:all .18s;display:grid}.constraint-button:hover{background:linear-gradient(#fff 0%,#f2f6ff 100%);border-color:#9db2ff;transform:translateY(-1px);box-shadow:0 10px 18px #3d63f214}.constraint-button.active{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 1px var(--brand), 0 10px 20px #3d63f21a;background:linear-gradient(#f8faff 0%,#eaf0ff 100%)}.constraint-button strong,.constraint-badge-fixed strong{font-size:.95rem;font-weight:700;display:block}.constraint-button p,.constraint-badge-fixed p{margin:0;font-size:.82rem;line-height:1.45}.constraint-badge-fixed{color:#2d7e62;background:linear-gradient(#fbfefc 0%,#f1f9f5 100%);border:1px solid #d5eadf;border-radius:18px;gap:7px;width:100%;padding:16px 18px;display:grid;box-shadow:inset 0 1px #ffffffe6}.constraint-badge-fixed strong{color:#215c48}.constraint-badge-fixed p{opacity:.92}@media (max-width:980px){.manual-entry-shell,.integration-grid,.validation-grid,.source-overview-grid,.export-grid,.manual-fields-grid{grid-template-columns:1fr}.workspace-shell{grid-template-columns:1fr;padding:0}.workspace-inner-shell{grid-template-columns:1fr}.results-side-nav{border-right:0;border-bottom:1px solid var(--line);padding-bottom:14px;padding-right:0}.side-nav{border:1px solid #e8edf7;border-radius:18px}.stage-area{padding:8px 0 12px}.topbar,.stage-heading,.stage-actions,.toolbar-row,.break-section-head{flex-direction:column;align-items:flex-start}.tab-row{width:100%;overflow-x:auto}.settings-grid,.break-row-compact,.status-meta-grid{grid-template-columns:1fr}.step-switcher{grid-template-columns:1fr;gap:8px}.solver-params-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-compact,.field-medium{width:100%}}.modal-backdrop{z-index:120;background:#12192638;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.preview-modal{border:1px solid var(--line);background:#fff;border-radius:20px;grid-template-rows:auto auto 1fr;gap:16px;width:min(980px,100%);max-height:min(85vh,800px);padding:24px;display:grid;overflow:hidden}.preview-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.preview-modal-head h3{margin:0;font-size:1rem}.uploads-stack{margin-top:12px}.upload-result{border:1px solid var(--line);background:#fff;padding:14px}@media (max-width:980px){.workspace-shell,.workspace-inner-shell{grid-template-columns:1fr}.results-side-nav{border-right:0;border-bottom:1px solid var(--line);padding-bottom:14px;padding-right:0}.side-nav{border-right:0;border-bottom:1px solid var(--line)}.stage-area{padding:20px 16px 28px}.topbar,.stage-heading,.stage-actions,.toolbar-row,.break-section-head{flex-direction:column;align-items:flex-start}.tab-row{width:100%;overflow-x:auto}.settings-grid,.break-row-compact,.status-meta-grid,.solver-params-grid{grid-template-columns:1fr}.field-compact,.field-medium{width:100%}}
