.quote-page{min-height:100vh;background:var(--c-bg);padding:24px;max-width:920px;margin:0 auto}.quote-toolbar{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.quote-controls{margin-bottom:var(--s-4)}.quote-document{background:#fff;border:1.5px solid var(--c-line);border-radius:var(--r-lg);padding:40px 48px;min-height:1000px;color:#1a1815}.q-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--c-accent);padding-bottom:20px;margin-bottom:28px}.q-company-name{font-size:24px;font-weight:700;margin-bottom:6px;color:var(--c-accent)}.q-title-block{text-align:left}.q-title{font-size:28px;font-weight:700;color:var(--c-ink)}.q-meta{font-size:12px;color:var(--c-ink-2);line-height:1.7}.q-info{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;margin-bottom:24px;padding:16px;background:var(--c-bg-2);border-radius:var(--r-md)}.q-info-block{display:flex;flex-direction:column;gap:4px}.q-info-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted);font-weight:600}.q-info-value{font-size:14px;font-weight:500}.q-product{margin-bottom:24px}.q-product-name{font-size:18px;font-weight:700;margin:4px 0}.q-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:13px}.q-table thead th{background:var(--c-ink);color:#fff;padding:10px 12px;text-align:right;font-weight:600;font-size:12px}.q-table thead th:first-child{border-top-right-radius:var(--r-sm);width:32px;text-align:center}.q-table thead th:last-child{border-top-left-radius:var(--r-sm)}.q-table tbody td{padding:10px 12px;border-bottom:1px solid var(--c-line)}.q-table tbody tr:nth-child(2n){background:#fbf9f5}.q-table tbody td:first-child{text-align:center;color:var(--c-muted)}.q-table td.num{font-variant-numeric:tabular-nums;text-align:left}.q-table tfoot td{padding:8px 12px;font-size:13px}.q-table tfoot td:nth-last-child(2){text-align:left;color:var(--c-ink-2);font-weight:500}.q-table tfoot tr.q-total td{background:var(--c-accent-soft);font-weight:700;font-size:16px;color:var(--c-accent-ink);padding-top:12px;padding-bottom:12px;border-top:2px solid var(--c-accent)}.q-notes{margin-bottom:24px;padding:16px;background:#fff8e6;border:1px solid #e5cf86;border-radius:var(--r-md);font-size:13px;line-height:1.7}.q-footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--c-line);display:flex;justify-content:space-between;font-size:11px;color:var(--c-muted)}.muted-text{color:var(--c-muted)}@media print{@page{size:A4;margin:12mm}body,html{background:#fff!important}.no-print{display:none!important}.quote-page{padding:0;max-width:none;margin:0;background:#fff}.quote-document{border:none;border-radius:0;padding:0;box-shadow:none;min-height:0}.q-table thead th{background:#2a2520!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.q-table tbody tr:nth-child(2n){background:#fbf9f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.q-table tfoot tr.q-total td{background:var(--c-accent-soft)!important;color:var(--c-accent-ink)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.q-head{border-bottom-color:#ea580c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.q-company-name{color:#ea580c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.odoo-x-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#1f1d1a7a;display:flex;align-items:center;justify-content:center;padding:16px;animation:odooFade .15s ease-out}.odoo-x-modal{background:var(--c-paper);border:1px solid var(--c-line);border-radius:14px;box-shadow:0 18px 50px #1f1d1a38;width:100%;max-width:430px;max-height:90vh;overflow:auto;padding:20px;animation:odooRise .2s ease-out}.odoo-x-title{font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--c-ink);margin:0 0 2px}.odoo-x-sub{font-size:12.5px;color:var(--c-muted);margin:0 0 16px}.odoo-x-label{display:block;font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--c-ink-2);margin:14px 0 6px}.odoo-x-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.odoo-x-seg button{min-height:44px;padding:8px 6px;border:1.5px solid var(--c-line);border-radius:10px;background:var(--c-paper);color:var(--c-ink-2);font:inherit;font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.odoo-x-seg button:hover{border-color:var(--c-line-strong)}.odoo-x-seg button[aria-checked=true]{border-color:var(--c-accent);background:var(--c-accent-soft);color:var(--c-accent-ink);font-weight:var(--fw-bold)}.odoo-x-card{display:block;width:100%;text-align:start;min-height:44px;padding:10px 12px;margin-top:6px;border:1.5px solid var(--c-line);border-radius:10px;background:var(--c-paper);font:inherit;cursor:pointer;transition:border-color .15s,background .15s}.odoo-x-card:hover{border-color:var(--c-line-strong)}.odoo-x-card[aria-checked=true]{border-color:var(--c-accent);background:var(--c-accent-soft)}.odoo-x-card .odoo-x-card-t{display:flex;align-items:center;gap:8px;font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--c-ink)}.odoo-x-card[aria-checked=true] .odoo-x-card-t{color:var(--c-accent-ink);font-weight:var(--fw-bold)}.odoo-x-card .odoo-x-card-d{font-size:var(--fs-12);color:var(--c-muted);margin-top:2px;line-height:1.45}.odoo-x-dot{flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:2px solid var(--c-line-strong);background:var(--c-paper);transition:border-color .15s,box-shadow .15s}.odoo-x-card[aria-checked=true] .odoo-x-dot,.odoo-x-seg button[aria-checked=true] .odoo-x-dot{border-color:var(--c-accent);box-shadow:inset 0 0 0 3.5px var(--c-paper),inset 0 0 0 10px var(--c-accent)}.odoo-x-err{margin-top:12px;font-size:13px;font-weight:var(--fw-medium);color:var(--c-bad);background:#fbeeee;border:1px solid #ecd2d2;border-radius:8px;padding:8px 10px}.odoo-x-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.odoo-x-foot .btn{min-height:44px}@keyframes odooFade{0%{opacity:0}to{opacity:1}}@keyframes odooRise{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.odoo-x-overlay,.odoo-x-modal{animation:none}.odoo-x-seg button,.odoo-x-card,.odoo-x-dot{transition:none}}.pkg-page{min-height:100vh;background:var(--c-bg);padding:24px;max-width:920px;margin:0 auto}.pkg-toolbar{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.pkg-doc{--c-ink: #1f1d1a;--c-ink-2: #4a4641;--c-muted: #75716a;--c-accent: #ea580c;--c-accent-soft: #ffe8d6;--c-accent-ink: #9a3a06;--c-line: #d9d3c7;--c-line-strong: #bfb8a9;--c-bg-2: #f3efe7;background:#fff;border:1.5px solid var(--c-line);border-radius:var(--r-lg);padding:40px 48px;min-height:1000px;color:#1a1815}.pkg-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--c-accent);padding-bottom:20px;margin-bottom:28px}.pkg-company{font-size:22px;font-weight:700;margin-bottom:6px;color:var(--c-accent)}.pkg-meta{font-size:12px;color:var(--c-ink-2);line-height:1.7}.pkg-title-block{text-align:left}.pkg-title{font-size:26px;font-weight:700;color:var(--c-ink)}.pkg-num{font-family:monospace;font-size:14px;color:var(--c-muted);margin-top:4px}.pkg-info{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:16px;margin-bottom:24px;padding:16px;background:var(--c-bg-2);border-radius:var(--r-md)}.pkg-info-block{display:flex;flex-direction:column;gap:4px}.pkg-info-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted);font-weight:600}.pkg-info-value{font-size:14px;font-weight:500}.pkg-product{margin-bottom:20px;padding:12px 16px;background:#fff8e6;border:1px solid #e5cf86;border-radius:var(--r-md)}.pkg-product-name{font-size:20px;font-weight:700;margin:2px 0}.pkg-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:13px}.pkg-table thead th{background:var(--c-ink);color:#fff;padding:12px 10px;text-align:right;font-weight:600;font-size:12px}.pkg-table thead th:first-child{border-top-right-radius:var(--r-sm)}.pkg-table thead th:last-child{border-top-left-radius:var(--r-sm)}.pkg-table tbody td{padding:14px 10px;border-bottom:1px solid var(--c-line)}.pkg-table tbody tr:nth-child(2n){background:#fbf9f5}.pkg-table td.num{font-variant-numeric:tabular-nums;text-align:center}.pkg-table td.fill-box{border:2px solid var(--c-line-strong);background:#fff;height:42px;min-width:60px;text-align:center}.pkg-table tfoot td{padding:12px 10px;font-size:14px;font-weight:700;background:var(--c-accent-soft);color:var(--c-accent-ink);border-top:2px solid var(--c-accent)}.pkg-notes{margin-bottom:24px;padding:16px;background:#f5f5f5;border-right:4px solid var(--c-accent);border-radius:var(--r-md);font-size:13px;line-height:1.7}.pkg-sigs{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px;padding-top:24px;border-top:1px solid var(--c-line)}.pkg-sig-block .pkg-sig-label{font-size:12px;color:var(--c-muted);margin-bottom:36px;font-weight:600}.pkg-sig-line{border-top:1.5px solid var(--c-ink-2);padding-top:6px;font-size:11px;color:var(--c-muted)}.pkg-footer{margin-top:24px;padding-top:12px;border-top:1px solid var(--c-line);display:flex;justify-content:space-between;font-size:11px;color:var(--c-muted)}.pkg-bag-prep{margin-bottom:28px;padding:16px 20px;background:#f0f9ff;border:2px solid #0284c7;border-radius:8px}.pkg-bag-prep-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:8px;border-bottom:1.5px dashed #0284c7}.pkg-bag-prep-title{font-size:17px;font-weight:700;color:#0c4a6e;display:flex;align-items:center;gap:8px}.pkg-bag-prep-title:before{content:"📦";font-size:22px}.pkg-bag-prep-subtitle{font-size:12px;color:var(--c-ink-2);line-height:1.5}.pkg-bag-prep-table{width:100%;border-collapse:collapse;font-size:13px}.pkg-bag-prep-table thead th{background:#0284c7;color:#fff;padding:8px 10px;text-align:right;font-weight:600;font-size:12px}.pkg-bag-prep-table thead th:first-child{border-top-right-radius:4px}.pkg-bag-prep-table thead th:last-child{border-top-left-radius:4px}.pkg-bag-prep-table tbody td{padding:10px;border-bottom:1px solid #bae6fd;background:#fff}.pkg-bag-prep-table tbody tr:last-child td{border-bottom:none}.pkg-bag-prep-table .size-name{font-weight:700;font-size:15px}.pkg-bag-prep-table .total-count{font-weight:700;font-size:20px;color:#0c4a6e;text-align:center;font-variant-numeric:tabular-nums}.pkg-bag-prep-table .total-weight{text-align:center;font-variant-numeric:tabular-nums;color:var(--c-ink-2)}.pkg-bag-prep-table .breakdown{font-size:12px;color:var(--c-ink-2);line-height:1.6}.pkg-bag-prep-table .breakdown-item{display:inline-block;padding:2px 8px;margin:2px;background:#e0f2fe;border-radius:12px;font-size:11px}.pkg-merged-section{margin-bottom:28px;padding-bottom:18px;border-bottom:2px dashed var(--c-line-strong)}.pkg-merged-section:last-of-type{border-bottom:none}.pkg-section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.pkg-section-index{font-size:11px;color:var(--c-muted);font-weight:600;letter-spacing:.04em}.pkg-section-num{font-family:monospace;font-size:18px;font-weight:700}.pkg-section-stock{text-align:left;font-size:12px}.pkg-grand-total{margin-top:20px;padding:16px;background:var(--c-accent-soft);border:2px solid var(--c-accent);border-radius:8px;display:flex;justify-content:space-between;align-items:baseline}.pkg-grand-total-label{font-weight:700;font-size:16px;color:var(--c-accent-ink)}.pkg-grand-total-values{display:flex;gap:24px;font-size:16px;font-weight:700}.pkg-section-notes{margin-top:10px;padding:8px 12px;background:#fff8e6;border-right:3px solid #c79100;border-radius:4px;font-size:12px}@media print{@page{size:A4;margin:12mm}body,html{background:#fff!important}.no-print{display:none!important}.pkg-page{padding:0;max-width:none;margin:0;background:#fff}.pkg-doc{border:none;border-radius:0;padding:0;box-shadow:none;min-height:0}.pkg-table thead th{background:#2a2520!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-table tbody tr:nth-child(2n){background:#fbf9f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-table tfoot td{background:#fff3e0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-head{border-bottom-color:#ea580c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-company{color:#ea580c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-product{background:#fff8e6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-bag-prep{background:#f0f9ff!important;border-color:#0284c7!important;page-break-inside:avoid;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-bag-prep-table thead th{background:#0284c7!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-bag-prep-table .breakdown-item{background:#e0f2fe!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-merged-section{page-break-inside:avoid;break-inside:avoid;border-bottom:1.5px dashed #999!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-merged-section+.pkg-merged-section{page-break-before:always;break-before:page;padding-top:12px}.pkg-grand-total{background:#ffedd5!important;border-color:#ea580c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;page-break-before:avoid;break-before:avoid;page-break-inside:avoid;break-inside:avoid}.pkg-section-notes{background:#fff8e6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pkg-sigs,.pkg-footer{page-break-before:avoid;break-before:avoid;page-break-inside:avoid;break-inside:avoid}}.labels-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #e0e0e0;background:#fafafa;position:sticky;top:0;z-index:10}.labels-hint{font-size:12px;color:#7a5a00;background:#fef9e3;border-bottom:1px solid #e6d27a;padding:8px 16px;line-height:1.6}.label-sheet{background:#f3efe7}.bc-label{box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;color:#000;background:#fff;font-family:Arial,Helvetica,sans-serif}.label-barcode{width:100%}.label-barcode svg{width:100%;height:100%;display:block}@media screen{.label-sheet{display:flex;flex-direction:column;align-items:center;gap:0;padding:20px 0}.bc-label{box-shadow:0 0 0 1px #ddd}.bc-label+.bc-label{border-top:1px dashed #b0b0b0}}@media print{.no-print{display:none!important}.label-sheet{display:block;padding:0;gap:0;background:#fff}.bc-label{box-shadow:none;page-break-after:always;break-after:page}.bc-label:last-child{page-break-after:auto;break-after:auto}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--c-paper: #ffffff;--c-bg: #faf8f4;--c-bg-2: #f3efe7;--c-ink: #1f1d1a;--c-ink-2: #4a4641;--c-muted: #75716a;--c-line: #d9d3c7;--c-line-strong: #bfb8a9;--c-accent: #ea580c;--c-accent-soft: #ffe8d6;--c-accent-ink: #9a3a06;--c-good: #5b8a3a;--c-warn: #c79100;--c-bad: #b54141;--f-sans: "Tajawal", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-28: 28px;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--lh-tight: 1.25;--lh-body: 1.55;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--s-12: 48px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--sh-1: 0 1px 0 rgba(28,24,18,.04);--sh-2: 0 2px 8px rgba(28,24,18,.05)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--f-sans);font-size:var(--fs-14);color:var(--c-ink);background:var(--c-bg);direction:rtl;line-height:var(--lh-body)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--c-accent-ink);text-decoration:none}a:hover{text-decoration:underline}.card{background:var(--c-paper);border:1.5px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-6)}.card h2{margin:0 0 var(--s-3);font-size:var(--fs-20);font-weight:var(--fw-bold)}.card .h{display:flex;align-items:center;justify-content:space-between;font-weight:var(--fw-medium);color:var(--c-ink-2);font-size:var(--fs-14);margin-bottom:var(--s-3)}.field{display:flex;flex-direction:column;gap:var(--s-1)}.field label{font-size:var(--fs-12);color:var(--c-ink-2)}.field input,.field select,.field textarea{height:38px;width:100%;min-width:0;padding:0 var(--s-3);border:1.5px solid var(--c-line-strong);border-radius:var(--r-md);background:var(--c-paper);color:var(--c-ink);outline:none;transition:border-color .12s}.field textarea{height:auto;padding:var(--s-2) var(--s-3);min-height:80px;resize:vertical}.field .hint{font-size:var(--fs-12);color:var(--c-muted);margin-top:2px}.field .err{font-size:var(--fs-12);color:var(--c-bad);margin-top:2px}input[type=text],input[type=number],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],select,textarea{background:var(--c-paper);color:var(--c-ink);border:1.5px solid var(--c-line-strong);border-radius:var(--r-md);outline:none}input[type=text],input[type=number],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],select{height:38px;padding:0 var(--s-3)}textarea{padding:var(--s-2) var(--s-3);min-height:80px}input:focus,select:focus,textarea:focus{border-color:var(--c-accent)}input::placeholder,textarea::placeholder{color:var(--c-muted)}select,.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b99' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;padding-left:32px}input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],input[type=number],input[type=email],input[type=tel],input[type=url]{direction:ltr;text-align:start}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit,input[type=month]::-webkit-datetime-edit,input[type=week]::-webkit-datetime-edit,input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=time]::-webkit-datetime-edit-fields-wrapper,input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper,input[type=month]::-webkit-datetime-edit-fields-wrapper,input[type=week]::-webkit-datetime-edit-fields-wrapper{direction:ltr!important;unicode-bidi:plaintext}[dir=rtl] input[type=date],[dir=rtl] input[type=time],[dir=rtl] input[type=datetime-local],[dir=rtl] input[type=month],[dir=rtl] input[type=week],[dir=rtl] input[type=number]{text-align:end}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);height:38px;border-radius:var(--r-md);font:var(--fw-medium) var(--fs-14) var(--f-sans);border:1.5px solid var(--c-line-strong);background:var(--c-paper);color:var(--c-ink);cursor:pointer;transition:background-color .12s,border-color .12s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}.btn.primary:hover{background:#d04d09;border-color:#d04d09}.btn.ghost{background:transparent;border-color:transparent;color:var(--c-ink-2)}.btn.ghost:hover{background:var(--c-bg-2);color:var(--c-ink)}.btn.danger{color:var(--c-bad);border-color:var(--c-bad);background:var(--c-paper)}.btn.danger:hover{background:#fbecec}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:var(--fs-12);border:1.5px solid var(--c-line);background:var(--c-bg-2);color:var(--c-ink-2)}.tag.accent{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-accent-ink)}.tag.good{background:#ebf4e0;border-color:var(--c-good);color:#3d6021}.tag.warn{background:#fdf3d3;border-color:var(--c-warn);color:#7a5a00}.kpi{background:var(--c-paper);border:1.5px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4)}.kpi .label{font-size:var(--fs-12);color:var(--c-muted);margin-bottom:6px}.kpi .value{font-size:var(--fs-28);font-weight:var(--fw-bold);line-height:1}.kpi .delta{font-size:var(--fs-12);color:var(--c-good);margin-top:4px}.kpi.accent .value{color:var(--c-accent)}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3)}@media (max-width: 1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 680px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 420px){.kpi-grid{grid-template-columns:1fr}}.dash-charts{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--s-3)}@media (max-width: 768px){.dash-charts{grid-template-columns:1fr}}.roast-basics{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s-3)}.roast-specialty{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3)}.roast-meta{display:grid;grid-template-columns:1fr 1fr 2fr;gap:var(--s-3)}@media (max-width: 1024px){.roast-specialty{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.roast-basics,.roast-specialty,.roast-meta{grid-template-columns:1fr}}.table{width:100%;border:1.5px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-paper);overflow:hidden}.table .row{display:grid;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-line);align-items:center;font-size:var(--fs-14)}.table .row:last-child{border-bottom:0}.table .row.head{background:var(--c-bg-2);color:var(--c-ink-2);font-weight:var(--fw-medium);font-size:var(--fs-12)}.table .row.clickable{cursor:pointer}.table .row.clickable:hover{background:var(--c-bg-2)}.roasts-table .row{grid-template-columns:1.5fr .7fr .7fr .7fr .7fr .7fr 1.2fr 80px}.roast-filters,.filter-bar{display:flex;gap:var(--s-3);align-items:flex-end;flex-wrap:wrap}@media (max-width: 768px){.roasts-table .row.head{display:none}.roasts-table .row{grid-template-columns:1fr 1fr;gap:var(--s-2) var(--s-3);padding:var(--s-3)}.roasts-table .row>div{text-align:start!important}.roasts-table .row>div[data-label]:before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--c-muted);margin-bottom:2px}.roasts-table .row>div:first-child{grid-column:1 / -1;font-size:var(--fs-16);font-weight:var(--fw-medium)}.roasts-table .row>div:last-child{grid-column:1 / -1;text-align:end!important}}@media (max-width: 768px){.packaged-table>.row.head{display:none}.packaged-table>div>.row{grid-template-columns:1fr 1fr!important;gap:var(--s-2) var(--s-3);padding:var(--s-3)}.packaged-table>div>.row>div{text-align:start!important}.packaged-table>div>.row>div[data-label]:before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.4px;color:var(--c-muted);margin-bottom:2px}.packaged-table>div>.row>div:first-child{grid-column:1 / -1;font-size:var(--fs-16);font-weight:var(--fw-medium)}.packaged-table>div>.row>div:last-child{grid-column:1 / -1;justify-content:flex-start!important}}@media (max-width: 768px){.packaging-table .row.head{display:none}.packaging-table .row{grid-template-columns:1fr 1fr!important;gap:var(--s-2) var(--s-3);padding:var(--s-3)}.packaging-table .row>div{text-align:start!important}.packaging-table .row>div:first-child{display:none}.packaging-table .row>div[data-label]:before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.4px;color:var(--c-muted);margin-bottom:2px}.packaging-table .row>div:last-child{grid-column:1 / -1;text-align:end!important}}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--c-paper);border-inline-start:1px solid var(--c-line);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);height:100vh;position:sticky;top:0;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:var(--s-2);padding-bottom:var(--s-3);border-bottom:1px dashed var(--c-line);margin-bottom:var(--s-2)}.sidebar .brand .logo{width:28px;height:28px;border-radius:var(--r-sm);background:var(--c-accent-soft);border:1.5px solid var(--c-accent)}.sidebar .brand .name{font-weight:var(--fw-bold);font-size:var(--fs-14)}.nav-item{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);color:var(--c-ink-2);font-size:var(--fs-14);cursor:pointer;text-decoration:none;transition:background-color .12s}.nav-item:hover{background:var(--c-bg-2)}.nav-item:focus-visible,.nav-section-title:focus-visible{outline:2px solid var(--c-accent);outline-offset:-2px}.nav-item .dot{width:8px;height:8px;border-radius:3px;border:1.5px solid var(--c-line);flex:none}.nav-item.active{background:var(--c-accent-soft);color:var(--c-accent-ink);font-weight:var(--fw-medium)}.nav-groups{display:flex;flex-direction:column;gap:2px}.nav-section{display:flex;flex-direction:column;gap:1px}.nav-section+.nav-section{margin-top:var(--s-2)}.nav-section-title{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;cursor:pointer;font-family:inherit;text-align:start;font-size:10px;font-weight:var(--fw-bold);letter-spacing:.6px;color:var(--c-muted);text-transform:uppercase;padding:6px var(--s-3) 2px;border-radius:var(--r-md)}.nav-section-title:hover{color:var(--c-ink-2);background:var(--c-bg-2)}.nav-chevron{font-size:9px;line-height:1;transition:transform .12s;display:inline-block}.nav-chevron.collapsed{transform:rotate(-90deg)}.main{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3)}.page-head h1{margin:0;font-size:var(--fs-28);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.page-head p{margin:4px 0 0;color:var(--c-muted);font-size:var(--fs-14)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--s-6)}.login-card{width:100%;max-width:380px;background:var(--c-paper);border:1.5px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-8);box-shadow:var(--sh-2)}.login-card .brand{display:flex;align-items:center;gap:var(--s-3);justify-content:center;margin-bottom:var(--s-4)}.login-card .brand .logo{width:40px;height:40px;border-radius:var(--r-md);background:var(--c-accent-soft);border:1.5px solid var(--c-accent)}.login-card .brand .name{font-weight:var(--fw-bold);font-size:var(--fs-20)}.login-card .subtitle{text-align:center;color:var(--c-muted);font-size:var(--fs-12);margin-bottom:var(--s-6)}.login-card .err-banner{background:#fbecec;border:1px solid var(--c-bad);color:var(--c-bad);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-12);margin-bottom:var(--s-3)}.row-flex{display:flex;gap:var(--s-3)}.col-flex{display:flex;flex-direction:column;gap:var(--s-3)}.grow{flex:1}.divider{height:1px;background:var(--c-line)}.muted{color:var(--c-muted)}.tabular{font-variant-numeric:tabular-nums}.center{text-align:center}.spinner{width:16px;height:16px;border:2px solid var(--c-line);border-top-color:var(--c-accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.cmp-table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}.cmp-table thead th{background:var(--c-bg-2);color:var(--c-ink-2);font-weight:var(--fw-medium);font-size:var(--fs-12);padding:var(--s-2) var(--s-3);text-align:right;border-bottom:1.5px solid var(--c-line);white-space:nowrap}.cmp-table thead th.num{text-align:center}.cmp-table tbody td{padding:var(--s-3);border-bottom:1px solid var(--c-line);vertical-align:top}.cmp-table tbody td.num{text-align:center}.cmp-table tbody tr:hover{background:var(--c-bg)}.cmp-table tbody tr.highlight{background:var(--c-accent-soft)}.cmp-table tbody tr.highlight:hover{background:#ffdbb7}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-bottom:var(--s-3)}.form-grid-2>*{min-width:0}@media (max-width: 640px){.form-grid-2{grid-template-columns:1fr}}@media (max-width: 640px){.field input,.field select,.field textarea,input,select,textarea{font-size:16px}}.settings-tabs{display:flex;flex-wrap:wrap;gap:var(--s-2);border-bottom:1.5px solid var(--c-line);margin-bottom:var(--s-4)}.settings-tab{padding:10px 16px;border:none;background:transparent;color:var(--c-ink-2);font:inherit;font-weight:600;cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;transition:color .12s,border-color .12s}.settings-tab:hover{color:var(--c-ink)}.settings-tab.active{color:var(--c-accent);border-bottom-color:var(--c-accent)}.skip-link{position:absolute;inset-inline-start:-9999px;top:8px;background:var(--c-accent);color:#fff;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-14);font-weight:var(--fw-medium);text-decoration:none;z-index:1000}.skip-link:focus{inset-inline-start:8px}.mobile-topbar,.nav-backdrop{display:none}.hamburger{background:none;border:0;cursor:pointer;font-size:22px;line-height:1;color:var(--c-ink);padding:4px 8px;border-radius:var(--r-md)}.hamburger:hover{background:var(--c-bg-2)}@media (max-width: 768px){.app{grid-template-columns:1fr}.mobile-topbar{display:flex;align-items:center;gap:var(--s-2);position:sticky;top:0;z-index:40;background:var(--c-paper);border-bottom:1px solid var(--c-line);padding:var(--s-2) var(--s-3)}.mobile-topbar .mobile-brand{font-weight:var(--fw-bold);font-size:var(--fs-16)}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:260px;z-index:50;transform:translate(-110%);transition:transform .2s ease;box-shadow:var(--sh-2)}[dir=rtl] .sidebar{transform:translate(110%)}.sidebar.open{transform:translate(0)}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:45}.main{padding:var(--s-4)}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}:root{color-scheme:dark;--c-paper: rgba(255,255,255,.055);--c-surface: #271526;--c-bg: transparent;--c-bg-2: rgba(255,255,255,.1);--c-ink: #ffffff;--c-ink-2: rgba(255,255,255,.7);--c-muted: rgba(255,255,255,.45);--c-line: rgba(255,255,255,.12);--c-line-strong: rgba(255,255,255,.22);--c-accent: #FFB23E;--c-accent-soft: rgba(255,178,62,.16);--c-accent-ink: #FFC066;--c-good: #34D399;--c-warn: #FFC368;--c-bad: #FB7185;--r-md: 12px;--r-lg: 18px;--ros-base: #160e14;--ros-blur: 22px;--ros-shadow: 0 12px 40px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.07);--ros-accent-grad: linear-gradient(145deg,#FFC868,#F5912B);--ros-accent-sh: 0 6px 16px rgba(245,145,43,.4);--ros-scene: radial-gradient(1100px 700px at 88% -8%, rgba(255,150,40,.3), transparent 60%), radial-gradient(900px 700px at 4% 12%, rgba(155,124,255,.26), transparent 55%), radial-gradient(1000px 800px at 60% 110%, rgba(224,80,138,.2), transparent 60%), linear-gradient(135deg,#1c1016 0%,#22101d 45%,#180f1f 100%)}[data-theme=light]{color-scheme:light;--c-paper: rgba(255,255,255,.6);--c-surface: #ffffff;--c-bg: transparent;--c-bg-2: rgba(255,255,255,.78);--c-ink: #2A1812;--c-ink-2: rgba(42,24,18,.66);--c-muted: rgba(42,24,18,.48);--c-line: rgba(255,255,255,.8);--c-line-strong: rgba(160,120,70,.28);--c-accent: #F5912B;--c-accent-soft: rgba(255,178,62,.2);--c-accent-ink: #9A5A0B;--c-good: #0E9F6E;--c-warn: #B97A0C;--c-bad: #E11D48;--ros-base: #F7F1EA;--ros-shadow: 0 14px 38px rgba(120,70,30,.14), inset 0 1px 0 rgba(255,255,255,.85);--ros-scene: radial-gradient(1100px 700px at 88% -8%, rgba(255,178,80,.42), transparent 60%), radial-gradient(900px 700px at 4% 12%, rgba(168,140,255,.34), transparent 55%), radial-gradient(1000px 800px at 60% 110%, rgba(255,150,190,.3), transparent 60%), linear-gradient(135deg,#FBF4EC 0%,#F6EEF7 45%,#F1EEFB 100%)}html{background:var(--ros-base)}body{background:var(--ros-scene);background-attachment:fixed;color:var(--c-ink);min-height:100vh}.card,.kpi,.login-card,.table{background:var(--c-paper);-webkit-backdrop-filter:blur(var(--ros-blur));backdrop-filter:blur(var(--ros-blur));border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--ros-shadow)}.table .row{border-bottom-color:#80808024}.table .row.head{background:var(--c-bg-2)}.table .row.clickable:hover{background:#ffffff0d}.sidebar{background:var(--c-paper);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);border-inline-end:1px solid var(--c-line)}.sidebar .brand .logo{width:40px;height:40px;border-radius:12px;background:var(--ros-accent-grad);border:none;box-shadow:var(--ros-accent-sh)}.sidebar .brand .name{color:var(--c-ink);font-weight:700}.nav-item{border:1px solid transparent;border-radius:12px}.nav-item:hover{background:var(--c-paper);color:var(--c-ink)}.nav-item.active{background:linear-gradient(135deg,#ffb23e3d,#ffb23e0d);color:var(--c-ink);border-color:#ffb23e66;font-weight:700}.nav-item.active .dot{background:var(--c-accent);border-color:var(--c-accent)}.btn{background:var(--c-paper);border:1px solid var(--c-line);color:var(--c-ink);border-radius:var(--r-md)}.btn:hover{background:var(--c-bg-2)}.btn.primary{background:var(--ros-accent-grad);color:#2a160a;border:none;box-shadow:var(--ros-accent-sh)}.btn.primary:hover{background:var(--ros-accent-grad);filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--c-bg-2)}.kpi{padding:var(--s-4) var(--s-4)}.kpi .label{color:var(--c-ink-2)}.kpi .value{color:var(--c-ink)}.kpi.accent .value{color:var(--c-accent-ink)}.tag{background:var(--c-bg-2);border-color:var(--c-line);color:var(--c-ink-2)}.tag.accent{background:var(--c-accent-soft);border-color:#ffb23e66;color:var(--c-accent-ink)}.tag.good{background:#34d9c029;border-color:#34d9c066;color:#7fe9da}.tag.warn{background:#ffb23e29;border-color:#ffb23e66;color:var(--c-accent-ink)}[data-theme=light] .tag.good{color:#0e7d6b}.field input,.field select,.field textarea{background:var(--c-paper);border:1.5px solid var(--c-line-strong);color:var(--c-ink);border-radius:var(--r-md)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-accent)}select,.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b99' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;padding-left:32px}.settings-tab.active{color:var(--c-accent-ink);border-bottom-color:var(--c-accent)}.divider{background:var(--c-line)}.skip-link{background:var(--c-accent);color:#2a160a}.btn.theme-toggle{height:28px;padding:0 9px;font-size:14px}@media print{html,body{background:#fff!important;color:#000!important}.card,.kpi,.table{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}}
