.app-modal-panel.prediction-modal{width:min(1440px,calc(100vw - 48px))}.prediction-heading h2{margin:4px 0;font-size:32px}.prediction-heading p{margin:8px 0}.prediction-view{display:grid;gap:20px;margin-top:20px}.prediction-view p{color:var(--text-secondary);line-height:1.6;font-size:13px}.prediction-revision,.prediction-view label{display:grid;gap:6px;font-size:12px;color:var(--text-secondary)}.prediction-revision{max-width:640px}.prediction-modal select,.prediction-modal input[type=number]{width:100%;min-width:0;border:1px solid var(--control-border);border-radius:var(--radius-control);padding:9px 12px;color:var(--text-primary);background:var(--surface);font:inherit}.prediction-view button{border:1px solid var(--control-border);border-radius:var(--radius-control);padding:9px 16px;color:var(--text-primary);background:var(--surface);font:inherit;cursor:pointer}.prediction-view>button{justify-self:start}.prediction-note,.prediction-settings{margin:0;background:var(--surface-warm);padding:16px 20px;border-radius:var(--radius-card)}.prediction-view summary{cursor:pointer;font-weight:600;font-size:14px}.prediction-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,215px),1fr));gap:16px;margin:20px 0}.prediction-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.prediction-metrics>div{display:grid;gap:10px;border:1px solid var(--border);border-radius:var(--radius-card);padding:16px}.prediction-metrics span{color:var(--text-secondary);font-size:12px}.prediction-metrics strong{font:500 24px var(--font-technical);overflow-wrap:anywhere}.prediction-section{border-top:1px solid var(--border);padding-top:24px;min-width:0}.prediction-section h3,.prediction-chart h3{margin:0 0 12px;font-size:18px}.prediction-section-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.prediction-section-head label{flex-shrink:0}.prediction-table-wrap{position:relative;max-width:100%;overflow:auto;margin:16px 0;border:1px solid var(--border);border-radius:var(--radius-control)}.prediction-view table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.prediction-view th,.prediction-view td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.prediction-view thead th{background:var(--surface-warm);font-weight:500}.prediction-view tbody th{font-weight:500}.prediction-view table details{white-space:normal;min-width:260px;max-width:420px}.prediction-heatmap th:first-child{position:sticky;left:0;z-index:1;background:var(--surface);min-width:180px;max-width:250px;overflow:hidden;text-overflow:ellipsis}.prediction-view .prediction-heatmap td{min-width:24px;padding:0;border-right:2px solid var(--surface);border-bottom:2px solid var(--surface)}.prediction-view .prediction-heatmap thead th:not(:first-child){height:85px;padding:4px;vertical-align:bottom;font-size:10px}.prediction-heatmap thead span{writing-mode:vertical-rl;transform:rotate(180deg)}.prediction-time input{width:100%;accent-color:var(--positive)}.prediction-checkpoints{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 20px}.prediction-alert{padding:10px 14px;background:var(--surface-rose);border-radius:var(--radius-control)}.prediction-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.prediction-chart{min-width:0;padding:18px;border:1px solid var(--border);border-radius:var(--radius-card)}.prediction-chart svg{display:block;width:100%;overflow:visible}.prediction-chart svg text{fill:var(--text-secondary);font:10px var(--font-technical)}.prediction-grid-line{stroke:var(--border);stroke-width:1}.prediction-legend{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:12px}.prediction-legend span{display:inline-flex;align-items:center;gap:6px}.prediction-legend i{width:10px;height:10px;border-radius:2px}.prediction-window-bars{max-height:360px;overflow:auto;display:grid;gap:10px;margin-top:18px}.prediction-window-bars>div{display:grid;grid-template-columns:minmax(120px,2fr) minmax(80px,3fr) 75px;gap:14px;align-items:center;font-size:12px}.prediction-window-bars progress{width:100%;height:10px;accent-color:var(--positive)}.prediction-window-bars strong{text-align:right;font-family:var(--font-technical)}.prediction-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width: 760px){.app-modal-panel.prediction-modal{width:calc(100vw - 24px);padding:16px}.prediction-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-charts{grid-template-columns:1fr}.prediction-section-head{flex-direction:column}.prediction-heading h2{font-size:26px}.prediction-metrics strong{font-size:19px}.prediction-window-bars>div{grid-template-columns:minmax(0,1fr) 75px;gap:8px 12px}.prediction-window-bars>div>span{grid-column:1 / -1;overflow-wrap:anywhere}}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-all.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-all.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-all.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-all.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-all.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-all.ttf) format("truetype")}:root{color-scheme:light;--canvas: #F6F5F0;--surface: #FFFFFF;--surface-warm: #F0EEE8;--surface-olive: #E3E6D7;--surface-lilac: #E9E4F4;--surface-rose: #F2E4E1;--text-primary: #1D1F1D;--text-secondary: #5D605B;--text-subtle: #62655F;--border: #D4D3CC;--border-strong: #A9ABA4;--control-border: #878A80;--action: #F5A92D;--action-hover: #E7971F;--action-text: #1D1F1D;--positive: #647A36;--warning: #885A27;--error: #A43F37;--focus: #315ED7;--series-1: #E59A24;--series-2: #663F37;--series-3: #708A39;--series-4: #7A7569;--font-primary: Inter, Arial, sans-serif;--font-technical: "IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 96px;--radius-control: 10px;--radius-card: 14px;--radius-mobile-card: 20px;--radius-hero: 24px;--radius-pill: 999px;--shadow-floating: 0 12px 40px rgba(29, 31, 29, .1);--backdrop: rgba(29, 31, 29, .48);--duration-fast: .14s;--duration-standard: .22s;--duration-panel: .18s;--easing: cubic-bezier(.22, 1, .36, 1);--content-width: 1280px;--reading-width: 720px;--page-gutter: 48px;--heading-size: 36px;--control-font-size: 14px;--display-size: 64px;--metric-size: 56px}:root[data-theme=dark]{color-scheme:dark;--canvas: #191B18;--surface: #232620;--surface-warm: #2D3029;--surface-olive: #333C28;--surface-lilac: #363142;--surface-rose: #422D29;--text-primary: #F0EFE8;--text-secondary: #C0C2B8;--text-subtle: #AFB2A7;--border: #44483E;--border-strong: #7D8372;--control-border: #7D8372;--positive: #B2CA84;--warning: #EAC58B;--error: #F0AAA0;--focus: #90AEFF;--shadow-floating: 0 12px 40px rgba(0, 0, 0, .24);--backdrop: rgba(0, 0, 0, .64)}@media (max-width: 1199px){:root{--page-gutter: 32px}}@media (max-width: 767px){:root{--page-gutter: 20px;--heading-size: 28px;--control-font-size: 16px;--display-size: 44px;--metric-size: 44px;--radius-card: var(--radius-mobile-card)}}:root{font-family:var(--font-primary);color:var(--text-primary);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}a{color:var(--text-secondary);text-decoration:none}button,input,select{font:inherit}.app-shell{min-height:100vh;padding:28px}.topbar,.toolbar,.formula-panel,.documentation-panel,.workspace,.app-tabs,.supplier-products-panel{max-width:var(--content-width);margin:0 auto}.production-panel{display:grid;max-width:var(--content-width);margin:0 auto;gap:16px}.production-head{display:flex;align-items:end;justify-content:space-between;gap:24px;border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;background:var(--surface)}.production-head h2{font-size:26px}.production-head p:last-child{max-width:740px;margin-top:7px;color:var(--text-subtle)}.production-head-stats{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 10px;min-width:220px}.production-head-stats strong{color:var(--text-secondary);font-size:22px;text-align:right}.production-head-stats span{color:var(--text-subtle);font-size:13px}.production-message{border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:10px 12px;color:var(--text-secondary);background:var(--surface-olive);font-size:13px}.production-library-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:16px;align-items:start}.production-card,.dispense-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;background:var(--surface)}.production-card-head,.dispense-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.production-card-head p,.dispense-head label span{display:block;margin-top:4px;color:var(--text-subtle);font-size:12px}.production-search{display:grid;gap:5px;margin:14px 0 10px;color:var(--text-subtle);font-size:12px;font-weight:700}.production-search input,.formula-library-upload input,.dispense-head input,.dispense-head select,.dispense-table select,.dispense-table input,.inventory-write-off input{min-height:38px;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.production-inventory-table-wrap,.dispense-table-wrap{max-height:480px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card)}.production-table{width:100%;border-collapse:collapse;font-size:13px}.production-table th{position:sticky;z-index:1;top:0;padding:9px 10px;color:var(--text-secondary);background:var(--surface-warm);text-align:left;white-space:nowrap}.production-table td{border-top:1px solid var(--border);padding:9px 10px;vertical-align:middle}.production-table .inventory-negative-row td{background:var(--surface-rose)}.inventory-deficit{color:var(--error)!important;font-weight:600}.production-table td>span,.formula-library-list article span,.dispense-table td:first-child span,.dispense-table td:last-child span{display:block;margin-top:2px;color:var(--text-subtle);font-size:12px}.production-card button,.dispense-card button{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-secondary);background:var(--surface);font-weight:600;cursor:pointer}.production-card button:disabled,.dispense-card button:disabled,.production-panel .file-button:has(input:disabled){opacity:.48;cursor:default}.production-card button.danger,.dispense-card button.danger{border-color:var(--error);color:var(--error)}.formula-library-upload{display:grid;gap:8px;margin:14px 0}.formula-library-list{display:grid;max-height:430px;overflow-y:auto;gap:7px}.formula-library-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;border:1px solid var(--border);border-radius:var(--radius-control);padding:9px}.formula-library-list article.selected{border-color:var(--border-strong);background:var(--surface-olive)}.dispense-card{display:grid;gap:14px}.dispense-head{display:grid;grid-template-columns:minmax(200px,1fr) minmax(190px,auto) minmax(150px,auto)}.dispense-head label:not(.file-button){display:grid;gap:5px}.dispense-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dispense-summary span{display:grid;gap:4px;border:1px solid var(--border);border-radius:var(--radius-control);padding:10px 12px;color:var(--text-subtle);font-size:12px}.dispense-summary strong{color:var(--text-primary);font-size:18px}.dispense-dilution-note{border-left:3px solid var(--warning);padding:7px 10px;color:var(--warning);background:var(--surface-warm);font-size:13px}.dispense-table-wrap{max-height:none}.dispense-table select{width:min(390px,30vw)}.dispense-table input{width:105px}.dispense-table th.dispense-planned-column,.dispense-table td.dispense-planned-column{color:var(--warning);background:var(--surface-warm)}.dispense-problem-row td{background:var(--surface-warm)}.dispense-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.dispense-actions p{color:var(--text-subtle);font-size:13px}.dispense-card button.primary{border-color:var(--text-secondary);color:var(--surface);background:var(--text-secondary)}.inventory-write-off{display:grid;grid-template-columns:72px minmax(130px,1fr) auto auto auto;gap:5px;min-width:520px}.inventory-balance-action{display:flex;align-items:center;gap:7px}.batch-planner{display:grid;gap:14px}.batch-formula-rows{display:grid;gap:7px}.batch-formula-row{display:grid;grid-template-columns:28px minmax(240px,1fr) minmax(170px,.35fr) auto;align-items:end;gap:8px;border:1px solid var(--border);border-radius:var(--radius-control);padding:9px;background:var(--surface-warm)}.batch-formula-row>span{align-self:center;color:var(--text-subtle);font-weight:600;text-align:center}.batch-formula-row label{display:grid;gap:4px;color:var(--text-subtle);font-size:12px;font-weight:700}.batch-formula-row select,.batch-formula-row input{width:100%;min-width:0;min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.batch-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.batch-unmatched{display:grid;gap:3px;border-left:3px solid var(--warning);padding:8px 11px;color:var(--warning);background:var(--surface-warm);font-size:12px}.batch-manual-matches{display:grid;gap:7px;border:1px solid var(--border);border-radius:var(--radius-card);padding:11px;background:var(--surface-warm)}.batch-manual-matches>strong{color:var(--text-secondary);font-size:12px}.batch-manual-matches label{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(280px,1.3fr);align-items:center;gap:9px;color:var(--text-secondary);font-size:12px}.batch-manual-matches select{width:100%;min-width:0;min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.inventory-add-form{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(110px,.45fr) minmax(130px,.55fr) minmax(180px,.8fr) auto;align-items:end;gap:8px;margin-top:12px;border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:11px;background:var(--surface-olive)}.inventory-add-form label{display:grid;gap:5px;color:var(--text-secondary);font-size:12px;font-weight:600}.inventory-add-form input{width:100%;min-width:0;height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.inventory-add-component{position:relative}.inventory-component-results{position:absolute;z-index:8;top:62px;left:0;display:grid;width:min(620px,90vw);max-height:320px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-floating)}.inventory-component-results button{display:grid;gap:2px;min-height:auto;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:9px 11px;color:var(--text-primary);background:var(--surface);text-align:left}.inventory-component-results button span{color:var(--text-subtle);font-size:12px}.production-card button.primary{border-color:var(--text-secondary);color:var(--surface);background:var(--text-secondary)}.production-open-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-card);padding:24px;text-align:center}.development-panel{display:grid;max-width:var(--content-width);margin:0 auto;gap:16px}.development-head{display:flex;align-items:end;justify-content:space-between;gap:24px;border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;background:var(--surface)}.development-head h2{font-size:26px}.development-head p:last-child,.development-create-card p,.development-add-version p,.development-comparison-head p{margin-top:5px;color:var(--text-subtle);font-size:13px}.development-stats{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 9px}.development-stats strong{color:var(--text-secondary);font-size:20px;text-align:right}.development-stats span{color:var(--text-subtle);font-size:12px}.development-create-card{display:grid;grid-template-columns:minmax(190px,.8fr) repeat(3,minmax(150px,1fr)) auto auto;align-items:end;gap:9px;border:1px solid var(--border);border-radius:var(--radius-card);padding:14px;background:var(--surface)}.development-create-card input,.development-library-head input,.development-rename input,.development-add-version input,.formula-shortcut select,.documentation-formula-shortcut select{width:100%;min-width:0;height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.development-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.development-library,.development-editor,.development-empty{min-width:0;border:1px solid var(--border);border-radius:var(--radius-card);padding:14px;background:var(--surface)}.development-library{position:sticky;top:12px}.development-library-head{display:grid;gap:9px;margin-bottom:10px}.development-formula-list{display:grid;max-height:68vh;overflow-y:auto;gap:6px}.development-formula-list button{display:grid;gap:2px;border:1px solid var(--border);border-radius:var(--radius-control);padding:10px;color:var(--text-primary);background:var(--surface);text-align:left;cursor:pointer}.development-formula-list button.selected{border-color:var(--border-strong);background:var(--surface-olive)}.development-formula-list span,.development-formula-list small{color:var(--text-subtle);font-size:12px}.development-formula-list button:not(.selected) small{color:var(--warning)}.development-editor{display:grid;gap:14px}.development-formula-head,.development-comparison-head{display:flex;align-items:end;justify-content:space-between;gap:14px}.development-rename{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px}.development-panel button,.formula-shortcut button,.documentation-formula-shortcut button{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-secondary);background:var(--surface);font-weight:600;cursor:pointer}.development-panel button:disabled,.formula-shortcut button:disabled,.documentation-formula-shortcut button:disabled{opacity:.45;cursor:default}.development-panel button.danger{border-color:var(--error);color:var(--error)}.development-branches{display:grid;gap:9px;border:1px solid var(--border);border-radius:var(--radius-card);padding:10px;background:var(--surface)}.development-branch-tabs{display:flex;gap:6px;overflow-x:auto}.development-branch-tabs button{display:flex;flex:0 0 auto;align-items:center;gap:7px}.development-branch-tabs button.selected{border-color:var(--border-strong);color:var(--surface);background:var(--text-secondary)}.development-branch-tabs button span{border-radius:var(--radius-pill);padding:1px 6px;color:inherit;background:var(--border);font-size:12px}.development-create-branch{display:grid;grid-template-columns:minmax(140px,.55fr) minmax(260px,1fr) auto;gap:7px}.development-create-branch input,.development-create-branch select{width:100%;min-width:0;height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.development-add-version{display:grid;grid-template-columns:minmax(190px,1fr) minmax(150px,.8fr) minmax(190px,1fr) auto auto;align-items:end;gap:8px;border:1px solid var(--border);border-radius:var(--radius-card);padding:12px;background:var(--surface-warm)}.development-version-list{display:grid;gap:7px}.development-version-list article{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius-card);padding:10px 12px}.development-version-list article.final{border-color:var(--border-strong);background:var(--surface-olive)}.development-version-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.development-version-number{display:grid;gap:3px}.development-version-number strong{font-size:18px}.development-version-number span{width:fit-content;border-radius:var(--radius-pill);padding:2px 7px;color:var(--surface);background:var(--text-secondary);font-size:12px;font-weight:600}.development-version-list h4{margin:0}.development-version-list p,.development-version-list small{display:block;margin-top:3px;color:var(--text-subtle);font-size:12px}.development-compare-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.development-compare-toggle input{width:17px;height:17px;accent-color:var(--text-secondary)}.development-comparison{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:14px}.development-comparison-head>span{color:var(--text-subtle);font-size:12px}.development-comparison-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card)}.development-comparison table{width:100%;border-collapse:collapse;font-size:12px}.development-comparison th,.development-comparison td{min-width:125px;border-top:1px solid var(--border);border-left:1px solid var(--border);padding:9px 10px;text-align:right;white-space:nowrap}.development-comparison th{border-top:0;color:var(--text-secondary);background:var(--surface-warm)}.development-comparison th:first-child,.development-comparison td:first-child{position:sticky;z-index:1;left:0;min-width:210px;border-left:0;background:var(--surface);text-align:left}.development-comparison th:first-child{z-index:2;background:var(--surface-warm)}.development-comparison td span,.development-comparison th small{display:block;margin-top:2px;color:var(--text-subtle);font-size:12px}.development-comparison td.increased{color:var(--positive);background:var(--surface-olive)}.development-comparison td.decreased,.development-comparison td.removed{color:var(--error);background:var(--surface-rose)}.development-comparison td.changed{color:var(--warning);background:var(--surface-warm)}.formula-head-actions{display:flex;align-items:center;gap:8px}.formula-shortcut{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:6px}.documentation-formula-shortcut{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,.8fr) auto;align-items:center;gap:10px;border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:11px;background:var(--surface-olive)}.documentation-formula-shortcut span{display:block;margin-top:3px;color:var(--text-subtle);font-size:12px}.manual-formula-editor{display:grid;gap:14px;border:2px solid var(--border-strong);border-radius:var(--radius-card);padding:16px;background:var(--surface);box-shadow:var(--shadow-floating)}.manual-formula-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.manual-formula-head p:last-child{max-width:760px;margin-top:5px;color:var(--text-subtle);font-size:12px}.manual-formula-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.manual-formula-meta label,.manual-component-search>label{display:grid;gap:5px;color:var(--text-subtle);font-size:12px;font-weight:700}.manual-formula-meta input,.manual-component-search input,.manual-formula-table input{width:100%;min-width:0;height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-primary);background:var(--surface)}.manual-formula-meta input:disabled{color:var(--text-secondary);background:var(--surface-warm)}.manual-component-search{position:relative}.manual-component-results{position:absolute;z-index:8;top:63px;left:0;display:grid;width:min(680px,100%);max-height:340px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-floating)}.manual-component-results button{display:grid;gap:2px;min-height:auto;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:9px 11px;color:var(--text-primary);background:var(--surface);text-align:left}.manual-component-results button:hover:not(:disabled),.manual-component-results button:focus-visible{background:var(--surface-olive)}.manual-component-results button span,.manual-component-results>p{color:var(--text-subtle);font-size:12px}.manual-component-results>p{padding:12px}.manual-formula-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card)}.manual-formula-table{width:100%;border-collapse:collapse;font-size:13px}.manual-formula-table th{padding:8px 10px;color:var(--text-secondary);background:var(--surface-warm);text-align:left;white-space:nowrap}.manual-formula-table td{border-top:1px solid var(--border);padding:8px 10px;vertical-align:middle}.manual-formula-table td:first-child{width:42px;color:var(--text-subtle)}.manual-formula-table td:nth-child(4){width:145px}.manual-formula-table td:nth-child(5){width:125px}.manual-formula-table td:nth-child(6){width:140px;white-space:nowrap}.manual-formula-table td>span{display:block;margin-top:3px;color:var(--error);font-size:12px}.manual-formula-table .manual-unlinked-line td{background:var(--surface-rose)}.manual-formula-table .manual-dpg-line td{border-top:2px solid var(--border-strong);background:var(--surface-olive)}.manual-formula-table .manual-dpg-line input{color:var(--text-secondary);background:var(--surface-olive);font-weight:600}.manual-formula-table .manual-dpg-line td>span{color:var(--text-secondary)}.manual-formula-table .manual-dpg-error td{background:var(--surface-rose)}.manual-formula-table .manual-dpg-error input,.manual-formula-table .manual-dpg-error strong{color:var(--error)}.manual-formula-table-wrap>.empty-state{padding:20px;text-align:center}.manual-line-actions{display:flex;gap:4px;justify-content:end}.manual-line-actions button{min-width:34px;padding:0 8px}.manual-formula-footer{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:16px}.manual-formula-footer>div{display:flex;gap:14px;color:var(--text-subtle);font-size:12px}.manual-formula-footer strong{color:var(--text-primary);font-size:16px}.manual-formula-footer strong.warning,.manual-formula-footer>p{color:var(--warning)}.manual-formula-footer>p{font-size:12px;text-align:right}.manual-formula-footer button.primary{border-color:var(--text-secondary);color:var(--surface);background:var(--text-secondary)}.manual-formula-save-actions{display:flex;gap:8px}.app-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--border)}.app-tabs button{border:0;border-bottom:3px solid transparent;padding:11px 16px 9px;color:var(--text-subtle);background:transparent;font-weight:600;cursor:pointer}.app-tabs button.active{border-bottom-color:var(--text-secondary);color:var(--text-secondary)}.topbar{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:8px 0 24px}.eyebrow{margin:0 0 6px;color:var(--text-subtle);font-size:13px;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.1}.catalog-date{margin-top:8px;color:var(--text-subtle);font-size:14px}.catalog-load-state{margin:15vh auto;color:var(--text-secondary);font-size:18px;text-align:center}.stats{display:grid;grid-template-columns:repeat(6,minmax(96px,1fr));gap:10px}.stats div{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:12px 14px}.stats span{display:block;font-size:22px;font-weight:600}.stats small{color:var(--text-subtle)}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:14px}.search-field{display:grid;gap:6px;width:min(480px,100%);color:var(--text-subtle);font-size:13px;font-weight:700}.component-search-row{display:flex;gap:7px}.component-search-row>input{min-width:0;flex:1 1 auto}.component-search-scope{position:relative;flex:0 0 auto}.component-search-scope summary{display:flex;align-items:center;justify-content:center;height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 12px;color:var(--text-primary);background:var(--surface);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.component-search-scope summary::-webkit-details-marker{display:none}.component-search-scope summary:after{content:"▾";margin-left:8px;font-size:12px}.component-search-scope[open] summary:after{transform:rotate(180deg)}.component-search-scope-panel{position:absolute;top:calc(100% + 7px);right:0;z-index:20;display:grid;width:230px;gap:2px;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);padding:8px;box-shadow:var(--shadow-floating)}.component-search-scope-panel label{display:flex;align-items:center;gap:9px;min-height:34px;border-radius:var(--radius-control);padding:5px 7px;color:var(--text-primary);cursor:pointer}.component-search-scope-panel label:hover{background:var(--surface-olive)}.component-search-scope-panel input{width:17px;height:17px;accent-color:var(--text-secondary)}.select-field{display:grid;gap:6px;min-width:170px;color:var(--text-subtle);font-size:13px;font-weight:700}.search-field input,.select-field select{height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 12px;color:var(--text-primary);background:var(--surface)}.toggle-group{display:flex;align-items:center;gap:16px;min-height:40px}.toggle{display:inline-flex;align-items:center;gap:10px;min-height:40px;color:var(--text-primary);font-weight:600}.toggle input{width:18px;height:18px;accent-color:var(--text-secondary)}.catalog-edit-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.catalog-edit-actions button,.catalog-edit-actions label,.edit-component-button,.component-delete-confirmation button,.component-merge-picker>button,.component-merge-notice button,.component-editor-head button,.component-editor-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;color:var(--text-secondary);background:var(--surface);font-size:12px;font-weight:600;cursor:pointer}.catalog-edit-actions button:disabled{opacity:.45;cursor:default}.catalog-edit-actions label input{display:none}.catalog-edit-error{max-width:var(--content-width);margin:8px auto 0;color:var(--error);font-size:13px}.formula-panel{display:grid;gap:14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:16px;margin-top:18px}.supplier-products-panel{display:grid;gap:14px;border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;background:var(--surface)}.supplier-products-head,.supplier-products-filters{display:flex;align-items:end;justify-content:space-between;gap:16px}.supplier-products-head h2{font-size:22px}.supplier-products-head>strong{color:var(--text-subtle);font-size:13px}.supplier-products-filters{justify-content:flex-start}.supplier-unlinked-toggle{align-self:flex-end}.supplier-products-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card)}.supplier-products-table-wrap tbody tr{cursor:default}.supplier-component-edit{display:block;margin-top:5px;border:0;padding:0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer}.offer-concentration-editor{display:flex;align-items:center;gap:6px;min-width:145px}.offer-concentration-editor label{display:flex;align-items:center;gap:3px}.offer-concentration-editor input{width:76px;padding:6px 7px}.offer-concentration-editor button{padding:6px 8px;font-size:12px}.material-cas-editor{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1fr) minmax(260px,1.4fr) auto auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius-card);padding:14px;background:var(--surface-olive)}.material-cas-editor>div:first-child,.material-component-association{display:grid;gap:4px}.material-cas-editor span{color:var(--text-subtle);font-size:12px}.material-cas-editor textarea{width:100%;resize:vertical}.material-component-association .documentation-component-picker{width:100%}.material-component-association .component-picker-actions{display:flex;flex-wrap:wrap}@media (max-width: 900px){.material-cas-editor{grid-template-columns:1fr}}.formula-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.documentation-panel{display:grid;gap:18px;border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;background:var(--surface)}.documentation-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.documentation-head h2{font-size:24px}.documentation-head p:last-child{max-width:760px;margin-top:6px;color:var(--text-subtle);font-size:14px}.documentation-head>button,.documentation-file-state button{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 12px;color:var(--text-secondary);background:var(--surface);font-weight:600;cursor:pointer}.documentation-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.documentation-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.documentation-upload-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:130px;border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;background:var(--surface-warm)}.documentation-upload-card h3,.documentation-result-section h3{font-size:16px}.documentation-upload-card p{max-width:600px;margin-top:6px;color:var(--text-subtle);font-size:13px;line-height:1.45}.documentation-file-state{display:flex;align-items:center;gap:10px}.documentation-file-state div{display:grid;gap:3px;max-width:260px}.documentation-file-state strong,.documentation-file-state span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documentation-file-state span{color:var(--text-subtle);font-size:12px}.documentation-upload-card .documentation-upload-error{grid-column:1 / -1;margin:0;color:var(--error)}.documentation-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-card);padding:24px;text-align:center}.documentation-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.documentation-summary div{border:1px solid var(--border);border-radius:var(--radius-card);padding:12px 14px;background:var(--surface)}.documentation-summary span{display:block;font-size:20px;font-weight:600}.documentation-summary small{color:var(--text-subtle)}.documentation-warnings{border:1px solid var(--warning);border-radius:var(--radius-card);padding:11px 13px;color:var(--warning);background:var(--surface-warm);font-size:13px}.documentation-warnings summary{font-weight:600;cursor:pointer}.documentation-warnings div{display:grid;gap:4px;margin-top:9px}.documentation-match-list{display:grid;gap:8px}.documentation-match-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;align-items:center;gap:14px;border:1px solid var(--warning);border-radius:var(--radius-control);padding:11px 12px;background:var(--surface-warm)}.documentation-match-row.unresolved{border-color:var(--error);background:var(--surface-rose)}.documentation-match-row>div:first-child,.documentation-match-current{display:grid;gap:3px}.documentation-match-row span{color:var(--text-subtle);font-size:12px}.documentation-match-current>span{font-weight:700}.documentation-component-trigger{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 11px;color:var(--text-secondary);background:var(--surface);font-size:12px;font-weight:600;cursor:pointer}.documentation-component-picker{position:relative;display:grid;width:min(420px,45vw);gap:6px}.documentation-component-picker>input{width:100%;height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 9px;background:var(--surface)}.documentation-component-results{position:absolute;z-index:5;top:42px;right:0;display:grid;width:100%;max-height:300px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--shadow-floating)}.documentation-component-results button{display:grid;gap:2px;border:0;border-bottom:1px solid var(--border);padding:9px 10px;text-align:left;background:var(--surface);cursor:pointer}.documentation-component-results button:hover:not(:disabled),.documentation-component-results button:focus-visible{background:var(--surface-olive)}.documentation-component-results button span{color:var(--text-subtle);font-size:12px}.documentation-result-section{min-width:0;border:1px solid var(--border);border-radius:var(--radius-card);padding:14px;background:var(--surface)}.documentation-section-head{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:12px}.documentation-section-head p{margin-top:4px;color:var(--text-subtle);font-size:12px}.documentation-section-head>strong{color:var(--text-secondary);font-size:20px}.documentation-table-wrap{max-height:500px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-control)}.documentation-table{width:100%;font-size:13px}.documentation-table th{position:sticky;z-index:1;top:0;padding:9px 10px;background:var(--surface-warm);white-space:nowrap}.documentation-table td{padding:9px 10px;vertical-align:top}.documentation-table td:nth-last-child(-n+4){white-space:nowrap}.documentation-table td .documentation-contained-origin{display:block;margin-top:4px;color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1.35;white-space:normal}.documentation-table .documentation-safety-warning-row td{border-color:var(--error);background:var(--surface-rose);color:var(--error)}.documentation-table .documentation-safety-warning-row td:first-child span{display:block;margin-top:3px;color:var(--error);font-size:12px;white-space:normal}.documentation-metrics>div{display:grid;gap:0;margin-top:10px}.documentation-download{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.documentation-download label{display:grid;gap:5px;color:var(--text-subtle);font-size:12px;font-weight:700}.documentation-download input{width:100%;height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 10px;background:var(--surface)}.documentation-download .file-button:disabled{opacity:.5;cursor:default}.documentation-download>p{grid-column:1 / -1;color:var(--error);font-size:12px}.documentation-msds-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.documentation-msds-dangerous-head{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.documentation-metrics p,.documentation-msds-summary p{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--border);padding:10px 0}.documentation-metrics p span,.documentation-msds-summary p span,.documentation-codes dt{color:var(--text-subtle);font-size:13px}.documentation-codes dl{display:grid;gap:0;margin:10px 0 0}.documentation-codes dl div{display:grid;grid-template-columns:minmax(160px,.45fr) 1fr;gap:14px;border-top:1px solid var(--border);padding:10px 0}.documentation-codes dd{margin:0;overflow-wrap:anywhere;font-size:13px;font-weight:700}.formula-head h2{font-size:22px}.file-button,.formula-actions button,.formula-card button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 12px;color:var(--text-secondary);background:var(--surface);font-weight:600;cursor:pointer}.file-button input{display:none}.formula-errors,.formula-warning{display:grid;gap:4px;color:var(--error);font-size:13px}.formula-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.formula-summary div{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:12px 14px}.formula-summary span{display:block;font-size:20px;font-weight:600}.formula-summary small{color:var(--text-subtle)}.formula-list{display:grid;gap:10px}.formula-card{display:grid;grid-template-columns:minmax(220px,1fr) 110px 150px auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:var(--radius-card);padding:12px}.formula-card h3{font-size:15px}.formula-card p,.formula-card span{color:var(--text-subtle);font-size:13px}.formula-card label{display:grid;gap:5px;color:var(--text-subtle);font-size:12px;font-weight:700}.formula-card input{width:100%;height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 8px}.formula-card-total{display:grid;gap:3px}.formula-card-total strong{color:var(--text-primary)}.formula-warning{grid-column:1 / -1}.purchase-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card)}.purchase-table th,.purchase-table td{padding:12px}.purchase-table td strong{display:block;margin-bottom:4px}.purchase-table td span{display:block}.purchase-table td .purchase-store{display:inline}.purchase-store a{color:inherit;text-decoration:underline;text-underline-offset:2px}.supplier-picker{display:grid;margin-top:8px;gap:3px}.purchase-table td .supplier-picker>span{color:var(--text-subtle);font-size:12px;font-weight:700}.supplier-picker select{width:100%;min-width:210px;height:32px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 7px;color:var(--text-primary);background:var(--surface);font-size:12px}.purchase-table td .matched-component{margin-top:4px;color:var(--text-secondary);font-size:12px}.component-picker-trigger{margin-top:7px;border:0;padding:0;color:var(--text-secondary);background:transparent;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.component-picker{display:grid;min-width:300px;margin-top:8px;gap:6px}.component-picker>input{width:100%;height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 9px;background:var(--surface)}.component-picker-results{display:grid;max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface)}.component-picker-results button{border:0;border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;background:var(--surface);cursor:pointer}.component-picker-results button:hover:not(:disabled),.component-picker-results button:focus-visible{background:var(--surface-olive)}.component-picker-results button strong{margin-bottom:2px;font-size:12px}.component-picker-results button span,.component-picker-empty{color:var(--text-subtle);font-size:12px}.component-picker-empty{padding:10px}.component-picker-actions{display:flex;flex-wrap:wrap;gap:6px}.component-picker-actions button{border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:5px 8px;color:var(--text-secondary);background:var(--surface);font-size:12px;cursor:pointer}.muted-row{color:var(--text-subtle)}.purchase-table tr.cas-match-warning td,.purchase-table tr.cas-match-warning:hover td{background:var(--surface-warm)}.formula-actions{display:flex;justify-content:flex-end}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;margin-top:18px}.workspace.components-table-workspace{grid-template-columns:minmax(0,1fr)}.components-table-workspace .table-panel{overflow-x:auto}.components-table-workspace table{min-width:1380px}.app-modal-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:var(--backdrop);-webkit-backdrop-filter:none;backdrop-filter:none}.app-modal-panel{position:relative;width:min(1080px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card);padding:28px;background:var(--surface);box-shadow:var(--shadow-floating)}.app-modal-close{position:sticky;z-index:20;top:0;float:right;width:38px;height:38px;margin:-14px -14px 8px 12px;border:1px solid var(--border);border-radius:50%;color:var(--text-primary);background:var(--surface);font-size:25px;line-height:1;cursor:pointer;box-shadow:var(--shadow-floating)}.component-modal{width:min(1040px,calc(100vw - 48px))}.formula-editor-modal{width:min(1480px,calc(100vw - 48px))}.material-editor-modal{width:min(1280px,calc(100vw - 48px))}.formula-editor-modal .manual-formula-editor,.material-editor-modal .material-cas-editor{clear:both}.table-panel,.details-panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow:hidden}.result-line{display:flex;justify-content:flex-end;border-bottom:1px solid var(--border);padding:10px 14px;color:var(--text-subtle);font-size:13px;font-weight:700}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--text-subtle);background:var(--surface);font-size:12px;text-transform:uppercase;letter-spacing:0}tbody tr{cursor:pointer}.selected-row{background:var(--surface-olive)}td strong{display:block;margin-bottom:5px;font-size:14px;line-height:1.35}td span{color:var(--text-subtle);font-size:13px}.source-pills,.component-descriptor-pills,.tag-list,.contains-list,.doc-links{display:flex;flex-wrap:wrap;gap:6px}.source-pills span,.component-descriptor-pills span,.tag-list span,.contains-list span{border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 8px;color:var(--text-primary);background:var(--surface);font-size:12px;line-height:1.2}.component-descriptors-cell{width:280px}.component-descriptor-pills span{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-list-use span{border-color:var(--border);background:var(--surface-olive)}.tag-list-danger span{border-color:var(--warning);color:var(--warning);background:var(--surface-rose)}.details-panel{padding:18px;overflow-y:auto;max-height:calc(100vh - 180px)}.details-heading{padding-bottom:16px;border-bottom:1px solid var(--border)}.details-heading p{color:var(--text-subtle);font-size:13px;font-weight:600}.details-heading h2{margin-top:5px;font-size:22px;line-height:1.2}.details-heading span{display:block;margin-top:8px;color:var(--text-subtle);font-size:14px}.edit-component-button{margin-top:12px}.component-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.component-card-actions .edit-component-button{margin-top:0}.component-card-actions .danger,.component-delete-confirmation .danger{border-color:var(--error);color:var(--error);background:var(--surface-rose)}.component-delete-confirmation{display:grid;gap:8px;margin-top:12px;border:1px solid var(--error);border-radius:var(--radius-card);padding:11px;color:var(--error);background:var(--surface-rose)}.component-delete-confirmation p,.component-merge-picker>p,.component-merge-notice p{font-size:12px;line-height:1.45}.component-delete-confirmation>div{display:flex;flex-wrap:wrap;gap:7px}.component-merge-picker,.component-merge-preview{display:grid;gap:14px}.component-merge-notice{display:grid;gap:7px;border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:11px;color:var(--text-secondary);background:var(--surface-olive)}.component-merge-notice button{justify-self:start}.component-editor{display:grid;gap:16px}.component-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--border)}.component-editor-head h2{font-size:21px}.component-editor fieldset{display:grid;min-width:0;margin:0;gap:10px;border:1px solid var(--border);border-radius:var(--radius-card);padding:12px}.component-editor legend{padding:0 5px;color:var(--text-primary);font-size:13px;font-weight:600}.component-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ifra-editor-heading{display:grid;gap:3px;margin-top:4px}.ifra-editor-heading strong{color:var(--text-primary);font-size:13px}.ifra-editor-heading span{color:var(--text-subtle);font-size:12px}.ifra-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ifra-editor-category{display:grid;grid-template-columns:36px minmax(58px,.55fr) minmax(110px,1.45fr);align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-control);padding:6px;background:var(--surface)}.ifra-editor-category strong{color:var(--text-secondary);font-size:12px;text-align:center}.ifra-editor-category input{min-width:0;height:34px;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:6px;font-size:12px}.composition-upload{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.composition-upload span{color:var(--text-subtle);font-size:12px}.editor-field{display:grid;min-width:0;gap:5px}.editor-field>span{color:var(--text-secondary);font-size:12px;font-weight:600}.editor-field input,.editor-field select,.editor-field textarea{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:8px;color:var(--text-primary);background:var(--surface);font-size:13px}.editor-field input,.editor-field select{height:36px}.editor-field textarea{resize:vertical}.editor-field small{color:var(--text-subtle);font-size:12px}.component-editor-actions{display:flex;flex-wrap:wrap;gap:8px}.component-status-toggles{display:flex;flex-wrap:wrap;gap:10px}.component-editor-actions .primary{border-color:var(--text-secondary);color:var(--surface);background:var(--text-secondary)}.component-editor-actions .danger{margin-left:auto;border-color:var(--error);color:var(--error)}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.meta-grid div{border:1px solid var(--border);border-radius:var(--radius-card);padding:12px}dt{color:var(--text-subtle);font-size:12px;font-weight:700}dd{margin:4px 0 0;font-size:18px;font-weight:600}.details-section{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:16px;margin-top:16px}.details-section h3{font-size:15px;line-height:1.2}.info-rows{display:grid;gap:8px;margin:0}.info-rows div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px}.info-rows dd{margin:0;font-size:13px;font-weight:600;line-height:1.35}.text-block{white-space:pre-wrap;color:var(--text-primary);font-size:13px;line-height:1.55}.ifra-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.ifra-grid div{border:1px solid var(--border);border-radius:var(--radius-control);padding:6px;background:var(--surface)}.ifra-grid span{display:block;color:var(--text-subtle);font-size:12px;font-weight:600}.ifra-grid strong{display:block;margin-top:3px;color:var(--text-primary);font-size:12px}.ifra-grid small{display:block;margin-top:4px;color:var(--text-subtle);font-size:12px;line-height:1.3}.ifra-details{display:grid;gap:8px}.doc-links a{border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:6px 10px;font-size:13px;font-weight:600}.offer-list{display:grid;gap:12px}.offer-card{border:1px solid var(--border);border-radius:var(--radius-card);padding:14px}.offer-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}.offer-head h3{font-size:16px}.offer-head p{margin-top:3px;color:var(--text-subtle);font-size:13px}.offer-head a{border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:6px 10px;font-size:13px;font-weight:600}.packages{display:grid;gap:6px}.package-line{display:grid;grid-template-columns:70px 80px 90px 1fr;gap:8px;align-items:center;min-height:34px;border-top:1px solid var(--border);padding-top:6px;font-size:13px}.package-line span{color:var(--text-secondary)}.package-line strong{color:var(--warning)}.out-of-stock{opacity:.58}.empty-state{color:var(--text-subtle);font-size:14px}@media (max-width: 980px){.app-modal-backdrop{padding:10px}.app-modal-panel,.component-modal,.formula-editor-modal,.material-editor-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:18px}.app-shell{padding:18px}.topbar,.toolbar,.formula-head,.documentation-head,.supplier-products-head,.supplier-products-filters,.production-head,.production-card-head,.dispense-actions{align-items:stretch;flex-direction:column}.production-library-grid,.dispense-head,.batch-formula-row,.batch-manual-matches label,.development-create-card,.development-workspace,.development-add-version,.development-create-branch{grid-template-columns:1fr}.development-library{position:static}.development-formula-head,.development-head,.manual-formula-head,.formula-head-actions{align-items:stretch;flex-direction:column}.development-rename,.manual-formula-meta,.manual-formula-footer,.documentation-formula-shortcut{grid-template-columns:1fr}.manual-formula-footer>p{text-align:left}.production-head-stats{align-self:start}.dispense-summary{grid-template-columns:1fr}.app-tabs{overflow-x:auto}.app-tabs button{flex:0 0 auto}.stats,.formula-summary,.documentation-summary{grid-template-columns:repeat(3,1fr)}.toggle-group{justify-content:space-between}.catalog-edit-actions{justify-content:flex-start}.workspace{grid-template-columns:1fr}.formula-card{grid-template-columns:1fr 110px}.table-panel{overflow-x:auto}.details-panel{max-height:none}.documentation-upload-grid,.documentation-two-columns,.documentation-msds-summary,.documentation-match-row{grid-template-columns:1fr}.documentation-component-picker{width:100%}}@media (max-width: 620px){h1{font-size:28px}.stats,.formula-summary,.documentation-summary,.formula-card{grid-template-columns:1fr}.toggle-group{align-items:flex-start;flex-direction:column;gap:8px}.component-editor-grid,.ifra-editor-grid{grid-template-columns:1fr}th,td{padding:12px}.info-rows div{grid-template-columns:1fr;gap:3px}.ifra-grid{grid-template-columns:repeat(3,1fr)}.package-line{grid-template-columns:1fr 1fr}.documentation-upload-card{grid-template-columns:1fr}.documentation-file-state{align-items:stretch;flex-direction:column}.documentation-codes dl div{grid-template-columns:1fr;gap:4px}.documentation-download{grid-template-columns:1fr}.inventory-write-off{grid-template-columns:1fr;min-width:180px}.inventory-add-form{grid-template-columns:1fr}.development-version-list article{grid-template-columns:1fr}.formula-shortcut{grid-template-columns:1fr}}.component-map-panel{display:grid;max-width:var(--content-width);margin:0 auto;gap:18px}.component-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.component-map-head h2{margin:2px 0 6px}.component-map-head p:last-child{margin:0;color:var(--text-subtle)}.component-map-save-status{flex:0 0 auto;padding:8px 12px;border-radius:var(--radius-pill);background:var(--surface);color:var(--text-subtle);font-size:13px}.component-map-save-status.saving{color:var(--text-secondary)}.component-map-head-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.component-map-legend{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--text-secondary);font-size:13px}.component-map-legend span{display:inline-flex;align-items:center;gap:7px}.component-map-legend i{width:13px;height:13px;border:1px solid transparent;border-radius:4px}.component-map-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.component-map-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.component-map-table th,.component-map-table td{min-width:220px;max-width:260px;padding:14px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;vertical-align:top;background:var(--surface)}.component-map-table tr:last-child>*{border-bottom:0}.component-map-table th{position:sticky;left:0;z-index:2;min-width:230px;background:var(--canvas);box-shadow:var(--shadow-floating)}.component-map-table td.map-status-red,.component-map-legend i.map-status-red{border-color:var(--error);background:var(--surface-rose)}.component-map-table td.map-status-yellow,.component-map-legend i.map-status-yellow{border-color:var(--warning);background:var(--surface-warm)}.component-map-table td.map-status-blue,.component-map-legend i.map-status-blue{border-color:var(--border-strong);background:var(--surface-lilac)}.component-map-table th strong,.component-map-family-card div>span,.component-map-card div>span{display:block}.component-map-family-card div>span,.component-map-card div>span{margin-top:5px;color:var(--text-subtle);font-size:13px;line-height:1.35}.component-map-family-card,.component-map-card{display:flex;align-items:flex-start;gap:9px;min-height:58px;cursor:grab;-webkit-user-select:none;user-select:none}.component-map-family-card:active,.component-map-card:active{cursor:grabbing}.component-map-family-card.dragging,.component-map-card.dragging{opacity:.35}.component-map-drag-handle{flex:0 0 auto;margin-top:1px;color:var(--text-subtle);font-size:20px;line-height:1}.component-map-table tr.map-row-drop-target>*{box-shadow:var(--shadow-floating)}.component-map-table td.map-component-drop-target{box-shadow:var(--shadow-floating);background:var(--surface-olive)}.component-map-component-link{padding:0;border:0;background:transparent;color:var(--text-primary);font:inherit;font-weight:700;text-align:left;cursor:pointer}.component-map-component-link:hover{color:var(--text-secondary);text-decoration:underline}@media (max-width: 720px){.component-map-head{display:grid}}.topbar-side{display:grid;justify-items:end;gap:12px}.theme-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);padding:0 13px;color:var(--text-secondary);background:var(--surface);font-size:13px;font-weight:600;cursor:pointer}.theme-toggle span{font-size:17px;line-height:1}.theme-toggle:hover{border-color:var(--border-strong);background:var(--surface-olive)}.theme-toggle:focus-visible{outline:3px solid var(--border);outline-offset:2px}@media (max-width: 980px){.topbar-side{width:100%;justify-items:stretch}.theme-toggle{justify-self:end}}.topbar-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.signed-in-user{max-width:220px;overflow:hidden;color:var(--text-subtle);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.logout-button{min-height:34px;border:1px solid var(--border);border-radius:var(--radius-pill);padding:0 12px;color:var(--text-secondary);background:var(--surface);font-size:12px;font-weight:600;cursor:pointer}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:72px 24px 32px;background:var(--canvas)}.auth-theme-toggle{position:fixed;top:22px;right:24px}.auth-card{width:min(430px,100%);border:1px solid var(--border);border-radius:var(--radius-card);padding:36px;background:var(--surface);box-shadow:var(--shadow-floating)}.auth-brand-mark{display:grid;width:48px;height:48px;margin-bottom:24px;place-items:center;border-radius:var(--radius-card);color:var(--surface);background:var(--text-secondary);font-size:23px;font-weight:600}.auth-card h1{font-size:30px}.auth-description{margin-top:10px;color:var(--text-subtle);font-size:14px}.auth-description code{color:var(--text-primary)}.auth-form{display:grid;gap:16px;margin-top:28px}.auth-form label{display:grid;gap:7px;color:var(--text-secondary);font-size:13px;font-weight:600}.auth-form input{width:100%;height:46px;border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:0 13px;color:var(--text-primary);background:var(--surface);outline:none}.auth-form input:focus{border-color:var(--action);box-shadow:var(--shadow-floating)}.auth-error{border:1px solid var(--error);border-radius:var(--radius-control);padding:10px 12px;color:var(--error);background:var(--surface-rose);font-size:13px}.auth-submit{height:46px;margin-top:2px;border:1px solid var(--text-secondary);border-radius:var(--radius-card);color:var(--surface);background:var(--text-secondary);font-weight:600;cursor:pointer}.auth-submit:hover:not(:disabled){background:var(--positive)}.auth-submit:disabled{opacity:.5;cursor:default}@media (max-width: 620px){.auth-shell{padding:74px 14px 20px}.auth-theme-toggle{top:16px;right:14px}.auth-card{padding:28px 22px}.topbar-account-actions{align-items:flex-end;flex-wrap:wrap}}html{scrollbar-gutter:stable}body{font-size:16px;line-height:1.5}html,body,.app-shell{transition:none}button,input,select,textarea{font:inherit}button,input,select,textarea,summary,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,select{touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}:is(.app-shell,.app-modal-panel,.auth-shell) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){min-width:0;font-size:var(--control-font-size);font-weight:400;caret-color:var(--text-primary)}:is(.app-shell,.app-modal-panel) button:not(.brand):not(.ingredient-name):not(.component-map-component-link),.file-button{font-size:14px;font-weight:500;line-height:1.4}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;color:var(--text-subtle);background:var(--surface-warm)}.ui-icon{display:block;flex:0 0 auto}input::placeholder,textarea::placeholder{color:var(--text-subtle);opacity:1}a{text-underline-offset:3px}a:hover{text-decoration:underline}::selection{color:var(--action-text);background:var(--action)}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible,.auth-form input:focus{outline:2px solid var(--focus);outline-offset:2px;box-shadow:none}h1,h2,h3{color:var(--text-primary);font-weight:600;letter-spacing:-.025em;text-wrap:balance}h1{font-size:var(--heading-size);line-height:1.13}h2{font-size:26px;line-height:1.2}h3{font-size:20px;line-height:1.3}:where(button,input,select,textarea){color:var(--text-primary)}:where(input,select,textarea){background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-control)}:where(button){border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:8px 14px;background:var(--surface);font-weight:500}:where(button:hover:not(:disabled)){background:var(--surface-warm)}:where(input[type=checkbox],input[type=radio]){accent-color:var(--text-primary)}:where(.technical,.numeric,code,input[inputmode=decimal],input[type=number]){font-family:var(--font-technical);font-variant-numeric:tabular-nums}.numeric{text-align:right}.app-shell{min-height:100dvh;padding:0 var(--page-gutter)}.app-shell>*,.workspace-content>*,.section-header>*,.section-header-aside{min-width:0}.workspace-content{max-width:var(--content-width);margin:0 auto;outline:none}.app-shell button,.app-modal-panel button,.file-button,.component-search-scope summary{min-height:44px}.app-shell input:not([type=checkbox]):not([type=radio]):not([type=file]),.app-shell select,.app-modal-panel input:not([type=checkbox]):not([type=radio]):not([type=file]),.app-modal-panel select{min-height:44px}.app-shell textarea,.app-modal-panel textarea{min-height:84px;line-height:1.5}.skip-link{position:fixed;top:-100px;left:20px;z-index:2000;padding:12px 20px;border-radius:var(--radius-control);color:var(--action-text);background:var(--action)}.skip-link:focus{top:12px}.topbar{min-height:88px;align-items:center;padding:var(--space-base) 0;border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:14px;padding:0;border:0;background:transparent;text-align:left}.brand:hover{background:transparent}.brand-mark,.auth-brand-mark{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 auto;border-radius:var(--radius-card);color:var(--action-text);background:var(--action);font-size:40px;font-weight:600;line-height:1;letter-spacing:-.12em;padding:0 6px 8px 0}.brand-mark span,.auth-brand-mark span{color:var(--action-text)}.brand-copy{display:grid;gap:1px}.brand-copy strong{color:var(--text-primary);font-size:25px;font-weight:600;letter-spacing:-.04em;line-height:1.2}.brand-copy>span{color:var(--text-secondary);font-size:12px}.topbar-side{display:block}.topbar-account-actions{gap:12px}.theme-toggle,.logout-button{color:var(--text-secondary);background:transparent;border-color:var(--border);border-radius:var(--radius-control);font-size:14px;font-weight:500}.theme-toggle .theme-toggle-label{font-size:inherit;line-height:inherit}.theme-toggle:hover,.logout-button:hover{color:var(--text-primary);background:var(--surface-warm);border-color:var(--border-strong)}.theme-toggle:focus-visible{outline:2px solid var(--focus)}.signed-in-user{font-family:var(--font-primary);font-size:13px;font-weight:400}.app-tabs{gap:var(--space-lg);margin:0 auto;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:thin;overscroll-behavior-x:contain}.app-tabs button{position:relative;flex:0 0 auto;min-height:52px;padding:12px 0;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--text-secondary);background:transparent;font-size:14px;font-weight:500;white-space:nowrap}.app-tabs button.active{color:var(--text-primary);border-bottom-color:var(--action)}.app-tabs button:hover{color:var(--text-primary);background:transparent;border-bottom-color:var(--border-strong)}.app-tabs button.active:hover{border-bottom-color:var(--action)}.app-tabs button:focus-visible{outline-offset:-5px}.section-header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-xl);padding:var(--space-xl) 0 var(--space-lg)}.section-header-copy{flex:1}.eyebrow{margin:0 0 var(--space-sm);color:var(--text-secondary);font-family:var(--font-primary);font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;text-transform:none}.section-description{max-width:65ch;margin-top:var(--space-sm);color:var(--text-secondary);font-size:15px;line-height:1.6;text-wrap:pretty}.section-header-aside{flex:0 1 auto}.section-counter,.catalog-date{color:var(--text-secondary);font-family:var(--font-primary);font-size:12px;line-height:1.7}.catalog-date{margin:0;text-align:right}.catalog-date time{color:var(--text-primary)}.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:var(--space-base) 0;margin-bottom:var(--space-lg);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stats div{padding:0 var(--space-lg);border:0;border-right:1px solid var(--border);border-radius:0;background:transparent}.stats div:first-child{padding-left:0}.stats div:last-child{border-right:0}.stats span{font-family:var(--font-technical);font-size:28px;font-weight:400;line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stats small{display:block;margin-top:var(--space-sm);font-size:12px}.toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(160px,220px) auto;gap:var(--space-md) var(--space-base);align-items:end;padding:var(--space-lg);border:0;border-radius:var(--radius-card);background:var(--surface)}.toolbar .search-field{width:100%}.toolbar .toggle-group{grid-column:1 / 3;grid-row:2;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-base)}.toolbar .catalog-edit-actions{grid-column:3;grid-row:1;align-self:end}.search-field,.select-field,.production-search{color:var(--text-secondary);font-size:13px;font-weight:500}.toggle{color:var(--text-secondary);font-size:13px;font-weight:400;cursor:pointer}.toggle input,.development-compare-toggle input,.component-search-scope-panel input{accent-color:var(--text-primary)}.component-search-row{gap:var(--space-sm)}.component-search-scope summary{gap:var(--space-sm);color:var(--text-secondary);font-size:13px}.component-search-scope summary:after{content:none}.component-search-scope[open] summary{color:var(--text-primary);background:var(--surface-warm);border-color:var(--control-border)}.component-search-scope-panel{border:0}.component-search-scope-panel label{min-height:44px;font-size:13px}.active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-base) 0 0;font-size:12px;color:var(--text-secondary)}.active-filters button{min-height:32px;display:inline-flex;align-items:center;gap:10px;max-width:100%;overflow-wrap:anywhere;padding:4px 12px;border:0;border-radius:var(--radius-pill);background:var(--surface-olive);font-size:12px}.active-filters .reset-filters{background:transparent;text-decoration:underline;text-underline-offset:3px}.app-shell button.primary,.app-modal-panel button.primary,.auth-submit{border:1px solid var(--action);color:var(--action-text);background:var(--action);font-weight:600;padding-inline:var(--space-lg)}.app-shell button.primary:hover:not(:disabled),.app-modal-panel button.primary:hover:not(:disabled),.auth-submit:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.catalog-edit-actions .primary:before{content:"+";margin-right:8px;font-size:20px;font-weight:400}.app-shell button.danger,.app-modal-panel button.danger{color:var(--error);border-color:var(--border-strong);background:transparent}.app-shell button.danger:hover:not(:disabled),.app-modal-panel button.danger:hover:not(:disabled){background:var(--surface-rose)}.file-button{position:relative;font-size:13px;font-weight:500}.file-button input,.catalog-edit-actions label input{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.file-button:focus-within{outline:2px solid var(--focus);outline-offset:4px}.file-button:has(input:disabled){opacity:.48;cursor:not-allowed}.workspace{margin-top:var(--space-lg)}.table-panel{border:0;border-radius:var(--radius-card)}.result-line{align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:var(--space-base) var(--space-lg);color:var(--text-primary);font-size:14px;font-weight:500}.result-count{margin-left:var(--space-md);color:var(--text-secondary);font-family:var(--font-technical);font-size:12px}.table-hint{color:var(--text-subtle);font-size:12px;font-weight:400}th{font-family:var(--font-primary);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;background:var(--surface-warm)}td{font-size:14px}tbody tr{cursor:default}.selected-row{background:var(--surface-warm)}@media (hover: hover) and (pointer: fine){tbody tr:hover{background:var(--surface-warm)}}.components-table-workspace table{min-width:1060px}.ingredient-table{table-layout:fixed}.ingredient-table th:first-child{width:22%}.ingredient-table th:nth-child(2){width:11%}.ingredient-table th:nth-child(3){width:15%}.ingredient-table th:nth-child(4){width:7%}.ingredient-table th:nth-child(5){width:14%}.ingredient-table th:nth-child(6){width:10%}.ingredient-table th:nth-child(7){width:10%}.ingredient-table th:last-child{width:11%;text-align:right}.ingredient-table td{vertical-align:top;padding:16px 14px;overflow-wrap:anywhere;font-size:13px;line-height:1.5}.ingredient-table td:first-child>span{display:block;margin-top:6px;font-size:12px}.ingredient-table td strong{font-size:13px;font-weight:500}.ingredient-table td>span{font-size:12px;line-height:1.5}.ingredient-table td.numeric{font-family:var(--font-technical);font-size:12px}.app-shell .ingredient-name{min-height:0;padding:0;border:0;border-radius:0;color:var(--text-primary);background:transparent;font-size:14px;font-weight:600;line-height:1.4;text-align:left}.ingredient-name:hover{text-decoration:underline;text-underline-offset:4px}.source-pills span,.component-descriptor-pills span,.tag-list span,.contains-list span{border:0;color:var(--text-secondary);background:var(--surface-warm);padding:3px 7px;font-size:12px;line-height:1.5}.component-descriptor-pills span,.tag-list span{background:var(--surface-olive)}.catalog-empty{display:grid;justify-items:center;gap:var(--space-base);padding:var(--space-3xl) var(--space-lg);text-align:center}.catalog-empty .eyebrow{margin:0}.catalog-empty>p:not(.eyebrow){max-width:50ch;color:var(--text-secondary);font-size:14px}.empty-state,.production-open-empty,.development-empty{padding:var(--space-xl);color:var(--text-secondary);line-height:1.6}.formula-panel,.documentation-panel,.supplier-products-panel{padding:0;border:0;background:transparent;margin-top:0}.formula-panel,.documentation-panel,.supplier-products-panel,.production-panel,.development-panel,.component-map-panel{gap:var(--space-lg)}:is(.formula-panel,.documentation-panel,.supplier-products-panel,.production-panel,.development-panel,.component-map-panel)>.section-header{margin-bottom:calc(-1 * var(--space-lg))}.production-card,.dispense-card,.development-create-card,.development-library,.development-editor,.development-empty,.documentation-result-section,.documentation-upload-card{padding:var(--space-lg);border:0}.production-library-grid,.development-workspace,.documentation-two-columns,.documentation-upload-grid{gap:var(--space-lg)}.production-card-head,.dispense-head,.development-comparison-head{align-items:center}.production-head-stats,.development-stats{padding-left:var(--space-lg);border-left:1px solid var(--border);gap:var(--space-xs) var(--space-base);min-width:180px}.production-head-stats strong,.development-stats strong{color:var(--text-primary);font-family:var(--font-technical);font-size:24px;font-weight:400}.production-head-stats span,.development-stats span{font-size:12px}.development-create-card{grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;padding:var(--space-lg);background:var(--surface-olive)}.development-create-card>div:first-child{grid-column:1 / -1;margin-bottom:var(--space-sm)}.development-create-card h3{font-size:22px}.development-create-card p{max-width:75ch}.development-create-card input,.development-add-version input{font-size:13px}.development-formula-list button{border:1px solid transparent;border-radius:var(--radius-control);padding:12px;color:var(--text-primary)}.development-formula-list button span,.development-formula-list button small{font-weight:400}.development-formula-list button:not(.selected) small{color:var(--text-secondary)}.development-formula-list button.selected,.formula-library-list article.selected{background:var(--surface-olive);border-color:var(--border)}.development-branch-tabs button.selected{color:var(--text-primary);background:var(--surface-olive);border-color:var(--border-strong);box-shadow:none}.development-version-number span{color:var(--text-primary);background:var(--surface-olive)}.development-add-version{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:var(--space-base)}.development-add-version>div:first-child{grid-column:1 / -1}.development-version-list article{grid-template-columns:65px minmax(0,1fr) auto;gap:12px}.development-version-list article.final{border-color:var(--border-strong)}.formula-head-actions{flex-wrap:wrap;justify-content:flex-end}.formula-panel>.section-header{flex-wrap:wrap}.formula-panel>.section-header .section-header-aside{flex:1 1 100%}.formula-panel>.section-header .formula-head-actions{justify-content:flex-start}.formula-card,.supplier-products-filters,.documentation-formula-shortcut{padding:var(--space-lg);border:0;border-radius:var(--radius-card);background:var(--surface)}.formula-card h3{font-size:18px}.documentation-upload-card{min-height:190px;grid-template-columns:1fr;align-content:space-between;background:var(--surface-warm)}.documentation-upload-card h3{font-size:20px}.documentation-upload-card .file-button{justify-self:start}.documentation-upload-card:first-child{background:var(--surface-olive)}.documentation-upload-card:nth-child(2){background:var(--surface-lilac)}.documentation-formula-shortcut{background:var(--surface)}.formula-summary,.documentation-summary{gap:var(--space-base)}.formula-summary div,.documentation-summary div,.dispense-summary span{border:0;padding:var(--space-lg);background:var(--surface-warm)}.formula-summary span,.documentation-summary span{font-family:var(--font-technical);font-size:34px;line-height:1.2;font-weight:400}.formula-summary small,.documentation-summary small{display:block;margin-top:var(--space-sm);font-size:12px}.dispense-summary strong{font-family:var(--font-technical);font-size:28px;font-weight:400}.purchase-table-wrap,.supplier-products-table-wrap,.manual-formula-table-wrap,.production-inventory-table-wrap,.dispense-table-wrap,.development-comparison-table-wrap,.documentation-table-wrap{background:var(--surface);scrollbar-width:thin;overscroll-behavior-x:contain}.inventory-table :is(th,td):nth-child(n+2):nth-child(-n+4){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.inventory-table td:nth-child(n+2):nth-child(-n+4){font-family:var(--font-technical);font-size:13px}.production-table th,.manual-formula-table th,.documentation-table th,.development-comparison th{font-size:12px;font-weight:400;background:var(--surface-warm)}.manual-formula-table :is(td,th):nth-child(n+3):not(:last-child),.dispense-table :is(td,th):nth-child(n+3):not(:last-child){text-align:right;font-family:var(--font-technical);font-variant-numeric:tabular-nums}.manual-formula-table input,.dispense-table input{text-align:right}.manual-formula-table{min-width:860px}.manual-formula-editor{padding:0;border:0;box-shadow:none}.manual-formula-head h3{font-size:26px}.manual-formula-footer{position:sticky;bottom:0;z-index:2;grid-template-columns:1fr auto;gap:12px;padding:var(--space-base) 0 0;border-top:1px solid var(--border);background:var(--surface)}.manual-formula-footer>div:first-child{flex-wrap:wrap}.manual-formula-footer>p{grid-row:2;grid-column:1 / -1;text-align:left;font-size:12px}.manual-formula-save-actions{justify-content:flex-end}.manual-formula-footer strong{display:block;font-family:var(--font-technical);font-weight:500}.manual-formula-table .manual-dpg-line input{color:var(--text-primary)}.inventory-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-add-component{grid-column:1 / -1}.component-map-table-wrap{border-radius:var(--radius-card)}.component-map-table th{min-width:190px}.component-map-table td,.component-map-table th{padding:var(--space-lg)}.component-map-legend{padding:0;font-size:13px}.component-map-table td.map-status-red,.component-map-legend i.map-status-red{background:var(--surface-rose);border-color:var(--border)}.component-map-table td.map-status-yellow,.component-map-legend i.map-status-yellow{background:var(--surface-warm);border-color:var(--border)}.component-map-table td.map-status-blue,.component-map-legend i.map-status-blue{background:var(--surface-lilac);border-color:var(--border)}.app-modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.app-modal-panel{padding:var(--space-xl);border:0;border-radius:var(--radius-hero);box-shadow:var(--shadow-floating);overscroll-behavior-y:contain}.app-modal-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;box-shadow:none;color:var(--text-primary);background:var(--surface)}.details-panel{background:var(--surface)}.modal-details-panel{max-height:none;overflow:visible;border:0;padding:0}.details-panel h2{padding-right:var(--space-lg)}.details-section{padding-top:var(--space-lg);margin-top:var(--space-lg)}.details-section h3{font-size:18px}.text-block{max-width:var(--reading-width);font-size:14px;line-height:1.7}.meta-grid div{background:var(--surface-warm);border:0;padding:var(--space-base)}.meta-grid dd{font-family:var(--font-primary);font-variant-numeric:tabular-nums;font-weight:500;font-size:16px;overflow-wrap:anywhere}.info-rows dd{font-size:14px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}.info-rows dt,.meta-grid dt{font-weight:500}.component-editor legend{font-size:16px}.editor-field{gap:var(--space-sm)}.editor-field>span{font-weight:500}.editor-field input,.editor-field select,.editor-field textarea{font-size:14px}.catalog-edit-error,.formula-errors,.auth-error{margin:var(--space-base) 0 0;padding:var(--space-base);border:1px solid var(--error);border-radius:var(--radius-control);color:var(--error);background:var(--surface-rose);font-size:14px}.production-message{color:var(--positive);border-color:var(--border-strong);background:var(--surface-olive);padding:var(--space-base)}.catalog-load-state{font-family:var(--font-technical);font-size:14px}.app-footer{display:flex;justify-content:space-between;max-width:var(--content-width);margin:var(--space-2xl) auto 0;padding:var(--space-lg) 0;border-top:1px solid var(--border);color:var(--text-subtle);font-size:12px}.app-footer span:first-child{color:var(--text-primary);font-size:16px;font-weight:600;letter-spacing:-.04em}.auth-shell{min-height:100dvh;padding:var(--space-3xl) var(--page-gutter);background:var(--canvas)}.auth-card{width:min(520px,100%);padding:var(--space-2xl);border-color:var(--border);border-radius:var(--radius-hero);box-shadow:none}.auth-brand-mark{width:60px;height:60px;margin-bottom:var(--space-xl);font-size:52px;border-radius:var(--radius-card)}.auth-card h1{font-size:var(--heading-size);line-height:1.13}.auth-description{margin-top:var(--space-base);font-size:16px;line-height:1.5}.auth-form{margin-top:var(--space-xl);gap:var(--space-lg)}.auth-form label{color:var(--text-secondary);font-weight:500;font-size:12px}.auth-form input,.auth-submit{height:48px;border-radius:var(--radius-control)}.auth-submit{margin-top:0}@media (max-width: 1199px){.app-tabs{gap:24px}.development-create-card{grid-template-columns:repeat(3,minmax(0,1fr))}.section-header{gap:var(--space-lg)}.section-header-aside{max-width:100%}.development-workspace{grid-template-columns:240px minmax(0,1fr)}.development-formula-head,.development-comparison-head{flex-wrap:wrap}.development-rename{width:100%;grid-template-columns:minmax(0,1fr) auto auto}.development-create-branch,.production-library-grid{grid-template-columns:1fr}}@media (max-width: 980px){.topbar{flex-direction:row}.topbar-side{width:auto}.development-workspace{grid-template-columns:1fr}.development-library{position:static}.development-formula-list{max-height:260px}.toolbar{grid-template-columns:minmax(0,1fr) minmax(160px,.55fr)}.toolbar .toggle-group{grid-column:1 / -1}.toolbar .catalog-edit-actions{grid-column:1 / -1;grid-row:3}.formula-head-actions{align-items:stretch}}@media (max-width: 767px){.topbar{min-height:76px;gap:12px;padding:12px 0;flex-wrap:wrap}.brand{gap:10px}.brand-copy strong{font-size:23px}.brand-copy>span{display:none}.brand-mark{width:40px;height:40px;font-size:34px;border-radius:12px}.topbar-account-actions{gap:8px;align-items:center}.signed-in-user{max-width:60px;font-size:12px}.theme-toggle{justify-content:center;width:44px;min-height:44px;padding:0}.theme-toggle-label{display:none}.topbar-account-actions{flex-wrap:nowrap}.app-tabs{gap:20px}.app-tabs button{min-height:48px;font-size:14px}.section-header{align-items:flex-start;flex-direction:column;gap:var(--space-base);padding:var(--space-lg) 0}.section-description{font-size:14px;margin-top:var(--space-sm)}.eyebrow{font-size:13px;margin-bottom:var(--space-sm)}.catalog-date{text-align:left}.catalog-date br{display:none}.catalog-date time{margin-left:8px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-base) 0;padding:var(--space-base) 0}.stats div{padding:0 var(--space-base)}.stats div:nth-child(3n){border:0}.stats div:nth-child(3n+1){padding-left:0}.stats span{font-size:24px}.stats small{font-size:12px}.toolbar{grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding:var(--space-base)}.toolbar .toggle-group{grid-column:1;grid-row:auto;flex-direction:column;align-items:flex-start;gap:0}.toolbar .catalog-edit-actions{grid-column:1;grid-row:auto}.toolbar .catalog-edit-actions button{width:100%}.search-field,.select-field{width:100%;min-width:0}.supplier-unlinked-toggle{align-self:flex-start}.component-search-scope summary{width:44px;padding:0}.search-scope-label{display:none}.toggle,.active-filters button{min-height:44px}.result-line{padding:var(--space-base)}.table-hint{display:none}.components-table-workspace .table-panel{overflow:visible;background:transparent}.components-table-workspace table{min-width:0}.ingredient-table,.ingredient-table tbody{display:block}.ingredient-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.ingredient-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-base);margin-top:var(--space-base);padding:var(--space-base);border:1px solid transparent;border-radius:var(--radius-mobile-card);background:var(--surface)}.ingredient-table tr.selected-row{border-color:var(--border-strong)}.ingredient-table td{display:block;padding:0;border:0;text-align:left}.ingredient-table td:before{display:block;margin-bottom:4px;color:var(--text-subtle);content:attr(data-label);font-family:var(--font-primary);font-size:12px;font-weight:400}.ingredient-table td:first-child,.ingredient-table td:nth-child(5){grid-column:1 / -1}.ingredient-table td:first-child:before{display:none}.app-shell .ingredient-name{min-height:44px;font-size:18px}.ingredient-table td strong{font-size:13px}.ingredient-table td:first-child>span{margin-top:0}.component-descriptor-pills span,.source-pills span{font-size:12px}.production-card,.dispense-card,.development-create-card,.development-library,.development-editor,.documentation-result-section,.documentation-upload-card,.supplier-products-filters,.documentation-formula-shortcut{padding:var(--space-lg) var(--space-base)}.development-create-card,.development-add-version,.manual-formula-meta,.development-rename,.formula-shortcut,.documentation-formula-shortcut,.inventory-add-form,.dispense-head,.batch-formula-row,.batch-manual-matches label{grid-template-columns:minmax(0,1fr)}.development-version-list article{grid-template-columns:1fr 1fr}.development-version-list article>div:nth-child(2){grid-column:1 / -1}.development-version-list article button{font-size:12px}.development-formula-head,.manual-formula-head,.development-comparison-head,.dispense-actions{align-items:stretch;flex-direction:column}.production-head-stats,.development-stats{padding-left:var(--space-base)}.formula-summary,.documentation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-summary div,.documentation-summary div{padding:var(--space-base)}.formula-summary span,.documentation-summary span{font-size:28px;overflow-wrap:anywhere}.documentation-upload-grid,.documentation-two-columns{grid-template-columns:minmax(0,1fr)}.documentation-upload-card{min-height:180px}.formula-card{grid-template-columns:1fr;padding:var(--space-base)}.formula-head-actions,.formula-shortcut{width:100%}.formula-panel>.section-header{flex-wrap:nowrap}.formula-panel>.section-header .section-header-aside{flex:0 1 auto;width:100%}.manual-formula-footer{position:static;grid-template-columns:1fr}.manual-formula-footer>p{grid-row:auto}.manual-formula-save-actions{flex-direction:column}.manual-formula-footer>.manual-formula-save-actions{display:flex;gap:8px}.app-modal-backdrop{padding:8px}.app-modal-panel,.component-modal,.formula-editor-modal,.material-editor-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:var(--space-lg) var(--space-base);border-radius:var(--radius-mobile-card)}.app-modal-close{margin:-12px -4px 8px 8px}.app-modal-panel h2{font-size:26px;overflow-wrap:anywhere}.app-modal-panel .manual-formula-head h3{font-size:22px}.component-map-head-actions{flex-wrap:wrap}.component-map-table th{position:static;min-width:160px}.component-map-table th,.component-map-table td{padding:var(--space-base)}.component-search-scope-panel{max-width:calc(100vw - 72px)}.info-rows div{grid-template-columns:minmax(0,1fr);gap:4px}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{gap:var(--space-base);flex-wrap:wrap}.inventory-component-results{width:100%}.component-picker{min-width:0}.auth-shell{padding:88px var(--page-gutter) var(--space-xl)}.auth-card{padding:var(--space-xl) var(--space-lg)}.auth-description{font-size:14px}.auth-theme-toggle{top:20px;right:20px;min-height:44px}.auth-error{overflow-wrap:anywhere}}@media (max-width: 359px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats div:nth-child(n){padding:0 var(--space-base);border-right:1px solid var(--border)}.stats div:nth-child(2n){border-right:0}.stats div:nth-child(odd){padding-left:0}}@media (prefers-reduced-motion: no-preference){button{transition:transform var(--duration-fast) var(--easing)}button:active:not(:disabled):not(:focus-visible):not(.brand):not(.ingredient-name):not(.component-map-component-link){transform:translateY(1px)}.app-modal-panel{animation:panel-appear var(--duration-panel) var(--easing)}@keyframes panel-appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.draft-status,.map-keyboard-hint{margin-bottom:0;color:var(--text-secondary);font-family:var(--font-primary);font-size:13px;line-height:1.5}.component-map-card div>.map-item-status{margin-top:12px;color:var(--text-secondary);font-size:12px}.manual-formula-table td>.field-error{display:block;margin-top:6px;color:var(--error);font-family:var(--font-primary);font-size:12px}input[aria-invalid=true]{border-color:var(--error)}:is(.app-shell,.app-modal-panel,.auth-shell) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){border-color:var(--control-border)}:is(.app-shell,.app-modal-panel) input[aria-invalid=true]{border-color:var(--error)}.formula-head-actions>.file-button,.documentation-upload-card:first-child .file-button{color:var(--action-text);background:var(--action);border-color:var(--action)}.formula-head-actions>.file-button:hover,.documentation-upload-card:first-child .file-button:hover{background:var(--action-hover);border-color:var(--action-hover)}.production-message{color:var(--text-primary)}.production-message:before{content:"✓ ";color:var(--positive)}.manual-formula-table :is(th,td):nth-child(3){min-width:120px;white-space:nowrap}.manual-formula-table :is(th,td):nth-child(2){min-width:210px}.supplier-products-table-wrap table{min-width:1160px;table-layout:fixed}.supplier-products-table-wrap th:nth-child(1){width:18%}.supplier-products-table-wrap th:nth-child(2){width:17%}.supplier-products-table-wrap th:nth-child(3){width:10%}.supplier-products-table-wrap th:nth-child(4){width:17%}.supplier-products-table-wrap th:nth-child(5){width:16%}.supplier-products-table-wrap th:nth-child(6){width:16%}.supplier-products-table-wrap th:nth-child(7){width:6%}.supplier-products-table-wrap td{vertical-align:top;overflow-wrap:anywhere}.supplier-products-table-wrap td:nth-child(6){font-family:var(--font-technical);font-size:12px}.supplier-price-updates{margin-bottom:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-card);background:var(--surface)}.supplier-price-updates-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg)}.supplier-price-updates h2{margin:0 0 var(--space-sm)}.supplier-price-updates-head p,.supplier-update-note{max-width:72ch;margin:0;color:var(--text-secondary);font-size:14px}.supplier-price-updates-head>button{flex-shrink:0}.supplier-update-list{margin:var(--space-lg) 0;padding:0;list-style:none}.supplier-update-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1.2fr) minmax(280px,auto);gap:var(--space-base) var(--space-lg);align-items:center;padding:var(--space-base) 0;border-bottom:1px solid var(--border)}.supplier-update-row:first-child{border-top:1px solid var(--border)}.supplier-update-name,.supplier-update-state{display:grid;gap:var(--space-xs);min-width:0;overflow-wrap:anywhere}.supplier-update-name strong{font-size:14px;font-weight:600}.supplier-update-name span,.supplier-update-state span,.supplier-update-state time,.supplier-price-file{color:var(--text-secondary);font-size:13px}.supplier-update-state strong{font-size:13px;font-weight:500}.supplier-update-state-running strong,.supplier-update-state-queued strong{color:var(--warning)}.supplier-update-state-failed strong,.supplier-update-state-failed span{color:var(--error)}.supplier-update-state-succeeded strong{color:var(--text-primary)}.supplier-update-row>button{justify-self:end}.supplier-price-upload{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-sm);min-width:0}.supplier-price-upload .file-button{display:inline-flex;align-items:center}.supplier-price-file{flex-basis:100%;text-align:right;overflow-wrap:anywhere}.supplier-price-updates .catalog-edit-error{margin-bottom:var(--space-base)}@media (max-width: 1050px){.supplier-update-row{grid-template-columns:minmax(150px,1fr) minmax(180px,1.3fr)}.supplier-price-upload{grid-column:1 / -1;justify-content:flex-start}.supplier-price-file{text-align:left}}@media (max-width: 600px){.supplier-price-updates{padding:var(--space-base)}.supplier-price-updates-head{flex-direction:column;gap:var(--space-base)}.supplier-price-updates-head>button{width:100%}.supplier-update-row{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}.supplier-update-row>button{justify-self:stretch}.supplier-price-upload>.file-button,.supplier-price-upload>button{flex:1 1 140px;justify-content:center}}
