@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--clr-bg:#f0f2f5;--clr-surface:#fff;--clr-surface-alt:#f7f8fa;--clr-border:#dde1e8;--clr-border-focus:#2563eb;--clr-text:#111827;--clr-text-2:#4b5563;--clr-text-3:#9ca3af;--clr-brand:#1e40af;--clr-brand-mid:#2563eb;--clr-brand-light:#dbeafe;--clr-pass:#166534;--clr-pass-bg:#dcfce7;--clr-fail:#991b1b;--clr-fail-bg:#fee2e2;--clr-warn:#92400e;--clr-warn-bg:#fef3c7;--clr-info:#1e40af;--clr-info-bg:#dbeafe;--clr-blocked:#6d28d9;--clr-blocked-bg:#ede9fe;--clr-partial:#c2410c;--clr-partial-bg:#ffedd5;--clr-invalid:#7f1d1d;--clr-invalid-bg:#fecaca;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000d;--shadow-lg:0 10px 30px #0000001a, 0 4px 8px #0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--clr-text);background:var(--clr-bg);min-width:320px;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:var(--clr-surface);border-bottom:1px solid var(--clr-border);box-shadow:var(--shadow-sm);z-index:100;justify-content:space-between;align-items:center;gap:16px;height:60px;padding:0 28px;display:flex;position:sticky;top:0}.top-bar-brand{align-items:center;gap:12px;display:flex}.top-bar-logo{background:var(--clr-brand);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.top-bar-logo svg{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.top-bar-titles{flex-direction:column;display:flex}.top-bar-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--clr-text-3);font-size:10px;font-weight:700}.top-bar-title{color:var(--clr-text);font-size:15px;font-weight:700;line-height:1.2}.top-bar-right{align-items:center;gap:12px;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 14px 5px 10px;font-size:12px;font-weight:700;display:inline-flex}.status-badge:before{content:"";opacity:.65;background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-badge.s-pass{background:var(--clr-pass-bg);color:var(--clr-pass)}.status-badge.s-fail{background:var(--clr-fail-bg);color:var(--clr-fail)}.status-badge.s-partial{background:var(--clr-partial-bg);color:var(--clr-partial)}.status-badge.s-blocked{background:var(--clr-blocked-bg);color:var(--clr-blocked)}.status-badge.s-invalid{background:var(--clr-invalid-bg);color:var(--clr-invalid)}.status-badge.s-not_calculated{background:var(--clr-surface-alt);color:var(--clr-text-2)}.workspace{flex:1;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:20px;width:min(1380px,100%);margin:0 auto;padding:24px 28px 40px;display:grid}.panel{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.panel-header{border-bottom:1px solid var(--clr-border);background:var(--clr-surface-alt);align-items:center;gap:10px;padding:14px 20px;display:flex}.panel-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.panel-header.collapsible:hover{background:var(--clr-brand-light)}.panel-header-icon{border-radius:var(--radius-sm);background:var(--clr-brand-light);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.panel-header-icon svg{width:15px;height:15px;stroke:var(--clr-brand);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-2);font-size:13px;font-weight:700;line-height:1}.panel-body{padding:20px}.section{margin-top:20px}.section:first-child{margin-top:0}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--clr-brand);border-bottom:1px solid var(--clr-brand-light);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;font-size:11px;font-weight:700;display:flex}.section-title svg{width:13px;height:13px;stroke:var(--clr-brand);fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid.cols-1{grid-template-columns:1fr}.field-full{grid-column:1/-1}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--clr-text-2);align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:flex}.field-unit{color:var(--clr-text-3);font-size:10.5px;font-weight:500;font-family:var(--font-mono);background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:3px;padding:1px 5px}.field input[type=number],.field input[type=text],.field select{border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);width:100%;height:38px;color:var(--clr-text);appearance:none;padding:0 10px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.field input:focus,.field select:focus{border-color:var(--clr-border-focus);outline:none;box-shadow:0 0 0 3px #2563eb1f}.field input.invalid{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.field-hint{color:var(--clr-text-3);font-size:10.5px;line-height:1.4}.field-error{color:#dc2626;font-size:10.5px;font-weight:500}.toggle-row{background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s;display:flex}.toggle-row:hover{border-color:var(--clr-border-focus)}.toggle-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--clr-brand-mid);cursor:pointer;flex-shrink:0}.toggle-row-label{color:var(--clr-text);font-size:12.5px;font-weight:600}.geometry-chips{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.geo-chip{border:1.5px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.geo-chip:hover{border-color:var(--clr-brand-mid);background:var(--clr-brand-light)}.geo-chip.active{border-color:var(--clr-brand-mid);background:var(--clr-brand-light);box-shadow:0 0 0 2px #2563eb26}.geo-chip svg{width:26px;height:22px;fill:var(--clr-text-2);stroke:var(--clr-text-2);stroke-width:.5px;transition:fill .15s,stroke .15s}.geo-chip.active svg,.geo-chip:hover svg{fill:var(--clr-brand);stroke:var(--clr-brand)}.geo-chip-label{text-transform:uppercase;letter-spacing:.05em;color:var(--clr-text-2);text-align:center;font-size:9px;font-weight:700;line-height:1.2}.geo-chip.active .geo-chip-label{color:var(--clr-brand)}.cm-selector{grid-template-columns:1fr;gap:6px;display:grid}.cm-option{border:1.5px solid var(--clr-border);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;gap:9px;padding:9px 12px;transition:border-color .15s,background .15s;display:flex}.cm-option:hover{border-color:var(--clr-brand-mid)}.cm-option.active{border-color:var(--clr-brand-mid);background:var(--clr-brand-light)}.cm-option input[type=radio]{accent-color:var(--clr-brand-mid);flex-shrink:0;width:14px;height:14px;margin-top:2px}.cm-option-text{flex-direction:column;gap:1px;display:flex}.cm-option-title{color:var(--clr-text);font-size:12px;font-weight:600}.cm-option-desc{color:var(--clr-text-3);font-size:10.5px}.results-summary-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.kpi-card{background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:12px 14px}.kpi-card.kpi-governing{grid-column:1/-1}.kpi-label{text-transform:uppercase;letter-spacing:.07em;color:var(--clr-text-3);margin-bottom:4px;font-size:10px;font-weight:700}.kpi-value{color:var(--clr-text);font-size:16px;font-weight:700;font-family:var(--font-mono);line-height:1.2}.kpi-value.large{font-size:26px}.kpi-value.pass{color:var(--clr-pass)}.kpi-value.fail{color:var(--clr-fail)}.kpi-value.warn{color:var(--clr-warn)}.kpi-value.muted{color:var(--clr-text-3);font-size:13px;font-family:var(--font-sans)}.util-bar-wrap{margin-top:8px}.util-bar-track{background:var(--clr-border);border-radius:999px;height:6px;overflow:hidden}.util-bar-fill{border-radius:999px;height:100%;transition:width .4s}.util-bar-fill.pass{background:#22c55e}.util-bar-fill.fail{background:#ef4444}.util-bar-fill.warn{background:#f59e0b}.util-bar-labels{color:var(--clr-text-3);font-size:10px;font-family:var(--font-mono);justify-content:space-between;margin-top:3px;display:flex}.cap-table{border-collapse:collapse;width:100%;font-size:12.5px}.cap-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-3);border-bottom:1px solid var(--clr-border);padding:6px 8px;font-size:10px;font-weight:700}.cap-table td{border-bottom:1px solid var(--clr-surface-alt);vertical-align:middle;padding:7px 8px}.cap-table tr:last-child td{border-bottom:none}.cap-table tbody tr:hover td{background:var(--clr-surface-alt)}.cap-sym{font-family:var(--font-mono);color:var(--clr-brand);font-size:12px;font-weight:500}.cap-val{font-family:var(--font-mono);text-align:right;color:var(--clr-text);font-weight:500}.cap-unit{color:var(--clr-text-3);font-size:11px}.checks-table{border-collapse:collapse;width:100%;font-size:12px}.checks-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-3);border-bottom:2px solid var(--clr-border);white-space:nowrap;padding:7px 8px;font-size:10px;font-weight:700}.checks-table th.right{text-align:right}.checks-table td{border-bottom:1px solid var(--clr-surface-alt);vertical-align:middle;padding:7px 8px}.checks-table tr:last-child td{border-bottom:none}.checks-table tbody tr:hover td{background:#f8fafc}.check-name{color:var(--clr-text);white-space:nowrap;font-weight:600}.check-ref{color:var(--clr-text-3);font-size:10.5px;font-family:var(--font-mono)}.check-util{font-family:var(--font-mono);text-align:right;font-weight:600}.check-util.pass{color:var(--clr-pass)}.check-util.fail{color:var(--clr-fail)}.check-util.muted{color:var(--clr-text-3)}.check-pill{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.check-pill.pass{background:var(--clr-pass-bg);color:var(--clr-pass)}.check-pill.fail{background:var(--clr-fail-bg);color:var(--clr-fail)}.check-pill.na{background:var(--clr-surface-alt);color:var(--clr-text-3)}.check-pill.unsupported{background:var(--clr-warn-bg);color:var(--clr-warn)}.check-pill.invalid{background:var(--clr-invalid-bg);color:var(--clr-invalid)}.check-pill.governing{outline:2px solid var(--clr-brand-mid)}.message-list{flex-direction:column;gap:8px;list-style:none;display:flex}.message-item{border-radius:var(--radius-md);gap:10px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.message-item.info{background:var(--clr-info-bg);border-left:3px solid var(--clr-info)}.message-item.warning{background:var(--clr-warn-bg);border-left:3px solid #d97706}.message-item.error{background:var(--clr-fail-bg);border-left:3px solid #dc2626}.message-icon{flex-shrink:0;margin-top:1px}.message-icon svg{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.message-item.info .message-icon svg{stroke:var(--clr-info)}.message-item.warning .message-icon svg{stroke:#d97706}.message-item.error .message-icon svg{stroke:#dc2626}.message-body{flex-direction:column;gap:2px;display:flex}.message-code{font-family:var(--font-mono);color:var(--clr-text-2);letter-spacing:.04em;font-size:10.5px;font-weight:700}.message-text{color:var(--clr-text-2)}.divider{border:none;border-top:1px solid var(--clr-border);margin:18px 0}details.accordion{border:1px solid var(--clr-border);border-radius:var(--radius-md);overflow:hidden}details.accordion+details.accordion{margin-top:8px}details.accordion summary{cursor:pointer;background:var(--clr-surface-alt);color:var(--clr-text);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:11px 14px;font-size:12.5px;font-weight:600;list-style:none;transition:background .12s;display:flex}details.accordion summary::-webkit-details-marker{display:none}details.accordion summary:hover{background:var(--clr-brand-light)}details.accordion summary .acc-chevron{width:16px;height:16px;stroke:var(--clr-text-3);fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}details.accordion[open] summary .acc-chevron{transform:rotate(180deg)}details.accordion .acc-body{border-top:1px solid var(--clr-border);padding:14px}pre.json-dump{border-radius:var(--radius-md);color:#94a3b8;max-height:400px;font-family:var(--font-mono);background:#0f172a;padding:14px;font-size:11.5px;line-height:1.6;overflow:auto}.preset-bar{background:linear-gradient(90deg, var(--clr-brand-light) 0%, #f0f9ff 100%);border-bottom:1px solid var(--clr-border);align-items:center;gap:8px;padding:10px 14px;display:flex}.preset-bar-label{text-transform:uppercase;letter-spacing:.07em;color:var(--clr-brand);white-space:nowrap;font-size:11px;font-weight:700}.preset-bar select{border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);height:32px;color:var(--clr-text);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;flex:1;padding:0 28px 0 8px;font-size:12.5px}.compact-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.compact-badge.compact{background:var(--clr-pass-bg);color:var(--clr-pass)}.compact-badge.non_compact{background:var(--clr-warn-bg);color:var(--clr-warn)}.compact-badge.not_calculated{background:var(--clr-surface-alt);color:var(--clr-text-3)}.validation-banner{background:var(--clr-fail-bg);border-radius:var(--radius-md);color:var(--clr-fail);border:1px solid #fca5a5;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:12.5px;display:flex}.validation-banner svg{width:16px;height:16px;stroke:var(--clr-fail);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:1px}@media (width<=1080px){.workspace{grid-template-columns:1fr}}@media (width<=720px){.workspace{padding:16px}.field-grid,.field-grid.cols-3{grid-template-columns:repeat(2,1fr)}.geometry-chips{grid-template-columns:repeat(4,1fr)}.top-bar{padding:0 16px}}@media (width<=480px){.field-grid{grid-template-columns:1fr}.geometry-chips{grid-template-columns:repeat(3,1fr)}.results-summary-grid{grid-template-columns:1fr}}.view-tabs{border-bottom:2px solid var(--clr-border);background:var(--clr-surface);gap:0;padding:0 28px;display:flex}.view-tab{color:var(--clr-text-3);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-2px;padding:12px 22px;transition:color .15s,border-color .15s;display:flex}.view-tab svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.view-tab:hover{color:var(--clr-text)}.view-tab.active{color:var(--clr-brand-mid);border-bottom-color:var(--clr-brand-mid)}.calc-report{flex-direction:column;gap:8px;max-width:1100px;margin:0 auto;display:flex}.report-toolbar{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.report-title-block{flex-direction:column;gap:2px;display:flex}.report-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--clr-brand);font-size:10px;font-weight:700}.report-subtitle{color:var(--clr-text);font-size:14px;font-weight:700}.report-actions{flex-wrap:wrap;gap:8px;display:flex}.rpt-btn{border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);color:var(--clr-text-2);cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--font-sans);align-items:center;gap:6px;padding:7px 14px;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.rpt-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:13px;height:13px}.rpt-btn:hover{border-color:var(--clr-brand-mid);color:var(--clr-brand-mid);background:var(--clr-brand-light)}.report-sections{flex-direction:column;gap:6px;display:flex}.rpt-section{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.rpt-section-header{background:var(--clr-surface-alt);cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);border:none;align-items:center;gap:10px;padding:12px 16px;transition:background .12s;display:flex}.rpt-section-header:hover{background:var(--clr-brand-light)}.rpt-section-title{color:var(--clr-text);flex:1;font-size:13px;font-weight:700}.rpt-section-ref{color:var(--clr-brand);font-size:11px;font-weight:600;font-family:var(--font-mono);background:var(--clr-brand-light);white-space:nowrap;border-radius:999px;padding:2px 8px}.rpt-chevron{width:16px;height:16px;stroke:var(--clr-text-3);fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;transition:transform .2s}.rpt-chevron.open{transform:rotate(180deg)}.rpt-section-body{border-top:1px solid var(--clr-border);padding:0}.rpt-subsection+.rpt-subsection{border-top:1px solid var(--clr-border)}.rpt-subsection-title{text-transform:uppercase;letter-spacing:.07em;color:var(--clr-brand);background:linear-gradient(90deg,#dbeafe99 0%,#0000 100%);padding:8px 16px 6px;font-size:11px;font-weight:700}.rpt-empty{color:var(--clr-text-3);padding:10px 16px;font-size:12px;font-style:italic}.rpt-table{border-collapse:collapse;width:100%;font-size:12.5px}.rpt-table th{text-transform:uppercase;letter-spacing:.07em;color:var(--clr-text-3);text-align:left;border-bottom:1px solid var(--clr-border);background:var(--clr-surface-alt);white-space:nowrap;padding:6px 12px;font-size:10px;font-weight:700}.rpt-table th.col-val,.rpt-table td.col-val{text-align:right}.rpt-table td{vertical-align:middle;border-bottom:1px solid #f1f3f5;padding:7px 12px}.rpt-table tbody tr:last-child td{border-bottom:none}.rpt-table tbody tr:hover td{background:#fafbfc}.col-sym{width:9%;min-width:60px}.col-desc{width:44%}.col-val{width:16%;min-width:90px}.col-unit{white-space:nowrap;width:7%}.col-ref{width:14%}.sym-text{font-family:var(--font-mono);color:var(--clr-brand);font-size:12px;font-weight:600}.desc-text{color:var(--clr-text);line-height:1.4;display:block}.note-text{color:var(--clr-text-3);margin-top:1px;font-size:10.5px;display:block}.val-text{font-family:var(--font-mono);color:var(--clr-text);text-align:right;font-weight:600;display:block}.unit-text,.ref-text{color:var(--clr-text-3);font-size:11px;font-family:var(--font-mono)}.rpt-row.hl-pass td{background:#dcfce740}.rpt-row.hl-pass .val-text,.rpt-row.hl-pass .sym-text{color:var(--clr-pass)}.rpt-row.hl-fail td{background:#fee2e259}.rpt-row.hl-fail .val-text{color:var(--clr-fail);font-weight:800}.rpt-row.hl-fail .sym-text{color:var(--clr-fail)}.rpt-row.hl-warn td{background:#fef3c759}.rpt-row.hl-warn .val-text{color:var(--clr-warn);font-weight:700}.rpt-row.hl-warn .sym-text{color:var(--clr-warn)}.rpt-row.hl-info td{background:#dbeafe33}.rpt-row.hl-info .val-text{color:var(--clr-info)}@media (width<=800px){.col-ref,.col-unit{display:none}.calc-report{gap:6px}.view-tabs{padding:0 16px}}@media (width<=560px){.rpt-table th.col-sym,.rpt-table td.col-sym{display:none}.report-toolbar{flex-direction:column;align-items:flex-start}.view-tab{padding:10px 14px;font-size:12px}}.dimensions-layout{grid-template-columns:1.15fr .85fr;align-items:start;gap:20px;margin-top:10px;display:grid}.dimensions-sketch{width:100%}@media (width<=768px){.dimensions-layout{grid-template-columns:1fr;gap:16px}}.constraint-card{border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface-alt);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1 0 105px;align-items:center;min-width:105px;padding:8px 6px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.constraint-card:hover{border-color:var(--clr-brand-mid);background:var(--clr-surface);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.constraint-card.active{border-color:var(--clr-brand);background:var(--clr-brand-light);box-shadow:0 0 0 1px var(--clr-brand)}.sensitivity-layout{grid-template-columns:320px 1fr;align-items:start;gap:24px;padding:24px 28px 40px;display:grid}.sensitivity-sidebar{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:20px;padding:20px;display:flex;position:sticky;top:80px}.sensitivity-sidebar h3{text-transform:uppercase;letter-spacing:.06em;color:var(--clr-brand);margin-bottom:4px;font-size:14px;font-weight:700}.sensitivity-sidebar-section{flex-direction:column;gap:12px;display:flex}.sensitivity-sidebar-section h4{text-transform:uppercase;color:var(--clr-text-3);border-bottom:1px solid var(--clr-border);margin-top:10px;padding-bottom:4px;font-size:11px;font-weight:700}.slider-group{flex-direction:column;gap:4px;display:flex}.slider-header{color:var(--clr-text-2);justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.slider-header span.val-highlight{font-family:var(--font-mono);color:var(--clr-brand-mid);font-weight:700}.slider-control{background:var(--clr-surface-alt);width:100%;height:6px;accent-color:var(--clr-brand-mid);border-radius:3px;outline:none;margin:6px 0}.sensitivity-dashboard{flex-direction:column;gap:24px;display:flex}.sensitivity-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.sensitivity-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:20px;display:flex}.sensitivity-card-header{justify-content:space-between;align-items:center;display:flex}.sensitivity-card-title{color:var(--clr-text);font-size:14px;font-weight:700}.sensitivity-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:9.5px;font-weight:700}.sensitivity-badge.sweep{color:#2563eb;background:#3b82f61a;border:1px solid #3b82f633}.sensitivity-badge.envelope{color:#7c3aed;background:#8b5cf61a;border:1px solid #8b5cf633}.sensitivity-badge.tornado{color:#d97706;background:#f59e0b1a;border:1px solid #f59e0b33}.plot-container{background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:220px;padding:12px;display:flex;position:relative}.svg-chart{width:100%;height:auto;overflow:visible}.tornado-container{flex-direction:column;gap:10px;width:100%;display:flex}.tornado-row{grid-template-columns:140px 1fr 100px;align-items:center;gap:12px;font-size:12px;display:grid}.tornado-label{color:var(--clr-text-2);font-weight:600}.tornado-bar-track{background:var(--clr-border);border-radius:7px;height:14px;position:relative;overflow:hidden}.tornado-bar-fill{border-radius:7px;height:100%;position:absolute}.tornado-bar-fill.negative{background:var(--clr-pass)}.tornado-bar-fill.positive{background:var(--clr-fail)}.tornado-center-line{background:var(--clr-text);opacity:.3;width:1px;height:100%;position:absolute;top:0;left:50%}.tornado-value{font-family:var(--font-mono);text-align:right;font-size:11px;font-weight:700}.tornado-value.positive{color:var(--clr-fail)}.tornado-value.negative{color:var(--clr-pass)}.sensitivity-actions{gap:12px;margin-top:10px;display:flex}.sens-btn{border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 16px;transition:all .15s;display:inline-flex}.sens-btn.primary{background:var(--clr-brand);color:#fff;border:1px solid var(--clr-brand)}.sens-btn.primary:hover{background:var(--clr-brand-mid)}.sens-btn.secondary{background:var(--clr-surface);color:var(--clr-text-2);border:1px solid var(--clr-border)}.sens-btn.secondary:hover{background:var(--clr-surface-alt);color:var(--clr-text)}@media (width<=1024px){.sensitivity-layout{grid-template-columns:1fr}.sensitivity-sidebar{position:static}}@media (width<=768px){.sensitivity-row{grid-template-columns:1fr}}.slider-input-wrapper{align-items:center;gap:4px;display:inline-flex}.slider-num-input{background:var(--clr-surface-alt);border:1px solid var(--clr-border);color:var(--clr-brand-mid);font-family:var(--font-mono);text-align:right;border-radius:4px;outline:none;width:70px;padding:1px 4px;font-size:12px;font-weight:700;transition:all .15s}.slider-num-input:focus{border-color:var(--clr-brand-mid);background:var(--clr-surface);box-shadow:0 0 0 1px var(--clr-brand-mid)}.slider-num-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider-num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider-num-input{-moz-appearance:textfield}.slider-unit{color:var(--clr-text-3);text-align:left;width:28px;font-size:10px;font-weight:700}.plate-row{cursor:pointer}.plate-row td{white-space:nowrap;transition:background-color .15s,color .15s}.plate-row:hover td{background-color:var(--clr-brand-light,#eff6ff)!important;color:var(--clr-brand,#3b82f6)!important}.plate-row.active td{font-weight:600;background-color:var(--clr-brand-light,#eff6ff)!important;color:var(--clr-brand,#3b82f6)!important}
