/* Keep the established SCM navy, typography and native copyable table. The
   signature is explicit price/unit provenance, not additional dashboard cards. */
.catalog-panel .panel-heading { flex-wrap:wrap; gap:16px; }
.catalog-panel .master-query-toolbar { margin:0 0 10px; }
.master-query-toolbar .search-field { flex:1; min-width:200px; max-width:360px; margin-right:auto; }
.master-query-toolbar input { min-height:44px; }
.master-status { display:flex; flex-wrap:wrap; gap:12px; align-items:center; min-height:24px; margin:0 0 10px; font-size:13px; color:var(--color-muted); }
.catalog-panel .master-status #ingredient-master-source { margin:0; color:inherit; }
.master-status strong { color:var(--color-foreground); font-size:14px; }
.master-column-picker { margin:0 0 10px; border:1px solid var(--color-border); border-radius:6px; }
.master-column-picker summary { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px; cursor:pointer; font-size:14px; font-weight:600; color:var(--color-primary); }
.master-column-picker summary::after { content:'펼치기'; font-size:12px; margin-left:auto; color:var(--color-muted); font-weight:400; }
.master-column-picker[open] summary::after { content:'접기'; }
.master-column-picker summary:focus-visible,.master-column-picker button:focus-visible { outline:3px solid var(--color-secondary); outline-offset:2px; }
.master-column-actions { display:flex; gap:8px; padding:0 12px 10px; }
.master-column-actions .button { min-height:44px; padding:6px 12px; cursor:pointer; }
.master-column-picker fieldset { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:4px 12px; border:0; border-top:1px solid var(--color-border); margin:0; padding:10px 12px; }
.master-column-picker fieldset label { display:flex; align-items:center; gap:8px; min-height:44px; font-size:14px; padding:4px; cursor:pointer; overflow-wrap:anywhere; }
.master-column-picker fieldset input { appearance:auto; flex:0 0 18px; width:18px; height:18px; min-height:18px; padding:0; margin:0; accent-color:var(--color-primary); }
.master-column-picker .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.master-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:16px 0; }
.master-toolbar .button { min-height:44px; padding:8px 14px; border:1px solid var(--color-border); border-radius:6px; background:var(--color-surface); color:var(--color-primary); font-family:inherit; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.master-toolbar .button.primary { background:var(--color-primary); color:white; }
.master-toolbar .button:disabled { opacity:.55; cursor:wait; }
.catalog-panel .field-help { font-size:13px; line-height:1.6; }
.master-toolbar label { display:grid; gap:4px; font-size:13px; }
.master-toolbar select { min-height:44px; max-width:240px; }
.master-list-panel { max-width:960px; }
.master-list-panel>label { display:grid; gap:8px; margin-top:16px; }
.master-list-panel textarea { width:100%; resize:vertical; min-height:240px; padding:12px; font-family:inherit; font-size:14px; line-height:1.7; border:1px solid var(--color-border); border-radius:6px; }
.master-list-panel input { max-width:320px; }
.master-scroll-top { min-height:40px; display:flex; align-items:center; gap:12px; padding:4px 12px; border:1px solid var(--color-border); background:var(--color-surface); position:sticky; top:80px; z-index:5; }
.master-scroll-top label { white-space:nowrap; font-size:13px; }
.master-scroll-top input { width:100%; min-width:0; min-height:28px; padding:0; accent-color:var(--color-primary); cursor:ew-resize; }
.master-scroll-top[hidden] { display:none; }
.catalog-panel h2 .badge { margin-left:8px; font-size:13px; vertical-align:middle; }
.catalog-panel #ingredient-master-source { color:var(--color-text); margin:0 0 14px; overflow-wrap:anywhere; }
.catalog-explainer,.catalog-scope-note { border:1px solid var(--color-border); border-left:3px solid var(--color-primary); padding:12px 16px; margin:0 0 18px; border-radius:6px; background:var(--color-background); font-size:14px; line-height:1.7; }
.catalog-explainer summary,.catalog-row-detail summary { cursor:pointer; color:var(--color-primary); font-weight:600; padding:5px 0; }
.catalog-explainer p { margin:8px 0; max-width:1000px; }
.catalog-panel .catalog-table-wrap { overflow-x:auto; max-height:none; height:auto; width:100%; }
.catalog-panel table.catalog-table { min-width:0; table-layout:fixed; }
.catalog-panel table.catalog-table th,.catalog-panel table.catalog-table td { min-width:0; white-space:normal; overflow-wrap:anywhere; padding:10px 12px; vertical-align:middle; font-size:14px; height:44px; border-right:1px solid var(--color-border); }
.catalog-panel .catalog-table .master-code-cell { position:sticky; left:0; min-width:110px; width:110px; max-width:110px; background:var(--color-surface); z-index:2; }
.catalog-panel .catalog-table .master-name-cell { position:sticky; left:var(--master-name-left,110px); min-width:300px; width:300px; max-width:300px; background:var(--color-surface); z-index:2; border-right:2px solid #a7bad7; }
.catalog-panel .catalog-table th { background:#edf2fa!important; color:#243d62; text-transform:none; }
.catalog-panel .catalog-table tr:hover td { background:#f0f5fd; }
.catalog-panel .catalog-table .raw-missing { color:#64748b; }
@media(max-width:700px){.catalog-panel .catalog-table .master-name-cell{position:static;}.master-toolbar{align-items:stretch;}.master-toolbar>label{width:100%;}.master-scroll-top{top:64px;}.master-query-toolbar .search-field{max-width:none;flex-basis:100%;}.master-column-picker fieldset{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}}
.catalog-table td.numeric { font-variant-numeric:tabular-nums; text-align:right; }
.catalog-table small { display:block; color:var(--color-muted); margin-top:4px; font-size:12px; line-height:1.6; font-family:inherit; }
.catalog-row-detail { margin-top:5px; font-size:13px; }
.catalog-row-detail p { margin:7px 0; white-space:normal; font-family:inherit; }
.catalog-row-detail .catalog-warning { color:var(--color-caution); }
.catalog-scope-note strong { display:block; color:var(--color-caution); }
.catalog-code-filter { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; margin-bottom:18px; }
.catalog-code-filter textarea { width:100%; resize:vertical; min-height:72px; max-height:240px; padding:10px; font-family:inherit; font-size:14px; line-height:1.6; border:1px solid var(--color-border); border-radius:6px; color:var(--color-text); background:var(--color-surface); }
.catalog-code-filter textarea:focus-visible { outline:3px solid var(--color-secondary); outline-offset:2px; }
.catalog-code-actions { display:flex; align-items:end; gap:8px; padding-bottom:4px; }
.catalog-code-actions .button { min-height:44px; white-space:nowrap; }
.catalog-code-filter p { grid-column:1/-1; margin:0; overflow-wrap:anywhere; }
#ingredient-codes-message { font-size:14px; color:var(--color-primary); }
#recipes-view .recipe-browser { grid-template-rows:auto auto auto auto minmax(0,1fr); }
.core-status-filter { margin-bottom:12px; }
.core-status-filter select { min-height:44px; }
.core-review { color:var(--color-caution)!important; }
.core-recipe-card { min-width:0; }
.core-recipe-card header>div { min-width:0; }
.core-recipe-card h3 { overflow-wrap:anywhere; }
.core-source-warning { padding:10px 14px; margin:14px 0; background:var(--color-caution-bg); border-left:3px solid var(--color-caution); color:var(--color-caution); font-size:14px; overflow-wrap:anywhere; }
.core-source-warning p { margin:4px 0; }
.core-table-wrap { overflow:visible; max-height:none; }
.core-recipe-table { width:100%; min-width:0; table-layout:fixed; }
.core-recipe-table th,.core-recipe-table td { white-space:normal; overflow-wrap:anywhere; padding:10px 8px; font-size:13px; vertical-align:top; }
.core-recipe-table small { display:block; font-size:12px; color:var(--color-muted); }
.core-recipe-table .core-mix-part { color:var(--color-primary); font-weight:600; }
.core-recipe-table .core-preparation-water td { background:#f1f6fc; }
.core-recipe-table .core-preparation-water td:first-child { border-left:3px solid var(--color-secondary); }
.core-recipe-table .core-current-value { background:#f1f6fc; }
.core-recipe-card .core-cost-comparison { grid-template-columns:repeat(3,minmax(0,1fr)); }
.core-cost-comparison>div { min-width:0; }
.core-cost-comparison dd { overflow-wrap:anywhere; }
.core-cost-comparison small { display:block; margin-top:6px; font-size:12px; color:var(--color-muted); line-height:1.6; }
.core-cost-comparison .core-current-summary { background:#f1f6fc; }
.core-collection-list { padding-left:20px; }
.core-collection-list li { margin:8px 0; }
#core-recipe-source.catalog-scope-note { margin:0 0 12px; padding:0; border:0; background:none; font-size:13px; line-height:1.6; }
.core-cost-note { margin-top:12px; line-height:1.7; font-size:14px; }
.core-source-detail { margin-top:16px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.core-source-detail summary { min-height:44px; padding:10px 0; color:var(--color-primary); cursor:pointer; }
.core-source-detail p { margin:8px 0; }
@media(max-width:700px) {
 .catalog-code-filter { grid-template-columns:1fr; }
 .catalog-code-filter textarea { font-size:16px; }
 .catalog-code-actions { align-items:stretch; }
 .catalog-code-actions .button { flex:1; }
 .core-table-wrap table,.core-table-wrap tbody,.core-table-wrap tr { display:block; width:100%; }
 .core-table-wrap thead,.core-table-wrap colgroup { display:none; }
 .core-table-wrap tr { border-bottom:1px solid var(--color-border); padding:10px 0; }
 .core-table-wrap td { display:block; width:100%; text-align:left; padding:4px; border:0; }
 .core-recipe-table td:nth-child(2)::before { content:'투입량(DB): '; }
 .core-recipe-table td:nth-child(3)::before { content:'현재 FA 환산수량: '; }
 .core-recipe-table td:nth-child(4)::before { content:'현재 출고단가: '; }
 .core-recipe-table td:nth-child(5)::before { content:'현재 재료원가: '; }
 .core-recipe-table td:nth-child(6)::before { content:'등록 당시 출고단가: '; }
 .core-recipe-table td:nth-child(7)::before { content:'등록 당시 재료원가: '; }
 .core-recipe-card .core-cost-comparison { grid-template-columns:1fr; }
 .core-recipe-table .core-preparation-water td:nth-child(2)::before { content:'물 배합량(계산): '; }
 .core-recipe-table .core-preparation-water td:nth-child(n+3):not(:nth-child(5)) { display:none; }
 .core-recipe-table .core-preparation-water td:nth-child(5)::before { content:'물 원가(계산): '; }
 .catalog-panel { padding:12px; }
 .catalog-panel .search-field { width:100%; min-width:0; }
}
