*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,Segoe UI,Arial,sans-serif}
:root{--black:#1a1a1a;--yellow:#f9d71c;--red:#d71921;--gold-light:#fef2c0;--bg:#f5f3f0;--shadow:0 8px 24px rgba(0,0,0,.08);--shadow-hover:0 12px 32px rgba(0,0,0,.15);--radius:28px;--transition:.25s ease;--green:#1a7a3a;--purple:#6f42c1;--teal:#20c997;--orange:#fd7e14;--indigo:#6610f2;--pink:#e83e8c}
body{background:var(--bg);color:var(--black);min-height:100vh}.hidden{display:none!important}button,input,select,textarea{font:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}::-webkit-scrollbar-thumb{background:var(--yellow);border-radius:10px}
.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(145deg,#1a1a1a 0%,#2d2d2d 100%);padding:1rem}.login-card{background:#fff;padding:2.8rem 3.2rem;border-radius:60px;box-shadow:0 30px 60px rgba(0,0,0,.5);max-width:420px;width:100%;border-top:8px solid var(--yellow)}.login-card h1{font-size:2rem;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.login-card h1 span,.logo h1 span{background:var(--yellow);color:var(--red);padding:.1rem .8rem;border-radius:40px;font-size:1rem}.login-card .sub{color:#555;margin:.3rem 0 1.8rem;font-weight:500}.login-card label{font-weight:600;font-size:.85rem;display:block;margin-top:1rem}.login-card input{width:100%;padding:.75rem 1.2rem;border-radius:60px;border:1px solid #d6d2cc;background:#fcfbf9;margin-top:.2rem;font-size:.95rem}.login-card input:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--yellow);border-color:var(--yellow)}.login-btn{background:var(--black);color:#fff;border:0;padding:.9rem;border-radius:60px;font-weight:700;font-size:1rem;margin-top:1.8rem;cursor:pointer;width:100%;transition:var(--transition)}.login-btn:hover{background:var(--red);transform:translateY(-2px)}.flag-stripes,.flag-stripes-mini{display:flex;gap:4px;justify-content:center}.flag-stripes{margin-top:1.5rem}.flag-stripes span{width:48px;height:8px;border-radius:6px}.flag-stripes-mini span{width:26px;height:5px;border-radius:5px}.b{background:var(--black)}.y{background:var(--yellow)}.r{background:var(--red)}.demo-creds{font-size:.7rem;color:#888;margin-top:1rem;text-align:center;line-height:1.7}
.container{max-width:1440px;margin:0 auto;padding:1.5rem 2rem}.header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0 1.2rem;border-bottom:3px solid var(--yellow);flex-wrap:wrap;gap:1rem}.logo h1{font-weight:700;font-size:1.9rem;letter-spacing:-.5px}.logo .subtitle{font-size:.7rem;color:#555;margin-top:.1rem}.user-badge{display:flex;align-items:center;gap:.8rem;background:#fff;padding:.45rem 1rem;border-radius:60px;box-shadow:var(--shadow);flex-wrap:wrap}.user-icon{color:var(--red);font-size:1.2rem}.role-tag{background:var(--black);color:#fff;font-size:.68rem;font-weight:600;padding:.18rem .8rem;border-radius:30px;margin-top:.2rem;width:max-content}.site-tag{background:var(--yellow);font-size:.68rem;font-weight:700;padding:.24rem .8rem;border-radius:30px}.logout-btn{border:0;background:transparent;color:var(--red);cursor:pointer;font-size:1.35rem;padding:.2rem .5rem}.site-selector{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.2rem 0;background:#fff;padding:.5rem 1.2rem;border-radius:80px;box-shadow:var(--shadow)}.site-btn{background:transparent;border:0;padding:.5rem 1.4rem;border-radius:40px;font-weight:600;font-size:.9rem;color:#3a3a3a;cursor:pointer;transition:var(--transition)}.site-btn:before{content:'▣';color:var(--red);margin-right:6px}.site-btn.active{background:var(--black);color:#fff}.site-btn.active:before{color:var(--yellow)}.site-btn:hover:not(.active){background:#ecebe7}
.page-heading{display:flex;justify-content:space-between;align-items:end;margin:1.2rem 0 .6rem}.page-heading h2{font-size:1.25rem}.page-heading p{font-size:.75rem;color:#666;margin-top:.2rem}.module-toolbar{margin:1rem 0 1.25rem;overflow-x:auto;padding-bottom:.25rem}.module-toolbar nav{display:flex;gap:.55rem;min-width:max-content;flex-wrap:wrap}.nav-btn,.btn{background:#fff;border:1px solid #d0ceca;padding:.47rem 1.1rem;border-radius:40px;font-weight:600;font-size:.8rem;display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:var(--transition);box-shadow:0 2px 4px rgba(0,0,0,.02)}.nav-btn:hover,.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.nav-btn.active{background:var(--black);border-color:var(--black);color:#fff}.nav-btn.active:before{color:var(--yellow)}
.content{padding:0}.stats,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.2rem;margin-bottom:1.2rem}.stat{background:#fff;padding:1rem 1.5rem;border-radius:24px;box-shadow:var(--shadow);border-left:6px solid var(--yellow);transition:var(--transition)}.stat small{font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:#5a5a5a}.stat strong{display:block;font-weight:700;font-size:1.45rem;margin-top:.1rem}.panel{background:#fff;border-radius:var(--radius);padding:1.15rem 1.25rem;margin-top:1rem;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem}.panel h2{font-size:.95rem;color:#444}.actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.btn.dark{background:var(--black);border-color:var(--black);color:#fff}.btn.dark:before{color:var(--yellow)}.btn.yellow{background:var(--yellow);border-color:var(--yellow);color:var(--black)}.btn.red{background:var(--red);border-color:var(--red);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.purple{background:var(--purple);border-color:var(--purple);color:#fff}.btn.orange{background:var(--orange);border-color:var(--orange);color:#fff}.btn.indigo{background:var(--indigo);border-color:var(--indigo);color:#fff}.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}
.table-wrap{background:#fff;border-radius:var(--radius);padding:.2rem;box-shadow:var(--shadow);overflow-x:auto;border:0}table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:700px}th{text-align:left;padding:.9rem 1rem .5rem;color:#3d3d3d;font-weight:600;border-bottom:2px solid #efedea;background:#faf8f5}td{padding:.65rem 1rem;border-bottom:1px solid #f1efeb;vertical-align:middle}tr:last-child td{border-bottom:0}tr:hover td{background:#faf8f5}.badge{padding:.15rem .7rem;border-radius:30px;font-size:.68rem;font-weight:700;text-transform:capitalize}.badge.pending,.badge.draft{background:#fff3cd;color:#856404}.badge.partial,.badge.submitted,.badge.ordered,.badge.in_transit{background:#dbe7ff;color:#194f90}.badge.paid,.badge.approved,.badge.completed,.badge.received,.badge.dispatched{background:#d4edda;color:#155724}.badge.cancelled,.badge.rejected,.badge.void{background:#f8d7da;color:#721c24}.empty{padding:2rem;text-align:center;color:#888}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:10000;padding:1rem}.modal-card{background:#fff;width:min(900px,96vw);max-height:94vh;overflow:auto;padding:2rem;border-radius:40px;box-shadow:0 30px 60px rgba(0,0,0,.4);border-top:8px solid var(--yellow);position:relative}.modal-x{position:absolute;top:14px;right:18px;border:0;background:#f5f3f0;border-radius:50%;width:36px;height:36px;font-size:1.5rem;cursor:pointer}.modal-card h2{font-size:1.25rem;margin:0 2rem 1rem 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.form-grid .full{grid-column:1/-1}.field{font-size:.76rem;font-weight:600;color:#444}.field input,.field select,.field textarea{display:block;width:100%;padding:.62rem .9rem;border-radius:30px;border:1px solid #d6d2cc;background:#fcfbf9;margin-top:.25rem}.field textarea{border-radius:16px;min-height:72px;resize:vertical}.form-section{background:#f5f3f0;border-radius:16px;padding:1rem;margin:.75rem 0}.info-box{background:#fde8e8;padding:.65rem 1rem;border-radius:12px;margin-bottom:1rem;font-size:.82rem;border-left:4px solid var(--red);line-height:1.55}.info-box strong{color:var(--red)}
.customer-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.8rem 0}.mode-btn{border:1px solid #d6d2cc;background:#fff;padding:.7rem;border-radius:40px;font-weight:700;cursor:pointer}.mode-btn.active{background:var(--black);color:#fff;border-color:var(--black)}.searchable-dropdown{position:relative}.customer-results{border:1px solid #ddd;border-radius:14px;background:#fff;max-height:220px;overflow:auto;margin-top:.35rem}.customer-result{padding:.65rem .8rem;border-bottom:1px solid #eee;cursor:pointer;font-size:.8rem}.customer-result:last-child{border-bottom:0}.customer-result:hover,.customer-result.selected{background:#fff7cf}.customer-result.add-new{background:#e8f5e9;font-weight:700;border-bottom:2px solid var(--yellow)}.customer-detail-card{background:#f5f3f0;padding:.8rem 1rem;border-radius:16px;margin:.5rem 0;font-size:.82rem;line-height:1.55}.inline-customer{background:#f5f3f0;padding:1rem;border-radius:16px;margin-top:.7rem;border:1px dashed #bbb}
.item-row{background:#fff5f5;padding:12px 15px;border-radius:12px;margin-bottom:10px;border-left:4px solid var(--red);position:relative;border:1px solid #fde2e2}.item-row-grid{display:grid;grid-template-columns:minmax(180px,2fr) .75fr 1fr 1fr;gap:.8rem;padding-right:36px;align-items:end}.item-row label{font-size:.72rem;font-weight:600;color:#5a3a3a}.item-row select,.item-row input{background:#fff;border:1px solid #e0c8c8;padding:.52rem .8rem;border-radius:30px;width:100%;margin-top:.2rem}.item-total{font-weight:700;color:var(--red);background:#fde8e8;padding:.5rem .8rem;border-radius:30px;text-align:center;border:1px solid #fcd0d0;min-height:38px;display:flex;align-items:center;justify-content:center}.remove-item{position:absolute;top:9px;right:10px;background:var(--red);color:#fff;border:0;border-radius:50%;width:28px;height:28px;cursor:pointer}.add-item-btn{background:var(--red);color:#fff;border:0;padding:.5rem 1.3rem;border-radius:40px;font-weight:700;cursor:pointer}.invoice-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:.9rem 0}.summary-box{background:#f5f3f0;padding:.7rem 1rem;border-radius:14px}.summary-box small{display:block;color:#777;font-size:.68rem;text-transform:uppercase}.summary-box strong{font-size:1rem}.grand-total-box{background:var(--red);color:#fff;padding:.8rem 1.5rem;border-radius:16px;display:flex;justify-content:space-between;align-items:center;margin-top:.6rem}.grand-total-box .label{font-size:.9rem}.grand-total-box .value{font-size:1.5rem;font-weight:700;color:var(--yellow)}
.thermal{font-family:'Courier New',monospace;width:80mm;margin:auto;color:#000;background:#fff;padding:4mm}.thermal h2,.thermal p{text-align:center;margin:3px}.thermal table{min-width:0;font-size:10px;box-shadow:none}.thermal td,.thermal th{padding:3px;border-bottom:1px dashed #777}.divider{border-top:1px dashed #000;margin:6px 0}.thermal .big{font-size:14px;font-weight:bold}.invoice-print{background:#fff;color:#000;max-width:760px;margin:auto;padding:24px;font-family:Arial,sans-serif}.invoice-print .doc-head{display:flex;justify-content:space-between;border-bottom:4px solid var(--yellow);padding-bottom:12px}.invoice-print h1{font-size:24px}.invoice-print .doc-title{font-size:24px;font-weight:800;color:var(--red)}.invoice-print .doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.invoice-print .doc-box{background:#f7f7f7;padding:12px;border-radius:10px}.invoice-print table{min-width:0}.invoice-print .doc-total{text-align:right;font-size:20px;font-weight:800;margin-top:14px}.footer-flag{margin-top:2.5rem;padding:1rem 0;border-top:3px solid var(--yellow);display:flex;justify-content:space-between;align-items:center;color:#666;font-size:.75rem}.flag-stripes-mini{justify-content:flex-end}#toast{position:fixed;right:18px;top:18px;z-index:20000}.toast{background:#222;color:#fff;padding:12px 15px;border-radius:12px;margin:8px;box-shadow:0 8px 30px #0003}
.line-item{display:grid;grid-template-columns:2fr .8fr 1fr auto;gap:8px;margin:8px 0}.line-item input,.line-item select,.table-wrap input,.table-wrap select{padding:7px;border:1px solid #d9d9d9;border-radius:30px}.line-item.journal-line{grid-template-columns:minmax(220px,2fr) 1fr 1fr auto}.limit-row{grid-template-columns:1.2fr 1.4fr 1fr 1fr}a.btn{text-decoration:none;color:inherit}
@media(max-width:768px){.container{padding:1rem}.login-card{padding:2rem 1.5rem}.header{flex-direction:column;align-items:flex-start}.user-badge{width:100%;justify-content:center}.site-selector{border-radius:20px;justify-content:center}.module-toolbar nav{flex-wrap:nowrap}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-card{padding:1.35rem;border-radius:28px}.item-row-grid{grid-template-columns:1fr 1fr}.invoice-summary{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.invoice-print .doc-head,.invoice-print .doc-meta{grid-template-columns:1fr;display:grid}.line-item.journal-line,.limit-row{grid-template-columns:1fr}.footer-flag{flex-direction:column;gap:.6rem}.table-wrap{margin-left:-.25rem;margin-right:-.25rem}}
@media(max-width:480px){.stats{grid-template-columns:1fr}.site-btn{padding:.45rem .8rem}.nav-btn{padding:.45rem .8rem}.item-row-grid{grid-template-columns:1fr}}
@media print{body *{visibility:hidden}.thermal,.thermal *,.invoice-print,.invoice-print *{visibility:visible}.thermal,.invoice-print{position:absolute;left:0;top:0}.thermal{width:80mm}.invoice-print{width:100%;max-width:none}.modal{background:#fff}.modal-x,.print-hide{display:none!important}}
.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin:1.2rem 0;gap:.8rem}.toolbar .left{display:flex;gap:.6rem;flex-wrap:wrap}.stock-section{background:#fff;padding:1rem 1.2rem;border-radius:24px;box-shadow:var(--shadow);margin-bottom:1.2rem}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem}.inv-item{background:#f5f3f0;padding:.65rem .8rem;border-radius:12px;text-align:center;border-left:4px solid var(--yellow);transition:var(--transition)}.inv-item:hover{transform:scale(1.02);box-shadow:var(--shadow)}.inv-item .name{font-weight:600;font-size:.8rem}.inv-item .qty{font-size:1.2rem;font-weight:700}.inv-item .unit{font-size:.62rem;color:#888}.inv-item.low{border-left-color:var(--red);background:#fef5f5}.customer-search-container{margin-bottom:1rem}.customer-search-container input{width:100%;padding:.65rem 1rem;border-radius:60px;border:1px solid #d6d2cc;background:#fcfbf9}.customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.customer-card{background:#fff;border-radius:16px;padding:1rem 1.2rem;box-shadow:var(--shadow);border-left:6px solid var(--yellow);transition:var(--transition)}.customer-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.customer-card-head{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}.customer-card-head strong{display:block}.customer-card-head small{color:#888;font-size:.68rem}.customer-card p{font-size:.77rem;color:#666;margin-top:.38rem}.customer-balance{background:#e8f5e9;color:#155724;padding:.25rem .55rem;border-radius:20px;font-weight:700;font-size:.72rem;white-space:nowrap}.customer-balance.owing{background:#fff3cd;color:#856404}.customer-meta{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;border-top:1px solid #eee;margin-top:.7rem;padding-top:.6rem;font-size:.66rem;color:#888}
/* v2.1.1 demo-theme fidelity + active control polish */
button:not(:disabled),select:not(:disabled),input:not(:disabled),textarea:not(:disabled){pointer-events:auto}
button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}
.field input[readonly]{background:#f3f1ed;color:#555;border-style:dashed;cursor:default}
.field-help{display:block;color:#888;font-size:.66rem;font-weight:500;margin-top:.28rem;line-height:1.35}
.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1rem;border-top:1px solid #efedea}
.panel-head h2:before{content:'◆';font-size:.58rem;color:var(--red);margin-right:.5rem;vertical-align:middle}
.nav-btn.active{box-shadow:0 6px 18px rgba(0,0,0,.18)}
.btn:active,.nav-btn:active,.site-btn:active,.mode-btn:active,.add-item-btn:active{transform:translateY(0) scale(.98)}
.form-section{border:1px solid #ebe7e1}
.customer-mode-tabs{background:#fff;padding:.35rem;border-radius:60px;border:1px solid #e3dfd8}
.mode-btn{border:0}
.item-row{box-shadow:0 3px 10px rgba(215,25,33,.06)}
.grand-total-box{box-shadow:0 8px 22px rgba(215,25,33,.18)}
@media(max-width:600px){.modal-actions .btn{flex:1;justify-content:center}.customer-mode-tabs{grid-template-columns:1fr}.user-badge{gap:.55rem}.page-heading{align-items:flex-start}.panel{padding:1rem}.table-wrap table{min-width:620px}}

/* v2.2 professional workflow polish */
.business-cycle{overflow:hidden}.cycle-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:14px}.cycle-step{display:flex;gap:10px;align-items:flex-start;background:#fffaf0;border:1px solid #efe3c3;border-radius:16px;padding:14px;min-height:108px}.cycle-no{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#111;color:#f6c700;font-weight:800;flex:0 0 auto}.cycle-step p{font-size:.78rem;color:#666;line-height:1.45;margin:5px 0}.cycle-step small{font-size:.7rem;font-weight:700;color:#8b6a00}.cycle-secondary{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.cycle-secondary span{background:#111;color:#fff;border-radius:999px;padding:7px 11px;font-size:.73rem}.dispatch-summary,.history-box{background:#fff8dd;border:1px solid #eadca7;border-radius:14px;padding:12px;margin:10px 0}.history-box div{font-size:.78rem;color:#555;padding-top:5px}.dispatch-lines{border:1px solid #eee;border-radius:14px;overflow:hidden}.dispatch-line{display:grid;grid-template-columns:minmax(160px,2fr) repeat(4,minmax(80px,1fr));gap:8px;align-items:center;padding:10px 12px;border-top:1px solid #eee;font-size:.82rem}.dispatch-line:first-child{border-top:0}.dispatch-head{background:#111;color:#fff;font-weight:700}.dispatch-line input{width:100%;padding:9px;border:1px solid #ccc;border-radius:9px}.report-controls{position:sticky;top:8px;z-index:3}.report-sheet .doc-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:3px solid #f2c500;padding-bottom:12px;margin-bottom:12px}.report-foot{font-size:.72rem;color:#777;margin-top:12px}
@media(max-width:950px){.cycle-grid{grid-template-columns:1fr 1fr}.dispatch-line{grid-template-columns:1.5fr repeat(4,1fr)}}
@media(max-width:650px){.cycle-grid{grid-template-columns:1fr}.dispatch-line{grid-template-columns:1fr 1fr}.dispatch-head{display:none}.dispatch-line strong{grid-column:1/-1}.report-controls{position:static}}

/* v3.1 handheld POS / multi-device production optimization */
:root{--thermal-width:58mm}.connection-status{font-size:.65rem;font-weight:800;border-radius:999px;padding:.24rem .55rem;white-space:nowrap}.connection-status.online{background:#e8f5e9;color:#126b2e}.connection-status.offline{background:#fde8e8;color:#a10d16}.invoice-summary-simple{grid-template-columns:1fr}.invoice-summary-simple .summary-box{max-width:360px}.thermal{width:var(--thermal-width);max-width:100%;padding:2.2mm;font-size:10px}.thermal h2{font-size:15px;line-height:1.15}.thermal table{width:100%;table-layout:auto}.thermal td,.thermal th{overflow-wrap:anywhere}.thermal .big{font-size:13px}
@media(max-width:600px){body{font-size:15px}.container{padding:.6rem}.header{padding:.55rem 0 .75rem}.logo h1{font-size:1.35rem}.logo .subtitle{font-size:.6rem}.user-badge{padding:.45rem .65rem;border-radius:18px;justify-content:flex-start}.site-selector{padding:.4rem .55rem;gap:.35rem;margin:.75rem 0}.site-btn{min-height:44px;flex:1;padding:.5rem .65rem}.nav-btn,.btn,.login-btn,.mode-btn,.add-item-btn{min-height:44px}.field input,.field select,.field textarea,.item-row input,.item-row select{min-height:46px;font-size:16px}.modal{align-items:stretch;padding:0}.modal-card{width:100%;max-width:none;min-height:100dvh;max-height:100dvh;border-radius:0;padding:1rem;overflow:auto}.modal-x{position:sticky;top:0;float:right;z-index:4;width:42px;height:42px}.customer-mode-tabs{position:sticky;top:0;z-index:2}.item-row-grid{grid-template-columns:1fr}.item-row{padding:12px}.grand-total-box{position:sticky;bottom:0;z-index:3;border-radius:12px}.actions>.btn{justify-content:center}.thermal{width:var(--thermal-width);padding:1.8mm}.dispatch-line{font-size:.9rem}.dispatch-line input{min-height:48px;font-size:18px;font-weight:700}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}
@media(max-width:380px){.container{padding:.4rem}.logo h1{font-size:1.2rem}.site-btn{font-size:.78rem}.page-heading h2{font-size:1.05rem}.stat{padding:.8rem 1rem}.stat strong{font-size:1.2rem}}
@media print{@page{size:var(--thermal-width) auto;margin:0}html,body{width:var(--thermal-width)!important;margin:0!important;padding:0!important;background:#fff!important}.thermal{width:var(--thermal-width)!important;max-width:var(--thermal-width)!important;margin:0!important;padding:1.5mm!important;font-size:9px!important}.thermal h2{font-size:13px!important}.thermal .big{font-size:12px!important}.thermal td,.thermal th{font-size:8.5px!important;padding:2px!important}.invoice-print{width:100%!important}}

/* v3.1.1 — Controlled Business Cycle live transaction register */
.business-cycle .muted{margin:.2rem 0 0;color:#777;font-size:.82rem}
.cycle-transactions td,.cycle-transactions th{vertical-align:middle}
.cycle-transactions .num{text-align:right;white-space:nowrap}
@media(max-width:720px){
  .business-cycle .panel-head{align-items:flex-start;gap:.6rem}
  .cycle-transactions{min-width:720px}
  .cycle-transactions th,.cycle-transactions td{padding:.72rem .65rem;font-size:.82rem}
}


/* v3.1.4 themed action confirmation */
.confirm-overlay{position:fixed;inset:0;z-index:25000;background:rgba(20,18,16,.68);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;animation:kmsFade .12s ease-out}.confirm-card{width:min(440px,94vw);background:#fff;border-radius:28px;box-shadow:0 28px 80px rgba(0,0,0,.38);overflow:hidden;border-top:7px solid var(--yellow);animation:kmsPop .16s ease-out}.confirm-brand{display:flex;gap:14px;align-items:center;padding:22px 24px 10px}.confirm-brand small{display:block;font-size:.62rem;font-weight:800;letter-spacing:.12em;color:#777;margin-bottom:3px}.confirm-brand h3{margin:0;font-size:1.2rem}.confirm-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#151515;color:var(--yellow);font-weight:900;font-size:1.15rem;flex:none}.confirm-icon.danger{background:var(--red);color:#fff}.confirm-message{margin:0;padding:10px 24px 6px;line-height:1.55;color:#393633;font-size:.94rem}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px 22px}.confirm-actions .btn{min-width:120px}.confirm-stripes{display:grid;grid-template-columns:1fr 1fr 1fr;height:6px}.confirm-stripes span:nth-child(1){background:#151515}.confirm-stripes span:nth-child(2){background:var(--yellow)}.confirm-stripes span:nth-child(3){background:var(--red)}@keyframes kmsFade{from{opacity:0}to{opacity:1}}@keyframes kmsPop{from{transform:scale(.96);opacity:.6}to{transform:scale(1);opacity:1}}@media(max-width:600px){.confirm-card{border-radius:24px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr}.confirm-actions .btn{min-width:0;width:100%}}

/* v3.1.5 document authenticity / verification */
.doc-verification{margin-top:14px;text-align:center;font-size:10px}.verify-barcode{display:block;width:100%;max-width:58mm;height:22mm;object-fit:fill;margin:6px auto 3px;background:#fff}.verify-code{font-family:monospace;font-size:11px;font-weight:800;letter-spacing:.04em}.verify-url{font-size:8px;overflow-wrap:anywhere;margin:2px 0}.doc-verification small{display:block;line-height:1.3;color:#555;margin-top:3px}@media print{.doc-verification{break-inside:avoid}.verify-barcode{height:20mm!important;max-width:100%!important}.verify-url{font-size:7px!important}}

/* v3.2.1 release polish */
.verify-entry-btn{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;margin-top:1.15rem;padding:.72rem 1rem;border:1.5px solid var(--yellow);border-radius:60px;background:#fffaf0;color:var(--black);font-weight:800;font-size:.82rem;text-decoration:none;box-shadow:0 6px 16px rgba(0,0,0,.07);transition:var(--transition)}
.verify-entry-btn span{color:var(--red);font-size:1rem}.verify-entry-btn:hover{background:var(--yellow);color:var(--black);transform:translateY(-1px)}
.doc-verification{margin-top:8px;text-align:center;font-size:9px}.doc-verification strong{font-size:9px;letter-spacing:.05em}.verify-barcode{display:block;max-width:100%;height:34px;object-fit:contain;margin:4px auto 2px}.verify-code{font-size:8px;letter-spacing:.03em;word-break:break-all}.verify-url{display:none!important}
.stock-expand-btn{display:none;margin:10px auto 0}
@media(max-width:600px){.inventory-grid.mobile-stock-collapsible{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.mobile-stock-collapsible:not(.expanded) .inv-item:nth-child(n+5){display:none}.stock-expand-btn{display:block;width:100%;max-width:220px}.stock-section{padding:.85rem}.stock-section .panel-head{align-items:flex-start;gap:.5rem}.stock-section .panel-head h2{font-size:1rem}.inv-item{padding:.58rem .45rem}.inv-item .name{font-size:.72rem}.inv-item .qty{font-size:1.05rem}.inv-item .unit{font-size:.56rem}}

.verify-footer-btn{display:inline-block;margin-left:.35rem;padding:.2rem .55rem;border:1px solid var(--yellow);border-radius:20px;background:#fff9dc;color:var(--black);font-weight:700;text-decoration:none}.verify-footer-btn:hover{background:var(--yellow)}

/* v3.2.4 executive performance analytics */
.executive-analytics{margin-top:1rem;border-top:4px solid var(--yellow);background:linear-gradient(180deg,#fff 0%,#fffdf5 100%)}
.analytics-period{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap}.analytics-period label{display:grid;gap:.25rem;font-size:.68rem;font-weight:800;color:#5b5650;text-transform:uppercase;letter-spacing:.04em}.analytics-period input{min-height:38px;border:1px solid #ddd6ca;border-radius:10px;padding:.45rem .55rem;background:#fff;color:#181818}
.analytics-loading,.chart-empty{min-height:160px;display:grid;place-items:center;color:#777;font-size:.88rem}
.executive-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:1rem 0}.executive-kpis>div{background:#151515;color:#fff;border-radius:16px;padding:.85rem 1rem;border-bottom:4px solid var(--yellow)}.executive-kpis small{display:block;color:#ddd;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em}.executive-kpis strong{display:block;margin-top:.25rem;font-size:1.05rem;color:#fff}
.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.chart-card{background:#fff;border:1px solid #eee7da;border-radius:20px;padding:1rem;box-shadow:0 8px 22px rgba(0,0,0,.055);min-width:0}.chart-card.wide{grid-column:1/-1}.chart-card h3{margin:0 0 .6rem;font-size:.9rem}.chart-box{min-height:210px}.chart-box svg{display:block;width:100%;height:auto;overflow:visible}.chart-grid{stroke:#ece7df;stroke-width:1}.chart-label{fill:#777;font-size:11px}.chart-value{fill:#333;font-size:11px;font-weight:800}.chart-line{fill:none;stroke:var(--yellow);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--red);stroke:#fff;stroke-width:2}.bar-invoiced{fill:#151515}.bar-collected{fill:var(--yellow)}.bar-dispatch{fill:var(--red)}.chart-legend{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;font-size:.72rem;color:#666;margin-top:.25rem}.chart-legend i{display:inline-block;width:12px;height:8px;border-radius:3px;margin-right:.28rem}.legend-invoiced{background:#151515}.legend-collected{background:var(--yellow)}
.donut-wrap{display:grid;grid-template-columns:minmax(150px,210px) 1fr;align-items:center;gap:1rem;min-height:210px}.donut{aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center}.donut:after{content:'';position:absolute;inset:24%;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #eee}.donut>div{position:relative;z-index:1;text-align:center;display:grid}.donut strong{font-size:.75rem}.donut small{font-size:.6rem;color:#777}.donut-legend{display:grid;gap:.45rem}.donut-legend span{display:grid;grid-template-columns:12px 1fr auto;gap:.45rem;align-items:center;font-size:.72rem}.donut-legend i{width:10px;height:10px;border-radius:50%}.donut-legend small{color:#777}.executive-site-table table{min-width:0}.executive-site-table td,.executive-site-table th{font-size:.76rem}
@media(max-width:900px){.executive-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:auto}.donut-wrap{grid-template-columns:170px 1fr}}
@media(max-width:600px){.executive-analytics{padding:.85rem}.executive-analytics .panel-head{display:grid;gap:.75rem}.analytics-period{display:grid;grid-template-columns:1fr 1fr}.analytics-period .btn{grid-column:1/-1}.executive-kpis{grid-template-columns:1fr 1fr;gap:.5rem}.executive-kpis>div{padding:.7rem}.executive-kpis strong{font-size:.88rem;overflow-wrap:anywhere}.chart-card{padding:.75rem;border-radius:16px}.chart-box{min-height:170px}.donut-wrap{grid-template-columns:1fr}.donut{width:150px;margin:auto}.donut-legend{grid-template-columns:1fr 1fr}.chart-label{font-size:9px}}

/* v3.2.5 collapsible executive analytics */
.executive-analytics-head{align-items:center}.executive-analytics-details{margin-top:.85rem}.executive-analytics-details.collapsed{display:none}.analytics-expand-btn{white-space:nowrap;min-width:118px}.executive-analytics .analytics-period{justify-content:flex-end;margin-bottom:.8rem;padding-bottom:.75rem;border-bottom:1px solid #eee7da}
@media(max-width:600px){.executive-analytics-head{display:flex!important;grid-template-columns:none!important;align-items:center;gap:.7rem}.executive-analytics-head>div{min-width:0;flex:1}.executive-analytics-head h2{font-size:1rem}.analytics-expand-btn{min-width:auto;padding:.55rem .75rem}.executive-analytics .analytics-period{justify-content:stretch}}

/* v3.2.6 premium Kajana brand system */
.login-page{min-height:100vh;padding:clamp(14px,3vw,44px);background:
  linear-gradient(90deg,rgba(7,9,10,.12),rgba(7,9,10,.38)),
  url('../img/login-quarry-bg.jpg?v=3.2.6') center/cover fixed no-repeat;position:relative;overflow:auto}
.login-page:before{content:'';position:fixed;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.18),transparent 42%,rgba(249,215,28,.07));pointer-events:none}
.login-shell{position:relative;z-index:1;width:min(1180px,100%);min-height:min(760px,calc(100vh - 88px));margin:auto;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);border-radius:34px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.3);background:#fff}
.login-visual{position:relative;min-height:700px;background:url('../img/login-quarry-bg.jpg?v=3.2.6') center/cover no-repeat;display:flex;align-items:flex-end;padding:48px;color:#fff;isolation:isolate}
.login-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,13,.08) 0%,rgba(10,12,13,.48) 42%,rgba(9,10,10,.94) 100%);z-index:-1}
.login-brand-panel{width:min(520px,100%);padding:28px;border:1px solid rgba(255,255,255,.16);border-radius:28px;background:rgba(10,10,10,.58);backdrop-filter:blur(12px);box-shadow:0 18px 50px rgba(0,0,0,.2)}
.login-brand-lockup{display:flex;align-items:center;gap:18px}.login-brand-lockup img{width:104px;height:104px;object-fit:contain;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.24)}
.login-brand-name{font-weight:950;letter-spacing:.025em;font-size:clamp(2.2rem,4vw,3.35rem);line-height:.88}.login-brand-company{font-weight:850;letter-spacing:.35em;font-size:.78rem;margin-top:11px;color:#fff}.login-brand-business{font-size:.72rem;letter-spacing:.19em;margin-top:10px;color:#f9d71c;font-weight:800}
.login-tagline{margin:20px 0 22px;color:#fff;font-weight:700;font-style:italic;font-size:1.03rem}.login-tagline span{color:var(--yellow);margin:0 .35rem}.login-capabilities{display:grid;gap:12px}.login-capabilities>div{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}.login-capabilities>div>span{grid-row:1/3;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);color:#111;font-weight:900}.login-capabilities strong{font-size:.86rem}.login-capabilities small{color:#d7d7d7;font-size:.7rem;line-height:1.35}
.login-card{max-width:none;width:100%;border-radius:0;border:0;box-shadow:none;padding:clamp(38px,6vw,82px) clamp(34px,5.2vw,76px);background:linear-gradient(180deg,#fff 0%,#fff 78%,#fffaf0 100%);display:flex;flex-direction:column;justify-content:center;position:relative}
.login-card:after{content:'';position:absolute;left:0;right:0;bottom:0;height:7px;background:linear-gradient(90deg,#111 0 33.333%,var(--yellow) 33.333% 66.666%,var(--red) 66.666%)}
.login-mobile-brand{display:none}.login-welcome{margin-bottom:1.4rem}.login-eyebrow{font-size:.68rem;font-weight:900;letter-spacing:.16em;color:#a27900}.login-welcome h1{font-size:clamp(2rem,3.6vw,2.9rem);line-height:1;margin-top:.65rem;letter-spacing:-.04em;display:block}.login-welcome p{color:#6a6864;font-size:.9rem;margin-top:.55rem}.login-card label{font-size:.76rem;letter-spacing:.02em;color:#242220;margin-top:1rem}.login-card input{border-radius:14px;padding:.9rem 1rem;border:1px solid #d9d5cf;background:#fbfaf8;min-height:50px}.login-card input:focus{box-shadow:0 0 0 4px rgba(249,215,28,.18);outline:0;border-color:#d5b500}.login-btn{border-radius:14px;background:linear-gradient(135deg,#161616,#2a2a2a);min-height:52px;margin-top:1.45rem;box-shadow:0 10px 24px rgba(0,0,0,.17)}.login-btn span{color:var(--yellow)}.login-btn:hover{background:linear-gradient(135deg,#111,#d71921);transform:translateY(-1px)}
.login-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:1.4rem 0 .95rem;color:#8a867f}.login-divider span{height:1px;background:#dedad2}.login-divider small{font-size:.58rem;font-weight:850;letter-spacing:.11em}.login-footer-copy{text-align:center;font-size:.66rem;color:#918d86;margin-top:1rem}.login-card .flag-stripes{margin-top:.9rem}.verify-entry-btn{border-radius:14px;min-height:48px;background:#fff9dc;border-color:#e3bf00;box-shadow:none}.verify-entry-btn:hover{box-shadow:0 8px 20px rgba(249,215,28,.18)}
.brand-header{display:flex;align-items:center;gap:12px}.brand-header>img{width:62px;height:62px;object-fit:contain;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(0,0,0,.08)}.brand-header-copy{min-width:0}.brand-header-name{font-weight:950;font-size:1.55rem;letter-spacing:-.035em;line-height:1}.brand-header-name span{display:inline-block;margin-left:.25rem;background:var(--yellow);color:var(--red);padding:.18rem .65rem;border-radius:999px;font-size:.74rem;letter-spacing:0;vertical-align:middle}.brand-header .subtitle{margin-top:.38rem;letter-spacing:.08em;font-weight:700;color:#67635e}
@media(max-width:900px){.login-shell{grid-template-columns:1fr;min-height:0;max-width:540px}.login-visual{display:none}.login-card{border-radius:30px;padding:42px 34px}.login-mobile-brand{display:flex;align-items:center;gap:12px;margin-bottom:2rem}.login-mobile-brand img{width:68px;height:68px;border-radius:16px;object-fit:contain;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.08)}.login-mobile-brand strong{display:block;font-size:1.5rem;line-height:1;font-weight:950}.login-mobile-brand small{display:block;font-size:.66rem;font-weight:850;letter-spacing:.18em;margin-top:.4rem}.login-page{background-position:center}.login-page:after{content:'';position:fixed;inset:0;background:rgba(17,17,17,.24);z-index:0;pointer-events:none}}
@media(max-width:600px){.login-page{padding:12px;align-items:flex-start;background-attachment:scroll}.login-shell{margin:0 auto;border-radius:24px;min-height:calc(100vh - 24px)}.login-card{padding:30px 22px;border-radius:24px;justify-content:flex-start}.login-mobile-brand{margin-bottom:1.4rem}.login-mobile-brand img{width:58px;height:58px}.login-welcome h1{font-size:2rem}.login-welcome{margin-bottom:.75rem}.login-footer-copy{margin-top:.8rem}.brand-header>img{width:48px;height:48px;border-radius:11px}.brand-header-name{font-size:1.15rem}.brand-header-name span{font-size:.6rem}.brand-header .subtitle{font-size:.55rem;letter-spacing:.045em}.header{align-items:flex-start}.logo{max-width:100%}}
@media(max-width:390px){.login-card{padding:24px 18px}.login-mobile-brand img{width:50px;height:50px}.login-welcome h1{font-size:1.8rem}.login-card input{min-height:47px}.login-btn{min-height:49px}.brand-header-name span{display:block;width:max-content;margin:.3rem 0 0}}

/* Kajana KMS v3.2.9 — handheld POS form usability */
@media(max-width:600px){
  /* Keep New Sale controls in normal flow. They move naturally with the form
     instead of covering fields when the Android keyboard opens. */
  .modal-x{position:static!important;float:right!important;top:auto!important;margin:0 0 .35rem .5rem!important}
  .customer-mode-tabs{position:static!important;top:auto!important;z-index:auto!important}
  .grand-total-box{position:static!important;bottom:auto!important;z-index:auto!important}
  .modal-card{scroll-padding-top:12px!important;padding-bottom:1.25rem!important}
}

/* Kajana KMS v3.3.0 — searchable product picker for New Sale */
.product-picker{display:block;position:relative;margin-top:.2rem}
.product-native-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;padding:0!important;margin:0!important;border:0!important}
.product-picker-trigger{width:100%;min-height:42px;border:1px solid #e0c8c8;border-radius:30px;background:#fff;padding:.52rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;text-align:left;cursor:pointer;color:#222}
.product-picker-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.product-picker-panel{position:static;margin-top:.4rem;background:#fff;border:1px solid #e3d8d8;border-radius:16px;padding:.55rem;box-shadow:0 7px 20px rgba(0,0,0,.08)}
.product-search-wrap{display:flex;align-items:center;gap:.45rem;border:1px solid #d8d2cc;border-radius:12px;padding:.15rem .55rem;background:#faf9f7;position:sticky;top:0;z-index:1}
.product-search-wrap>span{font-size:1.05rem;color:#777}.product-search{border:0!important;background:transparent!important;border-radius:0!important;margin:0!important;padding:.5rem .15rem!important;min-height:38px!important;outline:0!important;width:100%}
.product-picker-list{max-height:228px;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-top:.4rem;border-radius:10px}
.product-picker-option{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:.12rem;text-align:left;border:0;border-bottom:1px solid #eee;background:#fff;padding:.62rem .7rem;cursor:pointer;color:#222}
.product-picker-option:last-child{border-bottom:0}.product-picker-option:hover,.product-picker-option.selected{background:#fff6c9}.product-picker-option strong{font-size:.78rem}.product-picker-option small{font-size:.67rem;color:#69645f;font-weight:500}
.product-picker-empty{padding:1rem;text-align:center;color:#888;font-size:.75rem}.product-picker-help{font-size:.62rem;color:#777;padding:.45rem .25rem .1rem}
@media(max-width:600px){.product-picker-trigger{min-height:46px;font-size:16px}.product-picker-panel{padding:.5rem}.product-picker-list{max-height:210px}.product-picker-option{min-height:50px;padding:.65rem}.product-picker-option strong{font-size:.85rem}.product-picker-option small{font-size:.72rem}.product-search{font-size:16px!important}}

/* v3.3.1 — POS print readability: larger type, verification code only */
.doc-verification .verify-barcode,.doc-verification strong{display:none!important}
.doc-verification .verify-code{font-family:monospace;font-weight:800;text-align:center;letter-spacing:.02em}
@media print{
 .thermal{font-size:12.5px!important;line-height:1.28!important}
 .thermal h2{font-size:17px!important}.thermal .big{font-size:15px!important}
 .thermal td,.thermal th{font-size:11px!important;line-height:1.22!important;padding:3px 2px!important}
 .invoice-print{font-size:11.5px!important;line-height:1.3!important}
 .invoice-print h1,.invoice-print .doc-title{font-size:16px!important}
 .invoice-print .doc-total{font-size:15px!important}
 .verify-barcode,.doc-verification strong{display:none!important}
 .verify-code{font-size:10px!important;text-align:center!important}
}

/* v3.3.2 — thermal dispatch hierarchy and centering */
.thermal{max-width:100%;margin-left:auto;margin-right:auto;text-align:center}
.thermal .doc-ref-small{font-size:.82em;line-height:1.18}
.thermal .doc-ref-small p{margin:1px 0}
.thermal .dispatch-items .item-name{font-size:1.2em;font-weight:800}
.thermal .dispatch-items .item-qty{font-size:1.35em;font-weight:900;text-align:center}
@media print{
 .doc-ref-small{font-size:9.5px!important;line-height:1.16!important}
 .dispatch-items{font-size:13px!important}
 .dispatch-items th{font-size:9.5px!important}
 .dispatch-items .item-name{font-size:14px!important;font-weight:800!important}
 .dispatch-items .item-qty{font-size:16px!important;font-weight:900!important}
 .dispatch-detail{font-size:10px!important;table-layout:fixed!important}
 .dispatch-detail th{font-size:7.8px!important}
 .dispatch-detail .item-name{font-size:12px!important;width:40%!important}
 .dispatch-detail .item-qty,.dispatch-detail .item-balance{font-size:12px!important}
}
/* v3.3.3 — site scopes and production material recording */
.site-scope-box{padding:12px;border:1px solid #e2ded5;border-radius:12px;background:#faf9f6}.site-all-option{display:block;margin:8px 0;font-weight:700}.site-all-option small{font-weight:400;color:#666}.site-check-list{display:flex;gap:10px 18px;flex-wrap:wrap;padding:8px 0}.site-check-list label{display:inline-flex;gap:6px;align-items:center}.scope-disabled{opacity:.48;pointer-events:none}.production-material-list{display:grid;gap:9px;margin-top:10px}.production-material-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 55px;gap:10px;align-items:center;padding:10px;border:1px solid #e2ded5;border-radius:10px;background:#faf9f6}.production-material-row span{display:flex;flex-direction:column}.production-material-row small{color:#666;margin-top:2px}.production-material-row input{width:100%;padding:10px;border:1px solid #cfc9bf;border-radius:8px}.production-material-row em{font-style:normal;color:#666}.callout-warning{margin:12px 0;padding:12px;border-left:4px solid #ffd000;background:#fff8d7;border-radius:8px}@media(max-width:600px){.production-material-row{grid-template-columns:1fr 95px 40px}.site-check-list{display:grid;grid-template-columns:1fr 1fr}}
