:root{--bg:#080d18;--panel:#101827;--panel2:#151f32;--line:#26334b;--text:#eef3fb;--muted:#92a0b8;--primary:#7c3aed;--primary2:#5b21b6;--green:#16a34a;--yellow:#d97706;--red:#dc2626;--radius:14px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#0b1220;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;z-index:20}.logo{padding:6px 10px 18px;display:flex;align-items:center;gap:9px}.logo span{font-size:23px;font-weight:900;letter-spacing:-1px;background:linear-gradient(135deg,#a78bfa,#7c3aed);padding:6px 9px;border-radius:9px}.logo small{font-size:11px;color:var(--muted);font-weight:800}.sidebar nav{overflow:auto;display:flex;flex-direction:column;gap:2px}.sidebar nav a{padding:9px 11px;border-radius:8px;color:#bdc8da;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#19243a;color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:14px 10px 0;display:flex;flex-direction:column;gap:4px}.sidebar-foot small{color:var(--muted)}.sidebar-foot a{color:#c4b5fd;font-size:13px;margin-top:5px}.content{margin-left:230px;padding:28px;max-width:1700px}.mobile-top{display:none}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.page-title h1{margin:0;font-size:28px;letter-spacing:-.7px}.page-title p{margin:6px 0 0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:0 10px 35px #0002}.card h3{margin:0 0 14px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metrics.mini{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--primary);padding:18px;border-radius:var(--radius);display:flex;flex-direction:column;gap:4px}.metric.warn{border-left-color:var(--yellow)}.metric.bad{border-left-color:var(--red)}.metric small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.5px}.metric b{font-size:25px}.metric b.smaller{font-size:14px}.metric span{font-size:12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.span2{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;color:#c7d0df;font-size:13px;font-weight:650;margin-bottom:10px}input,select,textarea{width:100%;background:#0b1322;color:#fff;border:1px solid #33425d;border-radius:8px;padding:10px 11px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #7c3aed22}textarea{min-height:84px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;padding:9px 13px;font-weight:750;font-size:13px;cursor:pointer;background:#29354d;color:#fff}.btn.primary{background:var(--primary)}.btn.primary:hover{background:var(--primary2)}.btn.ghost{background:transparent;border-color:#3a4862}.btn.warn{background:#9a5b05}.btn.danger{background:#a61b24}.btn.small{padding:6px 9px;font-size:12px}.btn.huge{padding:16px;font-size:15px}.btn.wide{width:100%;margin-top:14px}.actions{display:flex;gap:8px;align-items:center}.inline{display:inline-flex;gap:6px;align-items:center;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#aab7cb;font-size:11px;text-transform:uppercase;letter-spacing:.35px;padding:10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid #202b3d;vertical-align:middle}tr:hover td{background:#111c2d}.expired td{background:#4b152333}.badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:850;background:#344159}.badge.ok{background:#103c29;color:#86efac}.badge.warn{background:#4a3108;color:#fcd34d}.badge.bad{background:#4c1721;color:#fda4af}.muted{color:var(--muted)}.flash{padding:12px 14px;border-radius:9px;margin-bottom:13px;border:1px solid}.flash.success{background:#0e3425;border-color:#166534}.flash.warning{background:#3e2a0c;border-color:#92400e}.flash.error{background:#46151e;border-color:#991b1b}.filters{display:flex;gap:10px;margin:0 0 14px}.filters select{max-width:320px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0}.check-grid label{flex-direction:row;align-items:center;margin:0}.check-grid input{width:auto}.split{display:flex;justify-content:space-between;gap:12px;align-items:center}.notice{padding:12px 14px;border:1px solid var(--line);border-radius:9px;margin-bottom:14px}.notice.ok{background:#0e3425}.notice.warn{background:#3e2a0c}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8b4fe;word-break:break-all}.api-key{display:block;max-width:290px}.small-input{max-width:90px;padding:6px}details{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}summary{cursor:pointer;font-weight:700;color:#c4b5fd;margin-bottom:12px}.pdv-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.pdv-search{display:flex;gap:8px;margin-bottom:14px}.pdv-search input{font-size:17px;padding:14px}.pdv-summary{position:sticky;top:20px;height:max-content}.pdv-summary label input{margin-top:5px}.pdv-total{padding:20px 0;text-align:right}.pdv-total small{display:block;color:var(--muted);text-transform:uppercase}.pdv-total b{font-size:35px}.modal{position:fixed;inset:0;background:#000b;display:grid;place-items:center;z-index:100}.modal[hidden]{display:none}.modal-card{position:relative;width:min(92vw,520px);background:#111827;border:1px solid var(--line);border-radius:16px;padding:18px}.modal-x{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.modal video{width:100%;background:#000;border-radius:10px;max-height:60vh}.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 50% 0,#23134b,#080d18 45%)}.login-card{width:min(92vw,420px);background:#111827;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 30px 80px #0008}.login-card h1{margin-bottom:4px}.login-card label{margin-top:14px}.brand-mark{display:inline-block;background:var(--primary);font-size:20px;font-weight:900;padding:7px 9px;border-radius:9px}.perms{max-height:330px;overflow:auto;border:1px solid var(--line);padding:10px;border-radius:8px}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.pdv-grid{grid-template-columns:1fr}.pdv-summary{position:static}}@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.content{margin-left:0;padding:15px}.mobile-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}.mobile-top button{background:#19243a;color:#fff;border:1px solid var(--line);border-radius:7px;padding:7px 10px}.grid2,.form-grid,.metrics,.metrics.mini{grid-template-columns:1fr}.span2{grid-column:auto}.page-title h1{font-size:23px}.check-grid{grid-template-columns:1fr}.split{align-items:flex-start;flex-direction:column}table{min-width:680px}.pdv-main table{min-width:560px}}

.payment-box{display:grid;gap:8px}.pay-row{display:grid;grid-template-columns:1.1fr 1fr auto;gap:8px;align-items:center;margin:6px 0}.pay-row select,.pay-row input{margin:0}@media(max-width:640px){.pay-row{grid-template-columns:1fr 1fr auto}}
.repeat-row{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(120px,1fr)) minmax(145px,1fr) auto;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--border,#26314d)}.transfer-row{grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) auto}@media(max-width:900px){.repeat-row,.transfer-row{grid-template-columns:1fr 1fr}.repeat-row .repeat-remove,.transfer-row .repeat-remove{align-self:end}}

/* v2.3 — PWA, caixa cego e sangria autorizada */
.runtime-tools{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.net-status{font-size:12px;font-weight:700;white-space:nowrap}.net-status.online{color:#34d399}.net-status.offline{color:#f87171}.sync-mini{font-size:11px;color:var(--muted,#94a3b8);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pwa-hint{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;gap:10px;align-items:center;max-width:390px;background:#172033;border:1px solid #334155;border-radius:14px;padding:14px 16px;box-shadow:0 20px 50px #0008}.pwa-hint[hidden]{display:none}.pwa-hint span{font-size:13px;color:#cbd5e1}.pwa-hint button{border:0;background:transparent;color:#fff;font-size:20px;cursor:pointer}.sangria-card{border-color:#7f1d1d;background:linear-gradient(180deg,rgba(127,29,29,.13),transparent)}.confirm-line{display:flex!important;gap:8px;align-items:flex-start}.confirm-line input{width:auto!important;margin-top:3px}.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.inline-form label{min-width:230px}.sale-complete{margin-top:12px;border:1px solid #166534;background:#052e16;border-radius:14px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}.sale-complete .sale-check{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:23px;font-weight:900}.sale-complete b{display:block;font-size:16px}.sale-complete span{display:block;color:#bbf7d0;font-size:12px;margin-top:2px}.sale-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.sale-actions .btn{flex:1;min-width:145px;text-align:center}
@media(max-width:780px){.runtime-tools{gap:5px}.sync-mini{display:none}.net-status span{display:none}#pwa-install-btn{padding:7px 9px}.pwa-hint{left:12px;right:12px;bottom:12px}.inline-form{display:block}.inline-form label{min-width:0}.sale-actions .btn{width:100%}}

/* v2.4 — pagamentos e terminal de caixa */
.pay-row{grid-template-columns:1.1fr 1fr 1fr 1fr auto auto!important;align-items:end!important;padding:8px;border:1px solid #27344c;border-radius:10px}.pay-field{display:flex;flex-direction:column;gap:4px}.pay-field small,.pay-line-change small{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.pay-line-change{display:flex;flex-direction:column;gap:4px;min-width:90px}.pay-line-change b{font-size:16px;color:#86efac}.change-box{border:1px solid #166534;background:#0e3425;border-radius:10px;padding:14px;display:flex;justify-content:space-between;align-items:center}.change-box[hidden]{display:none}.change-box small{font-weight:900;color:#86efac}.change-box b{font-size:26px}.sale-change{display:block;color:#86efac;font-size:20px;margin-top:5px}.cashier-terminal{max-width:620px}.cashier-terminal .huge{width:100%}@media(max-width:850px){.pay-row{grid-template-columns:1fr 1fr!important}.pay-row .pay-remove{grid-column:2;justify-self:end}.pay-line-change{min-width:0}}

/* v2.5 — troco visível e impressão no próprio PDV */
.pay-row.is-cash{border-color:#166534;background:linear-gradient(180deg,rgba(22,101,52,.16),rgba(22,101,52,.04))}.pay-row.is-cash .pay-cash-extra input{border-color:#22c55e}.change-box{margin-top:8px}.change-box>div{display:flex;flex-direction:column;gap:2px}.change-box #pdv-cash-detail{font-size:11px}.receipt-modal{z-index:130}.receipt-modal-card{width:min(96vw,760px);max-height:96vh;display:flex;flex-direction:column;gap:12px}.receipt-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-right:34px}.receipt-modal-head h3{margin:0;color:#86efac}.receipt-modal-head p{margin:4px 0 0}.receipt-modal-change{border:1px solid #166534;background:#052e16;border-radius:10px;padding:9px 13px;min-width:150px;text-align:right}.receipt-modal-change[hidden]{display:none}.receipt-modal-change small{display:block;color:#86efac;font-weight:900}.receipt-modal-change b{font-size:25px}.receipt-frame-wrap{background:#e5e7eb;border-radius:10px;padding:8px;overflow:auto;min-height:360px}.receipt-frame-wrap iframe{width:100%;height:470px;border:0;background:#fff;border-radius:6px}.receipt-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:650px){.receipt-modal-card{width:96vw;padding:12px}.receipt-modal-head{align-items:flex-start;flex-direction:column}.receipt-modal-change{width:100%;text-align:left}.receipt-frame-wrap iframe{height:390px}.receipt-modal-actions{grid-template-columns:1fr}}

/* v2.6 — fluxo pós-venda: imprimir já libera a próxima operação */
.receipt-next-hint{margin:7px 0 0!important;color:#cbd5e1;font-size:12px;line-height:1.35}.receipt-modal-actions .btn.primary{font-weight:900}.receipt-modal-actions .btn.ghost{border-color:#64748b}

/* v2.7 — PDV supermercado: interface dedicada do operador */
body.pdv-mode{background:#eef4fb;color:#10234b;overflow:hidden}
body.pdv-mode .sidebar,body.pdv-mode .mobile-top,body.pdv-mode .page-title{display:none!important}
body.pdv-mode .content{margin-left:0!important;padding:0!important;max-width:none!important;height:100vh;overflow:hidden;background:#eef4fb}
body.pdv-mode .app{min-height:100vh;background:#eef4fb}
.pdv-pos{height:100vh;display:grid;grid-template-rows:106px minmax(0,1fr) 120px 34px;background:linear-gradient(135deg,#f8fbff,#e9f1fa);color:#13254a;font-family:Inter,Segoe UI,Arial,sans-serif}
.pdv-pos *{box-sizing:border-box}.pdv-pos input,.pdv-pos select{background:#fff;color:#15264b;border:1px solid #c8d6e8;box-shadow:none;border-radius:8px}.pdv-pos input:focus,.pdv-pos select:focus{border-color:#2776d8;box-shadow:0 0 0 3px #2776d81c}
.pdv-pos-header{display:flex;justify-content:space-between;align-items:center;padding:18px 34px;border-bottom:1px solid #cbd8e8;background:#f7fbff}.pdv-pos-brand{display:flex;align-items:center;gap:18px}.pdv-cart-icon{width:78px;height:68px;border-radius:8px;display:grid;place-items:center;font-size:38px;background:linear-gradient(145deg,#3578d7,#245ab5);color:#fff;box-shadow:0 8px 20px #1e5db526}.pdv-pos-brand h1{margin:0;font-size:31px;letter-spacing:-.7px;color:#10214a}.pdv-pos-brand span{display:block;margin-top:4px;font-size:16px;color:#5d7193}.pdv-pos-operator{display:flex;align-items:center;gap:14px;color:#4e6488}.pdv-user-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#dce9f8;color:#153766;font-size:18px}.pdv-pos-operator>div:nth-child(2){display:flex;flex-direction:column;gap:5px;font-size:16px}.pdv-pos-operator small{font-size:13px;color:#6980a1}.pdv-menu-btn{margin-left:14px;padding:15px 20px;border:1px solid #c7d5e7;border-radius:8px;background:#f7fbff;color:#18335d;text-decoration:none;font-weight:700;box-shadow:0 2px 8px #143d6d12}
.pdv-pos-body{display:grid;grid-template-columns:minmax(0,1fr) 35%;gap:12px;padding:0 32px 12px;min-height:0}.pdv-pos-sale,.pdv-pos-summary{background:#f8fbff;border:1px solid #cedbea;border-radius:8px;box-shadow:0 3px 12px #1e41630d;min-height:0}.pdv-pos-sale{display:flex;flex-direction:column;padding:14px}.pdv-pos-searchbar{height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) 50px;align-items:center;border:1px solid #c6d5e7;border-radius:7px;background:#fff;overflow:hidden;margin-bottom:14px}.pdv-pos-searchbar:focus-within{border-color:#2776d8;box-shadow:0 0 0 3px #2776d815}.pdv-pos-searchbar input{border:0!important;border-radius:0!important;font-size:17px;height:100%;padding:0 12px;box-shadow:none!important}.barcode-glyph{padding:0 16px;font-size:20px;letter-spacing:-4px;color:#153a6d}.pdv-icon-btn{height:100%;border:0;border-left:1px solid #dbe4ef;background:#f7fbff;color:#173b6c;font-size:23px;cursor:pointer}.pdv-pos-items{position:relative;flex:1;overflow:auto;border:1px solid #d8e2ee;border-radius:7px;background:#fff}.pdv-pos-items table{min-width:760px;color:#1d3154}.pdv-pos-items th{background:#eff5fb;color:#152d55;text-transform:none;font-size:13px;letter-spacing:0;padding:13px 12px;border-bottom:1px solid #d4e0ed}.pdv-pos-items td{padding:13px 12px;border-bottom:1px solid #e0e8f1;background:#fff}.pdv-pos-items tr:hover td{background:#f7fbff}.pdv-code-cell{font-variant-numeric:tabular-nums;color:#233c68}.pdv-product-cell{font-weight:650}.pdv-money-cell{text-align:right;font-variant-numeric:tabular-nums}.pdv-qty-input{width:72px!important;text-align:center;padding:7px!important}.pdv-remove-item{border:0;background:#fff0f0;color:#c52c35;border-radius:6px;width:28px;height:28px;font-size:18px;cursor:pointer}.pdv-empty-state{position:absolute;inset:80px 20px auto;text-align:center;color:#8ca0bb;font-size:15px}.pdv-empty-state[hidden]{display:none}
.pdv-pos-summary{padding:22px 18px;overflow:auto}.pdv-summary-title{display:flex;align-items:center;gap:10px;color:#1354a2;font-size:20px;margin-bottom:22px}.pdv-summary-line{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-bottom:1px solid #d6e1ed;font-size:16px}.pdv-summary-line b{font-size:20px}.pdv-summary-total{display:flex;justify-content:space-between;align-items:center;margin:14px 0 22px;padding:16px;border-radius:7px;background:linear-gradient(90deg,#d9ebff,#cde4ff);color:#0b55a6;font-weight:800}.pdv-summary-total span{font-size:20px}.pdv-summary-total b{font-size:42px;line-height:1}.pdv-payment-title{display:flex;align-items:center;gap:10px;font-size:17px;color:#173965;margin-bottom:10px}.pdv-add-form{margin-left:auto;border:1px solid #b8cae0;background:#fff;border-radius:7px;padding:7px 10px;color:#21558f;font-weight:700;cursor:pointer}.pdv-payment-box{display:grid;gap:8px}.pdv-pos .pay-row{display:grid!important;grid-template-columns:minmax(130px,1.25fr) minmax(100px,1fr) minmax(135px,1.15fr) minmax(95px,.8fr) auto!important;gap:8px;align-items:end!important;padding:10px;border:1px solid #d5e0ec;border-radius:7px;background:#fff}.pdv-pos .pay-field small,.pdv-pos .pay-line-change small{color:#4f6a8f;font-size:10px}.pdv-pos .pay-row select,.pdv-pos .pay-row input{padding:10px 8px}.pdv-pos .pay-line-change{display:none!important}.pdv-pos .pay-remove{background:#d93a45;padding:9px 10px}.pdv-pos .pay-row.is-cash{border-color:#9fd2ad;background:#f6fff8}.pdv-pos-change{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;margin-top:12px;padding:14px;border-radius:7px;background:linear-gradient(90deg,#eef8f3,#dff3e9);border:1px solid #c4e7d1}.pdv-pos-change[hidden]{display:none}.pdv-pos-change span{font-size:17px;color:#244d46}.pdv-pos-change b{font-size:34px;color:#19723b}.pdv-pos-change small{grid-column:1/-1;color:#62827a}.pdv-client-panel{padding:12px;margin:-8px 0 16px;border:1px solid #cfdceb;background:#fff;border-radius:7px}.pdv-client-panel[hidden]{display:none}.pdv-client-panel label{color:#425f85}.pdv-client-panel input{margin-top:2px}
.pdv-pos-actions{display:grid;grid-template-columns:1fr 1.15fr 1.15fr 1.45fr 1.15fr;gap:10px;padding:0 32px 12px}.pdv-action{border:0;border-radius:7px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:#fff;cursor:pointer;box-shadow:0 4px 12px #163c6719;min-width:0}.pdv-action span{font-size:28px;line-height:1}.pdv-action b{font-size:17px}.pdv-action small{font-size:11px;opacity:.9}.pdv-action.blue{background:linear-gradient(145deg,#2288e7,#116cc6)}.pdv-action.light{background:#e9f2fc;color:#17355f}.pdv-action.green{background:linear-gradient(145deg,#12ad64,#07924e)}.pdv-action.green.dark{background:linear-gradient(145deg,#0b9461,#087346)}.pdv-action.red{background:linear-gradient(145deg,#e74a51,#c9323a)}.pdv-action:hover{filter:brightness(.98);transform:translateY(-1px)}
.pdv-pos-footer{display:flex;align-items:center;gap:18px;padding:0 34px;border-top:1px solid #cbd8e8;background:#f3f8fd;color:#536c8e;font-size:12px}.pdv-online-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#16b86a;margin-right:4px}.pdv-version{margin-left:auto}
body.pdv-mode .flash{font-size:12px;padding:8px 10px;margin:10px 0 0}
@media(max-width:1050px){body.pdv-mode{overflow:auto}body.pdv-mode .content{height:auto;overflow:visible}.pdv-pos{height:auto;min-height:100vh;grid-template-rows:auto auto auto 34px}.pdv-pos-header{padding:14px 16px}.pdv-pos-brand h1{font-size:24px}.pdv-cart-icon{width:55px;height:50px;font-size:27px}.pdv-pos-operator{font-size:12px}.pdv-pos-body{grid-template-columns:1fr;padding:0 14px 12px}.pdv-pos-sale{min-height:52vh}.pdv-pos-summary{overflow:visible}.pdv-pos-actions{padding:0 14px 12px;grid-template-columns:repeat(5,1fr)}.pdv-action b{font-size:13px}.pdv-action span{font-size:22px}.pdv-pos .pay-row{grid-template-columns:1fr 1fr!important}.pdv-pos .pay-remove{justify-self:end}.pdv-pos-footer{padding:0 16px}}
@media(max-width:700px){.pdv-pos-header{align-items:flex-start}.pdv-pos-brand span,.pdv-user-icon,.pdv-pos-operator small{display:none}.pdv-pos-brand h1{font-size:20px}.pdv-pos-operator{gap:6px}.pdv-menu-btn{padding:9px;margin-left:4px}.pdv-pos-body{padding:0 8px 8px}.pdv-pos-sale{padding:8px;min-height:45vh}.pdv-pos-searchbar{height:50px}.pdv-pos-items table{min-width:650px}.pdv-summary-total b{font-size:32px}.pdv-pos-actions{position:sticky;bottom:0;z-index:30;padding:8px;background:#e9f1fa;grid-template-columns:repeat(5,1fr);gap:5px}.pdv-action{min-height:64px}.pdv-action b{font-size:10px}.pdv-action small{font-size:9px}.pdv-action span{font-size:18px}.pdv-pos-footer{display:none}}


/* v2.8 — terminal PDV definitivo */
html:has(body.pdv-mode), html body.pdv-mode {margin:0!important;padding:0!important;width:100%!important;min-width:100%!important;background:#eef4fb!important;overflow:hidden!important}
body.pdv-mode .app{width:100vw!important;max-width:none!important;margin:0!important;padding:0!important}
body.pdv-mode aside.sidebar,body.pdv-mode .sidebar,body.pdv-mode .mobile-top{display:none!important;width:0!important;visibility:hidden!important}
body.pdv-mode main.content,body.pdv-mode .content{margin:0!important;padding:0!important;width:100vw!important;max-width:none!important;height:100vh!important;overflow:hidden!important}
body.pdv-mode .pdv-pos{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:50!important}
.pdv-pos-header{min-height:96px!important}
.pdv-pos-body{min-width:0!important}
.pdv-pos-sale{min-width:0!important}
.pdv-pos-summary{min-width:350px!important}
.pdv-pos-actions{min-height:104px!important}
@media(max-width:1050px){body.pdv-mode,html:has(body.pdv-mode){overflow:auto!important}body.pdv-mode .pdv-pos{position:relative!important;height:auto!important;min-height:100vh!important}.pdv-pos-summary{min-width:0!important}}

/* v3.0 — Tema global inspirado no layout do PDV */
body:not(.pdv-mode){
  --bg:#eef4fb;
  --panel:#ffffff;
  --panel2:#f7fbff;
  --line:#d6e1ed;
  --text:#13254a;
  --muted:#667b9a;
  --primary:#1f6fd1;
  --primary2:#1558a8;
  --green:#10985a;
  --yellow:#c47b12;
  --red:#d33b45;
  --radius:10px;
  background:linear-gradient(135deg,#f8fbff,#e9f1fa);
  color:var(--text);
}
body:not(.pdv-mode) .app{background:linear-gradient(135deg,#f8fbff,#e9f1fa);min-height:100vh}
body:not(.pdv-mode) .sidebar{
  width:245px;
  background:#f8fbff;
  border-right:1px solid #cbd8e8;
  padding:18px 12px;
  box-shadow:4px 0 18px rgba(21,58,101,.05);
}
body:not(.pdv-mode) .logo{padding:4px 10px 20px;gap:12px}
body:not(.pdv-mode) .logo span{
  min-width:54px;height:50px;display:grid;place-items:center;
  font-size:21px;background:linear-gradient(145deg,#3578d7,#245ab5);
  color:#fff;border-radius:9px;box-shadow:0 8px 20px rgba(30,93,181,.18)
}
body:not(.pdv-mode) .logo small{color:#294f80;font-size:11px;letter-spacing:.3px}
body:not(.pdv-mode) .sidebar nav{gap:4px}
body:not(.pdv-mode) .sidebar nav a{color:#3e587d;padding:10px 12px;border-radius:8px;font-weight:650}
body:not(.pdv-mode) .sidebar nav a:hover{background:#eaf3fd;color:#1558a8}
body:not(.pdv-mode) .sidebar nav a.active{background:#dcecff;color:#0e55aa;box-shadow:inset 3px 0 0 #1f6fd1}
body:not(.pdv-mode) .sidebar-foot{border-top:1px solid #d6e1ed;color:#203c66}
body:not(.pdv-mode) .sidebar-foot small{color:#6d82a1}
body:not(.pdv-mode) .sidebar-foot a{color:#0e62be;font-weight:700}
body:not(.pdv-mode) .content{margin-left:245px;padding:26px 30px;max-width:none;background:transparent}
body:not(.pdv-mode) .page-title{padding:0 0 14px;border-bottom:1px solid #d5e1ef;margin-bottom:20px}
body:not(.pdv-mode) .page-title h1{color:#10214a;font-size:30px}
body:not(.pdv-mode) .page-title p{color:#657c9b}
body:not(.pdv-mode) .card,
body:not(.pdv-mode) .metric,
body:not(.pdv-mode) .notice,
body:not(.pdv-mode) details,
body:not(.pdv-mode) .perms{
  background:#fff;
  border-color:#d5e1ed;
  color:#173154;
  box-shadow:0 4px 16px rgba(24,61,100,.06);
}
body:not(.pdv-mode) .card{border-radius:10px;padding:18px}
body:not(.pdv-mode) .card h3{color:#143b6b}
body:not(.pdv-mode) .metric{border-left:4px solid #2875d2;border-radius:10px}
body:not(.pdv-mode) .metric.warn{border-left-color:#dc8a19}
body:not(.pdv-mode) .metric.bad{border-left-color:#d94750}
body:not(.pdv-mode) .metric small,
body:not(.pdv-mode) .metric span,
body:not(.pdv-mode) .muted{color:#7184a0}
body:not(.pdv-mode) .metric b{color:#102b57}
body:not(.pdv-mode) label{color:#314f76;font-weight:700}
body:not(.pdv-mode) input,
body:not(.pdv-mode) select,
body:not(.pdv-mode) textarea{
  background:#fff;color:#16345f;border:1px solid #c8d6e8;border-radius:8px;
}
body:not(.pdv-mode) input:focus,
body:not(.pdv-mode) select:focus,
body:not(.pdv-mode) textarea:focus{border-color:#2776d8;box-shadow:0 0 0 3px rgba(39,118,216,.12)}
body:not(.pdv-mode) input::placeholder,
body:not(.pdv-mode) textarea::placeholder{color:#94a5bc}
body:not(.pdv-mode) .btn{background:#edf4fc;color:#173b69;border-color:#c9d8ea;border-radius:8px;box-shadow:0 2px 6px rgba(23,59,105,.06)}
body:not(.pdv-mode) .btn:hover{filter:brightness(.985)}
body:not(.pdv-mode) .btn.primary{background:linear-gradient(145deg,#2380dc,#1768bf);color:#fff;border-color:#1768bf}
body:not(.pdv-mode) .btn.primary:hover{background:linear-gradient(145deg,#1f75ca,#135ca9)}
body:not(.pdv-mode) .btn.ghost{background:#fff;color:#1d568d;border-color:#bfd1e5}
body:not(.pdv-mode) .btn.warn{background:#d88917;color:#fff;border-color:#c5790f}
body:not(.pdv-mode) .btn.danger{background:#d94750;color:#fff;border-color:#c93740}
body:not(.pdv-mode) table{color:#1d3154;background:#fff}
body:not(.pdv-mode) th{background:#eff5fb;color:#17365f;border-bottom:1px solid #d4e0ed;text-transform:none;font-size:12px;letter-spacing:.05px}
body:not(.pdv-mode) td{border-bottom:1px solid #e0e8f1;background:#fff}
body:not(.pdv-mode) tr:hover td{background:#f7fbff}
body:not(.pdv-mode) .expired td{background:#fff0f1}
body:not(.pdv-mode) .badge{background:#e9f0f8;color:#365577}
body:not(.pdv-mode) .badge.ok{background:#e7f7ee;color:#13723e}
body:not(.pdv-mode) .badge.warn{background:#fff4df;color:#9a5b05}
body:not(.pdv-mode) .badge.bad{background:#feecef;color:#b52835}
body:not(.pdv-mode) .flash{background:#fff;border-color:#d4e0ed;color:#264a73;box-shadow:0 3px 12px rgba(24,61,100,.05)}
body:not(.pdv-mode) .flash.success{background:#eaf8ef;border-color:#b8e0c7;color:#176d3e}
body:not(.pdv-mode) .flash.warning{background:#fff6e8;border-color:#f0d3a6;color:#8a570c}
body:not(.pdv-mode) .flash.error{background:#fff0f1;border-color:#efc0c5;color:#a72b36}
body:not(.pdv-mode) .notice.ok{background:#eaf8ef}
body:not(.pdv-mode) .notice.warn{background:#fff6e8}
body:not(.pdv-mode) code{color:#155eaa}
body:not(.pdv-mode) summary{color:#155eaa}
body:not(.pdv-mode) .mobile-top{
  background:#f8fbff;border:1px solid #d5e1ed;border-radius:9px;padding:9px 12px;box-shadow:0 3px 10px rgba(24,61,100,.04)
}
body:not(.pdv-mode) .mobile-top button{background:#e8f2fd;color:#174a7e;border-color:#c7d8ea}
body:not(.pdv-mode) .net-status.online{color:#10985a}
body:not(.pdv-mode) .net-status.offline{color:#d94750}
body:not(.pdv-mode) .modal{background:rgba(18,42,72,.55);backdrop-filter:blur(2px)}
body:not(.pdv-mode) .modal-card{background:#fff;color:#173154;border-color:#cddbea;box-shadow:0 25px 80px rgba(19,53,91,.24)}
body:not(.pdv-mode) .modal-x{color:#264b78}
body:not(.pdv-mode).login-body{background:linear-gradient(135deg,#f6faff,#e7f0fa)}
body:not(.pdv-mode) .login-card{background:#fff;color:#173154;border-color:#ccd9e8;box-shadow:0 30px 80px rgba(19,53,91,.18)}
body:not(.pdv-mode) .brand-mark{background:linear-gradient(145deg,#3578d7,#245ab5);color:#fff}
body:not(.pdv-mode) .login-card h1{color:#10214a}
body:not(.pdv-mode) .pwa-hint{background:#fff;color:#173154;border-color:#ccd9e8;box-shadow:0 16px 40px rgba(19,53,91,.18)}
body:not(.pdv-mode) .pwa-hint span{color:#466487}
body:not(.pdv-mode) .pwa-hint button{color:#244e7d}
body:not(.pdv-mode) .sale-complete{background:#eef9f2;border-color:#b9dfc7;color:#174f34}
body:not(.pdv-mode) .sale-complete span{color:#3f7658}
@media(max-width:780px){
  body:not(.pdv-mode) .content{margin-left:0;padding:14px;background:linear-gradient(135deg,#f8fbff,#e9f1fa)}
  body:not(.pdv-mode) .sidebar{width:245px;background:#f8fbff}
}
