:root{font-family:Inter,Segoe UI,sans-serif;color:#17231f;background:#f5f7f6}.title,.actions,.filters,.scanner,.pager{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.title{justify-content:space-between}.button{display:inline-block;background:#176b52;color:#fff;text-decoration:none;padding:.65rem 1rem;border-radius:.45rem}.button.secondary{background:#e8eeec;color:#173d32}.narrow{max-width:850px}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.grid-form .actions{grid-column:1/-1}.table{overflow:auto;background:#fff;border-radius:.6rem;border:1px solid #dfe7e4}.table table{width:100%;border-collapse:collapse}.table th,.table td{padding:.7rem;text-align:left;border-bottom:1px solid #e8eeec;vertical-align:top}.table small{display:block;color:#587068}.badge{display:inline-block;margin:.2rem;padding:.15rem .4rem;border-radius:999px;font-size:.75rem}.badge.ok{background:#dff5e9}.badge.off{background:#e8eceb}.badge.warn{background:#fff0c2}.badge.danger{background:#ffdeda;color:#852a20}.filters,.scanner{background:#fff;padding:.8rem;border-radius:.6rem;margin:1rem 0}.filters input,.filters select,.scanner input{width:auto;margin:0}.link{border:0;background:none;color:#176b52;padding:0}.notice,.empty{padding:1rem;background:#eef7f4;border-radius:.5rem}.pager{justify-content:center;margin:1rem}.details{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1rem;background:#fff;padding:1rem;border-radius:.6rem}.details dt{font-weight:700}.details dd{margin:0}.result{display:block;width:100%;text-align:left;margin:.3rem 0;background:#eef7f4;color:#173d32}@media(max-width:700px){.grid-form{grid-template-columns:1fr}.table table{min-width:760px}.filters>*{width:100%!important}}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:0;border-radius:9px;padding:11px 16px;background:#087f5b;color:#fff;font-weight:700;cursor:pointer}button.secondary{background:#e8efec;color:#29473d}input{padding:12px;border:1px solid #dce5e1;border-radius:9px;width:100%}.auth,.center{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#dcf3eb,#f6f8f7 60%)}.auth section,.center section{background:#fff;padding:32px;border-radius:16px;width:min(520px,100%);box-shadow:0 14px 45px #14352a18}.logo{width:48px;height:48px;border-radius:12px;background:#15966f;color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800}.auth form{display:grid;gap:12px}.password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.password-toggle{min-width:86px;padding-inline:.75rem;background:#e8efec;color:#29473d}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.report-card{min-height:190px;display:flex;flex-direction:column;gap:.6rem;padding:1.1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);text-decoration:none}.report-card:hover{border-color:#8fcab7;transform:translateY(-1px)}.report-card h2,.report-card p{margin:0}.report-card p{color:var(--color-muted);line-height:1.5}.report-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#e7f5ef;color:var(--color-accent);font-weight:800}.report-action{margin-top:auto;color:var(--color-accent-dark);font-weight:750}.error{background:#fff0ed;color:#a23b32;padding:12px;border-radius:8px;margin:12px 0}.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.app aside{background:#102b24;color:#fff;position:fixed;inset:0 auto 0 0;width:240px;display:flex;flex-direction:column;padding:20px}.brand{font-size:20px;font-weight:800}.brand small,footer small{display:block;color:#a8c0b7;font-size:11px;margin-top:3px}.app nav{flex:1;margin-top:30px}.app nav a{display:block;padding:11px;color:#d5e5df;text-decoration:none;border-radius:8px}.app nav a.active{background:#ffffff14;color:#fff}footer{display:grid;gap:9px}.main{grid-column:2}.offline-banner{position:sticky;top:0;z-index:20;padding:.65rem 1rem;background:#fff4d6;border-bottom:1px solid #d69e2e;color:#6b4600;font-weight:700;text-align:center}.main>header{height:64px;background:#fff;border-bottom:1px solid #e1e8e4;display:flex;justify-content:space-between;align-items:center;padding:0 25px}.page{padding:28px}.card{background:#fff;border:1px solid #e2e8e5;border-radius:12px;padding:22px}@media(max-width:700px){.app{display:block}.app aside{transform:translate(-100%);transition:.2s;z-index:5}.app aside.open{transform:none}.main{grid-column:auto}}.denominations{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0}.denominations strong{align-self:end}.pos-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.4fr);gap:20px}.cart-line{display:grid;grid-template-columns:1fr 75px 110px 40px;align-items:center;gap:8px;margin:8px 0}.receipt-head{display:grid;gap:4px;margin:18px 0}.notice{background:#e8f7f1;color:#146b50;padding:12px;border-radius:8px;margin:12px 0}@media(max-width:900px){.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-grid{grid-template-columns:1fr}.cart-line{grid-template-columns:1fr 65px 95px 38px}}.serialized-receiving{max-width:1100px}.receiving-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;position:sticky;top:0;z-index:2;background:var(--surface, #fff);padding:.75rem;border:1px solid #dbe3ea;border-radius:.65rem}.receiving-progress div{display:grid;gap:.2rem}.receiving-progress strong{font-size:1.35rem}.receiving-scanner{margin-block:1rem}.receiving-scanner input{font-size:1.15rem;min-height:3rem}.receiving-adjust{display:flex;align-items:end;gap:.75rem}.receiving-scans{max-height:19rem;overflow:auto;border:1px solid #dbe3ea;border-radius:.65rem;padding:.75rem}.receiving-import{margin-block:1rem;display:grid;gap:.65rem}.receiving-import textarea{width:100%;resize:vertical}.serialized-return-units{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.5rem}.serialized-return-units .scanner{flex:1 1 100%}.receiving-scans ul{list-style:none;margin:0;padding:0}.receiving-scans li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem;border-bottom:1px solid #edf1f4}.receiving-actions{position:sticky;bottom:0;background:var(--surface, #fff);padding-block:.75rem}.serialized-cart-units{grid-column:1 / -1;overflow-wrap:anywhere;color:#52606d}.queue-unit-barcodes{display:block;max-width:22rem;overflow-wrap:anywhere;margin-top:.25rem}@media(max-width:700px){.receiving-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.receiving-adjust{align-items:stretch;flex-direction:column}}@media print{.app aside,.main>header,.print-sheet .title button{display:none!important}.app,.main{display:block!important}.page{padding:0}.print-sheet{color:#000}.print-sheet .table{overflow:visible}body{background:#fff}}.camera{width:min(620px,95vw)}.camera video{width:100%;max-height:60vh;background:#111}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(460px,95vw);background:#fff;padding:24px;box-shadow:-8px 0 30px #0003;z-index:20;overflow:auto}.temporary-password{display:block;font-size:1.4rem;padding:16px;background:#f3f4f6;margin:12px 0;-webkit-user-select:all;user-select:all}.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(40mm,1fr));gap:4mm}.product-label{width:40mm;height:30mm;border:1px dashed #aaa;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:1mm;text-align:center}.product-label svg{max-width:38mm;height:12mm}.product-label .label-linear-barcode{width:min(100%,260px);height:auto;max-height:68px;margin:.2rem auto;display:block;overflow:visible}.label-barcode-value{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;letter-spacing:.04em;background:transparent;color:#000;overflow-wrap:anywhere}.label-barcode-error{color:#9b2c2c;font-size:.75rem;font-weight:650}.product-label img{width:12mm;height:12mm}.size-50-30 .product-label{width:50mm;height:30mm}:root{--color-bg: #f4f7f6;--color-surface: #fff;--color-text: #17231f;--color-muted: #60736c;--color-border: #dce5e1;--color-accent: #087f5b;--color-accent-dark: #075f46;--radius-sm: 8px;--radius-md: 12px;--shadow-sm: 0 1px 3px #102b2410, 0 8px 24px #102b2408}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{overflow:hidden;background:var(--color-bg);color:var(--color-text)}button,input,select,textarea{font:inherit}input,select,textarea{min-height:42px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);padding:.65rem .75rem}textarea{width:100%;min-height:96px}button,.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}:focus-visible{outline:3px solid #4bbf9a;outline-offset:2px}.app{height:100dvh;min-height:0;overflow:hidden;grid-template-columns:252px minmax(0,1fr)}.app aside{position:relative;inset:auto;width:auto;min-height:0;height:100dvh;overflow:hidden;padding:0;z-index:40}.brand{flex:0 0 auto;padding:1.15rem 1.15rem .9rem;border-bottom:1px solid #ffffff12}.app nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:.65rem;scrollbar-width:thin;scrollbar-color:#ffffff35 transparent}.app nav a{min-height:42px;display:flex;align-items:center;margin:2px 0;padding:.55rem .75rem;border-left:3px solid transparent}.app nav a:hover{background:#ffffff0d;color:#fff}.app nav a.active{background:#ffffff16;border-left-color:#62d5af;box-shadow:inset 0 0 0 1px #ffffff0b}.app aside footer{flex:0 0 auto;padding:.9rem 1rem 1rem;border-top:1px solid #ffffff12;background:#0c241e}.app aside footer button{width:100%}.main{grid-column:2;min-width:0;min-height:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.main>header{flex:0 0 54px;height:54px;padding:0 1.25rem;position:relative;z-index:15}.page-scroll{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.offline-banner{flex:0 0 auto;position:relative;top:auto;padding:.5rem 1rem;font-size:.9rem}.menu-toggle{display:none;width:42px;padding:0;background:#e8efec;color:#173d32}.topbar-title{font-weight:800}.connection-status{margin-left:auto;color:var(--color-muted);font-size:.875rem}.scanner-toggle{min-height:34px;padding:.35rem .65rem;font-size:.8rem;white-space:nowrap}.scanner-warning{flex:0 0 auto;padding:.55rem 1rem;background:#fff3cd;color:#6b4e00;border-bottom:1px solid #ead58b}.scanner-status{display:inline-flex;align-items:center;min-height:34px;margin:.35rem 0 .75rem;padding:.35rem .7rem;border:1px solid #b9ddd1;border-radius:999px;background:#edf8f4;color:#075f46;font-size:.85rem;font-weight:700}.page{width:100%;max-width:1600px;margin:0 auto;padding:1.35rem clamp(1rem,2vw,1.75rem) 2rem}.page h1{margin:0;font-size:clamp(1.45rem,2vw,1.85rem);line-height:1.2}.page h2{margin:0;font-size:1.1rem}.page-header,.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-header p,.section-header p{margin:.3rem 0 0;color:var(--color-muted)}.card,.section-card,.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card{padding:1rem}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem}.metric-card{min-height:106px;padding:1rem;display:flex;flex-direction:column;justify-content:space-between;gap:.65rem}.metric-label{color:var(--color-muted);font-size:.84rem;font-weight:650;line-height:1.3}.metric-value{display:block;font-size:clamp(1.18rem,1.8vw,1.55rem);line-height:1.2;font-variant-numeric:tabular-nums}.section-card{padding:1rem}.section-header{margin-bottom:.75rem}.activity-list{display:grid}.activity-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #edf1ef}.empty-state,.loading-state{padding:1.25rem;border:1px dashed #cbd8d3;border-radius:var(--radius-sm);color:var(--color-muted);text-align:center;background:#fafcfb}.error-state{display:grid;gap:.3rem}.filters,.scanner{display:flex;align-items:end;gap:.65rem;padding:.75rem;margin:.85rem 0;border:1px solid var(--color-border);box-shadow:none}.table{max-width:100%;box-shadow:var(--shadow-sm)}.table th,.table td,.data-table th,.data-table td{padding:.6rem .7rem}.table th,.data-table th{font-size:.78rem;color:var(--color-muted);background:#f8faf9}.pos-grid{grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:1rem;align-items:start}.pos-grid>section{min-width:0}.pos-grid .result{min-height:44px;margin:.25rem 0;padding:.65rem .75rem}.cart-line{min-height:44px}.cart-line input{min-height:40px;padding:.4rem}.pos-grid h2:last-of-type{font-size:1.45rem;padding:.8rem 0;border-top:1px solid var(--color-border)}.sidebar-overlay{display:none}@media(max-width:1200px){.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.app{display:block}.app aside{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);transform:translate(-105%);transition:transform .18s ease;box-shadow:12px 0 35px #061a1455}.app aside.open{transform:translate(0)}.main{grid-column:auto;width:100%}.menu-toggle{display:inline-flex}.sidebar-overlay{display:block;position:fixed;inset:0;z-index:35;width:100%;height:100%;min-height:0;padding:0;border-radius:0;background:#061a1470}.pos-grid{grid-template-columns:1fr}}@media(max-width:600px){.report-grid{grid-template-columns:1fr}.page{padding:1rem .75rem 1.5rem}.metrics{grid-template-columns:1fr;gap:.65rem}.metric-card{min-height:88px}.page-header,.section-header{align-items:stretch;flex-direction:column}.page-header .button{width:100%}.connection-status{display:none}.filters>*{width:100%!important}.cart-line{grid-template-columns:minmax(0,1fr) 62px 82px 40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.labels-page .title{display:none!important}.labels{display:grid!important;gap:0}.product-label{break-inside:avoid;border:0}.print-sheet{width:100%;max-width:none}.receipt-58{width:58mm}.receipt-80{width:80mm}}.scanner-unknown{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#0f172a73}.scanner-unknown .section-card{width:min(30rem,100%)}.receiving-scanner input{flex:1 1 18rem}.receiving-confirm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:end}.receiving-confirm>div:not(.form-actions),.receiving-confirm>label{display:grid;gap:.35rem}.receiving-confirm span{color:var(--muted, #64748b);font-size:.875rem}.receiving-confirm .form-actions{grid-column:1 / -1}@media(max-width:700px){.receiving-confirm{grid-template-columns:1fr}}.connection-diagnostics{margin-top:1rem;text-align:left}.connection-diagnostics dl{display:grid;grid-template-columns:minmax(9rem,.8fr) minmax(0,1.4fr);gap:.4rem 1rem;font-size:.82rem}.connection-diagnostics dt{color:var(--muted, #64748b)}.connection-diagnostics dd{margin:0;overflow-wrap:anywhere}.inline-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.barcode-field{grid-column:1 / -1}.product-form{width:min(100%,960px);margin-inline:auto;padding-bottom:5.5rem}.product-form>label,.product-form>details,.form-section-card{background:#fff;border:1px solid var(--color-border, #dfe7e4);border-radius:12px;padding:1rem}.product-form label{display:grid;gap:.45rem;font-weight:650;min-width:0}.product-form label small{font-weight:400;color:var(--muted, #587068)}.form-section-title{grid-column:1 / -1;margin:.75rem 0 -.35rem;font-size:1.05rem;color:#173d32}.barcode-field input{width:100%;min-height:44px}.barcode-field .inline-actions>button:nth-child(4),.barcode-field .inline-actions>button:nth-child(5){display:none}.field-error{color:#a3362a!important}.stock-toggle{display:flex!important;flex-direction:row;align-items:center;gap:.65rem!important;min-height:44px}.stock-toggle input[type=checkbox]{appearance:none;width:42px;height:24px;min-height:24px;padding:0;margin:0;border:1px solid #8fa39c;border-radius:999px;background:#dfe7e4;position:relative;flex:0 0 auto}.stock-toggle input[type=checkbox]:after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .12s ease}.stock-toggle input[type=checkbox]:checked{background:#087f5b;border-color:#087f5b}.stock-toggle input[type=checkbox]:checked:after{transform:translate(18px)}.stock-toggle input[type=checkbox]:focus-visible{outline:3px solid #74c0a8;outline-offset:2px}.product-form-actions{position:sticky;bottom:0;z-index:5;grid-column:1 / -1;justify-content:flex-end;padding:.8rem;background:#fffffff5;border:1px solid var(--color-border, #dfe7e4);border-radius:12px;box-shadow:0 -5px 18px #17231f14}.product-form-actions>button:first-child{display:none}@media(max-width:700px){.product-form-actions>button{flex:1 1 100%}.product-form{padding-bottom:7rem}}.receipt-document{margin:0 auto;padding:1.25rem;background:#fff;color:#111}.receipt-format-thermal .receipt-document{width:80mm;max-width:100%;font-size:12px}.receipt-format-a4 .receipt-document{width:210mm;max-width:100%}.receipt-logo{display:block;width:72px;height:72px;object-fit:contain;margin:0 auto .4rem}.receipt-head{text-align:center;display:grid;gap:.2rem}.receipt-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:1rem 0}.receipt-meta dd{margin:0;text-align:right}.receipt-grand-total{font-size:1.12em;font-weight:800;border-top:2px solid currentColor;padding-top:.5rem}.receipt-footer{margin-top:1.25rem;text-align:center}.receipt-footer p{margin:.2rem}.product-label span{overflow-wrap:anywhere}.label-format-a4{grid-template-columns:repeat(3,minmax(0,1fr))}@page thermal-receipt{size:80mm auto;margin:2mm}@page a4-receipt{size:A4;margin:12mm}@media print{body *{visibility:hidden!important}.receipt-document,.receipt-document *,.labels,.labels *{visibility:visible!important}.receipt-document,.labels{position:absolute;inset:0 auto auto 0}.receipt-format-thermal .receipt-document{page:thermal-receipt;width:76mm;padding:0}.receipt-format-a4 .receipt-document{page:a4-receipt;width:100%;padding:0}.receipt-document table{width:100%;table-layout:fixed}.receipt-document td,.receipt-document th{overflow-wrap:anywhere}.receipt-document tr,.receipt-document .details{break-inside:avoid}}
