/* V20 Enterprise Final: layout, sticky controls, invoice, scanner fixes */
:root{--pw-green:#0f5132;--pw-line:#e5e7eb;--pw-bg:#f6f8fb;--pw-text:#14213d}
html,body{max-width:100%;overflow-x:hidden!important}
body{background:var(--pw-bg)}
.app-shell.v20 .page{max-width:1440px;width:100%;padding:18px 18px 120px;margin:0 auto;overflow-x:hidden}
.topbar{position:sticky!important;top:0!important;z-index:1000!important}
.customer-v20-page{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;width:100%;max-width:100%;overflow:visible}
.customer-v20-main{min-width:0;width:100%}
.v20-sticky-control{position:sticky;top:72px;z-index:900;background:rgba(246,248,251,.98);backdrop-filter:blur(12px);border:1px solid var(--pw-line);border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.10);padding:12px;margin-bottom:14px;max-width:100%;overflow:hidden}
.v20-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.v20-scan-row{display:grid;grid-template-columns:minmax(0,1fr) 88px 120px 120px;gap:8px;align-items:center}
.v20-category-row{display:flex;gap:8px;overflow-x:auto;white-space:nowrap;padding:8px 0 4px;margin-top:8px;scrollbar-width:thin;border-top:1px solid #edf0f5}
.v20-category-row .chip{flex:0 0 auto}
.v20-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;min-width:0}
.v20-product-card{position:relative;display:flex;flex-direction:column;gap:8px;min-height:430px;padding:12px;overflow:hidden}
.v20-product-card .product-img{height:150px;aspect-ratio:auto;object-fit:contain;background:#fff;border:1px solid var(--pw-line);border-radius:14px;padding:4px;cursor:zoom-in}
.v20-product-card .product-title{font-weight:900;line-height:1.16;min-height:44px;font-size:.95rem}
.v20-meta{font-size:.78rem;color:#475467;line-height:1.35;background:#f8fafc;border:1px solid #edf0f5;border-radius:12px;padding:8px;min-height:112px}
.v20-price-box{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.v20-price-box div{border:1px solid var(--pw-line);border-radius:12px;padding:8px;background:#fff;font-size:.78rem}
.v20-price-box b{font-size:.76rem;color:#475467;text-transform:uppercase}
.v20-price-box .money{display:block;font-size:.95rem;color:var(--pw-green);font-weight:900;margin-top:2px}
.v20-card-actions{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px}
.v20-card-actions .input{min-width:0}
.v20-cart{position:sticky;top:82px;max-height:calc(100dvh - 100px);overflow:auto;border:2px solid rgba(15,81,50,.14);min-width:0}
.v20-cart .v20-bottom-submit{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--pw-line);padding:10px;margin:10px -18px -18px;z-index:50;box-shadow:0 -8px 22px rgba(15,23,42,.08)}
.v20-floating-submit{position:fixed;left:14px;right:14px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:1100;background:#102033;color:#fff;border-radius:18px;padding:10px 12px;display:none;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 16px 36px rgba(15,23,42,.28)}
.v20-floating-submit .btn{white-space:nowrap}.v20-floating-submit strong{display:block}.v20-floating-submit small{color:#d5dde8}
.fav-btn{z-index:6}.fav-btn.active{color:#f59e0b!important}
.v20-modal-actions{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:0;background:#fff;border-top:1px solid var(--pw-line);padding:12px 0 0;margin-top:12px;z-index:20}
.scan-video{width:100%;max-height:360px;background:#111;border-radius:18px;margin-top:12px}
.v20-order-tools{display:grid;grid-template-columns:1fr 180px 150px 150px;gap:8px;margin:10px 0}
.warehouse-row{width:100%;border:1px solid var(--pw-line);border-radius:14px;background:#fff;padding:12px;text-align:left;display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:center;margin-bottom:8px}.warehouse-row:hover{border-color:var(--pw-green);box-shadow:0 0 0 3px rgba(15,81,50,.08)}
.v20-invoice{background:#fff;color:#111;padding:24px;border-radius:12px;border:1px solid #d0d5dd}.v20-invoice-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #0f5132;padding-bottom:14px;margin-bottom:16px}.v20-invoice h1{font-size:32px;margin:0;color:#0f5132}.v20-invoice table{width:100%;border-collapse:collapse;min-width:900px}.v20-invoice th,.v20-invoice td{border:1px solid #d0d5dd;padding:8px;text-align:left;font-size:13px}.v20-invoice th{background:#f3f7f4;color:#0f5132;text-transform:uppercase;font-size:11px}.v20-invoice .num{text-align:right}.v20-invoice .totals{max-width:360px;margin-left:auto;margin-top:16px}.v20-invoice .totals div{display:flex;justify-content:space-between;border-bottom:1px solid #ddd;padding:8px}.v20-invoice .totals .grand{font-size:18px;color:#0f5132;font-weight:900}.printable-invoice{background:#fff}.invoice-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
@media(max-width:1100px){.customer-v20-page{grid-template-columns:1fr}.v20-cart{position:relative;top:auto;max-height:none}.v20-floating-submit{display:flex}.app-shell.v20 .page{padding-bottom:92px}.v20-order-tools{grid-template-columns:1fr 1fr}.warehouse-row{grid-template-columns:1fr}}
@media(max-width:760px){.v20-sticky-control{top:64px;border-radius:0;margin-left:-12px;margin-right:-12px}.v20-head-row{display:block}.v20-scan-row{grid-template-columns:1fr 74px}.v20-scan-row .btn{width:100%}.v20-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v20-product-card{min-height:390px;padding:10px}.v20-product-card .product-img{height:120px}.v20-meta{font-size:.72rem;min-height:102px;padding:7px}.v20-price-box div{padding:7px}.v20-card-actions{grid-template-columns:58px 1fr}.v20-card-actions .btn{padding:8px 6px;font-size:.82rem}.v20-order-tools{grid-template-columns:1fr}.nav{max-width:70%;overflow-x:auto;flex-wrap:nowrap}.nav .btn{white-space:nowrap}.modal-card{width:96vw;padding:16px}.v20-invoice{padding:12px}.v20-invoice-head{display:block}.v20-invoice table{min-width:760px}}
@media(max-width:430px){.v20-products{grid-template-columns:repeat(2,minmax(0,1fr))}.v20-product-card{min-height:375px}.v20-product-card .product-title{font-size:.85rem}.v20-price-box{grid-template-columns:1fr}.v20-price-box div{font-size:.72rem}.v20-price-box .money{font-size:.85rem}.brand-text{display:block;font-size:.9rem}.brand .sub{font-size:.72rem}.v20-floating-submit{font-size:.85rem}.v20-floating-submit .btn{padding:8px 10px}}
@media print{body{background:#fff}.topbar,.btn,.modal-close,.v20-floating-submit,.invoice-actions{display:none!important}.modal{position:static;background:#fff;padding:0}.modal-card{box-shadow:none;max-height:none;width:100%;max-width:none;padding:0}.v20-invoice{border:0;border-radius:0}.v20-invoice table{min-width:0}.v20-invoice th,.v20-invoice td{font-size:11px;padding:6px}}
