@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+KR:wght@300;400;500;700&display=swap";:root{--font-sans:"Inter", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg-primary:#e8ebee;--bg-secondary:#fff;--bg-tertiary:#eef1f4;--bg-accent:#dde1e6;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#7c8797;--color-brand:#475569;--color-brand-hover:#1e293b;--color-brand-light:#e2e8f0;--color-success:#16a34a;--color-success-light:#f0fdf4;--color-danger:#dc2626;--color-danger-light:#fef2f2;--color-warning:#d97706;--color-warning-light:#fffbeb;--color-nojudge:#1e40af;--color-nojudge-light:#dbeafe;--color-dash-accent:#0891b2;--color-dash-accent-hover:#0e7490;--color-dash-accent-light:#cffafe;--border-color:#d3d8de;--border-focus:#475569;--sidebar-width:260px;--header-height:50px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}*{box-sizing:border-box;font-family:var(--font-sans);margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;display:flex;overflow:hidden}#app{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;height:100%;transition:transform .2s;display:flex}.sidebar-toggle-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:none}.sidebar-overlay{display:none}@media (width<=900px){.sidebar{z-index:200;box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle-btn{display:flex}.sidebar-overlay{z-index:199;background:#0f172a66;display:none;position:fixed;inset:0}.sidebar-overlay.open{display:block}}.sidebar-logo{height:var(--header-height);box-sizing:border-box;border-bottom:1px solid var(--border-color);align-items:center;gap:10px;padding:0 24px;display:flex}.sidebar-logo i{color:var(--color-brand);font-size:24px}.sidebar-logo h1{color:var(--text-primary);letter-spacing:-.5px;font-size:18px;font-weight:700}.sidebar-menu{flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex;overflow-y:auto}.menu-item{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:5px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.menu-item i,.menu-item svg{flex-shrink:0;width:18px;height:18px}.menu-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.menu-item.active{background-color:var(--color-brand-light);color:var(--color-brand)}.menu-group-header{color:var(--text-secondary);letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:6px 16px;font-size:14px;font-weight:700;display:flex}.menu-group-header i:not([data-lucide=chevron-down]),.menu-group-header svg:not(.lucide-chevron-down){flex-shrink:0;width:18px;height:18px}.menu-group-header:hover{color:var(--text-secondary)}.menu-group-header i[data-lucide=chevron-down]{width:14px;height:14px;margin-left:auto;transition:transform .15s}.menu-group.collapsed .menu-group-header i[data-lucide=chevron-down]{transform:rotate(-90deg)}.menu-group-items{flex-direction:column;gap:0;display:flex}.menu-group.collapsed .menu-group-items{display:none}.menu-group-items .menu-item{padding:4px 16px 4px 32px;font-size:13px}.menu-group-items .menu-item i,.menu-group-items .menu-item svg{width:16px;height:16px}.sidebar-footer{border-top:1px solid var(--border-color);color:var(--text-tertiary);text-align:center;padding:16px;font-size:11px}.main-content{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.top-header{height:var(--header-height);background-color:var(--color-brand-light);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 32px;display:flex}.header-title h2{color:var(--text-primary);font-size:20px;font-weight:600}.header-actions{align-items:center;gap:12px;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-primary{background-color:var(--color-brand);border-color:var(--color-brand);color:#fff}.btn-primary:hover{background-color:var(--color-brand-hover);color:#fff}.btn-cn14-intake{color:#fff;background-color:#2563eb;border-color:#1d4ed8;font-weight:600;box-shadow:0 1px 3px #2563eb59}.btn-cn14-intake:hover{color:#fff;background-color:#1d4ed8;border-color:#1e40af}.btn-danger{color:var(--color-danger);background-color:#fff;border-color:#fecaca}.btn-danger:hover{background-color:var(--color-danger-light);border-color:#fca5a5}.btn-secondary{background-color:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background-color:var(--bg-accent);color:var(--text-primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary:disabled:hover{background-color:var(--bg-tertiary);color:var(--text-secondary)}.btn-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:8px;display:inline-flex}.btn-sm{padding:5px 10px;font-size:12px}.btn-link{color:var(--color-brand);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.btn-link:hover{color:var(--color-brand-hover)}.page-body{flex:1;padding:8px 12px;overflow-y:auto}.tab-panel{height:100%;display:none}.tab-panel.active{display:block}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:8px;overflow:hidden}#formula-info-card{background-color:var(--color-brand-light);border:2px solid var(--color-brand);border-left:8px solid var(--color-brand-hover);z-index:20;margin-bottom:8px;position:sticky;top:0;box-shadow:0 2px 10px #1e293b2e}#formula-info-card .card-header{border-bottom:1px solid var(--color-brand);background-color:#ffffff8c;padding:4px 12px}#formula-info-card .card-body{background-color:#fff6;padding:4px 12px}.card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.card-header h3{color:var(--text-primary);font-size:16px;font-weight:600}.card-header-actions{align-items:center;gap:10px;display:flex}.search-box{align-items:center;display:flex;position:relative}.search-box i{width:14px;height:14px;color:var(--text-tertiary);pointer-events:none;position:absolute;left:10px}.search-box input.form-control{width:260px;height:auto;padding:6px 10px 6px 30px;font-size:13px}.card-body{padding:24px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.form-grid>.form-group{min-width:0}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-control{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:#fff;outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.form-control:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px #0d948826}.form-control:disabled{color:#334155;cursor:not-allowed;box-shadow:none;background-color:#f1f5f9;border-color:#cbd5e1;font-weight:500}textarea.form-control{resize:vertical;min-height:80px}.modal-section{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-primary,#fafbfc);margin-bottom:16px;padding:16px 18px 18px}.modal-section:last-child{margin-bottom:0}.modal-section>legend{color:var(--color-brand);text-transform:uppercase;letter-spacing:.02em;align-items:center;gap:6px;padding:0 6px;font-size:12px;font-weight:700;display:flex}.modal-section>legend i{width:14px;height:14px}.modal-section-hint{color:var(--text-tertiary);margin:-6px 0 12px;font-size:11px}.modal-section .form-grid{gap:12px 16px}.modal-section .form-grid+.form-grid{margin-top:14px}.chip-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:190px;padding:4px 2px;display:grid;overflow:hidden auto}.chip-grid.chip-grid-compact{max-height:none;overflow-y:visible}.chip{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#fff;align-items:center;gap:6px;min-width:0;padding:6px 8px;font-size:11px;line-height:1.3;display:flex}.regverify-group+.regverify-group{margin-top:18px}.regverify-group-title{color:var(--text-secondary);letter-spacing:.04em;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.regverify-group-title:after{content:"";background:var(--border-color);flex:1;height:1px}.regverify-group-items{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.chip.regverify-chip{border-radius:6px;align-items:flex-start;gap:8px;padding:10px 12px;transition:border-color .12s,background-color .12s,box-shadow .12s}.chip.regverify-chip:hover{border-color:var(--color-brand,#4338ca);box-shadow:0 1px 3px #0000000f}.chip.regverify-chip:has(input:checked){box-shadow:inset 2px 0 0 var(--color-brand,#4338ca)}.chip.regverify-chip input{flex:none;margin-top:1px}.regverify-chip-text{flex-direction:column;gap:4px;min-width:0;display:flex}.regverify-chip-name{color:var(--text-primary);font-size:12px;font-weight:600;line-height:1.35}.regverify-chip-name strong{background:var(--bg-tertiary);min-width:22px;color:var(--text-secondary);text-align:center;vertical-align:1px;border-radius:3px;margin-right:5px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.regverify-chip-desc{color:var(--text-secondary);white-space:normal;overflow-wrap:anywhere;font-size:10.5px;line-height:1.5}.chip:has(input:checked){border-color:var(--color-brand);background-color:var(--color-brand-light);color:var(--color-brand);font-weight:600}.chip input[type=checkbox],.chip input[type=radio]{flex-shrink:0;margin:0}.chip .chip-sub{color:var(--text-tertiary);font-weight:400}.chip-default-toggle{color:var(--text-tertiary);white-space:nowrap;align-items:center;gap:3px;margin-left:auto;font-size:10px;display:flex}.chip:has(.chip-default-toggle input:checked){border-color:var(--color-warning,#d97706);background-color:var(--color-warning-light,#fef3c7)}.row-editor-empty-hint{color:var(--text-tertiary);padding:8px 10px;font-size:11px}.erp-table-wrap{border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:8px;transition:box-shadow .3s;overflow:hidden}.formula-cost-col-focused{transition:background-color .3s}.cost-sim-overridden{border-radius:3px;box-shadow:inset 0 0 0 1.5px var(--color-warning)!important;background-color:#fde68a!important}#formula-cost-modal-body .col-name{white-space:nowrap;min-width:200px}#formula-cost-modal-body .col-cost-price{width:68px;max-width:68px}#formula-cost-modal-body .col-cost-price .form-control{text-align:right;box-sizing:border-box;width:100%}#formula-cost-modal-body th.col-batch{text-align:right;min-width:142px}#formula-cost-modal-body td.col-batch{text-align:right;white-space:nowrap}#formula-cost-modal-body .col-cost-del{width:32px}#formula-cost-modal-body .col-cost-price .form-control,#formula-cost-modal-body td.col-batch,.cost-sim-percent,.cost-sim-content-cost{font-variant-numeric:tabular-nums}.cost-sim-content-cost{text-align:right;min-width:56px;margin-left:4px;font-size:12px;display:inline-block}.cost-sim-percent{text-align:right;color:var(--text-tertiary)}.cost-sim-adhoc-name,.cost-sim-price,.cost-sim-percent{background:0 0;border:none}table.erp-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:12px}.erp-table td,.erp-table th{min-width:0;overflow:hidden}.erp-table select.form-control,.erp-table input.form-control{box-sizing:border-box;min-width:0;max-width:100%}.erp-table thead th{background-color:var(--bg-tertiary);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:6px 12px;font-size:12px;font-weight:600}.erp-table tbody td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:4px 12px}.erp-table tbody tr:last-child td{border-bottom:none}.erp-table th,.erp-table td{border-right:1px solid var(--border-color)}.erp-table th:last-child,.erp-table td:last-child{border-right:none}.erp-table tbody tr:nth-child(2n){background-color:#f1f5f9}.erp-table tbody tr:nth-child(odd){background-color:#fff}.erp-table tbody tr:hover{background-color:var(--color-brand-light)}.erp-table .form-control{width:100%;padding:4px 6px;font-size:12px}.erp-table input[type=number].form-control{text-align:right}.erp-table td.col-shrink{white-space:nowrap;width:1%}.import-preview-table{border-collapse:separate;border-spacing:0;width:100%;font-size:11px}.import-preview-table th,.import-preview-table td{border-bottom:1px solid var(--border-color);padding:5px 8px}.import-preview-table thead th{background-color:var(--bg-tertiary);z-index:5;white-space:nowrap;position:sticky;top:0}.import-preview-table tbody td{background-color:var(--bg-secondary)}.import-preview-table tbody tr:hover td{background-color:var(--bg-accent)}.import-preview-table .col-phase,.import-preview-table .col-no,.import-preview-table .col-ing-name{position:sticky}.import-preview-table .col-phase{text-align:center;width:30px;min-width:30px;left:0}.import-preview-table .col-no{text-align:center;width:44px;min-width:44px;left:30px}.import-preview-table .col-ing-name{text-overflow:ellipsis;white-space:nowrap;width:130px;min-width:130px;max-width:130px;left:74px;overflow:hidden;box-shadow:2px 0 4px -2px #00000026}.import-preview-table thead th.col-phase,.import-preview-table thead th.col-no,.import-preview-table thead th.col-ing-name{z-index:8}.ing-limit-badge-group{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:6px;font-size:10px;font-weight:600;display:inline-flex}.ing-limit-value{min-width:56px;display:inline-block}.limit-source-badge{white-space:nowrap;letter-spacing:.02em;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.limit-source-badge[data-source=KR]{background:var(--color-success-light);color:var(--color-success)}.limit-source-badge[data-source=CN]{background:var(--color-warning-light);color:var(--color-warning)}.limit-source-badge[data-source=OTHER]{background:var(--color-danger-light);color:var(--color-danger)}.limit-source-badge[data-source=MANUAL]{background:var(--bg-tertiary);color:var(--text-tertiary)}.limit-detail-trigger{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.5;display:inline-flex}.limit-detail-trigger:hover{background:var(--color-brand-light);border-color:var(--color-brand);color:var(--color-brand)}.limit-detail-popover{z-index:3000;background:var(--bg-secondary);border:2px solid var(--color-brand-hover);border-radius:var(--radius-md);width:480px;min-width:320px;max-width:calc(100vw - 24px);min-height:220px;max-height:calc(100vh - 24px);box-shadow:var(--shadow-md,0 16px 40px #0000004d);resize:both;flex-direction:column;font-size:13px;display:none;position:fixed;overflow:hidden}.limit-detail-popover-title{color:#fff;background:var(--color-brand-hover);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 12px 16px;font-size:14px;font-weight:700;display:flex}.limit-detail-popover-close{color:#fff;opacity:.85;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:20px;line-height:1}.limit-detail-popover-close:hover{opacity:1}.limit-detail-popover-body{min-height:0;padding:14px 16px;overflow-y:auto}.info-tooltip-wrap{align-items:center;display:inline-flex;position:relative}.info-tooltip-box{background:var(--text-primary);color:#fff;border-radius:var(--radius-md);width:460px;box-shadow:var(--shadow-md,0 8px 20px #00000040);z-index:500;white-space:normal;padding:10px 12px;font-size:11px;line-height:1.6;display:none;position:fixed}.limit-detail-tier{border-radius:var(--radius-md);margin-bottom:14px;padding:10px 10px 2px}.limit-detail-tier:last-child{margin-bottom:0}.limit-detail-tier-country{background:var(--color-brand-light)}.limit-detail-tier-other{background:var(--color-warning-light)}.limit-detail-tier-title{color:var(--bg-secondary);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;margin:0 0 10px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.limit-detail-tier-country .limit-detail-tier-title{background:var(--color-brand)}.limit-detail-tier-other .limit-detail-tier-title{background:var(--color-warning)}.limit-detail-scope-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:8px 10px}.limit-detail-tier-country .limit-detail-scope-group{border-left:3px solid var(--color-brand)}.limit-detail-tier-other .limit-detail-scope-group{border-left:3px solid var(--color-warning)}.limit-detail-scope-group:last-child{margin-bottom:10px}.limit-detail-scope-name{color:var(--bg-secondary);background:var(--text-secondary);letter-spacing:.03em;border-radius:3px;margin-bottom:6px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.limit-detail-entry{color:var(--text-secondary);padding:3px 0 3px 2px;font-size:13px;line-height:1.5}.limit-detail-entry.is-prohibition{color:var(--color-danger)}.limit-detail-entry-type{text-align:center;min-width:26px;color:var(--text-tertiary);background:var(--bg-secondary);vertical-align:middle;border-radius:3px;margin-right:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.limit-detail-entry.is-prohibition .limit-detail-entry-type{color:var(--color-danger);background:var(--color-danger-light)}#modal-component .modal-body,#modal-ingredient .modal-body{padding:16px 20px}#modal-component .modal-section,#modal-ingredient .modal-section{margin-bottom:10px;padding:10px 14px 12px}#modal-component .modal-section>legend,#modal-ingredient .modal-section>legend{font-size:11px}#modal-component .form-grid,#modal-ingredient .form-grid{gap:8px 14px}#modal-component .modal-section .form-grid+.form-grid,#modal-ingredient .modal-section .form-grid+.form-grid{margin-top:8px}#modal-component .form-group,#modal-ingredient .form-group{gap:3px}#modal-component .form-group label,#modal-ingredient .form-group label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;font-size:10.5px;font-weight:600}#modal-component .form-control,#modal-ingredient .form-control{padding:6px 9px;font-size:12.5px}#modal-component textarea.form-control,#modal-ingredient textarea.form-control{min-height:40px}#modal-component .modal-section-hint,#modal-ingredient .modal-section-hint{color:var(--text-tertiary);margin:0 0 8px;font-size:10.5px;font-style:italic}.modal-subgroup-title{letter-spacing:.03em;text-transform:uppercase;color:#fff;background:var(--color-brand);border-radius:4px;margin:18px 0 10px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}#modal-component .modal-subgroup-title,#modal-ingredient .modal-subgroup-title{margin:14px 0 8px;font-size:10.5px}.modal-subgroup-title+.form-grid,.modal-subgroup-title+.chip-grid{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px 16px}#modal-component .modal-subgroup-title+.form-grid,#modal-ingredient .modal-subgroup-title+.form-grid,#modal-component .modal-subgroup-title+.chip-grid,#modal-ingredient .modal-subgroup-title+.chip-grid{padding:10px 12px}.modal-subgroup-title[data-hue="1"]{background:#2563eb}.modal-subgroup-title[data-hue="1"]+.form-grid,.modal-subgroup-title[data-hue="1"]+.chip-grid{background:#eff6ff;border-color:#bfdbfe}.modal-subgroup-title[data-hue="2"]{background:#0284c7}.modal-subgroup-title[data-hue="2"]+.form-grid,.modal-subgroup-title[data-hue="2"]+.chip-grid{background:#f0f9ff;border-color:#bae6fd}.modal-subgroup-title[data-hue="3"]{background:#4f46e5}.modal-subgroup-title[data-hue="3"]+.form-grid,.modal-subgroup-title[data-hue="3"]+.chip-grid{background:#eef2ff;border-color:#c7d2fe}.modal-subgroup-title[data-hue="4"]{background:#0891b2}.modal-subgroup-title[data-hue="4"]+.form-grid,.modal-subgroup-title[data-hue="4"]+.chip-grid{background:#ecfeff;border-color:#a5f3fc}.modal-subgroup-title[data-hue="5"]{background:#1d4ed8}.modal-subgroup-title[data-hue="5"]+.form-grid,.modal-subgroup-title[data-hue="5"]+.chip-grid{background:#eff6ff;border-color:#93c5fd}#modal-component .chip-grid,#modal-ingredient .chip-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}#modal-component .chip,#modal-ingredient .chip{padding:5px 7px;font-size:10.5px}#modal-component .row-editor .form-control,#modal-ingredient .row-editor .form-control{padding:4px 7px;font-size:11px}.formula-grid-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-secondary);box-shadow:var(--shadow-sm);overflow-x:auto}#formula-edit-view{flex-direction:column;height:100%;min-height:0;overflow:hidden}#formula-info-card{flex-shrink:0}#formula-grid-card{flex-direction:column;flex:1;min-height:0;display:flex}#formula-grid-card>.card-header{background-color:var(--color-brand-light);flex-shrink:0}#formula-grid-card-body{flex-direction:column;flex:1;min-height:0;display:flex}#formula-edit-view .formula-grid-wrapper{flex:1;min-height:0;overflow-y:auto}#formula-edit-action-row{border-top:1px dashed var(--border-color);flex-shrink:0;padding-top:4px;margin-top:4px!important}.formula-grid-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}#formula-edit-view .formula-grid-table{border-collapse:separate;border-spacing:0}.formula-grid-table th,.formula-grid-table td{border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);white-space:nowrap;padding:3px 6px}.formula-grid-table tbody tr:nth-child(2n){background-color:#f1f5f9}.formula-grid-table tbody tr.phase-start-row td{border-top:2px solid #64748b!important}.formula-grid-table tbody tr:nth-child(odd){background-color:#fff}.formula-grid-table tbody tr:hover{background-color:var(--color-brand-light)!important}.formula-grid-table tbody tr:focus-within{box-shadow:inset 3px 0 0 var(--color-brand);background-color:var(--color-brand-light)!important}.formula-grid-table tbody tr:focus-within td{border-bottom-color:var(--color-brand)!important}.formula-grid-table .form-control{height:22px;padding:1px 4px;font-size:12px}.batch-content-input.is-zero{color:#dbe1e8}.batch-content-input.is-zero:focus{color:var(--text-primary)}.batch-content-input.exceeds-ing-limit{border-radius:3px;box-shadow:inset 0 0 0 1.5px var(--color-danger)!important;background-color:#fee2e2!important}.batch-content-input.exceeds-ing-limit--company{background-color:#f3f4f6!important;box-shadow:inset 0 0 0 1.5px #9ca3af!important}.batch-content-input.exceeds-ing-limit--unconfirmed{box-shadow:inset 0 0 0 1.5px var(--color-warning)!important;background-color:#fef3c7!important}.formula-grid-table select.form-control{height:20px;padding:1px 2px;font-size:11px}.formula-grid-table th{background-color:var(--bg-tertiary);color:var(--text-secondary);z-index:10;font-weight:600;position:sticky;top:0}.formula-grid-table th:last-child,.formula-grid-table td:last-child{border-right:none}.col-index{text-align:center;width:35px;color:var(--text-tertiary);font-size:11px}.col-handle{text-align:center;width:40px}.col-phase{text-align:center;width:42px}.col-num{text-align:center;width:40px}.col-sub-num{text-align:center;width:32px}.phase-input{text-align:center!important;padding:0!important}.col-code{width:100px;color:var(--text-secondary);font-size:11px}.col-name{min-width:250px;position:relative}.col-actions{text-align:center;width:40px;border-right:2.5px solid #94a3b8!important}.btn-del-row{padding:3px}.btn-del-row i{width:10px!important;height:10px!important}.col-batch{text-align:right;min-width:120px}#formula-edit-view .formula-grid-table th:first-child,#formula-edit-view .formula-grid-table td:first-child{left:var(--fc-0,0px);z-index:6;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(2),#formula-edit-view .formula-grid-table td:nth-child(2){left:var(--fc-1,35px);z-index:7;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(3),#formula-edit-view .formula-grid-table td:nth-child(3){left:var(--fc-2,75px);z-index:8;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(4),#formula-edit-view .formula-grid-table td:nth-child(4){left:var(--fc-3,117px);z-index:9;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(5),#formula-edit-view .formula-grid-table td:nth-child(5){left:var(--fc-4,157px);z-index:10;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(6),#formula-edit-view .formula-grid-table td:nth-child(6){left:var(--fc-5,189px);z-index:11;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(7),#formula-edit-view .formula-grid-table td:nth-child(7){left:var(--fc-6,289px);z-index:12;position:sticky}#formula-edit-view .formula-grid-table th:nth-child(8),#formula-edit-view .formula-grid-table td:nth-child(8){left:var(--fc-7,539px);z-index:13;position:sticky}#formula-edit-view .formula-grid-table thead th:nth-child(-n+8){z-index:20}#formula-edit-view .formula-grid-table td.dropdown-open-cell{z-index:30!important}#formula-edit-view .formula-grid-table tbody tr:nth-child(2n) td:nth-child(-n+8){background-color:#f1f5f9}#formula-edit-view .formula-grid-table tbody tr:nth-child(odd) td:nth-child(-n+8){background-color:#fff}#formula-edit-view .formula-grid-table tbody tr:hover td:nth-child(-n+8),#formula-edit-view .formula-grid-table tbody tr:focus-within td:nth-child(-n+8){background-color:var(--color-brand-light)}#formula-edit-view #formula-grid-footer-row>td:first-child{z-index:6;position:sticky;left:0;background-color:#ecfdf5!important}#formula-edit-view .formula-grid-table th:nth-child(8),#formula-edit-view .formula-grid-table td:nth-child(8){box-shadow:3px 0 4px -2px #0f172a40}.formula-grid-table tr.dragging{opacity:.5;background-color:var(--bg-accent)}.drag-handle{cursor:grab;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.drag-handle:active{cursor:grabbing}.reorder-btns{justify-content:center;gap:4px;display:flex}.btn-arrow{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background-color:#fff;border-radius:4px;padding:2px 4px;font-size:10px}.btn-arrow:hover{background-color:var(--bg-tertiary)}.search-input-wrapper{width:100%;position:relative}.ing-row-limit-badges{align-items:center;gap:3px;display:flex;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.ing-row-limit-badges .ing-row-limit-badge{position:static;top:auto;right:auto;transform:none}.ing-row-limit-badge{background-color:var(--color-warning-light);color:var(--color-warning);white-space:nowrap;cursor:pointer;pointer-events:auto;border:1px solid #d9770640;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.ing-row-limit-badge--company{color:#6b7280;background-color:#e5e7eb;border-color:#0000001f;font-weight:400}.ing-row-limit-badge--ban{background-color:var(--color-danger-light,#fdecea);color:var(--color-danger,#c0392b);border-color:#c0392b4d}.ing-row-label-badge{color:#0f766e;white-space:nowrap;cursor:pointer;pointer-events:auto;background-color:#ccfbf1;border:1px solid #0f766e4d;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700;position:static}.regmx-label-cond{color:#0f766e;white-space:normal;background-color:#ccfbf1;border-radius:3px;width:max-content;max-width:100%;margin-bottom:2px;padding:0 4px;font-size:10.5px;font-weight:700;display:block}.regcheck-scope-why{color:var(--color-danger,#c0392b);margin-top:3px;font-size:11px;line-height:1.45}.regcheck-comp-link{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.regcheck-comp-link:hover,.regcheck-comp-link:focus-visible{color:var(--color-brand,#2563eb);text-decoration:underline}.regcheck-scope-ban{vertical-align:middle;white-space:nowrap;background-color:var(--color-danger-light,#fdecea);color:var(--color-danger,#c0392b);cursor:help;border:1px solid #c0392b4d;border-radius:3px;margin-left:4px;padding:1px 4px;font-size:9px;font-weight:700;display:inline-block}.ing-limit-tap-popover{z-index:2500;background:var(--text-primary);color:#fff;border-radius:var(--radius-sm);max-width:320px;box-shadow:var(--shadow-lg);white-space:pre-line;pointer-events:none;padding:8px 10px;font-size:12px;line-height:1.4;display:none;position:fixed}.ing-row-panel-btn{border:1px solid var(--border-color);background:var(--bg-secondary);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.autocomplete-dropdown{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:50;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete-item{cursor:pointer;border-bottom:1px solid var(--bg-tertiary);justify-content:space-between;padding:8px 12px;font-size:13px;display:flex}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.selected{background-color:var(--color-brand-light);color:var(--color-brand)}.autocomplete-item .manufacturer{color:var(--text-tertiary);font-size:11px}.formula-grid-table tr.sum-row{font-weight:800;background-color:#ecfdf5!important}.formula-grid-table tr.sum-row td{border-top:2.5px double var(--color-brand)!important;color:var(--color-brand-hover)!important}.sum-status{border-radius:12px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-block}.sum-status.exact{background-color:var(--color-success-light);color:var(--color-success);border:1px solid #16a34a33}.sum-status.invalid{background-color:var(--color-warning-light);color:var(--color-warning);border:1px solid #d9770633}.batch-no{background:var(--color-brand);color:#fff;letter-spacing:.2px;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:3px;flex:none;padding:1px 5px;font-size:9px;font-weight:700}.batch-header-cell{flex-direction:column;gap:1px;display:flex}.batch-header-name{text-align:right;border:1px dashed #0000;border-radius:4px;outline:none;height:18px;padding:1px 2px;font-size:11px;font-weight:600}.batch-header-name:focus{border-color:var(--border-focus);background-color:#fff}.batch-content-input{font-variant-numeric:tabular-nums!important;letter-spacing:-.15px!important;padding-right:4px!important;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace!important;font-size:12px!important;font-weight:500!important}.col-batch-sum div{padding-right:4px;font-variant-numeric:tabular-nums!important;letter-spacing:-.15px!important;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace!important}.batch-header-actions{justify-content:flex-end;gap:4px;margin-top:1px;display:flex}.batch-memo{color:var(--text-tertiary);text-align:right;text-overflow:ellipsis;max-width:140px;margin-top:-2px;font-size:9px;font-weight:400;overflow:hidden}.data-table-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background-color:var(--bg-secondary);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:6px 12px}.data-table td.col-nowrap,.data-table th.col-nowrap{white-space:nowrap}.data-table th{background-color:var(--bg-tertiary);color:var(--text-secondary);font-weight:600}.data-table tbody tr:nth-child(2n){background-color:#f8fafc}.data-table tbody tr:hover{background-color:var(--color-brand-light)}.ingredients-layout{align-items:flex-start;gap:14px;display:flex}.ingredients-main{flex:8;min-width:0}.ingredients-recent-sidebar{flex:2;min-width:220px}.ingredients-filter-bar{border-bottom:1px solid var(--border-color);background-color:var(--bg-tertiary);flex-wrap:nowrap;align-items:center;gap:6px;padding:8px 16px;display:flex;overflow-x:auto}.ingredients-filter-bar select.form-control{flex:0 auto;width:auto;min-width:0;max-width:120px;padding:5px 6px;font-size:11.5px}.ingredients-filter-bar .chip,.ingredients-filter-bar .btn-sm{white-space:nowrap;flex:none}.ingredients-filter-bar .btn-sm:first-of-type{margin-left:auto}.recent-upload-list{max-height:640px;margin:0;padding:0;list-style:none;overflow-y:auto}.recent-upload-list li{border-bottom:1px solid var(--border-color)}.recent-upload-list li:last-child{border-bottom:none}.recent-upload-list a{color:inherit;padding:10px 14px;text-decoration:none;display:block}.recent-upload-list a:hover{background-color:var(--color-brand-light)}.recent-upload-code{color:var(--text-tertiary);letter-spacing:.02em;font-size:10px;font-weight:700}.recent-upload-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:2px 0;font-size:13px;font-weight:600;overflow:hidden}.recent-upload-meta{color:var(--text-tertiary);justify-content:space-between;gap:6px;font-size:11px;display:flex}.recent-upload-empty{text-align:center;color:var(--text-tertiary);padding:24px 14px;font-size:12px}.tray-card .card-header i[data-lucide=chevron-down]{width:16px;height:16px;color:var(--text-tertiary);transition:transform .15s}.tray-card.collapsed .card-header i[data-lucide=chevron-down]{transform:rotate(-90deg)}.tray-card.collapsed .tray-card-body{display:none}.tray-card-body{padding:14px}.tray-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.tray-category-group{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.tray-category-header{background-color:var(--bg-tertiary);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:flex}.tray-category-header .tray-category-count{color:var(--text-tertiary);font-weight:400}.tray-category-group .data-table{font-size:11px}.tray-category-group .data-table th,.tray-category-group .data-table td{padding:5px 12px}.tray-category-empty{text-align:center;color:var(--text-tertiary);grid-column:1/-1;padding:20px;font-size:12px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;pointer-events:none;background-color:#0f172a99;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .2s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-container{background-color:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);resize:both;flex-direction:column;width:90%;min-width:360px;max-width:600px;min-height:220px;max-height:90vh;transition:transform .2s;display:flex;overflow:hidden;transform:scale(.95)}.modal-overlay.active .modal-container{transform:scale(1)}#modal-ingredient .modal-container,#modal-component .modal-container{width:860px;max-width:95vw;max-height:95vh}#modal-ingredient{z-index:150}#modal-ingredient .modal-container{border:2px solid var(--color-brand)}#modal-ingredient .modal-header{background:var(--color-brand);border-bottom-color:var(--color-brand-hover)}#modal-ingredient .modal-header h3{color:#fff}#modal-ingredient .modal-close{color:#ffffffd9}#modal-ingredient .modal-close:hover{color:#fff}#modal-weigh-guide .modal-container{border:2px solid var(--color-brand)}#modal-weigh-guide .modal-header{background:var(--color-brand);border-bottom-color:var(--color-brand-hover)}#modal-weigh-guide .modal-header h3{color:#fff}#modal-weigh-guide .modal-close{color:#ffffffd9}#modal-weigh-guide .modal-close:hover{color:#fff}#modal-formula-cost .modal-container{border:2px solid var(--color-success)}#modal-formula-cost .modal-header{background:var(--color-success);border-bottom-color:#15803d}#modal-formula-cost .modal-header h3{color:#fff}#modal-formula-cost .modal-close{color:#ffffffd9;font-size:28px;line-height:1}#modal-formula-cost .modal-close:hover{color:#fff}#formula-cost-modal-body .formula-grid-table th{background-color:var(--color-success-light);color:#15803d}.formula-cost-col-focused{background-color:var(--color-success-light)!important}.modal-header-titles{align-items:center;gap:10px;min-width:0;display:flex}.modal-header-titles h3{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.modal-title-code-badge{color:#fff;letter-spacing:.02em;background:#fff3;border-radius:4px;flex-shrink:0;padding:2px 8px;font-family:monospace;font-size:11px;font-weight:700}.modal-title-code-badge:empty{display:none}.modal-header-badges{flex-shrink:0;align-items:center;gap:6px;display:flex}.modal-header-badge{color:#fff;letter-spacing:.01em;white-space:nowrap;background:#fff3;border-radius:4px;padding:2px 8px;font-size:10.5px;font-weight:700}.modal-header-badge-danger{background:var(--color-danger)}#modal-ingredient.has-prohibited-component .modal-container{border-color:var(--color-danger)}#modal-ingredient.has-prohibited-component .modal-header{background:var(--color-danger);border-bottom-color:var(--color-danger)}.modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-size:18px;font-weight:600}.modal-close{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;font-size:20px}.modal-close:hover{color:var(--text-primary)}.modal-body{min-height:0;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.formula-cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.formula-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;flex-direction:column;gap:12px;padding:20px;transition:transform .2s,box-shadow .2s;display:flex}.formula-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-brand);transform:translateY(-2px)}.formula-card-header{justify-content:space-between;align-items:flex-start;display:flex}.formula-card-code{color:var(--color-brand);background-color:var(--color-brand-light);border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600}.formula-card-title{color:var(--text-primary);margin-top:4px;font-size:16px;font-weight:600}.formula-card-desc{color:var(--text-secondary);flex:1;font-size:13px;line-height:1.4}.formula-card-meta{color:var(--text-tertiary);border-top:1px solid var(--border-color);justify-content:space-between;padding-top:10px;font-size:12px;display:flex}.report-header-info{background-color:var(--color-brand-light);border-radius:var(--radius-md);border:1px solid #0d94881a;gap:24px;margin-bottom:24px;padding:16px 20px;font-size:14px;display:flex}.report-header-info strong{color:var(--color-brand)}.stability-matrix{border-collapse:collapse;width:100%;margin-top:12px}.stability-matrix th,.stability-matrix td{border:1px solid var(--border-color);text-align:center;padding:8px 12px;font-size:13px}.stability-matrix th{background-color:var(--bg-tertiary);font-weight:600}.status-badge{border-radius:4px;justify-content:center;align-items:center;padding:2px 6px;font-size:11px;font-weight:600;display:inline-flex}.status-badge.pass{background-color:var(--color-success-light);color:var(--color-success)}.status-badge.fail{background-color:var(--color-danger-light);color:var(--color-danger)}.status-badge.warn{background-color:var(--color-warning-light);color:var(--color-warning)}.empty-state{text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state i{color:var(--text-tertiary);margin-bottom:16px;font-size:48px}.empty-state h4{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:600}.empty-state p{max-width:320px;font-size:13px}.no-dropdown-item:hover,.phase-dropdown-item:hover{background-color:var(--color-brand-light)!important;color:var(--color-brand)!important}.weigh-table{border-collapse:collapse;width:100%;margin-top:15px}.weigh-check-tap-target{cursor:pointer;justify-content:center;align-items:center;width:100%;min-height:44px;display:flex}.weigh-check-tap-target input[type=checkbox]{cursor:pointer;width:22px;height:22px}.weigh-table th,.weigh-table td{border-bottom:1px solid var(--border-color);padding:10px 12px;font-size:13px}.weigh-table th{background-color:var(--color-brand-light);color:var(--color-brand-hover);font-weight:600}#modal-weigh-guide .weigh-table th:first-child,#modal-weigh-guide .weigh-table td:first-child{left:var(--wfc-0,0px);z-index:6;position:sticky}#modal-weigh-guide .weigh-table th:nth-child(2),#modal-weigh-guide .weigh-table td:nth-child(2){left:var(--wfc-1,35px);z-index:7;position:sticky}#modal-weigh-guide .weigh-table th:nth-child(3),#modal-weigh-guide .weigh-table td:nth-child(3){left:var(--wfc-2,85px);z-index:8;position:sticky}#modal-weigh-guide .weigh-table th:nth-child(4),#modal-weigh-guide .weigh-table td:nth-child(4){left:var(--wfc-3,130px);z-index:9;position:sticky}#modal-weigh-guide .weigh-table th:nth-child(5),#modal-weigh-guide .weigh-table td:nth-child(5){left:var(--wfc-4,175px);z-index:10;position:sticky}#modal-weigh-guide .weigh-table thead th:nth-child(-n+5){z-index:20}#modal-weigh-guide .weigh-table tbody tr:nth-child(2n) td:nth-child(-n+5){background-color:#f1f5f9}#modal-weigh-guide .weigh-table tbody tr:nth-child(odd) td:nth-child(-n+5){background-color:#fff}#modal-weigh-guide .weigh-table tbody tr:hover td:nth-child(-n+5){background-color:var(--color-brand-light)}#modal-weigh-guide .weigh-table th:nth-child(5),#modal-weigh-guide .weigh-table td:nth-child(5){box-shadow:3px 0 4px -2px #0f172a40}.weigh-table tbody tr:nth-child(2n) td{background-color:#f1f5f9!important}.weigh-table tbody tr:nth-child(odd) td{background-color:#fff!important}.weigh-table tbody tr.phase-start-row td{border-top:2px solid #64748b!important}.weigh-table tbody tr:hover td{background-color:var(--color-brand-light)!important}.weigh-table tr.row-weighed td{text-decoration:line-through;-webkit-text-decoration-color:var(--text-tertiary);text-decoration-color:var(--text-tertiary);opacity:.35!important}.weigh-target-g{color:var(--color-success);font-family:SFMono-Regular,Consolas,monospace;font-size:14px;font-weight:700}@page{size:landscape;margin:10mm}@media print{@page{size:landscape!important;margin:10mm!important}body{color:#000!important;background-color:#fff!important}#modal-weigh-guide{width:100%;height:auto;position:absolute;top:0;left:0;opacity:1!important;visibility:visible!important;box-shadow:none!important;z-index:99999!important;background-color:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important}#modal-weigh-guide .modal-container{resize:none!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;overflow:visible!important}#modal-weigh-guide .modal-header{background:#fff!important;border-bottom:1px solid #000!important;padding:4px 8px!important}#modal-weigh-guide .modal-header h3,#modal-weigh-guide .modal-header i,#modal-weigh-guide .modal-header svg{color:#000!important}#modal-weigh-guide .modal-header h3{font-size:11px!important;font-weight:500!important}#weigh-modal-formula-badge{color:#000!important;letter-spacing:0!important;background:0 0!important;padding:0!important;font-size:16px!important;font-weight:800!important}#modal-weigh-guide .modal-container{position:relative!important}.weigh-experimenter-row{z-index:10;margin:0!important;position:absolute!important;top:5px!important;right:8px!important}.weigh-experimenter-row label{font-size:9px!important}.weigh-experimenter-row input{max-width:110px!important;height:16px!important;padding:1px 4px!important;font-size:10px!important}#app,.sidebar,.top-header,.modal-overlay:not(#modal-weigh-guide),.modal-footer,.modal-close,.weigh-table .col-check,.weigh-batch-select-panel,.weigh-modal-help-notes{display:none!important}.modal-body{max-height:none!important;padding:0!important;overflow:visible!important}.weigh-table-scroll{border:none!important;overflow:visible!important}.weigh-table{border:1px solid #475569!important;width:auto!important}#modal-weigh-guide .weigh-table th,#modal-weigh-guide .weigh-table td{box-shadow:none!important;position:static!important;left:auto!important}.weigh-table,.weigh-table th,.weigh-table td{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.weigh-table th,.weigh-table td{white-space:nowrap;color:#000!important;border-bottom:1px solid #cbd5e1!important;padding:2px 6px!important;font-size:10px!important;line-height:1.2!important}.weigh-target-percent{font-size:9px!important}.weigh-target-g{font-size:11px!important;font-weight:400!important}.weigh-table thead th,#weigh-modal-table-header-row{color:#fff!important;background-color:#64748b!important}.weigh-batch-header-name{color:#fff!important}.weigh-batch-header-label{color:#e2e8f0!important}.weigh-header-percent-sum{color:#fff!important;font-weight:300!important}.weigh-table tbody tr.phase-start-row td{border-top:2.5px solid #1e293b!important}}.badge{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;padding:1px 6px;font-size:11px;display:inline-block}.badge-danger{color:#b91c1c;background:#fde2e2}.badge-warning{color:#92400e;background:#fef3c7}.badge-approved{color:#166534;background:#dcfce7}.pagination-bar{border-top:1px solid var(--border-color);justify-content:center;align-items:center;gap:4px;padding:12px;display:flex}.filter-count{text-align:center;color:#fff;background:var(--color-brand);border-radius:8px;min-width:16px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:700;line-height:16px;display:inline-block}.filter-panel{border-top:1px solid var(--border-color);background:var(--bg-secondary);padding:12px 16px}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;display:grid}.filter-field{flex-direction:column;gap:3px;font-size:12px;display:flex}.filter-field>span{color:var(--text-secondary);font-weight:600}.filter-field--check{flex-direction:row;align-self:end;align-items:center;gap:6px;padding-bottom:6px}.filter-field--check span{color:var(--text-primary);font-weight:500}.filter-field--range{flex-direction:column}.filter-field--range>span:first-child{margin-bottom:3px}.filter-field--range{grid-template-rows:auto auto;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:5px;display:grid}.filter-field--range>span:first-child{grid-column:1/-1}.filter-tilde{color:var(--text-tertiary);text-align:center}.form-control-sm{height:26px;padding:3px 7px;font-size:12px}.filter-actions{border-top:1px dashed var(--border-color);align-items:center;gap:12px;margin-top:12px;padding-top:10px;display:flex}.filter-result{color:var(--text-secondary);font-size:12px}.pagination-bar .pagination-btn{min-width:28px;padding:4px 8px;font-size:12px}.pagination-bar .pagination-btn.active{background-color:var(--color-brand);color:#fff;border-color:var(--color-brand)}.pagination-bar .pagination-ellipsis{color:var(--text-tertiary);padding:0 4px;font-size:12px}.lookup-panel-strip{z-index:90;max-width:calc(100vw - var(--sidebar-width) - 20px);align-items:stretch;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}body:has(#modal-formula-regcheck.active) .lookup-panel-strip{z-index:110}.lookup-strip-controls{flex-direction:column;flex-shrink:0;align-self:flex-end;gap:4px;display:flex}.lookup-strip-toggle{background:var(--color-brand);width:28px;height:28px;box-shadow:var(--shadow-md);cursor:pointer;color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.lookup-strip-add{box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;padding:4px 6px;font-size:10px;font-weight:700}#lookup-add-ingredient{background:var(--color-success)}#lookup-add-component{background:#4f46e5}.lookup-panel-list{gap:8px;max-width:100%;padding-bottom:2px;display:flex;overflow-x:auto}.lookup-panel{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);width:320px;min-height:0;max-height:78vh;box-shadow:var(--shadow-lg);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.lookup-panel--ingredient{border-color:var(--color-success);background:var(--color-success-light)}.lookup-panel--component{background:#eef2ff;border-color:#4f46e5}.lookup-panel-header{border-bottom:1px solid var(--border-color);color:#fff;flex-shrink:0;padding:8px 10px}.lookup-panel-header--ingredient{background:var(--color-success)}.lookup-panel-header--component{background:#4f46e5}.lookup-panel-header-row{justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.lookup-panel-title{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.lookup-panel-close{color:#ffffffd9;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.lookup-panel-search{box-sizing:border-box;border:1px solid #fff6;border-radius:4px;width:100%;padding:4px 8px;font-size:12px}.lookup-panel-body{flex:1;padding:10px;font-size:12px;overflow-y:auto}.lookup-panel-hint{color:var(--text-tertiary);text-align:center;padding:16px 4px}.lookup-panel-error{color:var(--color-danger)}.lookup-panel-retry{border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);border-radius:4px;margin-top:6px;padding:4px 10px;font-size:11px}.lookup-panel-section{margin-bottom:12px}.lookup-panel-section-title{color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:700}.lookup-panel-code-row{margin-bottom:2px;font-size:13px}.lookup-panel-subline{color:var(--text-secondary);margin-bottom:2px}.lookup-panel-table{border-collapse:collapse;width:100%;font-size:11.5px}.lookup-panel-table details.cond>summary{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lookup-panel-table details.cond[open]>summary{display:block;overflow:visible}.lookup-panel-table details.cond>summary::-webkit-details-marker{display:none}@media print{.regcheck-internal{display:none!important}#formula-regcheck-body{max-height:none!important;display:block!important;overflow:visible!important}#formula-regcheck-body tr{break-inside:avoid;page-break-inside:avoid}#formula-regcheck-body thead{display:table-header-group}#btn-toggle-regcheck,#btn-run-regcheck,#regcheck-batch-select{display:none!important}}.report-view .regcheck-internal{display:none!important}@media print{.no-print,.sidebar,.top-header{display:none!important}.main-content{height:auto!important;overflow:visible!important}.page-body{overflow:visible!important}}.batch-docs-popover{display:flex}.batch-docs-popover[hidden]{display:none}.batch-docs-item{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:3px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.batch-docs-item:hover{background:var(--bg-tertiary)}.inci-detail-table,.inci-detail-table th,.inci-detail-table td{border:1px solid var(--border-color)}.inci-detail-table tbody tr.grp-a td{background:var(--bg-secondary)}.inci-detail-table tbody tr.grp-b td{background:var(--bg-tertiary)}.inci-detail-table tbody tr.grp-first td{border-top:2px solid var(--text-tertiary)}.inci-detail-table td.ing-name{border-right:2px solid var(--text-tertiary);font-weight:700}.lookup-panel-table td{border-bottom:1px solid var(--border-color);overflow-wrap:anywhere;padding:3px 4px}.lookup-panel-table button{color:var(--color-brand);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:11.5px;text-decoration:underline}.lookup-panel-edit-link{border:1px dashed var(--border-color);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:6px;font-size:11px}.lookup-panel-dropdown{z-index:2000;background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:4px;width:300px;max-height:200px;overflow-y:auto}.lookup-dropdown-item{cursor:pointer;color:var(--text-primary);padding:6px 8px;font-size:12px}.lookup-dropdown-item:hover{background:var(--color-brand-light)}.lookup-dropdown-empty{color:var(--text-tertiary);cursor:default}.cn14-doc-tablist{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:2px;margin-top:4px;display:flex}.cn14-doc-tab{appearance:none;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-bottom:none;border-radius:4px 4px 0 0;padding:4px 8px;font-size:11px}.cn14-doc-tab:hover{color:var(--text-primary)}.cn14-doc-tab.active{background:var(--bg-primary,#fff);color:var(--text-primary);border-color:var(--border-color);font-weight:700;position:relative;top:1px}.cn14-doc-tab-count{color:var(--text-tertiary);margin-left:2px;font-weight:400}.cn14-doc-tabpanels{border:1px solid var(--border-color);background:var(--bg-primary,#fff);border-top:none;padding:6px 8px}.cn14-doc-card{border-bottom:1px dashed var(--border-color);padding:4px 0}.cn14-doc-card:last-child{border-bottom:none}.cn14-doc-card-name{font-size:11px;font-weight:700}.cn14-doc-card-date{color:var(--text-tertiary);font-size:10px}.cn14-doc-card-fields{border-left:2px solid var(--border-color);margin-top:4px;padding-left:8px}.cn14-doc-card-field-row{color:var(--text-secondary);margin:2px 0;font-size:10px}.cn14-doc-card-field-label{color:var(--text-primary);font-weight:600}.cn14-review-columns{border:1px solid var(--border-color);border-radius:4px;flex:1;gap:0;min-height:0;display:flex;overflow:hidden}.cn14-review-list{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;width:280px;overflow-y:auto}.cn14-review-list-item{text-align:left;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;width:100%;color:var(--text-primary);background:0 0;padding:8px 10px;font-size:11px;display:block}.cn14-review-list-item:hover{background:var(--color-brand-light)}.cn14-review-list-item.active{background:var(--bg-primary,#fff);box-shadow:inset 3px 0 0 var(--color-brand,#2563eb);font-weight:700}.cn14-review-list-item-cn{display:block}.cn14-review-list-item-ko{color:var(--text-tertiary);font-size:10px;font-weight:400;display:block}.cn14-review-detail{flex:1;padding:12px 16px;overflow-y:auto}.cn14-review-detail-row{margin-bottom:10px}.cn14-review-detail-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:10px}.cn14-review-detail-value{white-space:pre-wrap;font-size:12px}.cn14-review-edit-form{border:1px solid var(--border-color);border-left:3px solid var(--primary-color);background:var(--bg-secondary);border-radius:4px;flex-direction:column;gap:6px;margin-top:8px;padding:9px 10px;display:flex}.cn14-review-edit-form .form-control{background:#fff}.cn14-review-edit-form>.form-control{box-sizing:border-box;width:100%;padding:6px 9px;font-size:12px}.cn14-review-edit-form>textarea.form-control{resize:vertical;min-height:88px;line-height:1.5}.cn14-review-edit-form>.lookup-panel-hint{margin:0;font-size:11px}.cn14-review-edit-form>div:last-of-type .btn{width:auto}.cn14-annex-box{border:1px solid #0d948847;border-left:3px solid var(--primary-color);background:linear-gradient(#0d94880f 0%,#0d948804 100%);border-radius:6px;padding:9px 11px 10px;box-shadow:0 1px 2px #0f172a0d}.cn14-annex-box-head{border-bottom:1px solid #0d94882e;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:6px;display:flex}.cn14-annex-box-title{color:var(--primary-color);letter-spacing:-.01em;font-size:12px;font-weight:700}.cn14-annex-box-badge{white-space:nowrap;color:var(--primary-color);background:#fff;border:1px solid #0d948859;border-radius:10px;padding:1px 7px;font-size:9px;font-weight:700}.cn14-annex-box-meta{color:var(--text-secondary);white-space:nowrap;margin-left:auto;font-size:10px}.cn14-annex-box-actions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.cn14-annex-box-actions .btn{white-space:nowrap;width:auto;font-size:11px;text-decoration:none}.cn14-annex-box-actions .form-control{width:auto;min-width:0;max-width:190px;padding:4px 8px;font-size:11px}.cn14-annex-box-actions .btn-sm{padding:4px 9px}.cn14-annex-box-fill{background:#ffffffbf;border:1px solid #0d948833;border-radius:5px;flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;padding:7px 9px;display:flex}.cn14-annex-box-fill-label{color:var(--primary-color);white-space:nowrap;font-size:10px;font-weight:600}.cn14-annex-box-fill .form-control{width:auto;min-width:0;max-width:210px;padding:4px 8px;font-size:11px}.cn14-annex-box-fill .btn-sm{white-space:nowrap;width:auto;padding:4px 9px;font-size:11px}.cn14-annex-box-result{color:#065f46;border:1px solid #0d94884d;border-left:3px solid var(--primary-color);background:#fff;border-radius:4px;margin-top:6px;padding:5px 8px;font-size:10px;line-height:1.5}.cn14-annex-box-result.is-error{color:#991b1b;background:#fef2f2;border-color:#dc262659 #dc262659 #dc262659 #dc2626}.cn14-annex-box-hint{color:var(--text-secondary);margin-top:5px;font-size:10px;line-height:1.4}.cn14-review-grid-scroll{max-width:100%;overflow-x:auto}.cn14-review-grid{border-collapse:collapse;white-space:nowrap;font-size:11px}.cn14-review-grid th,.cn14-review-grid td{border:1px solid var(--border-color);text-align:left;vertical-align:middle;padding:3px 5px}.cn14-review-grid thead th{background:var(--bg-secondary);color:var(--text-secondary);font-weight:600}.cn14-review-grid-edit td{padding:0}.cn14-review-grid-edit .cn14-grid-cell{background:0 0;border:none;border-radius:0;min-width:90px;height:auto;padding:3px 5px;font-size:11px}.cn14-review-grid-edit .cn14-grid-cell-derived::placeholder{color:var(--text-tertiary);opacity:1;font-style:italic}.cn14-review-grid-edit .cn14-grid-cell:focus{outline:2px solid var(--primary-color);outline-offset:-2px}.cn14-review-grid-edit .cn14-grid-del{color:var(--text-tertiary);padding:0 5px;font-size:11px;line-height:1.6}.cn14-review-grid-edit .cn14-grid-del:hover{color:var(--danger-color,#c0392b)}#regverify-scope.chip-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.regverify-summary{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-tertiary);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.regverify-count{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;padding:3px 10px;font-size:12px}.regverify-count b{margin-right:2px;font-size:15px}.regverify-count--error{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger);font-weight:600}.regverify-count--warn{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.regverify-count--info{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-secondary)}.regverify-summary-note{min-width:0;color:var(--text-secondary);flex:260px;font-size:11px;line-height:1.6}.regverify-cat{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-secondary);margin-top:8px}.regverify-cat--has-error{border-color:var(--color-danger)}.regverify-cat>summary,.regverify-finding>summary{list-style:none}.regverify-cat>summary::-webkit-details-marker{display:none}.regverify-finding>summary::-webkit-details-marker{display:none}.regverify-cat>summary:before,.regverify-finding>summary:before{content:"▸";color:var(--text-tertiary);flex-shrink:0;transition:transform .12s}.regverify-cat[open]>summary:before,.regverify-finding[open]>summary:before{transform:rotate(90deg)}.regverify-cat>summary{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.regverify-cat>summary:hover{background-color:var(--bg-tertiary)}.regverify-cat-code{color:var(--color-brand);min-width:14px;font-weight:700}.regverify-cat-name{color:var(--text-primary);font-weight:600}.regverify-cat-checks{color:var(--text-tertiary);margin-left:auto;font-size:11px}.regverify-cat-body{padding:0 10px 10px}.regverify-finding{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-secondary);border-left-width:3px;margin-top:6px}.regverify-finding--error{border-left-color:var(--color-danger)}.regverify-finding--warn{border-left-color:var(--color-warning)}.regverify-finding--info{border-left-color:var(--border-color)}.regverify-finding>summary{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 9px;font-size:12px;display:flex}.regverify-finding>summary:hover{background-color:var(--bg-tertiary)}.regverify-finding-title{color:var(--text-primary)}.regverify-finding--error .regverify-finding-title{font-weight:600}.regverify-finding-count{color:var(--text-tertiary);white-space:nowrap;margin-left:auto;font-size:11.5px}.regverify-finding-body{padding:0 9px 9px}.regverify-badge{border-radius:var(--radius-sm);white-space:nowrap;background-color:var(--bg-tertiary);color:var(--text-secondary);padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.regverify-badge--error{background-color:var(--color-danger-light);color:var(--color-danger)}.regverify-badge--warn{background-color:var(--color-warning-light);color:var(--color-warning)}.regverify-note{color:var(--text-secondary);border-left:2px solid var(--border-color);background-color:var(--bg-tertiary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:6px 8px;font-size:11.5px;line-height:1.65}.regverify-sample-note{color:var(--color-warning);margin-top:6px;font-size:11px}.regverify-sample-note code,.regverify-failed-hint code{background-color:var(--bg-tertiary);word-break:break-all;border-radius:3px;padding:1px 4px;font-size:10.5px}.regverify-table-wrap{max-height:320px;margin-top:6px;overflow:auto}.regverify-table{width:100%;font-size:11.5px}.regverify-table th{z-index:1;position:sticky;top:0}.regverify-table td{word-break:break-word;max-width:320px}.regverify-clean,.regverify-running{color:var(--text-secondary);padding:8px 2px;font-size:12px}.regverify-running{align-items:center;gap:8px;display:flex}.regverify-failed{border:1px solid var(--color-danger);border-radius:var(--radius-sm);background-color:var(--color-danger-light);padding:10px 12px;font-size:12px}.regverify-failed-title{color:var(--color-danger);font-weight:700}.regverify-failed-msg{color:var(--text-primary);word-break:break-word;margin-top:4px}.regverify-failed-hint{color:var(--text-secondary);margin-top:6px;font-size:11px}.regverify-spinner{vertical-align:-1px;border:2px solid;border-right-color:#0000;border-radius:50%;width:11px;height:11px;animation:.7s linear infinite regverify-spin;display:inline-block}.regverify-spinner--dark{color:var(--color-brand)}@keyframes regverify-spin{to{transform:rotate(360deg)}}.ing-row-purpose-badge{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-tertiary);cursor:pointer;white-space:nowrap;border-radius:3px;flex-shrink:0;padding:2px 4px;font-size:9px;line-height:1}.ing-row-purpose-badge:hover{border-color:var(--border-focus);color:var(--text-secondary)}.ing-row-purpose-badge.is-set{border-color:var(--color-brand);background:var(--color-brand-light);color:var(--color-brand-hover);font-weight:500}.use-purpose-opt{cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:3px 4px;font-size:11px;display:flex}.use-purpose-opt:hover{background:var(--bg-tertiary)}.use-purpose-opt input{flex-shrink:0;width:11px;height:11px;margin:0}.use-purpose-note{color:var(--text-tertiary);border-top:1px solid var(--border-color);white-space:normal;word-break:keep-all;margin-top:4px;padding-top:4px;font-size:10px;line-height:1.4}.cn-intake-busy{z-index:10000;background:var(--color-brand,#0f766e);color:#fff;pointer-events:none;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000038}.cn14-record-check{margin-top:6px}.cn14-record-check-line{color:var(--text-secondary);font-size:11.5px}.cn14-record-check-caveat{color:var(--text-tertiary,var(--text-secondary));margin:6px 0 0;font-size:11px}.cn14-record-check-box>summary{cursor:pointer;color:var(--text-secondary);font-size:12px}.cn14-record-check-box.has-error>summary{color:var(--color-danger);font-weight:600}.cn14-record-check-list{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.cn14-record-check-item{color:var(--text-secondary);border-left:2px solid var(--border-color);padding-left:10px;font-size:11.5px;line-height:1.5}.cn14-record-check-item code{opacity:.75;margin-right:4px;font-size:10.5px}.cn14-record-check-error{border-left-color:var(--color-danger);color:var(--text-primary)}
