:root{--navy:#102b52;--navy2:#071d3e;--red:#c72d26;--violet:#6544bd;--bg:#f4f6fa;--line:#dfe5ee;--text:#16233a;--muted:#657188;--green:#12833b;--danger:#c92727}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--violet);text-decoration:none}.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy),var(--navy2));color:#fff;padding:20px 14px;display:flex;flex-direction:column}.brand{color:#fff;text-align:center;font-weight:750;font-size:12px;line-height:1.4;padding:0 6px 24px}.brand img{display:block;width:180px;height:88px;object-fit:contain;background:#fff;border-radius:12px;margin:0 auto 10px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:#e8eef8;padding:12px 14px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:linear-gradient(90deg,var(--violet),#795ad2);color:#fff}.sidebar nav a[aria-disabled=true]{opacity:.6}.sidebar small{font-size:9px}.logout-form{margin-top:auto}.logout-form button{width:100%;color:#fff;border:1px solid #ffffff33;background:transparent;border-radius:8px;padding:10px;cursor:pointer}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar strong,.topbar span{display:block}.topbar span{color:var(--muted);font-size:12px;margin-top:3px}.user-pill{background:#eef1f6;border-radius:22px;padding:9px 14px;font-size:13px}.content{padding:28px;max-width:1500px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-heading h1{font-size:28px;margin:0 0 5px}.page-heading p{margin:0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metrics article,.product-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 5px 20px #14254a0a}.metrics span,.product-summary span{display:block;color:var(--muted);font-size:13px;margin-bottom:12px}.metrics strong,.product-summary strong{font-size:24px}.metrics .muted{font-size:16px;color:var(--muted)}.danger{color:var(--danger)}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;box-shadow:0 5px 20px #14254a0a}.panel-heading{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-heading h2{font-size:17px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc}.empty{text-align:center;color:var(--muted);padding:32px}code{background:#f0edf9;color:#5233aa;border-radius:5px;padding:3px 6px}.badge,.status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#eef1f6;color:var(--muted)}.badge.in,.status.good{background:#e7f7ec;color:var(--green)}.badge.out{background:#fdeaea;color:var(--danger)}.search-row{display:flex;gap:10px;padding:18px}.search-row input,.login-card input{width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:12px 14px;font:inherit;background:#fff}.button{border:0;border-radius:8px;padding:12px 18px;font-weight:700;cursor:pointer}.button.primary{background:var(--red);color:#fff}.button.full{width:100%;margin-top:18px}.product-summary{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;margin-bottom:20px}.product-summary strong{font-size:16px}.alert{padding:12px 14px;background:#fff1d7;color:#765014;border:1px solid #f3d89c;border-radius:8px;margin-bottom:16px}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,var(--navy2),var(--navy))}.login-card{width:min(420px,calc(100% - 28px));background:#fff;padding:34px;border-radius:18px;box-shadow:0 24px 60px #0004}.login-card img{display:block;width:210px;height:105px;object-fit:contain;margin:auto}.login-card h1{text-align:center;margin:12px 0 5px}.login-card p{text-align:center;color:var(--muted);margin:0 0 24px}.login-card label{display:block;font-size:12px;font-weight:700;margin:14px 0 6px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(2,1fr)}.brand img{width:150px}.metrics{grid-template-columns:repeat(2,1fr)}.product-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.content{padding:16px}.topbar{padding:0 16px}.topbar strong{font-size:12px}.metrics,.product-summary{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr}.page-heading{align-items:flex-start;gap:10px}.search-row{flex-direction:column}}
.label-sheet{display:grid;place-items:center;padding:24px}.product-label-card{width:420px;background:#fff;border:2px solid var(--navy);padding:18px;text-align:center}.label-company{font-weight:800;color:var(--navy);font-size:12px}.product-label-card h2{font-size:18px;margin:10px 0}.label-price{font-size:30px;font-weight:900;color:var(--red)}.label-codes{display:flex;align-items:center;justify-content:center;gap:10px}.barcode-image{width:270px;max-height:110px;object-fit:contain}.qr-image{width:95px;height:95px}.label-meta{font-size:12px;font-weight:700;margin-top:6px}@media print{.sidebar,.topbar,.no-print{display:none!important}.app-shell{display:block}.content{padding:0}.label-sheet{padding:0}.product-label-card{break-inside:avoid}}@media(max-width:560px){.product-label-card{width:100%}.label-codes{flex-direction:column}}
.import-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px}.import-form{padding:20px}.import-form label{display:block;font-weight:750;margin-bottom:8px}.import-form input[type=file]{display:block;width:100%;padding:14px;border:1px dashed #aeb9c9;border-radius:9px;background:#fafbfc;margin-bottom:12px}.helptext,.form-help{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin:6px 0 14px}.button.secondary{display:inline-block;background:#eef1f6;color:var(--navy)}.button.success{background:var(--green);color:#fff}.button[disabled]{opacity:.5;cursor:not-allowed}.status.ready{background:#e7f7ec;color:var(--green)}.status.error,.status.failed{background:#fdeaea;color:var(--danger)}.status.imported{background:#ebe6fb;color:#5030aa}.status.validated{background:#fff1d7;color:#765014}.validation-list{margin:0;padding-left:18px;white-space:normal;min-width:220px}.validation-list li{margin:3px 0}.text-danger{color:var(--danger)}.text-warning{color:#8b650b}.confirm-box{padding:20px;background:#f5fbf7;border-top:1px solid #d8eddf}.confirm-box p{margin-top:0}.file-rules{padding:20px}.file-rules h3{margin-top:0}.file-rules ol{padding-left:20px;color:var(--muted);line-height:1.6}.form-errors{color:var(--danger);margin:8px 0;padding-left:20px}@media(max-width:900px){.import-grid{grid-template-columns:1fr}}
.search-row select,.erp-form input,.erp-form select,.erp-form textarea,.scan-form input,.product-search input,.checkout-form select,.formset-table input,.formset-table select,.import-form input[type=number]{width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:11px 12px;font:inherit;background:#fff}.form-panel{padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field label,.scan-form label{display:block;font-size:12px;font-weight:750;margin-bottom:6px}.field-error{display:block;color:var(--danger);font-size:12px;margin-top:5px}.check-field{display:flex;gap:9px;align-items:center}.check-field input{width:auto}.check-field label{margin:0;order:2}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:22px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.8fr);gap:20px;align-items:start}.scan-panel{padding:18px}.scan-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px;align-items:end}.product-search{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.product-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.product-cards article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:12px;box-shadow:0 4px 14px #14254a0a}.product-cards h3{font-size:14px;margin:8px 0 4px}.product-cards span{color:var(--muted);font-size:12px}.product-cards>article>strong{font-size:20px;color:var(--red)}.cart-panel{position:sticky;top:16px}.cart-lines{padding:0 18px}.cart-line{display:grid;grid-template-columns:minmax(0,1fr) 78px 85px 28px;gap:8px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.cart-line strong,.cart-line small{display:block}.cart-line small{color:var(--muted);font-size:10px;margin-top:4px}.cart-line input{width:100%;border:1px solid #cfd7e3;border-radius:7px;padding:8px}.cart-line>span{text-align:right;font-weight:750}.cart-line>button,.link-button{border:0;background:transparent;color:var(--danger);cursor:pointer;font-weight:800}.link-button{padding:12px 18px;color:var(--violet)}.cart-total{display:flex;justify-content:space-between;align-items:center;padding:18px;border-top:1px solid var(--line)}.cart-total strong{font-size:28px;color:var(--red)}.checkout-form{padding:0 18px 18px;display:grid;gap:12px}.receipt-shell{max-width:900px;margin:auto}.receipt{padding:24px}.receipt-header{display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid var(--navy);padding-bottom:16px}.receipt-header h1{margin:0}.receipt-header p{color:var(--muted);margin:4px 0}.receipt-party{display:grid;gap:5px;padding:18px 0}.receipt-totals{margin-left:auto;width:min(330px,100%);padding:18px;display:grid;gap:9px}.receipt-totals span{display:flex;justify-content:space-between}.receipt-totals .grand{font-size:20px;padding-top:9px;border-top:2px solid var(--navy)}.receipt-actions{display:flex;justify-content:flex-end;gap:10px}.formset-table select{min-width:260px}.formset-table input{min-width:115px}@media(max-width:1100px){.pos-layout{grid-template-columns:1fr}.cart-panel{position:static}.product-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.form-grid,.product-cards{grid-template-columns:1fr}.scan-form{grid-template-columns:1fr 100px}.scan-form .button{grid-column:1/-1}.cart-line{grid-template-columns:minmax(0,1fr) 75px 75px 26px}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%;text-align:center}}@media print{.receipt{border:0;box-shadow:none}.receipt-shell{max-width:none}}
.quick-actions{display:flex;align-items:center;gap:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);gap:20px;align-items:start}.sunat-summary{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff8e7;color:#765014}.sunat-summary strong{font-size:22px}@media(max-width:1100px){.dashboard-grid{grid-template-columns:1fr}}@media(max-width:560px){.quick-actions{align-items:flex-end;flex-direction:column}}
.user-actions{display:flex;align-items:center;gap:8px}.mobile-logout{display:none}.mobile-logout button{border:0;background:#eef1f6;color:var(--navy);border-radius:8px;padding:9px 11px;font-weight:700}@media(max-width:900px){.sidebar{display:block;padding:10px 14px}.brand{display:flex;align-items:center;text-align:left;padding:0 0 9px;font-size:10px}.brand img{width:82px;height:43px;margin:0 10px 0 0;border-radius:8px}.sidebar nav{display:flex;grid-template-columns:none;gap:4px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.sidebar nav a{flex:0 0 auto;white-space:nowrap;padding:9px 11px;font-size:13px}.sidebar small{display:none}.logout-form{display:none}.mobile-logout{display:block}}@media(max-width:560px){.sidebar nav{display:flex;grid-template-columns:none}.topbar{height:62px}.user-pill{font-size:11px;padding:8px 10px}}
.user-pill{color:var(--navy);font-weight:700}.password-panel{max-width:720px}.password-grid{grid-template-columns:1fr}.password-grid ul{margin:7px 0 0;padding-left:18px;color:var(--muted);font-size:12px}
.security-link{font-size:12px;font-weight:750;color:var(--green);margin-right:10px}.mfa-setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mfa-step{padding:24px;display:grid;justify-items:center;text-align:center;gap:14px}.mfa-step h2{margin:0 0 8px}.mfa-step p{margin:0;color:var(--muted)}.step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800}.mfa-qr{width:230px;height:230px;image-rendering:pixelated}.manual-secret{display:block;word-break:break-all;margin-top:10px;padding:10px}.mfa-step .erp-form{width:100%;text-align:left}.recovery-panel{max-width:720px;padding:24px}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.recovery-codes code{font-size:16px;text-align:center;padding:12px}.table-actions{display:flex;gap:6px;align-items:center}.table-actions form{margin:0}@media(max-width:760px){.mfa-setup-grid,.recovery-codes{grid-template-columns:1fr}.security-link{display:none}}
.dashboard-grid table{font-size:12px}.dashboard-grid th,.dashboard-grid td{padding:11px 10px}.dashboard-grid td:nth-child(3){white-space:normal;min-width:150px}
.count-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:20px}.count-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.count-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.count-summary strong{font-size:20px}.progress-track{height:8px;background:#e8edf4;border-radius:99px;overflow:hidden;margin-top:10px}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--violet),#9278e0)}.count-cards{display:grid;gap:10px;padding:0 18px 18px}.count-cards article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:15px;background:#fff}.count-cards article.counted{border-color:#b8dfc5;background:#f7fcf8}.count-product h3{margin:6px 0 4px;font-size:15px}.count-product small{color:var(--muted)}.location{display:inline-flex;background:#eef1f6;color:var(--navy);font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;margin-right:7px}.count-entry{display:flex;align-items:end;gap:8px}.count-entry label{font-size:11px;font-weight:750}.count-entry input{display:block;width:125px;border:1px solid #cfd7e3;border-radius:8px;padding:10px;margin-top:5px;font:inherit}.count-result{text-align:right}.count-result span{display:block;color:var(--muted);font-size:11px}.count-result strong{font-size:22px}@media(max-width:700px){.count-summary{grid-template-columns:1fr}.count-cards article{grid-template-columns:1fr}.count-entry{display:grid;grid-template-columns:1fr auto}.count-entry input{width:100%}}
.report-filter{display:flex;gap:12px;align-items:end;padding:18px}.report-filter input{border:1px solid #cfd7e3;border-radius:8px;padding:10px;font:inherit}.report-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}@media(max-width:900px){.report-grid{grid-template-columns:1fr}}@media(max-width:560px){.report-filter{display:grid;grid-template-columns:1fr}.quick-actions{width:100%}.quick-actions .button{width:100%;text-align:center}}
.row-actions,.receipt-statuses{display:flex;gap:10px;align-items:center}.field-wide{grid-column:1/-1}.danger-button{background:var(--danger);color:#fff}.cancellation-panel{border-color:#f0b7b7}.cancellation-note{display:grid;gap:5px;margin:16px 0;background:#fdeaea;color:#8b1e1e;border-color:#f0b7b7}.cancellation-help{padding:20px}.import-form .field{margin-bottom:14px}.import-form select,.import-form textarea{width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:11px 12px;font:inherit;background:#fff}@media(max-width:560px){.row-actions{display:grid}.receipt-statuses{align-items:flex-end;flex-direction:column}}

.master-data-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.master-data-control .button{white-space:nowrap;padding:10px 12px}.master-data-dialog{width:min(520px,calc(100% - 24px));border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px #07142655}.master-data-dialog::backdrop{background:#071426aa;backdrop-filter:blur(2px)}.master-data-dialog-body{padding:22px;display:grid;gap:17px}.master-data-dialog-header{display:flex;justify-content:space-between;gap:16px;align-items:start}.master-data-dialog-header h2{margin:0 0 4px}.master-data-dialog-header p{margin:0;color:var(--muted)}.dialog-close{border:0;background:#edf1f7;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.master-data-dialog input[type=text],.master-data-dialog input:not([type]){width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:11px 12px;font:inherit}.unit-master-fields{display:grid;gap:14px}.master-data-checkbox{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:650}.master-data-checkbox input{width:auto}.master-data-dialog .form-actions{padding-top:4px}.form-section-heading{border-top:1px solid var(--line);padding-top:18px;margin-top:4px}.form-section-heading h2{font-size:17px;margin:0 0 5px}.form-section-heading p{color:var(--muted);font-size:13px;margin:0}@media(max-width:700px){.master-data-control{grid-template-columns:1fr}.master-data-control .button{width:100%}.master-data-dialog .form-actions{display:grid}.master-data-dialog .form-actions .button{width:100%}}
.customer-combobox{position:relative}.customer-label-row{display:flex;justify-content:space-between;align-items:center}.customer-label-row a{font-size:12px;font-weight:750}.customer-results{position:absolute;z-index:20;left:0;right:0;top:66px;background:#fff;border:1px solid #bbc6d5;border-radius:10px;box-shadow:0 16px 36px #14254a2b;max-height:280px;overflow:auto}.customer-option{display:grid;width:100%;gap:4px;text-align:left;border:0;border-bottom:1px solid var(--line);padding:12px 14px;background:#fff;color:var(--text);cursor:pointer}.customer-option:last-child{border-bottom:0}.customer-option:hover,.customer-option.active{background:#f0edf9}.customer-option span,.selected-customer,.customer-combobox small{font-size:11px;color:var(--muted)}.selected-customer{padding:8px 10px;margin-top:6px;background:#eef8f1;color:var(--green);border-radius:7px}.customer-empty{padding:16px;text-align:center;color:var(--muted);font-size:12px}
.sunat-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:start}.readiness-list{display:grid}.readiness-list article{display:flex;gap:12px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}.readiness-list article div{display:grid;gap:4px}.readiness-list small{color:var(--muted)}.readiness-icon{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#fff1d7;color:#765014;font-weight:900}.readiness-icon.ok{background:#e7f7ec;color:var(--green)}.endpoint-note{display:grid;gap:8px;padding:16px 20px}.endpoint-note code{white-space:normal;word-break:break-all}.compact-heading{margin:-22px -22px 20px}.security-callout{display:flex;justify-content:space-between;align-items:center;padding:20px;border-color:#cfc4ef}.security-callout h2{font-size:16px;margin:0 0 6px}.security-callout p{color:var(--muted);margin:0;max-width:780px}.security-callout code{white-space:normal;word-break:break-all}@media(max-width:1000px){.sunat-grid{grid-template-columns:1fr}}@media(max-width:700px){.security-callout{align-items:flex-start;display:grid;gap:14px}}
.sunat-action-panel{border-color:#bfcde0}.sunat-action-panel .panel-heading>div p{margin:4px 0 0;color:var(--muted);font-size:12px}.sunat-action-body{padding:20px;display:grid;gap:14px}.sunat-button{background:#183f75;color:#fff;font-size:15px;width:100%}.sunat-warning{display:grid;gap:5px;padding:14px;background:#fff8e7;border:1px solid #efd9a4;border-radius:9px;color:#765014}.sunat-warning span{font-size:12px;line-height:1.45}.sunat-result{display:flex;justify-content:space-between;padding:15px;border-radius:9px}.good-result{background:#e7f7ec;color:var(--green)}.sunat-attempt{display:grid;gap:4px;color:var(--muted);font-size:12px}
.seller-shell .sidebar{background:linear-gradient(180deg,#123966,#071d3e)}.seller-shell .sidebar nav a:hover,.seller-shell .sidebar nav a.active{background:linear-gradient(90deg,#c72d26,#e24b42)}.access-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.access-summary>span{display:grid;gap:6px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px}.access-summary strong{color:var(--navy);font-size:15px}.role-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eef1f6;color:var(--navy)}.role-admin{background:#ebe6fb;color:#5030aa}.role-cashier{background:#e7f7ec;color:var(--green)}.compact-button{padding:8px 11px}@media(max-width:800px){.access-summary{grid-template-columns:1fr}}
.receipt-actions form{margin:0}.sunat-quick-button{background:#183f75;color:#fff}.sunat-accepted-button{background:#e7f7ec;color:var(--green)}.sunat-ready-note{display:grid;gap:5px;padding:14px;background:#eef5ff;border:1px solid #bfd0e7;border-radius:9px;color:#183f75}.sunat-ready-note span{font-size:12px;line-height:1.45}@media(max-width:700px){.receipt-actions{display:grid;grid-template-columns:1fr}.receipt-actions .button{width:100%;text-align:center}.receipt-actions form .button{width:100%}}
.scan-form{grid-template-columns:minmax(0,1fr) 120px auto auto}.scanner-readiness{display:flex;align-items:center;gap:9px;margin-top:10px;color:var(--green);font-size:12px}.scanner-readiness small{color:var(--muted)}.camera-dialog{width:min(560px,calc(100% - 24px));border:0;border-radius:16px;padding:0;background:#081a31;color:#fff;box-shadow:0 24px 70px #0008}.camera-dialog::backdrop{background:#071426cc;backdrop-filter:blur(3px)}.camera-dialog-header{display:flex;justify-content:space-between;gap:16px;align-items:start;padding:17px 18px}.camera-dialog-header>div{display:grid;gap:4px}.camera-dialog-header span{font-size:12px;color:#c7d5e9}.camera-close{border:0;background:#ffffff18;color:#fff;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.camera-preview{position:relative;aspect-ratio:4/3;background:#020812;overflow:hidden}.camera-preview video{display:block;width:100%;height:100%;object-fit:cover}.camera-guide{position:absolute;inset:25% 10%;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 999px #0004}.camera-guide::before{content:"";position:absolute;left:10%;right:10%;top:50%;height:2px;background:#e34037;box-shadow:0 0 8px #e34037}.camera-status{min-height:20px;margin:0;padding:14px 18px;color:#d8e5f5;font-size:13px}.camera-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 18px 18px}.camera-dialog-actions .button{padding:10px 14px}@media(max-width:700px){.scan-form{grid-template-columns:1fr 100px}.scan-form .camera-scan-trigger,.scan-form .primary{grid-column:auto}.scanner-readiness{align-items:flex-start;display:grid;gap:3px}.camera-dialog{width:calc(100% - 16px)}.camera-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.camera-dialog-actions .button{width:100%}}

.product-summary{grid-template-columns:2fr repeat(4,minmax(0,1fr))}@media(max-width:900px){.product-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.product-summary{grid-template-columns:1fr}}

/* Conteo cíclico guiado */
.workflow-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.workflow-guide article{display:flex;gap:11px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px}.workflow-guide article>span,.current-step>span{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;font-size:12px}.workflow-guide strong,.workflow-guide small{display:block}.workflow-guide small{color:var(--muted);margin-top:4px;line-height:1.35}.operational-note{padding:14px 16px;border:1px solid #f0d492;background:#fff8e7;color:#674b0c;border-radius:10px;margin-bottom:18px;line-height:1.5}.danger-note{border-color:#efb4b4;background:#fff5f5;color:#8c2323}.button.compact{padding:8px 11px;font-size:12px;white-space:nowrap}.two-column-help{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);gap:18px}.checklist-card{padding:20px}.checklist-card h2{margin:0 0 16px}.checklist-card label{display:flex;gap:9px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.4}.checklist-card input{margin-top:2px}.checklist-card p{color:var(--muted);font-size:12px;line-height:1.5;margin:16px 0 0}.current-step{display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid #cfc4f0;background:#f7f4ff;border-radius:11px;margin-bottom:18px}.current-step>span{min-width:auto;width:auto;padding:0 12px;border-radius:99px;background:var(--violet)}.current-step strong,.current-step small{display:block}.current-step small{color:var(--muted);margin-top:4px}.filter-tabs{display:flex;gap:8px;padding:0 18px 18px}.filter-tabs a{padding:9px 13px;border-radius:99px;background:#eef1f6;color:var(--navy);font-size:12px;font-weight:750}.filter-tabs a.active{background:var(--navy);color:#fff}.review-box{border-top:1px solid var(--line)}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px}.review-heading span{color:var(--violet);font-size:11px;font-weight:800;text-transform:uppercase}.review-heading h2{margin:4px 0;font-size:20px}.review-heading p{margin:0;color:var(--muted);font-size:13px}.review-heading>strong{padding:8px 11px;background:#fff1d7;color:#765014;border-radius:99px;font-size:12px;white-space:nowrap}.success-message{margin:0 20px 20px;padding:18px;border-radius:9px;background:#e7f7ec;color:var(--green);font-weight:700;text-align:center}.final-actions{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:20px;background:#f5fbf7;border-top:1px solid #d8eddf}.final-actions form{display:grid;gap:12px;justify-items:end}.confirmation-check{font-size:13px;font-weight:700}.confirmation-check input{margin-right:7px}.text-success{color:var(--green)}.danger-zone{background:#fff;border:1px solid #f0b6b6;border-radius:10px;margin-top:20px;padding:14px 18px}.danger-zone summary{color:var(--danger);font-weight:750;cursor:pointer}.danger-zone form{display:flex;gap:10px;align-items:end;margin-top:15px}.danger-zone label{flex:1;font-size:12px;font-weight:700}.danger-zone input{display:block;width:100%;margin-top:6px;border:1px solid #d6dde7;border-radius:8px;padding:11px;font:inherit}.danger-button{background:#fdeaea;color:var(--danger);border:1px solid #efb2b2}.migration-scope{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 20px}.migration-scope article{padding:18px;border:1px solid #f0b6b6;background:#fff7f7;border-radius:11px}.migration-scope article.included{border-color:#b9ddc5;background:#f5fbf7}.migration-scope h3{font-size:15px;margin:0 0 8px}.migration-scope p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}@media(max-width:900px){.workflow-guide{grid-template-columns:repeat(2,1fr)}.two-column-help,.migration-scope{grid-template-columns:1fr}}@media(max-width:600px){.workflow-guide{grid-template-columns:1fr}.review-heading,.final-actions{align-items:stretch;flex-direction:column}.final-actions form{justify-items:stretch}.danger-zone form{display:grid}.filter-tabs{overflow:auto}.current-step{align-items:flex-start}}

.launch-checklist .panel-heading>div span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.launch-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}.launch-items>a{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:#fff;padding:17px;color:var(--text);min-width:0}.launch-items>a>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff1d7;color:#765014;font-size:12px;font-weight:800}.launch-items>a.ready>span{background:#e7f7ec;color:var(--green)}.launch-items strong,.launch-items small,.launch-items i{display:block}.launch-items small{color:var(--muted);font-size:11px;line-height:1.35;margin-top:4px}.launch-items i{grid-column:2;font-size:11px;color:var(--violet);font-style:normal;font-weight:700}@media(max-width:1000px){.launch-items{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.launch-items{grid-template-columns:1fr}}

/* Catálogo visual del punto de venta */
.pos-product-card.product-pending{border-color:#e4d9bd}.pos-product-card.product-pending .product-card-image{filter:saturate(.72);opacity:.84}.product-readiness{display:inline-flex!important;width:max-content;margin-top:9px;padding:5px 8px;border-radius:999px;font-size:10px!important;font-weight:800}.product-readiness.pending{background:#fff3cd;color:#7a5200!important}.product-readiness.warning{background:#fee2e2;color:#a31313!important}.product-readiness.ready{background:#dcfce7;color:#166534!important}
.product-search{grid-template-columns:minmax(0,1fr) auto auto}.pos-catalogue{margin-top:18px}.catalogue-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px}.catalogue-heading h2{font-size:18px;margin:0 0 4px}.catalogue-heading p{margin:0;color:var(--muted);font-size:12px}.catalogue-heading>strong{font-size:12px;color:var(--navy);background:#e9eef6;border-radius:99px;padding:7px 10px;white-space:nowrap}.product-cards{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))}.product-cards .pos-product-card{padding:0;display:flex;flex-direction:column;gap:0;overflow:hidden;min-width:0}.product-card-image{display:grid;place-items:center;aspect-ratio:4/3;background:linear-gradient(135deg,#edf1f7,#dfe6f0);overflow:hidden}.product-card-image img{display:block;width:100%;height:100%;object-fit:cover}.product-image-placeholder{display:grid!important;place-items:center;width:68px;height:68px;border-radius:18px;background:#fff;color:var(--navy)!important;font-size:30px!important;font-weight:900;box-shadow:0 7px 20px #102b521f}.product-card-body{padding:13px 13px 9px}.product-card-code{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-card-code span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card-body h3{min-height:34px;line-height:1.3}.product-card-body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.product-card-stock{display:flex;justify-content:space-between;align-items:center;padding:8px 13px;border-top:1px solid var(--line);font-size:11px}.product-card-stock strong{font-size:11px}.product-card-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px 13px;margin-top:auto;background:#fafbfc}.product-card-actions>strong{font-size:18px;color:var(--red)}.product-card-actions form{margin:0}.product-card-actions .button{padding:9px 12px}.catalogue-empty{grid-column:1/-1;margin:0}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px}.pagination a,.pagination span{padding:9px 12px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:700}.pagination span{color:var(--muted)}@media(max-width:700px){.product-search{grid-template-columns:1fr 1fr}.product-search input{grid-column:1/-1}.product-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-heading{align-items:flex-start}.product-card-body h3{min-height:auto}}@media(max-width:430px){.product-cards{grid-template-columns:1fr}}

/* Buscador de clientes dentro del cobro */
.customer-combobox{position:relative;display:grid;gap:8px}.customer-label-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.customer-label-row label{margin:0}.customer-label-row label span{color:var(--muted);font-size:10px;font-weight:650}.customer-label-row small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.customer-label-row a{flex:none;padding:6px 9px;border-radius:7px;background:#f0edf9;color:var(--violet);font-size:11px;font-weight:800}.customer-label-row a:hover{background:#e4def7}.customer-search-shell{position:relative}.customer-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.customer-search-row input{width:100%;min-width:0;border:1px solid #c7d1df;border-radius:8px;padding:11px 12px;font:inherit;background:#fff}.customer-search-row input:focus{border-color:var(--violet);outline:3px solid #7354d31f}.customer-search-row .button{white-space:nowrap;padding-inline:13px}.customer-results{top:calc(100% + 6px);left:0;right:0}.customer-option{gap:3px}.customer-option strong{font-size:12px}.customer-option span{font-weight:700}.customer-option small{font-size:10px;color:var(--muted)}.selected-customer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;margin:0;background:#eef8f1;border:1px solid #c7ead2;color:var(--green);border-radius:9px}.selected-customer[hidden]{display:none}.selected-customer-identity{display:flex;align-items:center;gap:9px;min-width:0}.selected-customer-check{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-size:14px;font-weight:900}.selected-customer-identity div{min-width:0}.selected-customer-identity strong,.selected-customer-identity span{display:block}.selected-customer-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--navy);font-size:12px}.selected-customer-identity span{margin-top:2px;color:#3d6f4c;font-size:10px}.selected-customer-change{flex:none;border:0;background:transparent;color:var(--violet);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.selected-customer-change:hover{text-decoration:underline}#customer-help{display:block;color:var(--muted);font-size:10px}@media(max-width:480px){.customer-label-row{align-items:center}.customer-label-row small{display:none}.customer-search-row{grid-template-columns:1fr}.customer-search-row .button{width:100%}.selected-customer{align-items:flex-start}.selected-customer-identity span{white-space:normal}}

.customer-choice-control{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.customer-search-row[hidden]{display:none}

/* Carrito del punto de venta: control estable y transición discreta */
.cart-line{grid-template-columns:minmax(0,1fr) 112px 82px 34px;max-height:150px;overflow:hidden;transition:opacity .18s ease,transform .18s ease,max-height .22s ease,padding .22s ease,background-color .18s ease}.cart-product{min-width:0}.cart-product strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quantity-stepper{display:grid;grid-template-columns:34px 44px 34px;align-items:stretch;border:1px solid #c7d1df;border-radius:9px;overflow:hidden;background:#fff;box-shadow:0 1px 2px #102b520d}.quantity-stepper button{display:grid;place-items:center;border:0;background:#eef2f7;color:var(--navy);font-size:19px;font-weight:800;line-height:1;cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .1s ease}.quantity-stepper button:hover{background:#dfe7f1}.quantity-stepper button:active{transform:scale(.9)}.quantity-stepper button:focus-visible,.cart-remove:focus-visible{outline:3px solid #8e78d5;outline-offset:-3px}.quantity-stepper input{width:44px!important;min-width:0;border:0!important;border-left:1px solid #dce3ec!important;border-right:1px solid #dce3ec!important;border-radius:0!important;padding:8px 2px!important;text-align:center;font-weight:800;color:var(--navy);appearance:textfield;-moz-appearance:textfield}.quantity-stepper input::-webkit-inner-spin-button,.quantity-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quantity-stepper button:disabled,.quantity-stepper input:disabled{opacity:.55;cursor:wait}.cart-line-total{text-align:right;font-weight:800;white-space:nowrap}.cart-remove{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#fff0f0!important;color:var(--danger)!important;font-size:20px;cursor:pointer;transition:background-color .14s ease,transform .14s ease}.cart-remove:hover{background:#ffdede!important;transform:scale(1.06)}.cart-line-error{grid-column:1/-1;color:var(--danger)!important;font-size:11px!important;margin:0!important;padding:7px 9px;background:#fff1f1;border-radius:7px}.cart-update-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 18px}.cart-update-row>span{color:var(--muted);font-size:10px}.cart-update-row .link-button{padding:5px 0;white-space:nowrap}.cart-line.is-updating{background:#f7f9fc}.cart-line.is-confirmed{animation:cart-confirmed .38s ease}.cart-line.is-error{background:#fff7f7}.cart-line.is-removing{opacity:0;transform:translateX(18px);max-height:0;padding-top:0;padding-bottom:0;border-bottom-width:0}.cart-panel.cart-emptying .checkout-form,.cart-panel.cart-emptying .cart-total,.cart-panel.cart-emptying .cart-update-row{opacity:.45;pointer-events:none}@keyframes cart-confirmed{0%{background:#e9f8ee;transform:scale(1.01)}100%{background:transparent;transform:scale(1)}}@media(max-width:700px){.cart-line{grid-template-columns:minmax(0,1fr) 112px 75px 34px}.cart-update-row{align-items:flex-start;flex-direction:column}.cart-update-row .link-button{align-self:flex-end}}@media(max-width:480px){.cart-line{grid-template-columns:minmax(0,1fr) 34px}.cart-product{grid-column:1/-1}.quantity-stepper{grid-column:1;width:112px}.cart-line-total{grid-column:1;justify-self:end;margin-top:-32px;margin-right:42px}.cart-remove{grid-column:2;grid-row:2}.cart-line-error{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){.cart-line,.quantity-stepper button,.cart-remove{transition:none}.cart-line.is-confirmed{animation:none}}
.credit-fields {
  display: grid;
  gap: .7rem;
  padding: .85rem;
  border: 1px solid #f0d28a;
  border-radius: 12px;
  background: #fff9e8;
}
.credit-fields[hidden] { display: none; }
.credit-fields-heading { display: flex; flex-direction: column; gap: .15rem; }
.credit-fields-heading span { color: var(--muted); font-size: .78rem; }

.catalog-photo-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:100%; min-height:80px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#eef0f2; color:#59616b; text-align:center; }
.catalog-photo-placeholder strong { font-size:26px; line-height:1.1; }
.catalog-photo-placeholder small { font-size:11px; line-height:1.2; }
.catalog-list-product { display:flex; gap:12px; align-items:center; min-width:210px; }
.catalog-list-photo { display:block; width:64px; min-width:64px; }
.catalog-list-photo img { display:block; width:64px; height:64px; object-fit:contain; border-radius:8px; }
.catalog-list-photo .catalog-photo-placeholder { min-height:64px; padding:6px; gap:3px; }
.catalog-list-photo .catalog-photo-placeholder strong { font-size:18px; }
.catalog-list-photo .catalog-photo-placeholder small { font-size:10px; }
.catalog-product-detail { display:grid; grid-template-columns:minmax(180px,280px) minmax(0,1fr); gap:24px; align-items:start; }
.catalog-detail-photo img { display:block; width:100%; max-height:320px; object-fit:contain; }
.catalog-detail-photo .catalog-photo-placeholder { min-height:220px; }
.catalog-product-data { display:grid; grid-template-columns:130px minmax(0,1fr); gap:12px; }
.catalog-product-data dt { font-weight:700; }
.catalog-product-data dd { margin:0; overflow-wrap:anywhere; }
.catalog-bulk .bulk-price-filter { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.catalog-bulk .bulk-price-filter input { width:22px; height:22px; }
.photo-download-filters { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.photo-download-filters select { flex:1 1 180px; min-height:44px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--text); font:inherit; }
@media(max-width:600px) { .catalog-product-detail { grid-template-columns:1fr; } .catalog-detail-photo { max-width:280px; width:100%; margin:auto; } .photo-download-filters .button { width:100%; text-align:center; } }

/* Confirmación propia (reemplaza window.confirm). */
.confirm-dialog { border:0; border-radius:12px; padding:0; max-width:min(440px, calc(100vw - 32px)); box-shadow:0 20px 50px rgba(15,23,42,.25); }
.confirm-dialog::backdrop { background:rgba(15,23,42,.45); }
.confirm-dialog form { padding:22px; display:grid; gap:14px; }
.confirm-dialog h2 { margin:0; font-size:1.1rem; }
.confirm-dialog p { margin:0; line-height:1.45; }
.confirm-dialog__actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
