.universal-template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.universal-template-card{display:grid;grid-template-columns:44px 1fr;gap:.35rem .75rem;padding:1rem;border:1px solid #cfe0dc;border-radius:16px;background:#fbfefd}.universal-template-card .template-icon{grid-row:1/5}.universal-template-card strong{font-size:1rem;color:#0a3045}.universal-template-card small{min-height:2.4em;color:#64748b}.universal-template-card .btn{justify-self:start}.universal-import-form{grid-template-columns:minmax(200px,.6fr) minmax(320px,1.4fr) auto}.import-batch-table td strong,.import-batch-table td small{display:block}.import-batch-table td small{max-width:34ch;overflow:hidden;text-overflow:ellipsis;color:#64748b}.status-chip{display:inline-flex;padding:.22rem .5rem;border-radius:999px;background:#e5f5f1;color:#087467;font-size:.72rem;font-weight:800}.import-review-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.import-review-summary .result-grid{flex:1}.import-review-actions{display:flex;gap:.55rem}.import-row-list{display:grid;gap:.75rem}.import-review-row{border:1px solid #d7e5e2;border-radius:14px;padding:.75rem;background:#fcfefd}.import-review-row.error{border-color:#eeb2ab;background:#fff8f7}.import-review-row.posted{opacity:.76;background:#f4f8f7}.import-review-row header{display:flex;align-items:center;gap:.55rem;margin-bottom:.5rem}.import-review-row header span{color:#64748b}.import-review-row header b{margin-left:auto;padding:.18rem .45rem;border-radius:999px;background:#e7f6f2;color:#087467;font-size:.68rem}.import-row-error{padding:.45rem .6rem;border-radius:8px;color:#a42d25;background:#ffebe9;font-size:.78rem}.import-row-fields{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:.45rem;margin-bottom:.55rem}.import-row-fields label span{display:block;margin-bottom:.16rem;color:#425b70;font-size:.68rem;font-weight:800}.import-row-fields input{width:100%;height:38px;padding:.38rem .5rem;border:1px solid #cbdcd8;border-radius:9px;background:#fff;font-size:.78rem}.import-row-fields input[readonly]{background:#eef4f2}.empty-state{margin:0;color:#64748b}
@media(max-width:900px){.universal-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.universal-import-form{grid-template-columns:1fr}.import-review-summary{align-items:stretch;flex-direction:column}.import-review-actions{width:100%}.import-review-actions form,.import-review-actions button{flex:1;width:100%}.import-row-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.universal-template-grid{grid-template-columns:1fr}.universal-template-card small{min-height:0}.import-row-fields{grid-template-columns:1fr 1fr;gap:.35rem}.import-row-fields label:first-child{grid-column:1/-1}.import-row-fields input{height:36px;font-size:.72rem}.import-review-row{padding:.6rem}.import-review-row header{font-size:.75rem}.import-batch-table{font-size:.72rem}.import-batch-table th,.import-batch-table td{padding:.38rem}.import-batch-table th:nth-child(5),.import-batch-table td:nth-child(5){display:none}}
/* Supplier invoice OCR review uses the same import visual language without hiding audit detail. */
.supplier-ocr-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end}
.compact-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;margin:.8rem 0}
.compact-kpis article{border:1px solid var(--line,#cce0dc);border-radius:12px;padding:.7rem;background:#f7fbfa;min-width:0}
.compact-kpis small,.compact-kpis strong{display:block}.compact-kpis strong{overflow-wrap:anywhere}
.supplier-ocr-line{border-left:5px solid #279786}.supplier-ocr-line.confidence-low,.supplier-ocr-line.confidence-unknown{border-left-color:#d48a00}.supplier-ocr-line.confidence-medium{border-left-color:#58a7bd}
.field-warning{margin:.45rem 0;padding:.55rem .7rem;border-radius:8px;background:#fff4d5;color:#754e00;font-size:.88rem}
.form-grid.four-col{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.form-grid.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.form-grid .span-2{grid-column:span 2}
.form-grid label{min-width:0}.form-grid label>span{display:block;font-weight:700;font-size:.78rem;margin-bottom:.25rem}.form-grid input,.form-grid select{width:100%}
.check-field{display:flex!important;align-items:center;gap:.55rem;padding-top:1.25rem}.check-field input{width:auto}.check-field span{margin:0!important}
.button-row{display:flex;flex-wrap:wrap;gap:.65rem}.button-row form{margin:0}.sticky-actions{position:sticky;bottom:.5rem;z-index:5;display:flex;justify-content:flex-end;padding:.7rem;background:rgba(247,251,250,.94);border:1px solid var(--line,#cce0dc);border-radius:12px}
@media(max-width:900px){.compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four-col,.form-grid.three-col{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.supplier-ocr-upload,.form-grid.four-col,.form-grid.three-col{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.compact-kpis{grid-template-columns:1fr 1fr}.supplier-ocr-line{padding:.8rem}.button-row>*{width:100%}.button-row .btn{width:100%}}
/* Product-quality analysis is compact, paged and mobile-safe. */
.quality-summary{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:.65rem;margin:1rem 0}.quality-summary>div{background:#fff;border:1px solid #cfe1de;border-left:4px solid #0b897c;border-radius:14px;padding:.7rem .85rem;display:grid;gap:.2rem}.quality-summary small{color:#587080}.quality-summary strong{font-size:1.15rem}.quality-run-state,.quality-tabs,.quality-filter{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.quality-run-state{margin:.5rem 0 1rem;color:#587080}.quality-run-state strong{color:#075c54}.quality-tabs{background:#edf7f5;border:1px solid #cfe1de;border-radius:14px;padding:.35rem;margin-bottom:1rem}.quality-tabs a{padding:.65rem .9rem;border-radius:10px;font-weight:700;color:#24485b}.quality-tabs a.active{background:#0b897c;color:#fff}.quality-filter{margin-bottom:1rem}.quality-filter select,.quality-alias-form input{min-width:190px}.quality-table small,.duplicate-cluster small{display:block;color:#667b88}.quality-score{white-space:nowrap}.quality-issues{margin:0;padding:0;list-style:none;display:grid;gap:.2rem}.quality-issues li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.quality-issues li span{color:#b3422d}.duplicate-cluster{background:#fff;border:1px solid #cfe1de;border-radius:16px;padding:1rem;margin-bottom:.8rem}.duplicate-cluster>header{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e5efed;padding-bottom:.65rem}.duplicate-cluster>header>div:first-child{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.cluster-evidence{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.cluster-evidence span{background:#edf8f5;border-radius:99px;padding:.25rem .55rem;font-size:.82rem}.cluster-evidence .warning{background:#fff1df;color:#8a4f00}.cluster-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem;padding:.75rem 0}.cluster-members label{display:flex;gap:.55rem;border:1px solid #d8e7e4;border-radius:12px;padding:.65rem}.cluster-actions{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.cluster-actions form,.quality-alias-form{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.switch-row.compact{padding:.2rem .5rem;min-height:auto}
@media(max-width:900px){.quality-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.duplicate-cluster>header{display:block}.cluster-evidence{justify-content:flex-start;margin-top:.5rem}.cluster-actions form,.quality-alias-form{width:100%}.cluster-actions input,.quality-alias-form input{flex:1;min-width:0}}
