:root{font-family:Inter,"Noto Sans Thai","Segoe UI",Tahoma,sans-serif;color:#17202a;background:#f5f7fb;line-height:1.5;--navy:#13233f;--blue:#2864dc;--line:#e4e9f2;--muted:#69778c;--red:#c93d4c;--green:#13795b}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:#245bc2;text-decoration:none}header{position:sticky;top:0;z-index:20;min-height:68px;padding:0 28px;display:flex;align-items:center;gap:30px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 16px #1831530b}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);font-weight:800;white-space:nowrap}.brand small{color:var(--blue)}.logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2864dc,#7b4ce2);display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 6px 18px #2864dc42}.logo.large{width:60px;height:60px;border-radius:17px;font-size:27px;margin:auto}nav{display:flex;gap:4px;flex:1;overflow:auto}nav a{color:#4f5e72;padding:22px 11px;border-bottom:3px solid transparent;white-space:nowrap;font-weight:650}nav a:hover{color:var(--blue);border-color:#a9c1f8}.user{display:flex;align-items:center;gap:10px;white-space:nowrap}.user form{margin:0}main{max-width:1320px;margin:0 auto;padding:30px 24px 50px}.page-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-title h1{margin:2px 0;font-size:2rem;color:var(--navy)}.eyebrow{margin:0;color:var(--blue);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.panel,.stats article,.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 8px 24px #14233c0a;margin-bottom:20px}.panel h2{margin:0 0 18px;color:var(--navy);font-size:1.15rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats.three{grid-template-columns:repeat(3,1fr)}.stats article{display:flex;flex-direction:column;min-height:146px}.stats article>span,.close-summary span{color:var(--muted);font-weight:650}.stats strong{font-size:1.75rem;color:var(--navy);margin:12px 0 3px}.stats small{color:var(--muted)}.stats .warn{border-color:#efb766;background:#fffaf1}.split{display:grid;grid-template-columns:1fr 1.5fr;gap:20px}.pos-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.cart-panel{position:sticky;top:88px;align-self:start}label{display:block;color:#344257;font-weight:700;margin:12px 0 5px}input,select{width:100%;padding:11px 12px;border:1px solid #cdd6e4;border-radius:9px;background:#fff;color:#17202a;font:inherit}input:focus,select:focus{outline:3px solid #2864dc20;border-color:var(--blue)}button,.button{display:inline-block;border:0;border-radius:9px;padding:11px 17px;font:inherit;font-weight:750;cursor:pointer;margin-top:13px}.primary{background:var(--blue);color:#fff}.secondary{background:#edf2fb;color:#27466e}.ghost{background:transparent;color:#536176;margin:0;padding:8px}.full{width:100%}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:#627087;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:#fafbfd}.right{text-align:right}.alert{padding:12px 15px;border-radius:10px;margin:0 0 18px}.alert.error{background:#fff0f2;color:#9b2936}.alert.success{background:#eaf8f2;color:#096846}.status{padding:3px 8px;border-radius:99px;font-size:.78rem;font-weight:750}.status.on{background:#e5f7ef;color:#087054}.status.off{background:#edf0f4;color:#6b7481}.positive{color:var(--green);font-weight:800}.negative,.error-text{color:var(--red);font-weight:750}.low-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.low-row strong{color:var(--red)}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters label{margin:0;min-width:170px}.filters button{margin:0}.close-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.close-summary div{padding:15px;background:#f6f8fc;border-radius:10px;display:flex;flex-direction:column}.close-summary strong{font-size:1.35rem;margin-top:5px}.product-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-height:65vh;overflow:auto;padding:3px}.product-card{margin:0;text-align:left;background:#f8faff;border:1px solid #dce5f5;color:var(--navy);padding:14px}.product-card:hover{border-color:var(--blue);background:#eff4ff}.product-card span{display:block;color:var(--muted);font-size:.84rem;margin-top:3px}.badge{font-size:.75rem;background:#eaf0fd;color:var(--blue);padding:3px 8px;border-radius:99px}.empty{text-align:center;color:var(--muted);padding:35px}.qty-controls{display:flex;align-items:center;gap:5px}.qty-controls button{margin:0;padding:3px 9px}.total{display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--navy);margin-top:14px;padding:18px 0}.total strong{font-size:1.8rem;color:var(--navy)}.change{text-align:right;color:var(--green);font-weight:800}.login-wrap{min-height:90vh;display:grid;place-items:center;background:radial-gradient(circle at top,#e7efff,#f5f7fb 55%)}.login-card{width:min(440px,100%);padding:34px}.login-hero{text-align:center;margin-bottom:24px}.login-hero h1{margin:12px 0 0;color:var(--navy)}.login-hero p{color:var(--muted);margin-top:3px}footer{text-align:center;color:#8893a3;font-size:.83rem;padding:0 0 28px}@media(max-width:1000px){header{padding:0 14px;gap:12px}.user>span{display:none}.stats{grid-template-columns:repeat(2,1fr)}.split,.pos-grid{grid-template-columns:1fr}.cart-panel{position:static}}@media(max-width:620px){main{padding:20px 12px}.brand span:last-child{display:none}nav a{padding:21px 8px}.stats,.stats.three,.form-grid,.product-list,.close-summary{grid-template-columns:1fr}.page-title h1{font-size:1.55rem}.panel{padding:16px}.stats article{min-height:120px}.split{gap:0}}

/* POS v2.1 */
.pos-shortcuts{display:flex;gap:14px;color:var(--muted);font-size:.82rem}.pos-shortcuts kbd{background:#fff;border:1px solid #cfd7e4;border-bottom-width:2px;border-radius:5px;padding:2px 6px;color:#42516a}.product-panel{min-height:680px}.panel-heading h2,.cart-heading h2{margin:0}.panel-heading p{margin:3px 0 16px;color:var(--muted);font-size:.9rem}.search-box{position:relative}.search-box>span{position:absolute;left:14px;top:8px;font-size:1.5rem;color:#718096}.search-box input{padding:14px 42px;font-size:1.05rem}.search-clear{display:none;position:absolute;right:8px;top:5px;margin:0;padding:8px 12px;background:transparent;color:#738096;font-size:1.2rem}.search-clear.visible{display:block}.category-tabs{display:flex;gap:8px;overflow:auto;padding:14px 0 11px}.category-tab{margin:0;padding:8px 14px;border:1px solid #d9e1ed;background:#fff;color:#526178;border-radius:99px;white-space:nowrap}.category-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.product-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:535px;gap:12px}.product-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;min-height:82px;margin:0;border-radius:13px;background:#fff;padding:12px}.product-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px #2864dc16}.product-initial{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#e8efff,#f0ebff);display:grid!important;place-items:center;color:#315fc3!important;font-size:1.2rem!important;font-weight:900}.product-info strong,.product-info small{display:block}.product-info small{margin-top:4px;color:var(--muted);font-weight:500}.product-price{color:var(--blue)!important;font-size:.95rem!important;font-weight:850;white-space:nowrap}.cart-panel{padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 110px);min-height:590px}.cart-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 20px;border-bottom:1px solid var(--line)}.cart-heading>div{display:flex;align-items:center;gap:9px}.danger-text{color:var(--red)}.cart-body{flex:1;min-height:230px}.cart-body th{position:sticky;top:0;z-index:2}.cart-body td:first-child strong,.cart-body td:first-child small{display:block}.cart-body td:first-child small{color:var(--muted);margin-top:2px}.qty-controls button{width:28px;height:28px;padding:0;border-radius:7px;background:#edf2fb;color:#25476f}.remove-item{margin:0;padding:4px 8px;background:transparent;color:#98a2b1;font-size:1.2rem}.cart-footer{padding:0 20px 20px;border-top:1px solid var(--line);background:#fff}.cart-footer .total{border:0;margin:0}.pay-button{font-size:1.08rem;padding:14px}.pay-button:disabled{background:#bbc5d3;cursor:not-allowed}.empty{white-space:normal!important}.empty>*{display:block}.empty-icon{font-size:2rem;margin-bottom:8px}.empty small{margin-top:5px}.product-empty{grid-column:1/-1}.pos-dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:19px;padding:0;box-shadow:0 25px 80px #0d1a3045}.pos-dialog::backdrop{background:#0c172a99;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 24px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:3px 0 0}.dialog-close{margin:0;padding:4px 11px;background:#f1f4f8;color:#59677a;font-size:1.35rem}.size-options{padding:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.size-button{margin:0;padding:15px;display:flex;justify-content:space-between;align-items:center;text-align:left;background:#f8faff;border:1px solid #dce5f5;color:var(--navy)}.size-button span>*{display:block}.size-button small{color:var(--muted);font-weight:500;margin-top:3px}.size-button b{color:var(--blue)}.payment-dialog{padding-bottom:20px}.payment-dialog>*:not(.dialog-head){margin-left:24px;margin-right:24px}.payment-total{display:flex;justify-content:space-between;align-items:center;background:#f3f6fc;border-radius:12px;padding:15px;margin-top:20px!important}.payment-total strong{font-size:1.8rem;color:var(--navy)}.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.method-button{margin:0;background:#fff;border:2px solid #dce3ee;color:#45546a;display:flex;align-items:center;justify-content:center;gap:9px}.method-button span{font-size:1.3rem}.method-button.active{border-color:var(--blue);background:#edf3ff;color:#174fac}.quick-cash{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:9px 0}.quick-cash button{margin:0;padding:9px 5px;background:#edf2fb;color:#28486e}.change-box{display:flex;justify-content:space-between;align-items:center;background:#eaf8f2;color:#076b49;border-radius:10px;padding:12px 14px;margin:12px 0}.change-box strong{font-size:1.35rem}.transfer-note{background:#fff8e8;color:#7b5713;border:1px solid #f1d58d;border-radius:10px;padding:14px;margin-top:15px!important;margin-bottom:15px!important}.transfer-note[hidden],#cashArea[hidden]{display:none}.payment-dialog>.secondary{margin-top:9px}@media(max-width:1000px){.cart-panel{max-height:none;min-height:0}.product-panel{min-height:0}.pos-shortcuts{display:none}}@media(max-width:620px){.product-list{grid-template-columns:1fr;max-height:none}.pos-title{margin-bottom:14px}.product-panel{padding:14px}.size-options{grid-template-columns:1fr}.payment-methods{grid-template-columns:1fr 1fr}.quick-cash{grid-template-columns:repeat(2,1fr)}.cart-heading,.cart-footer{padding-left:14px;padding-right:14px}.cart-body table{font-size:.84rem}}

/* Product-first visual cards */
.product-list{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}.product-card.product-tile{display:flex;flex-direction:column;align-items:stretch;gap:9px;min-height:214px;padding:15px;text-align:center;border:1px solid #e0e6f0;background:linear-gradient(180deg,#fff,#fbfcff)}.product-card.product-tile:hover{border-color:#91acec;box-shadow:0 12px 26px #1f54bd18;transform:translateY(-3px)}.product-icon,.dialog-product-icon{display:grid!important;place-items:center;margin:0 auto;width:78px;height:78px;border-radius:22px;font-size:2.8rem!important;line-height:1;box-shadow:inset 0 0 0 1px #ffffff99}.product-info{min-width:0}.product-info strong{font-size:1rem;color:var(--navy);white-space:normal;line-height:1.3}.product-info small{font-size:.78rem}.product-card-footer{display:flex!important;align-items:end;justify-content:space-between;gap:5px;margin-top:auto!important;padding-top:9px;border-top:1px solid #edf0f5;color:var(--blue)!important}.product-card-footer b{font-size:.92rem;white-space:nowrap}.product-card-footer em{font-size:.68rem;font-style:normal;font-weight:700;color:#7a8799;text-align:right}.tone-pink{background:linear-gradient(145deg,#ffe7f1,#ffd1e4)}.tone-blue{background:linear-gradient(145deg,#e5efff,#cadcff)}.tone-navy{background:linear-gradient(145deg,#e7ecf5,#cfd9eb)}.tone-violet{background:linear-gradient(145deg,#f0e8ff,#ddceff)}.tone-cyan{background:linear-gradient(145deg,#e0f8fb,#c3edf4)}.tone-green{background:linear-gradient(145deg,#e4f8ed,#c8edd9)}.tone-yellow{background:linear-gradient(145deg,#fff7d9,#ffebaa)}.tone-orange{background:linear-gradient(145deg,#fff0de,#ffd8aa)}.tone-slate{background:linear-gradient(145deg,#edf1f5,#dce3ea)}.selected-product{display:flex;align-items:center;gap:14px}.dialog-product-icon{width:58px;height:58px;margin:0;border-radius:16px;font-size:2rem!important}.size-dialog-body{padding:18px 24px 24px}.field-title{font-weight:800;color:#38465b;margin:0 0 8px}.size-options{padding:0;margin-bottom:20px}.size-button.selected{border:2px solid var(--blue);background:#edf3ff;box-shadow:0 0 0 3px #2864dc12}.dialog-quantity{display:grid;grid-template-columns:48px 70px 48px;justify-content:center;align-items:center;gap:7px;margin:10px 0 20px}.dialog-quantity button{margin:0;width:48px;height:44px;padding:0;background:#edf2fb;color:#25476f;font-size:1.35rem}.dialog-quantity button:disabled{opacity:.45}.dialog-quantity strong{text-align:center;font-size:1.45rem}.pos-toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translate(-50%,25px);display:flex;align-items:center;gap:9px;padding:12px 18px;border-radius:99px;background:#15243d;color:#fff;box-shadow:0 12px 35px #101b2e4d;opacity:0;pointer-events:none;transition:.2s ease}.pos-toast span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ffffff20;font-size:1.15rem}.pos-toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:1180px){.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card.product-tile{min-height:190px;padding:11px}.product-icon{width:64px;height:64px;font-size:2.2rem!important}.product-card-footer{display:block!important;text-align:center}.product-card-footer em{display:block;margin-top:3px;text-align:center}.pos-toast{width:max-content;max-width:calc(100% - 24px);bottom:16px}}
.product-card.product-tile.unavailable{cursor:not-allowed;background:#f8f9fb;border-style:dashed;opacity:.72}.product-card.product-tile.unavailable:hover{transform:none;box-shadow:none;border-color:#d7dde7}.product-card.unavailable .product-card-footer b{color:#788598;font-size:.75rem;white-space:normal}.product-card.unavailable .product-card-footer em{color:#b04450}.size-button:disabled{cursor:not-allowed;opacity:.55;background:#f3f4f6}
.pos-toast.sale-success{background:linear-gradient(135deg,#087852,#0b9968);padding:15px 22px;border-radius:15px;box-shadow:0 16px 40px #08785255;font-size:1rem}.pos-toast.sale-success span{background:#fff;color:#087852;font-weight:900}.pos-toast.sale-success strong{white-space:normal}
.stock-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:20px}.scan-panel{background:linear-gradient(145deg,#fff,#f6f9ff)}.stock-scan-box{position:relative}.stock-scan-box>span{position:absolute;left:17px;top:11px;font-size:1.65rem;color:var(--blue)}.stock-scan-box input{padding:17px 18px 17px 55px;font-size:1.12rem;border:2px solid #9db8ee}.stock-selected{display:flex;align-items:center;gap:15px;margin-top:19px;padding:17px;border:1px solid #b8d1ff;border-radius:14px;background:#edf4ff}.stock-selected-icon{width:55px;height:55px;display:grid;place-items:center;border-radius:15px;background:#fff;font-size:2rem}.stock-selected strong,.stock-selected small{display:block}.stock-selected small{margin-top:4px;color:var(--muted)}.empty-selection{border-style:dashed;background:#f8f9fc;color:#657287}.barcode-warning{display:flex;align-items:center;justify-content:space-between;gap:12px}.barcode-warning form,.barcode-warning button{margin:0}.barcode-help p{margin:0}.barcode-sheet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.barcode-label{min-height:155px;padding:12px;border:1px dashed #8b98a9;border-radius:8px;background:#fff;text-align:center;break-inside:avoid;page-break-inside:avoid;overflow:hidden}.barcode-label strong,.barcode-label span,.barcode-label small{display:block}.barcode-label span{font-size:.82rem;color:#58667a}.barcode-label small{font-family:Consolas,monospace;letter-spacing:.08em}.barcode-canvas{height:72px;margin:5px auto 1px;display:flex;justify-content:center}.barcode-canvas svg{max-width:100%;height:72px}.barcode-error{color:var(--red);font-size:.78rem;padding-top:20px}@media(max-width:900px){.stock-layout{grid-template-columns:1fr}.barcode-sheet{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.barcode-sheet{grid-template-columns:1fr}.barcode-warning{align-items:flex-start;flex-direction:column}}
.receipt{max-width:720px;margin-left:auto;margin-right:auto}.receipt-head{text-align:center;position:relative}.receipt-head .logo{margin:auto}.receipt-head h2{margin:10px 0 0}.receipt-head p{margin:2px 0 16px;color:var(--muted)}.receipt-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px dashed #aeb8c6;border-bottom:1px dashed #aeb8c6;font-size:.88rem}.receipt-totals{margin-left:auto;width:min(340px,100%);padding-top:14px}.receipt-totals p{display:flex;justify-content:space-between;margin:7px 0}.receipt-totals p:first-child{font-size:1.2rem;border-bottom:2px solid var(--navy);padding-bottom:9px}.receipt-thanks{text-align:center;color:var(--muted);margin-top:28px}.void-stamp{position:absolute;right:0;top:10px;border:3px solid var(--red);color:var(--red);padding:6px 12px;border-radius:7px;font-size:1.2rem;font-weight:900;transform:rotate(-7deg)}.receipt-voided{opacity:.78}.void-detail{background:#fff0f1;color:#912c38;border-radius:9px;padding:12px;margin-top:16px}.danger-zone{max-width:720px;margin-left:auto;margin-right:auto;border-color:#efc1c6}.danger-zone h2{color:var(--red)}@media print{header,footer,.no-print{display:none!important}body,main{background:#fff;padding:0;margin:0}.receipt{box-shadow:none;border:0;max-width:none;margin:0;padding:0}.receipt .logo{box-shadow:none}th{background:#fff}.receipt{font-size:12pt}@page{margin:12mm}}
.barcode-error{color:var(--red);font-size:.78rem;padding-top:20px}@media print{main{max-width:none}.barcode-sheet{grid-template-columns:repeat(3,1fr);gap:4mm}.barcode-label{min-height:38mm;border:1px dashed #555;padding:3mm;box-shadow:none}.barcode-canvas,.barcode-canvas svg{height:18mm}@page{margin:10mm}}

/* v3.1.1 responsive POS */
.product-panel .product-list{max-height:none!important;overflow:visible!important}
.payment-dialog{overflow-x:hidden;max-width:calc(100vw - 24px)}
.payment-dialog>*:not(.dialog-head){width:calc(100% - 48px);max-width:calc(100% - 48px)}
@media(max-width:520px){.payment-dialog{width:calc(100% - 16px);max-width:calc(100% - 16px)}.payment-dialog .dialog-head{padding:18px 14px}.payment-dialog>*:not(.dialog-head){margin-left:14px;margin-right:14px;width:calc(100% - 28px);max-width:calc(100% - 28px)}.payment-total strong{font-size:1.55rem}.method-button{padding-left:8px;padding-right:8px}.quick-cash{gap:5px}}

/* v3.1.3 non-blocking cash-change notice */
.change-notice[hidden]{display:none!important}.change-notice{position:fixed;z-index:90;right:22px;top:88px;width:min(390px,calc(100% - 24px));display:flex;align-items:center;gap:16px;padding:20px;border:1px solid #9bdbc5;border-top:6px solid #0a9365;border-radius:18px;background:#fff;box-shadow:0 20px 55px #14233c3d;opacity:0;transform:translateX(28px);transition:opacity .2s ease,transform .2s ease}.change-notice.show{opacity:1;transform:translateX(0)}.change-success-icon{flex:0 0 55px;width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#e4f8f0;color:#07825b;font-size:1.8rem;font-weight:900}.change-notice-copy{min-width:0}.change-notice p{margin:0;color:var(--green);font-weight:800}.change-notice strong{display:block;color:#087852;font-size:2.45rem;line-height:1.15;letter-spacing:-.03em}.change-notice small{display:block;color:var(--muted);margin-top:3px}@media(max-width:620px){.change-notice{right:12px;top:76px;padding:16px}.change-notice strong{font-size:2rem}}

/* v3.1.4 independent product and cart panes on desktop */
@media(min-width:1001px){.pos-grid{height:calc(100vh - 185px);min-height:570px;align-items:stretch}.product-panel{height:100%;min-height:0;display:flex;flex-direction:column;margin-bottom:0}.product-panel .product-list{flex:1;min-height:0;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;padding-right:8px}.cart-panel{position:relative;top:auto;height:100%;min-height:0;max-height:none;margin-bottom:0}.cart-body{overflow-y:auto;overscroll-behavior:contain}.product-panel .product-list::-webkit-scrollbar,.cart-body::-webkit-scrollbar{width:8px}.product-panel .product-list::-webkit-scrollbar-thumb,.cart-body::-webkit-scrollbar-thumb{background:#c5cfdd;border-radius:99px}.product-panel .product-list::-webkit-scrollbar-track,.cart-body::-webkit-scrollbar-track{background:transparent}}

/* v3.2 stock inventory report */
.print-only{display:none}.report-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.report-actions button,.report-actions .button{margin-top:0}.pdf-help{margin:14px 0 0;color:var(--muted);font-size:.88rem}.stock-report-stats article{min-height:125px}.stock-report-summary{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:14px;padding:11px 13px;border-radius:10px;background:#f5f8fd;color:#536176}.stock-report-summary b{color:var(--navy)}.status.stock-low{background:#fff2d8;color:#946000}.stock-report-table tfoot th{background:#eef3fb;color:var(--navy);font-size:.9rem}.stock-report-table tbody tr:hover{background:#f8faff}@media(max-width:760px){.report-actions{justify-content:flex-start}.stock-report-table{font-size:.82rem}}
@media print{.stock-report-main{page:stockreport;max-width:none}.stock-report-main .print-only{display:block!important}.stock-print-head{text-align:center;margin-bottom:7mm}.stock-print-head h1{margin:0;font-size:18pt}.stock-print-head p{margin:2mm 0;color:#555}.stock-report-stats{grid-template-columns:repeat(4,1fr);gap:3mm}.stock-report-stats article{min-height:0;padding:3mm;margin-bottom:3mm;box-shadow:none;border:1px solid #bbb}.stock-report-stats strong{font-size:13pt;margin:2mm 0 0}.stock-report-panel{padding:0;border:0;box-shadow:none}.stock-report-summary{padding:2mm;margin-bottom:2mm;border:1px solid #bbb}.stock-report-panel .table-wrap{overflow:visible}.stock-report-table{font-size:7.5pt}.stock-report-table th,.stock-report-table td{padding:1.6mm 1.4mm;white-space:normal}.stock-report-table thead{display:table-header-group}.stock-report-table tfoot{display:table-footer-group}.stock-report-table tr{break-inside:avoid;page-break-inside:avoid}}
@page stockreport{size:A4 landscape;margin:9mm}

/* v3.3 refund tracking */
.danger{background:var(--red);color:#fff}.refund-total{margin-top:12px!important;padding-top:10px;border-top:1px dashed #d4939b;color:var(--red)}.refund-total strong{color:var(--red)!important}.void-detail>strong{display:inline-block;margin-bottom:5px}.refund-stat{border-color:#efc4ca!important;background:#fff8f8!important}.refund-stat strong{color:var(--red)!important}.refund-method{display:block;color:var(--muted);font-size:.72rem}.close-summary{grid-template-columns:repeat(2,1fr)}.refund-close{background:#fff1f2!important}.refund-close strong{color:var(--red)}.refund-close small{color:#9b5961}@media(max-width:620px){.close-summary{grid-template-columns:1fr}}

/* v3.3.1 lock desktop POS to the viewport */
@media(min-width:1001px){.pos-main{height:calc(100vh - 68px);min-height:0;padding-top:20px;padding-bottom:14px;display:flex;flex-direction:column;overflow:hidden}.pos-main .page-title{flex:0 0 auto;margin-bottom:14px}.pos-main .pos-grid{flex:1;height:auto;min-height:0}.pos-main .product-panel,.pos-main .cart-panel{height:100%;min-height:0}.pos-main+footer{display:none}}

/* v3.4 school email login and password reset */
.login-help{margin:14px 0 0;text-align:center;color:var(--muted);font-size:.84rem}

/* v3.4.1 JS POS school branding */
.logo{font-size:0!important;color:transparent;background:#fff url('/assets/img/school-logo.png') center/contain no-repeat;box-shadow:none;border-radius:50%}.logo.large{width:82px;height:82px;border-radius:50%;box-shadow:0 8px 24px #17315b24}.login-hero small{display:block;margin-top:5px;color:var(--muted)}.receipt-head h2{font-size:0}.receipt-head h2::after{content:'JS POS';font-size:1.5rem}.receipt-head p::before{content:'โรงเรียนวัดจันทราวาส (ศุขประสารราษฎร์)';display:block;color:var(--navy);font-weight:700;margin-bottom:2px}.receipt-head .logo.large{width:72px;height:72px}

/* v3.4.4 scanner always ready */
.product-panel .panel-heading p::after{content:'  •  พร้อมยิงบาร์โค้ด';color:#087852;font-weight:800}.product-panel .search-box:focus-within{filter:drop-shadow(0 0 7px #168b5e24)}.product-panel .search-box:focus-within input{border-color:#168b5e;outline-color:#168b5e24}
