html,body,#root{margin:0;padding:0;height:100%;width:100%;background:#111827;color:#e5e7eb;font-family:system-ui,sans-serif;overflow:hidden}.app{display:grid;grid-template-rows:auto auto 1fr auto;height:100%;width:100%}.body{display:grid;grid-template-columns:1fr 360px;height:100%;min-height:0}.sidebar{background:#1f2937;padding:16px;display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;overflow-y:auto}.sidebar.panel-right{order:2;border-left:1px solid #374151;border-right:none;min-width:320px}.viewport{order:1}.sidebar h1{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:.04em;color:#f3f4f6;flex-shrink:0}.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.sidebar::-webkit-scrollbar,.sidebar-scroll::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track,.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb,.sidebar-scroll::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.sidebar h2{margin:0 0 4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#d1d5db}.sidebar-section{display:flex;flex-direction:column;gap:10px}.sidebar-divider{border:none;border-top:1px solid #374151;margin:4px 0}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:12px;color:#d1d5db}.muted{color:#9ca3af;font-weight:400}.number-input,.select-input{background:#111827;color:#f3f4f6;border:1px solid #374151;border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit}.number-input:focus,.select-input:focus{outline:none;border-color:#2563eb}.number-input:disabled,.select-input:disabled{background:#1f2937;color:#6b7280}.button{background:#2563eb;color:#f8fafc;border:none;border-radius:4px;padding:8px 12px;font-size:13px;cursor:pointer;transition:background .1s ease}.button:hover{background:#1d4ed8}.button:disabled{background:#374151;color:#9ca3af;cursor:not-allowed}.button-primary{background:#059669}.button-primary:hover{background:#047857}.button-primary:disabled{background:#374151;color:#9ca3af}.button-busy{display:inline-flex;align-items:center;gap:8px}.spinner{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:#f8fafc;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hint{color:#9ca3af;font-size:12px;line-height:1.4}.viewport{position:relative;min-width:0;min-height:0;background:#0f172a}.viewport canvas{display:block;width:100%!important;height:100%!important}.statusbar{background:#1f2937;border-top:1px solid #374151;padding:6px 12px;font-size:12px;color:#9ca3af;display:flex;justify-content:space-between;gap:16px}.statusbar .error{color:#fca5a5}.stats{display:inline-flex;align-items:baseline;gap:16px}.stat{display:inline-flex;align-items:baseline;gap:4px}.stat b{color:#f3f4f6;font-weight:600}.radio-group{display:flex;flex-direction:column;gap:4px}.radio-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#e5e7eb;cursor:pointer;padding:2px 0}.radio-row input[type=radio]{accent-color:#2563eb;cursor:pointer}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#e5e7eb;cursor:pointer;padding:2px 0}.checkbox-row input[type=checkbox]{accent-color:#2563eb;cursor:pointer}.legend{display:flex;flex-direction:column;gap:4px;margin-top:4px}.legend-values{display:flex;justify-content:space-between;font-size:12px;color:#e5e7eb}.legend-bar{width:100%;height:10px;border-radius:2px;background:linear-gradient(to right,#22c55e,#eab308,#ef4444);border:1px solid #374151}.section-controls{display:flex;flex-direction:column;gap:10px;margin-top:4px}.segmented{display:inline-flex;border:1px solid #374151;border-radius:4px;overflow:hidden;align-self:flex-start}.segmented button{background:transparent;color:#d1d5db;border:none;padding:6px 14px;font-size:13px;font-family:inherit;cursor:pointer;transition:background .1s ease}.segmented button:hover{background:#111827}.segmented button.active{background:#2563eb;color:#f8fafc}.segmented button+button{border-left:1px solid #374151}.slider-row{display:flex;gap:8px;align-items:center}.slider{flex:1;min-width:0;accent-color:#2563eb}.slider-value{width:80px;flex-shrink:0}.refinements-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bodies-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.body-row{display:flex;flex-direction:column;font-size:12px;color:#e5e7eb}.body-row-header{display:flex;align-items:center;gap:8px}.body-row-active{border-left:2px solid #60a5fa;padding-left:6px;margin-left:-8px}.body-row-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer}.body-overrides-badge{font-size:10px;color:#fcd34d;background:#fcd34d1f;border:1px solid rgba(252,211,77,.4);padding:0 4px;border-radius:2px;margin-left:4px;text-transform:uppercase;letter-spacing:.04em}.active-body-badge{font-size:11px;color:#93c5fd;background:#60a5fa1a;border:1px solid rgba(96,165,250,.3);padding:4px 8px;border-radius:3px;margin:4px 0 8px}.entry-body-tag{font-size:10px;color:#cbd5e1;background:#94a3b82e;padding:0 4px;margin-left:6px;border-radius:2px;font-weight:400;letter-spacing:.02em}.body-edit-panel{border-top:1px dashed rgba(148,163,184,.25);margin-top:6px;padding:8px 4px 4px 22px;display:flex;flex-direction:column;gap:10px}.body-edit-panel-meta{font-size:10px;color:#94a3b8;font-variant-numeric:tabular-nums}.body-list-view .body-entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.body-list-view .body-entry-row{display:flex;align-items:center;gap:6px;font-size:11px}.body-list-view .body-entry-row>span:first-child{flex:1;min-width:0}.body-advanced-sizing>summary{cursor:pointer;font-size:11px;color:#cbd5e1;-webkit-user-select:none;user-select:none}.body-advanced-sizing{display:flex;flex-direction:column;gap:8px}.inherited-marker{font-size:10px;font-style:italic;color:#94a3b8;margin-left:6px;font-weight:400}.reset-override-link{font-size:10px;margin-left:6px;color:#fbbf24;background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;font-weight:400}.reset-override-link:disabled{color:#6b7280;cursor:not-allowed;text-decoration:none}.body-color-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.25);flex-shrink:0}.body-name{flex:0 0 auto;font-weight:500}.body-dimensions{flex:1;min-width:0;color:#9ca3af;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.body-edit-button{flex-shrink:0;padding:2px 8px;font-size:11px}.refinement-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#e5e7eb}.refinement-label{flex:1;min-width:0}.refinement-size{width:64px;flex-shrink:0;padding:4px 6px;font-size:12px}.icon-button{background:transparent;color:#9ca3af;border:1px solid #374151;border-radius:4px;width:22px;height:22px;padding:0;font-size:14px;line-height:1;cursor:pointer;transition:background .1s ease,color .1s ease}.icon-button:hover:not(:disabled){background:#374151;color:#f3f4f6}.icon-button:disabled{opacity:.4;cursor:not-allowed}.field-error{display:block;margin-top:2px;font-size:11px;color:#fca5a5}.selection-builder{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid #374151;border-radius:4px;background:#111827}.selection-builder-actions{display:flex;gap:6px}.selection-builder-actions .button{flex:1}.selections-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.selection-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#e5e7eb}.selection-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.category-load{background:#ef4444}.category-support{background:#3b82f6}.category-contact{background:#8b5cf6}.category-other{background:#6b7280}.stats-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;cursor:default;z-index:9}.stats-panel{position:absolute;top:0;right:0;bottom:0;width:300px;background:#1f2937;border-left:1px solid #374151;box-shadow:-4px 0 12px #0000004d;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;z-index:10;color:#e5e7eb}.stats-header{display:flex;align-items:center;justify-content:space-between;margin:0}.stats-header h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.08em;color:#f3f4f6}.stats-close{font-size:18px}.stats-section{display:flex;flex-direction:column;gap:8px}.stats-section h3{margin:0 0 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#d1d5db}.stats-rows{margin:0;display:flex;flex-direction:column;gap:4px}.stats-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stats-row dt{color:#9ca3af}.stats-row dd{margin:0;color:#f3f4f6;font-variant-numeric:tabular-nums;font-weight:600}.stats-tabs{display:flex;border:1px solid #374151;border-radius:4px;overflow:hidden}.stats-tabs button{flex:1;background:transparent;color:#d1d5db;border:none;padding:6px 4px;font-size:11px;font-family:inherit;cursor:pointer;transition:background .1s ease}.stats-tabs button:hover{background:#111827}.stats-tabs button.stats-tab-help{flex:0 0 auto;width:26px;color:#06b6d4;font-weight:700}.stats-tabs button.stats-tab-help:hover{background:#06b6d426}.stats-tabs button.active{background:#2563eb;color:#f8fafc}.stats-tabs button+button{border-left:1px solid #374151}.histogram{display:flex;flex-direction:column;gap:4px;margin-top:4px}.histogram-bars{width:100%;height:100px;background:#111827;border:1px solid #374151;border-radius:2px}.histogram-axis{display:flex;justify-content:space-between;font-size:10px;color:#9ca3af;font-variant-numeric:tabular-nums}.stats-empty{font-size:12px;color:#9ca3af;font-style:italic}.convergence-panel{display:flex;flex-direction:column;gap:6px}.convergence-subplot{display:flex;flex-direction:column;gap:2px}.convergence-subplot-label{font-size:11px;color:#d1d5db;font-variant-numeric:tabular-nums}.convergence-svg{width:100%;height:70px;background:#111827;border:1px solid #374151;border-radius:2px}.convergence-verdicts{display:flex;flex-direction:column;gap:4px;margin-top:4px;font-size:11px}.convergence-verdict{padding:4px 6px;border-radius:3px;border-left:3px solid #475569;background:#1e293b;color:#d1d5db;font-variant-numeric:tabular-nums}.convergence-verdict-converged{border-left-color:#22c55e}.convergence-verdict-needs_finer{border-left-color:#f59e0b}.stats-tabs button:disabled{opacity:.45;cursor:not-allowed}.collapsible-header{background:transparent;border:none;color:inherit;padding:0;display:flex;align-items:center;gap:6px;cursor:pointer;text-align:left;font:inherit}.collapsible-header h2{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#d1d5db}.collapsible-arrow{color:#9ca3af;font-size:10px;width:10px;display:inline-block}.field-error{font-size:11px;color:#f59e0b}.diagnostics-panel{display:flex;flex-direction:column;gap:10px;font-size:12px;color:#e5e7eb}.diagnostics-empty{color:#94a3b8;font-style:italic;padding:12px 4px}.diagnostics-summary{display:flex;flex-direction:column;gap:3px;padding:8px;background:#0f172a8c;border:1px solid rgba(71,85,105,.3);border-radius:4px}.diagnostics-summary-row{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.diagnostics-summary-row.flagged{color:#f59e0b;font-weight:600}.diagnostics-clean{color:#22c55e;font-weight:500;text-align:center;padding:12px 0}.diagnostics-thresholds{background:#0f172a59;border:1px solid rgba(71,85,105,.3);border-radius:4px;padding:6px 8px}.diagnostics-thresholds>summary{cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.diagnostics-threshold-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.diagnostics-threshold-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.diagnostics-threshold-row>input{width:80px;padding:2px 6px;background:#1e293b;color:#f1f5f9;border:1px solid #475569;border-radius:2px;font-size:11px}.diagnostics-apply{margin-top:4px}.diagnostics-section{display:flex;flex-direction:column;gap:4px;border-left:2px solid rgba(245,158,11,.35);padding-left:8px}.diagnostics-section-critical{border-left-color:#ef4444b3}.diagnostics-section h4{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.diagnostics-elements{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.diagnostics-element-row{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:2px}.diagnostics-element-row.active{background:#ef44442e;outline:1px solid rgba(239,68,68,.4)}.diagnostics-element-id{font-family:ui-monospace,SF Mono,monospace;font-size:11px;flex-shrink:0}.diagnostics-element-value{flex:1;min-width:0;font-variant-numeric:tabular-nums;font-size:11px}.diagnostics-locate{font-size:10px;padding:1px 6px;flex-shrink:0}.diagnostics-hint{font-size:11px;color:#94a3b8;line-height:1.4}.diagnostics-truncation{font-size:11px;color:#f59e0b;background:#f59e0b1a;padding:4px 6px;margin-bottom:4px;border-radius:3px;line-height:1.4}.defeature-thresholds{background:#0f172a59;border:1px solid rgba(71,85,105,.3);border-radius:4px;padding:6px 8px}.defeature-thresholds>summary{cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.defeature-threshold-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.defeature-threshold-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.defeature-threshold-row>input{width:80px;padding:2px 6px;background:#1e293b;color:#f1f5f9;border:1px solid #475569;border-radius:2px;font-size:11px}.defeature-candidates{display:flex;flex-direction:column;gap:6px;margin-top:8px}.defeature-list-actions{display:flex;gap:6px}.defeature-bulk-action{font-size:10px;padding:2px 8px}.defeature-candidate-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:280px;overflow-y:auto}.defeature-candidate-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:2px;font-size:11px;flex-wrap:wrap}.defeature-candidate-row.active{background:#ec48992e;outline:1px solid rgba(236,72,153,.4)}.defeature-candidate-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0;cursor:pointer}.defeature-kind{font-weight:500;color:#e5e7eb;text-transform:capitalize}.defeature-metric{font-variant-numeric:tabular-nums}.defeature-body{font-size:10px;margin-left:auto}.defeature-locate{font-size:10px;padding:1px 6px;flex-shrink:0}.defeature-rejection{width:100%;font-size:10px;color:#f59e0b;padding:2px 0 2px 24px}.defeature-summary{display:flex;flex-direction:column;gap:3px;font-size:11px;padding:6px;background:#0f172a73;border-radius:3px}.defeature-warning{font-size:10px;color:#fbbf24}.button-secondary{background:#334155;color:#f1f5f9}.button-secondary:hover:not(:disabled){background:#475569}.midsurface-params{background:#0f172a59;border:1px solid rgba(71,85,105,.3);border-radius:4px;padding:6px 8px}.midsurface-params>summary{cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.midsurface-param-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.midsurface-param-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.midsurface-param-row>input{width:80px;padding:2px 6px;background:#1e293b;color:#f1f5f9;border:1px solid #475569;border-radius:2px;font-size:11px}.midsurface-list-actions{display:flex;gap:6px}.midsurface-bulk-action{font-size:10px;padding:2px 8px}.midsurface-region-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:280px;overflow-y:auto}.midsurface-region-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:2px;font-size:11px;flex-wrap:wrap}.midsurface-region-row.active{background:#14b8a62e;outline:1px solid rgba(20,184,166,.4)}.midsurface-region-row.ambiguous{background:#f59e0b14}.midsurface-region-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0;cursor:pointer}.midsurface-kind{font-weight:500;color:#e5e7eb;text-transform:capitalize}.midsurface-metric{font-variant-numeric:tabular-nums}.midsurface-extractable{font-size:10px;padding:0 4px;border-radius:2px}.midsurface-extractable.ok{color:#22c55e}.midsurface-extractable.warn{color:#fbbf24}.midsurface-body{font-size:10px;margin-left:auto}.midsurface-locate{font-size:10px;padding:1px 6px;flex-shrink:0}.midsurface-extracted{width:100%;font-size:10px;color:#22c55e;padding:2px 0 2px 24px}.midsurface-rejection{width:100%;font-size:10px;color:#f59e0b;padding:2px 0 2px 24px}.midsurface-amb-reason{flex:1;min-width:0;font-size:11px;color:#fbbf24}.midsurface-summary{display:flex;flex-direction:column;gap:3px;font-size:11px;padding:6px;background:#0f172a73;border-radius:3px}.midsurface-warning{font-size:10px;color:#fbbf24;line-height:1.4}.midsurface-stitched{font-size:10px;color:#34d399;line-height:1.4}.midsurface-active-toggle{display:flex;gap:6px}.midsurface-active-toggle>.button.active{background:#14b8a6;color:#f0fdfa;border:1px solid #0d9488}.button-secondary.active{background:#f59e0b;color:#1c1917;border:1px solid #b45309}.inflation-report{margin-top:8px;padding:6px;background:#0f172a73;border-radius:3px;display:flex;flex-direction:column;gap:4px}.inflation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.inflation-row{display:flex;gap:6px;font-size:11px;padding:2px 4px;border-radius:2px}.inflation-row-inflated{color:#22c55e}.inflation-row-fell_back{color:#fbbf24}.inflation-row-skipped{color:#94a3b8}.inflation-status{flex-shrink:0;width:12px;text-align:center;font-weight:600}.inflation-detail{flex:1;min-width:0}.yplus-calculator{background:#0f172a59;border:1px solid rgba(71,85,105,.3);border-radius:4px;padding:6px 8px;margin-bottom:8px}.yplus-calculator>summary{cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.yplus-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.yplus-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.yplus-row>input,.yplus-row>select{width:110px;padding:2px 6px;background:#1e293b;color:#f1f5f9;border:1px solid #475569;border-radius:2px;font-size:11px}.yplus-row>input:disabled{background:#0f172a;color:#94a3b8}.yplus-readout{margin-top:6px;padding:6px 8px;background:#0f172a8c;border-radius:3px;display:flex;flex-direction:column;gap:3px;font-size:11px}.yplus-readout-row{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.yplus-readout-row.yplus-readout-primary{margin-top:4px;padding-top:4px;border-top:1px solid rgba(71,85,105,.3);font-weight:600;color:#f59e0b}.inflation-section-label{margin-top:.6rem;padding-bottom:.2rem;border-bottom:1px solid rgba(71,85,105,.25);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:#94a3b8}.inflation-mode-toggle .segmented{display:flex;gap:0;border:1px solid rgba(71,85,105,.4);border-radius:4px;overflow:hidden}.inflation-mode-toggle .segment{flex:1;padding:4px 8px;border:0;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.8rem;font-family:inherit}.inflation-mode-toggle .segment.active{background:#1e40af;color:#fff}.inflation-derived{margin-top:-.2rem;padding:2px 4px;font-size:.78rem;font-style:italic}.inflation-transition .field-label{display:flex;align-items:center;gap:.4rem}.inflation-help{margin-top:2px;font-size:.72rem}.inflation-wall-list .inflation-row-wall{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:4px 0;border-bottom:1px dotted rgba(71,85,105,.2)}.inflation-override-badge{background:#f59e0b26;color:#f59e0b;font-size:.7rem;padding:1px 5px;border-radius:3px;margin-left:.4rem}.inflation-override-editor{margin-top:.4rem;padding:.5rem;background:#1e293b66;border-left:2px solid #f59e0b;border-radius:3px;width:100%;display:flex;flex-direction:column;gap:.4rem}.button-small{padding:2px 8px;font-size:.75rem}.inflation-clamp{display:block;margin-top:2px;font-size:.72rem;color:#f59e0b}.diagnostics-mode-toggle{display:flex;align-items:center;gap:.5rem;margin:.4rem 0 .6rem}.diagnostics-mode-toggle .segmented{flex:1;display:flex;border:1px solid rgba(71,85,105,.4);border-radius:4px;overflow:hidden}.diagnostics-mode-toggle .segment{flex:1;padding:4px 8px;border:0;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.8rem;font-family:inherit}.diagnostics-mode-toggle .segment.active{background:#1e40af;color:#fff}.diagnostics-stale-hint{font-style:italic;background:#f59e0b1a;padding:4px 6px;border-radius:3px;margin-bottom:.4rem}.diagnostics-cell-class{display:inline-block;margin-left:.4rem;padding:1px 5px;border-radius:3px;font-size:.65rem;font-weight:600}.diagnostics-cell-class-boundary_layer{background:#f59e0b33;color:#f59e0b}.diagnostics-cell-class-core{background:#64748b33;color:#94a3b8}.diagnostics-flow-divider{margin-top:.6rem;padding-top:.4rem;border-top:1px solid rgba(71,85,105,.3);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:#94a3b8}.diagnostics-yplus h4{color:#38bdf8}.rotating-zone-hint{font-size:.75rem;margin-top:.4rem;line-height:1.35}.rotating-zone-hint code{background:#47556940;padding:1px 4px;border-radius:2px;font-family:monospace;font-size:.7rem}.rotating-zone-section-label{margin-top:.6rem;padding-bottom:.2rem;border-bottom:1px solid rgba(71,85,105,.25);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:#94a3b8}.rotating-zone-vec-row{display:grid;grid-template-columns:60px repeat(3,1fr);gap:4px;align-items:center;margin-bottom:.4rem}.rotating-zone-speed .field-label{display:flex;align-items:center;gap:.4rem}.rotating-zone-unit-toggle{background:#1e40af40;border:1px solid rgba(30,64,175,.5);color:#93c5fd;border-radius:3px;padding:1px 6px;font-size:.65rem;cursor:pointer;font-family:inherit}.rotating-zone-unit-toggle:hover{background:#1e40af66}.rotating-zone-report{margin-top:.6rem;padding:.5rem;background:#1e293b66;border-left:2px solid #a855f7;border-radius:3px}.rotating-zone-skipped{color:#f59e0b;font-style:italic}.periodic-mode-toggle .segmented{display:flex;border:1px solid rgba(71,85,105,.4);border-radius:4px;overflow:hidden}.periodic-mode-toggle .segment{flex:1;padding:4px 8px;border:0;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.8rem;font-family:inherit}.periodic-mode-toggle .segment.active{background:#16a34a;color:#fff}.periodic-face-pair .periodic-face-row{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.periodic-section-label{margin-top:.5rem;padding-bottom:.2rem;border-bottom:1px solid rgba(71,85,105,.25);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:#94a3b8}.periodic-vec-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:.4rem}.periodic-angle-row .field-label{display:flex;align-items:center;gap:.4rem}.periodic-unit-toggle{background:#16a34a40;border:1px solid rgba(22,163,74,.5);color:#86efac;border-radius:3px;padding:1px 6px;font-size:.65rem;cursor:pointer;font-family:inherit}.periodic-unit-toggle:hover{background:#16a34a66}.periodic-hint{font-size:.72rem;line-height:1.35;margin:.4rem 0}.periodic-hint code{background:#47556940;padding:1px 4px;border-radius:2px;font-family:monospace;font-size:.7rem}.periodic-report{margin-top:.6rem;padding:.5rem;background:#1e293b66;border-left:2px solid #16a34a;border-radius:3px}.periodic-report-non_conformal,.periodic-report-skipped{border-left-color:#f59e0b}.periodic-warn{color:#f59e0b;font-style:italic}.wrap-hint{font-size:.72rem;line-height:1.35;margin:.2rem 0 .4rem}.wrap-hint code{background:#47556940;padding:1px 4px;border-radius:2px;font-family:monospace;font-size:.7rem;word-break:break-all}.wrap-section-label{margin-top:.6rem;padding-bottom:.2rem;border-bottom:1px solid rgba(71,85,105,.25);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:#94a3b8}.wrap-snap-toggle .field-label{display:flex;align-items:center;gap:.4rem}.wrap-diagnostic{margin-top:.6rem;padding:.5rem;background:#1e293b66;border-left:2px solid #06b6d4;border-radius:3px}.wrap-clean{color:#22c55e;margin-top:.3rem}.wrap-issue-list{margin:.4rem 0 0;padding-left:0;list-style:none;font-size:.75rem;max-height:200px;overflow-y:auto}.wrap-issue{padding:2px 4px;border-bottom:1px dotted rgba(71,85,105,.2)}.wrap-issue-kind{display:inline-block;min-width:70px;font-weight:600;padding:1px 4px;border-radius:2px;font-size:.65rem;text-transform:uppercase}.wrap-issue-error .wrap-issue-kind{background:#dc262633;color:#f87171}.wrap-issue-warning .wrap-issue-kind{background:#f59e0b33;color:#f59e0b}.wrap-issue-info .wrap-issue-kind{background:#64748b33;color:#94a3b8}.wrap-result{margin-top:.6rem;padding:.5rem;background:#1e293b66;border-left:2px solid #06b6d4;border-radius:3px}.wrap-result-coarse{border-left-color:#f59e0b}.wrap-result-failed{border-left-color:#dc2626}.wrap-warn{color:#f87171;font-style:italic}.wrap-mode-toggle{display:flex;gap:8px;margin:6px 0 10px;padding:6px;background:#0891b20d;border:1px solid rgba(8,145,178,.25);border-radius:4px}.wrap-mode-option{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;padding:4px}.wrap-mode-option input[type=radio]{margin-right:4px}.wrap-mode-option:has(input:checked){background:#0891b21f;border-radius:3px}.ribbon{display:flex;flex-direction:column;background:#1f2937;--ribbon-accent: #3b82f6;border-bottom:2px solid var(--ribbon-accent);-webkit-user-select:none;user-select:none;-webkit-app-region:no-drag}.ribbon-tabs{display:flex;align-items:stretch;gap:0;background:#111827;border-bottom:1px solid #374151;padding:0 4px;min-height:32px}.ribbon-app-name{display:inline-flex;align-items:center;gap:7px;padding:0 16px 0 10px;font-size:12px;font-weight:700;color:#f3f4f6;letter-spacing:.08em;border-right:1px solid #374151;margin-right:4px}.ribbon-app-name:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--ribbon-accent);box-shadow:0 0 6px color-mix(in srgb,var(--ribbon-accent) 60%,transparent);transition:background .15s ease,box-shadow .15s ease}.ribbon-tab{background:transparent;color:#9ca3af;border:none;padding:6px 16px;font-size:12px;font-family:inherit;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .1s ease,border-color .1s ease,background .1s ease;letter-spacing:.02em}.ribbon-tab:hover{color:#e5e7eb;background:#ffffff0a}.ribbon-tab.active{color:#f8fafc;border-bottom-color:var(--tab-accent, #2563eb);background:#1f2937}.ribbon-tab:focus-visible{outline:none;color:#f8fafc;border-bottom-color:var(--tab-accent, #60a5fa)}.ribbon-row{display:flex;align-items:stretch;gap:0;padding:4px 8px;min-height:96px;overflow-x:auto}.ribbon-row::-webkit-scrollbar{height:6px}.ribbon-row::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.ribbon-group{display:flex;flex-direction:row;align-items:stretch;padding:0 6px}.ribbon-group-stack{display:flex;flex-direction:column;align-items:stretch}.ribbon-group-buttons{display:flex;align-items:flex-start;gap:2px;flex:1 1 auto}.ribbon-group-label{text-align:center;font-size:10px;font-weight:600;color:#94a3b8;letter-spacing:.07em;text-transform:uppercase;margin:2px 6px 0;padding:3px 4px 2px;min-height:14px;border-top:1px solid color-mix(in srgb,var(--group-accent, #374151) 45%,#374151);flex-shrink:0;pointer-events:none}.ribbon-group.contextual-disabled{opacity:.45}.ribbon-group-sep{width:1px;background:#374151;margin:6px 4px 22px 8px;align-self:stretch}.ribbon-button{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:1px solid transparent;border-radius:4px;color:#e5e7eb;padding:4px 8px 6px;min-width:56px;max-width:88px;cursor:pointer;font-family:inherit;font-size:11px;line-height:1.2;transition:background .1s ease,border-color .1s ease,color .1s ease}.ribbon-button:hover:not(:disabled){background:color-mix(in srgb,var(--group-accent, #2563eb) 14%,transparent);border-color:color-mix(in srgb,var(--group-accent, #2563eb) 45%,transparent);color:#f8fafc}.ribbon-button:hover:not(:disabled) .ribbon-icon{filter:brightness(1.25)}.ribbon-button:active:not(:disabled){background:color-mix(in srgb,var(--group-accent, #2563eb) 24%,transparent)}.ribbon-button-active,.ribbon-button-active:hover:not(:disabled){background:color-mix(in srgb,var(--group-accent, #2563eb) 22%,transparent);border-color:var(--group-accent, #2563eb);color:#f8fafc}.ribbon-button:focus-visible{outline:none;border-color:var(--group-accent, #2563eb)}.ribbon-button:disabled{color:#6b7280;cursor:not-allowed}.ribbon-icon{width:22px;height:22px;flex-shrink:0;color:var(--group-accent, #e5e7eb)}.ribbon-button:disabled .ribbon-icon{color:#4b5563}.ribbon-button-label{text-align:center;white-space:normal;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:27px}.input-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#1f2937;border-bottom:1px solid #374151;padding:6px 10px;min-height:40px;-webkit-app-region:no-drag}.input-strip-placeholder{height:0;padding:0;border:0;overflow:hidden}.input-strip-fields{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0;overflow-x:auto}.input-strip-fields::-webkit-scrollbar{height:4px}.input-strip-fields::-webkit-scrollbar-thumb{background:#334155;border-radius:2px}.input-strip-field{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.input-strip-field-grow{flex:1 1 180px;min-width:140px}.input-strip-field-checkbox{flex-direction:row-reverse}.input-strip-label{font-size:11px;color:#9ca3af;letter-spacing:.02em;white-space:nowrap}.input-strip-muted{color:#6b7280;font-weight:400}.input-strip-number,.input-strip-select{background:#111827;color:#e5e7eb;border:1px solid #374151;border-radius:3px;padding:3px 6px;font-family:inherit;font-size:12px;line-height:1.25;min-width:80px}.input-strip-number{width:92px}.input-strip-select{min-width:110px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.input-strip-number:focus,.input-strip-select:focus{outline:none;border-color:#2563eb}.input-strip-number:disabled,.input-strip-select:disabled{opacity:.55;cursor:not-allowed}.input-strip-range{width:180px;accent-color:#2563eb}.input-strip-close{background:transparent;border:1px solid transparent;color:#9ca3af;font-size:16px;line-height:1;width:24px;height:24px;border-radius:3px;cursor:pointer;flex-shrink:0;padding:0;display:inline-flex;align-items:center;justify-content:center}.input-strip-close:hover:not(:disabled){background:#ffffff0f;color:#f8fafc;border-color:#374151}.input-strip-close:focus-visible{outline:none;border-color:#60a5fa;color:#f8fafc}.input-strip-close:disabled{opacity:.4;cursor:not-allowed}.sidebar.panel-right{font-size:11px;padding:12px;gap:10px}.sidebar.panel-right h1{font-size:16px}.sidebar.panel-right h2{font-size:12px}.sidebar.panel-right .sidebar-scroll{gap:10px}.sidebar.panel-right .sidebar-section{gap:8px}.sidebar.panel-right .field{gap:3px}.sidebar.panel-right .field-label,.sidebar.panel-right .hint,.sidebar.panel-right .muted{font-size:11px}.sidebar.panel-right .number-input,.sidebar.panel-right .select-input{font-size:12px;padding:4px 6px}.sidebar.panel-right .button{font-size:12px;padding:5px 9px}.sidebar.panel-right .healing-log,.sidebar.panel-right .healing-log-entry,.sidebar.panel-right .healing-log-detail,.sidebar.panel-right .inflation-report,.sidebar.panel-right .inflation-wall-row,.sidebar.panel-right .inflation-summary,.sidebar.panel-right .hex-report,.sidebar.panel-right .hex-report-row,.sidebar.panel-right .multizone-report,.sidebar.panel-right .multizone-report-row,.sidebar.panel-right .rotating-zone-report,.sidebar.panel-right .periodic-report,.sidebar.panel-right .wrap-result,.sidebar.panel-right .wrap-issue,.sidebar.panel-right .body-row,.sidebar.panel-right .body-row-label{font-size:11px}.sidebar.panel-right .healing-log-summary,.sidebar.panel-right .inflation-wall-status,.sidebar.panel-right .hex-report-label,.sidebar.panel-right .multizone-report-label,.sidebar.panel-right .wrap-issue-meta,.sidebar.panel-right .body-row-strategy,.sidebar.panel-right .clamp-reason,.sidebar.panel-right .truncation-banner{font-size:10px}.body.panel-context-mode{display:flex;flex-direction:row;position:relative}.body.panel-context-mode .viewport{order:1;flex:1 1 auto;min-width:0;min-height:0}.sidebar.panel-right.panel-context{order:2;width:400px;min-width:0;flex-shrink:0;height:100%;margin:0;padding:0;gap:0;display:flex;flex-direction:column;overflow:hidden;background:#1f2937;border:none;border-left:1px solid #374151;box-shadow:-10px 0 24px #00000059;max-width:0;opacity:0;transition:max-width .2s ease,opacity .16s ease}.body.panel-open .sidebar.panel-right.panel-context{max-width:400px;opacity:1}.panel-dropdown-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:7px 8px 7px 14px;background:#111827;border-bottom:1px solid #374151}.panel-dropdown-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#cbd5e1}.panel-dropdown-close{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:transparent;color:#9ca3af;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:color .12s ease,background-color .12s ease}.panel-dropdown-close:hover{color:#f8fafc;background:#374151}.panel-dropdown-close svg{width:16px;height:16px}.sidebar.panel-right.panel-context .sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px 18px 18px}.panel-context [id^=panel-section-]{display:none}.panel-context .sidebar-scroll>.sidebar-divider{display:none}.panel-context .sidebar-section>h2{display:none}.panel-context[data-active-section=bodies] #panel-section-bodies,.panel-context[data-active-section=meshing] #panel-section-meshing,.panel-context[data-active-section=healing] #panel-section-healing,.panel-context[data-active-section=defeature] #panel-section-defeature,.panel-context[data-active-section=midsurface] #panel-section-midsurface,.panel-context[data-active-section=inflation] #panel-section-inflation,.panel-context[data-active-section=rotating-zone] #panel-section-rotating-zone,.panel-context[data-active-section=periodic] #panel-section-periodic,.panel-context[data-active-section=shrinkwrap] #panel-section-shrinkwrap,.panel-context[data-active-section=advanced-sizing] #panel-section-advanced-sizing,.panel-context[data-active-section=refinements] #panel-section-refinements,.panel-context[data-active-section=edge-sizings] #panel-section-edge-sizings,.panel-context[data-active-section=named-selections] #panel-section-named-selections,.panel-context[data-active-section=coloring] #panel-section-coloring,.panel-context[data-active-section=view] #panel-section-view,.panel-context[data-active-section=export] #panel-section-export{display:flex}.auth-splash{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#111827;color:#e5e7eb}.auth-splash-brand{font-size:22px;font-weight:700;letter-spacing:.12em;color:#f3f4f6}.auth-splash-hint{font-size:13px;color:#9ca3af}.login-screen{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,#1f2937,#111827 60%)}.login-card{width:320px;display:flex;flex-direction:column;gap:14px;padding:28px 26px 26px;background:#1f2937;border:1px solid #374151;border-radius:10px;box-shadow:0 12px 40px #00000073}.login-brand{font-size:20px;font-weight:700;letter-spacing:.12em;color:#f3f4f6;text-align:center}.login-subtitle{margin:-6px 0 4px;font-size:13px;color:#9ca3af;text-align:center}.login-field{display:flex;flex-direction:column;gap:5px}.login-label{font-size:12px;color:#9ca3af;letter-spacing:.02em}.login-input{background:#111827;border:1px solid #374151;border-radius:5px;color:#e5e7eb;padding:9px 10px;font-size:14px;font-family:inherit}.login-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb4d}.login-input:disabled{opacity:.6}.login-error{font-size:13px;color:#fca5a5;background:#dc26261f;border:1px solid rgba(220,38,38,.4);border-radius:5px;padding:7px 9px}.login-submit{margin-top:4px}.ribbon-account{margin-left:auto;display:flex;align-items:center;gap:6px;padding:0 8px 0 6px}.ribbon-account-email{font-size:12px;color:#9ca3af;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ribbon-account-button{background:transparent;color:#9ca3af;border:1px solid transparent;border-radius:4px;padding:4px 10px;font-size:12px;font-family:inherit;cursor:pointer;transition:color .1s ease,background .1s ease,border-color .1s ease}.ribbon-account-button:hover{color:#f8fafc;background:#ffffff0f;border-color:#374151}
