:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172019;background:#f3f5f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select{width:100%;min-height:44px;border:1px solid #cad2c8;border-radius:9px;padding:0 12px;background:#fff;color:#172019}input:focus,select:focus{outline:2px solid #4d805b;outline-offset:1px}label{display:grid;gap:6px;font-size:.82rem;font-weight:700;color:#536058}h1,h2,h3,p{margin-top:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#102b19}.login-card{width:min(440px,100%);display:grid;gap:18px;padding:32px;border-radius:20px;background:#fff;box-shadow:0 20px 60px #0003}.login-brand{display:flex;justify-content:center;align-items:center;min-height:82px}.login-brand img{display:block;width:min(290px,84%);max-height:112px;object-fit:contain}.login-heading{text-align:center}.login-heading h1{margin:0;color:#172019;font-size:1.75rem;font-weight:800;line-height:1.2;letter-spacing:-.02em}.login-card .primary-button{min-height:48px}.login-card input:focus{outline:2px solid #16744a;outline-offset:1px}.brand{display:flex;align-items:center;gap:14px}.brand h1{margin-bottom:2px}.brand p,.brand small{margin:0;color:#778079}.brand-mark{width:96px;height:68px;flex:0 0 auto;background:#fff url(/opa-erp-logo.png) center / 86px 58px no-repeat;border:.5px solid rgba(4,14,7,.144);border-radius:12px;box-shadow:0 3px 9px #0f3d2314,0 .5px 1px #0f3d230d}.brand.compact .brand-mark{width:76px;height:54px;background-size:68px auto;border-radius:10px}.brand.compact>div:last-child{display:grid}.primary-button,.finalize-button,.close-button,.cancel-sale-button,.ghost-button{border:0;border-radius:10px;min-height:44px;padding:0 16px;font-weight:800}.primary-button{background:#245b32;color:#fff}.ghost-button{background:#edf1ed;color:#2d3930}.close-button{background:#3e4640;color:#fff}.cancel-sale-button{margin-top:9px;width:100%;background:#f7e8e5;color:#8d3025}.danger-text{color:#9d352a}.alert{border-radius:10px;padding:12px 14px;font-weight:700}.alert.error{background:#fbe8e5;color:#8d3025}.alert.success{background:#e2f3e5;color:#236132}.global-alert{margin:12px 18px 0}.app-shell{min-height:100vh}.topbar{min-height:72px;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:10px 20px;background:#102b19;color:#fff}.pdv-topbar-brand{display:flex;align-items:center;gap:26px}.pdv-topbar-logo{display:block;width:132px;height:56px;object-fit:contain;flex:0 0 auto}.pdv-brand-title{display:flex;align-items:center}.pdv-brand-title strong{font-size:1.65rem;font-weight:850;line-height:1;letter-spacing:-.02em;color:#fff}.operator{display:flex;align-items:center;gap:10px}.operator>span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffffffbd;font-size:.82rem;font-weight:650}.topbar .ghost-button{min-height:40px;padding:0 15px;border:1px solid rgba(255,255,255,.16);background:#ffffff14;color:#fff;transition:background .12s ease,border-color .12s ease}.topbar .ghost-button:hover:not(:disabled){background:#ffffff24;border-color:#ffffff47}.topbar .ghost-button:focus-visible{outline:2px solid #b7d83d;outline-offset:2px}.status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#d7ded5;border-bottom:1px solid #d7ded5}.status-strip>div{display:grid;gap:2px;padding:10px 18px;background:#fff}.status-strip span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#7b837d}.status-open{color:#247239}.status-closed{color:#aa3d2f}.pdv-layout{display:grid;grid-template-columns:minmax(0,1fr) 430px;min-height:calc(100vh - 150px)}.sale-panel{padding:18px;min-width:0}.checkout-panel{padding:18px;border-left:1px solid #dfe4dd;background:#fff}.panel-header,.checkout-title{display:flex;justify-content:space-between;align-items:start;gap:16px}.panel-header p,.checkout-title p{margin-bottom:0;color:#7b837d}.panel-header select{width:320px;max-width:100%}.search-box{position:relative;margin:18px 0}.search-box input{min-height:54px;padding-right:115px;font-size:1.05rem}.search-box span{position:absolute;top:50%;right:14px;transform:translateY(-50%);color:#7c847e;font-size:.78rem}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.product-card{min-height:112px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1px solid #d7dfd5;border-radius:12px;background:#fff;text-align:left}.product-card:hover{border-color:#4f7c59;box-shadow:0 5px 15px #214d2c14}.product-card>strong{font-size:.98rem;line-height:1.25;color:#172019}.product-card small{color:#818881}.product-card span{margin-top:auto;font-size:1.05rem;font-weight:900;color:#245b32}.product-card .stock-info{font-weight:700}.product-card.out-of-stock{border-style:dashed}.product-card.out-of-stock .stock-info{font-weight:900}.cart-heading{display:flex;align-items:center;gap:9px;margin-bottom:0}.cart-heading-icon{width:23px;height:23px;flex:0 0 auto;color:#245b32}.cart-list{max-height:300px;overflow-y:auto;margin-bottom:14px;border-top:1px solid #edf0ec;border-bottom:1px solid #edf0ec}.empty-cart{padding:34px 10px;text-align:center;color:#8b918d}.cart-item{display:grid;grid-template-columns:minmax(0,1fr) 125px 90px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0ec}.cart-item:last-child{border-bottom:0}.cart-item-name{min-width:0;display:grid;gap:3px}.cart-item-name strong{overflow:hidden;text-overflow:ellipsis}.cart-item-name small{color:#7b837d}.quantity-control{display:grid;grid-template-columns:32px 1fr 32px;gap:3px}.quantity-control button{border:0;border-radius:7px;background:#edf1ed;font-weight:900}.quantity-control input{min-height:36px;padding:0 4px;text-align:center}.checkout-panel>label{margin-top:11px}.totals{display:grid;gap:6px;margin-top:16px;padding:13px 0;border-top:1px solid #dfe4dd;border-bottom:1px solid #dfe4dd}.totals>div{display:flex;justify-content:space-between}.grand-total{margin-top:8px;padding-top:4px;font-size:1.5rem;font-weight:900;line-height:1.2}.grand-total strong{color:#16744a;font-size:1.12em}.payments{margin-top:15px}.payments h3{margin-bottom:9px}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.payment-balance{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding:10px;border-radius:8px;background:#f7ede8;color:#8d4932;font-size:.8rem}.payment-balance.ok{background:#e5f3e7;color:#246132}.finalize-button{width:100%;min-height:58px;margin-top:14px;background:#245b32;color:#fff;font-size:1rem}.open-cash-button{margin-top:10px}.cash-panel{display:none}@media print{@page{size:80mm auto;margin:3mm}html,body{width:80mm;margin:0;padding:0;background:#fff}body *{visibility:hidden!important}.receipt-print,.receipt-print *{visibility:visible!important}.receipt-print{position:absolute;top:0;left:0;display:block!important;width:74mm;margin:0;padding:0;color:#000;background:#fff;font-family:Courier New,Courier,monospace;font-size:10pt;line-height:1.25}.receipt-print p{margin:2mm 0}.receipt-brand{text-align:center;font-size:15pt;font-weight:900}.receipt-title{margin-top:1mm;text-align:center;font-weight:800}.receipt-divider{margin:2.5mm 0;border-top:1px dashed #000}.receipt-item{display:grid;gap:1mm;margin-bottom:2mm;break-inside:avoid}.receipt-item>div,.receipt-total-line{display:flex;justify-content:space-between;gap:4mm}.receipt-grand-total{margin-top:2mm;font-size:13pt}.receipt-footer{text-align:center}}.cash-panel.cash-panel-open{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:#121c159e}.cash-panel.cash-panel-open .cash-card{position:relative;width:min(1120px,96vw);max-height:90dvh;overflow-y:auto;margin:auto;padding:24px;border:1px solid #d8dfd8;border-radius:16px;background:#fff;box-shadow:0 28px 80px #00000047}.cash-card>h3{margin:0 0 20px;padding:0 44px 0 0;font-size:1.28rem;font-weight:800;line-height:1.2;white-space:nowrap}.cash-panel-close{position:absolute;top:18px;right:20px;width:28px;height:28px;padding:0;border:0;background:transparent;color:#7a847d;font-size:26px;font-weight:300;line-height:1;cursor:pointer}.cash-panel-close:hover{color:#152018}.cash-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;width:100%;margin:0 0 18px;padding:0}.cash-stats:before{display:none}.cash-stats>div{padding:10px 12px;border:1px solid #d8dfd8;border-radius:10px;background:#f7f9f7}.cash-stats span{display:block;margin-bottom:4px;color:#7a847d;font-size:.72rem;font-weight:700}.cash-stats strong{display:block;color:#152018;font-size:1rem;font-weight:800}.manual-cash-movements{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:40px 12px 12px;border:1px solid #d8dfd8;border-radius:12px;background:#f7f9f7}.manual-cash-movements:before{content:"MOVIMENTAÇÕES";position:absolute;top:12px;left:12px;color:#526057;font-size:.76rem;font-weight:800;letter-spacing:.04em}.manual-cash-block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.manual-cash-block button{min-height:44px;white-space:nowrap}.cash-movement-notes{grid-column:1 / -1;margin-top:0}.cash-movement-notes input{min-height:44px}.cash-closing-section{margin-top:14px;padding-top:12px;border-top:1px solid #d8dfd8}.cash-closing-section h4{margin:0 0 8px;color:#526057;font-size:.74rem;font-weight:800;letter-spacing:.04em}.cash-closing-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.cash-counted-field{display:grid;gap:6px;width:180px;margin:0}.cash-counted-field input,.cash-closing-row button{min-height:44px}@media(max-width:640px){.cash-closing-row{align-items:stretch;flex-direction:column}.cash-counted-field,.cash-closing-row button{width:100%}}@media(max-width:1000px)and (min-width:641px){.cash-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.cash-panel.cash-panel-open{padding:8px}.cash-panel.cash-panel-open .cash-card{width:100%;max-height:96dvh;padding:16px}.cash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-cash-movements,.manual-cash-block{grid-template-columns:1fr}.cash-actions{align-items:stretch;flex-direction:column}.cash-actions>*{width:100%}}
