:root{--ink:#1c2b25;--muted:#6d7c73;--line:#dfe8e2;--paper:#f4f7f4;--card:#fff;--green:#17664b;--green-dark:#104b37;--mint:#e5f4eb;--red:#a43b32;--gold:#dcb86a;--shadow:0 8px 24px rgba(26,62,45,.06);font-family:Tahoma,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.brand{font-size:22px;font-weight:800;color:var(--green-dark)}.top-actions{display:flex;align-items:center;gap:14px}.top-actions form{margin:0}.user-chip{color:var(--muted);font-size:13px}.sync-state,.pill{border-radius:30px;padding:8px 13px;background:#f0f3f0;color:#53645a;font-size:12px;white-space:nowrap}.sync-state.online,.pill.good{background:#e2f5e9;color:#17664b}.sync-state.offline,.pill.muted-pill{background:#fff2d9;color:#7d5b16}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 70px)}.sidebar{background:#fbfcfb;border-left:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:5px}.sidebar>a{padding:13px 14px;border-radius:11px;color:#47574e;font-size:14px}.sidebar>a:hover{background:#eef5f0;color:var(--green)}.sidebar>a.highlight{background:var(--green);color:#fff;font-weight:700}.sidebar .nav-group{border-radius:11px}.sidebar .nav-group>summary{cursor:pointer;list-style:none;padding:13px 14px;border-radius:11px;color:#47574e;font-size:14px}.sidebar .nav-group>summary::-webkit-details-marker{display:none}.sidebar .nav-group[open]>summary,.sidebar .nav-group>summary:hover{background:#eef5f0;color:var(--green)}.sidebar .nav-group>a{display:block;padding:9px 28px;border-radius:9px;color:#47574e;font-size:13px}.sidebar .nav-group>a:hover{background:#eef5f0;color:var(--green)}.side-label{font-size:11px;color:#91a097;padding:18px 14px 5px}.sync-form{margin-top:auto;padding:10px 2px}.main{padding:28px clamp(16px,3vw,42px);max-width:1500px;width:100%;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h1{font-size:25px;margin:0 0 8px}.page-head p{margin:0}.muted{color:var(--muted);font-size:13px}.panel,.stat,.quick-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.panel{padding:22px;margin:0 0 20px}.panel h2{font-size:17px;margin:0 0 16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{padding:20px;display:flex;flex-direction:column;gap:14px}.stat>span{font-size:13px;color:var(--muted)}.stat strong{font-size:23px;color:var(--green-dark);overflow-wrap:anywhere}.stat small{font-size:12px;color:var(--muted);font-weight:400}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick-card{padding:20px;display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:6px;font-size:21px}.quick-card strong{font-size:15px;color:var(--ink);align-self:center}.quick-card span{grid-column:2;color:var(--muted);font-size:12px}.btn{border:0;border-radius:10px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;min-height:44px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-light{background:#f2f5f3;color:#53645a}.btn-outline{background:#fff;color:var(--green);border:1px solid #bed7c8}.btn-danger{background:#fff0ee;color:var(--red)}.btn-large{min-height:54px;padding:14px 22px;font-size:15px}.w-full{width:100%}.checkout{min-width:240px}.alert{border-radius:12px;padding:14px 18px;margin-bottom:16px;font-size:14px}.alert ul{margin:8px 0 0;padding-right:20px}.alert.success{background:#e7f6ed;color:#165d3d}.alert.error{background:#fff0ed;color:#8f3328}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:right;padding:13px 12px;border-bottom:1px solid #edf1ee;font-size:13px;vertical-align:middle}th{color:#78867e;font-weight:600;background:#fafcfb}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:#8b9990;padding:28px}.profit{color:#14744c!important}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.form-grid label,.panel>label,.repeat-row label,.mini-form label,.auth-card label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#596a60}.wide{grid-column:1/-1}input,select,textarea{width:100%;min-height:46px;border:1px solid #d5e0d8;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#52a17b;box-shadow:0 0 0 3px rgba(45,137,92,.12)}input[type=checkbox]{width:20px;min-height:20px}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important;margin:12px 0 18px}.form-actions{display:flex;align-items:end}.item-grid{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) auto;gap:10px;align-items:end;padding:14px 0;border-bottom:1px solid #edf1ee}.item-grid:last-child{border-bottom:0}.user-row{padding:16px 0;border-bottom:1px solid var(--line)}.user-row:last-child{border-bottom:0}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;color:var(--muted);font-size:12px}.mini-form{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:9px;min-width:280px;padding:12px}.mini-form summary,details summary{cursor:pointer;color:var(--green)}.narrow{max-width:760px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(100%,440px);padding:34px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.auth-card h1{margin:4px 0 8px;font-size:23px}.auth-card form{margin-top:24px;display:grid;gap:15px}.auth-mark{font-size:38px}.hidden{display:none!important}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.item-grid .btn{grid-column:1/-1}}
@media(max-width:760px){.topbar{height:60px;padding:0 12px}.user-chip{display:none}.top-actions{gap:7px}.sync-state{font-size:10px;padding:7px 9px}.shell{display:block}.sidebar{position:sticky;top:60px;z-index:4;display:flex;flex-direction:row;overflow:auto;white-space:nowrap;padding:7px;border:0;border-bottom:1px solid var(--line);gap:4px}.sidebar>a,.sidebar .nav-group>summary{padding:11px 13px;font-size:12px}.sidebar .nav-group{flex:none}.sidebar .nav-group>a{padding:9px 15px;font-size:12px}.side-label,.sync-form{display:none}.main{padding:18px 12px}.page-head{align-items:flex-start}.page-head h1{font-size:21px}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:18px}.quick-grid{grid-template-columns:1fr}.panel{padding:16px;margin-bottom:14px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head .btn-large{min-height:46px;padding:10px 13px;font-size:13px}}
@media(max-width:430px){.form-grid,.item-grid{grid-template-columns:1fr}.wide{grid-column:auto}.page-head{flex-direction:column}.page-head .btn{width:100%}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.row-actions{flex-wrap:wrap}}

.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.payment-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,2fr) auto;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid #edf1ee}.payment-row:last-child{border-bottom:0}.input-action{position:relative}.input-action input{padding-left:52px}.scale-button{position:absolute;left:4px;top:4px;width:38px;min-height:38px;height:38px;padding:8px;background:#e5f4eb;color:#17664b;border:0;border-radius:8px}.scale-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.scale-button:disabled{opacity:.55;cursor:wait}@media(max-width:760px){.payment-row{grid-template-columns:minmax(120px,1fr) minmax(145px,1.5fr) auto;gap:8px}}

.swal-toast{position:fixed;z-index:50;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:min(92vw,460px);padding:16px 20px;background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(22,45,32,.22);border-top:4px solid #25845d;animation:toast-in .2s ease-out}.swal-toast.is-error{border-color:#d94a43}.swal-toast-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#25845d;font-weight:800;flex:none}.is-error .swal-toast-icon{background:#d94a43}.swal-toast-message{font-size:14px;line-height:1.6}.swal-toast.is-leaving{opacity:0;transform:translate(-50%,-12px);transition:.25s ease}@keyframes toast-in{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}.number-format-hint{display:block;width:max-content;border:0;background:transparent;padding:4px 0 0;color:#6d7c73;font-size:11px;text-align:right;cursor:pointer}.number-format-hint:hover{color:#17664b}.invoice-total,.payment-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;font-weight:700;border-top:1px solid #dfe8e2}.payment-summary{flex-wrap:wrap}.line-total{font-size:13px;font-weight:700;color:#17664b}.item-grid .btn-danger{min-width:46px;width:46px;padding:10px}.
.money-format-hint{display:block;min-height:1.2em;padding-top:4px;color:#6d7c73;font-size:11px;direction:ltr;text-align:left}.line-total{width:100%;min-width:90px;background:#f6f8f6;color:#17664b;font-weight:700;direction:ltr;text-align:left}.line-total:focus{outline:none}

input[type=number]{direction:ltr;text-align:left}.repeat-row label{position:relative}.repeat-row label:after{content:"";display:block;height:1.2em}.repeat-row label.has-money-format:after{height:0}.money-format-hint{height:1.2em;min-height:1.2em;line-height:1.2em;padding:0}.payment-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.2fr) 46px;align-items:end}.payment-row [data-remove-payment]{grid-column:4;grid-row:1;align-self:center}@media(max-width:760px){.payment-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr) 42px;gap:6px}.payment-row [data-remove-payment]{grid-column:4;grid-row:1}}

.repeat-row label:after{content:none;height:0}.money-field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:18px}.money-format-hint{height:auto;min-height:0;line-height:1.2em;padding:0;white-space:nowrap}.payment-row label{min-width:0}.payment-row [data-remove-payment]{grid-column:4;grid-row:1;align-self:center}.checkout,button[onclick*="sale-items"],button[onclick*="purchase-items"],#add-payment{display:table;width:max-content;margin-right:auto;margin-left:0}

.searchable-product-select{position:relative;width:100%}.product-search-input{direction:rtl;text-align:right}.product-search-options{position:absolute;top:calc(100% + 4px);right:0;left:0;z-index:30;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 12px 28px rgba(26,62,45,.16)}.product-search-option{display:block;width:100%;padding:11px 12px;border:0;border-bottom:1px solid #edf1ee;background:#fff;text-align:right;color:var(--ink)}.product-search-option:hover,.product-search-option:focus{background:var(--mint)}.searchable-product-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0!important;pointer-events:none!important}.touch-keyboard{position:fixed;z-index:80;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:10px;background:#e8ece9;border-top:1px solid #cbd6cf;box-shadow:0 -8px 28px rgba(22,45,32,.2);max-height:48vh;overflow:auto;direction:ltr}.touch-keyboard[hidden]{display:none}.touch-keyboard.numeric-keyboard{grid-template-columns:repeat(3,minmax(0,1fr));max-width:460px;left:auto;padding:10px}.touch-key{min-width:0;min-height:48px;padding:8px 4px;border:1px solid #cad5ce;border-radius:8px;background:#fff;color:#1c2b25;font-size:16px;touch-action:manipulation}.touch-key:active{background:#d7eee0}.jalali-date-mask,.ltr{direction:ltr;text-align:left}@media(max-width:700px){.touch-keyboard{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:7px}.touch-keyboard.numeric-keyboard{grid-template-columns:repeat(3,minmax(0,1fr));left:auto;right:0;width:min(100%,420px)}.touch-key{min-height:44px;font-size:15px}}

.fast-catalog{display:none}.sale-entry-fast .fast-catalog{display:block}.fast-selected-product{display:none}.sale-entry-fast .fast-selected-product{display:flex;flex-direction:column}.sale-entry-fast .sale-row>.native-product-field,.sale-entry-fast button[onclick*="sale-row"]{display:none}.sale-entry-fast .item-grid{grid-template-columns:minmax(110px,.9fr) minmax(110px,.8fr) minmax(130px,1fr) minmax(110px,.8fr) 46px;align-items:center}.sale-entry-fast .sale-row{padding:10px 0;border-bottom:1px solid var(--line)}.fast-search-label{display:block;margin-bottom:14px}.fast-search-label input{font-size:18px;min-height:54px}.fast-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:36vh;overflow:auto;padding:2px}.fast-product-card{display:flex;min-height:112px;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:right;touch-action:manipulation}.fast-product-card strong{font-size:16px}.fast-product-card span{font-size:12px;color:var(--muted)}.fast-product-card small{font-weight:700;color:var(--green);font-size:14px}.fast-product-card:active{background:var(--mint);transform:scale(.98)}.fast-product-card[hidden]{display:none}.sale-entry-fast .checkout{position:sticky;bottom:10px;z-index:4;min-height:60px;min-width:220px;box-shadow:0 5px 20px rgba(22,45,32,.22)}
@media(max-width:700px){.sale-entry-fast .item-grid{grid-template-columns:minmax(90px,.9fr) minmax(90px,.7fr) minmax(105px,1fr) minmax(90px,.8fr) 42px;gap:7px}.sale-entry-fast .item-grid .btn{grid-column:auto}.fast-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:32vh}.fast-product-card{min-height:100px;padding:11px}}
.payment-amount-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:5px}.terminal-charge-button{width:44px;height:44px;display:grid;place-items:center;padding:9px;border:0;border-radius:9px;background:var(--green);color:#fff;touch-action:manipulation}.terminal-charge-button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.terminal-charge-button:disabled{opacity:.45;cursor:not-allowed}.terminal-charge-button.is-paid{background:#dcefe3;color:var(--green)}.terminal-result{display:block;min-height:1.3em;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.terminal-result.is-approved{color:var(--green);font-weight:700}.payment-row input[readonly]{background:#f0f5f1;color:var(--green-dark)}

.payment-table-scroll{overflow-x:auto}.payment-table-head,.payment-row{min-width:650px;display:grid;grid-template-columns:minmax(125px,1fr) minmax(180px,1.4fr) minmax(170px,1.3fr) 46px;align-items:center;gap:10px}.payment-table-head{padding:0 0 8px;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}.payment-row [data-remove-payment]{grid-column:auto;grid-row:auto;justify-self:center}

.sale-items-scroll{overflow-x:auto}.sale-row.item-grid{min-width:1010px;grid-template-columns:minmax(140px,1fr) minmax(190px,1.35fr) minmax(100px,.7fr) minmax(135px,1fr) minmax(125px,.9fr) 42px;align-items:center}.sale-entry-fast .sale-row.item-grid{min-width:930px;grid-template-columns:minmax(145px,1fr) minmax(190px,1.4fr) minmax(100px,.7fr) minmax(135px,1fr) minmax(125px,.9fr) 42px;align-items:center}.selected-lot-info{display:block;margin-top:5px;color:var(--green);font-size:11px;line-height:1.35;white-space:normal}.sale-row [data-sale-lot-select]{font-size:13px}

.sale-entry-fast .fast-selected-product[hidden]{display:none}.sale-entry-fast .sale-row.item-grid{grid-template-columns:minmax(145px,1fr) minmax(190px,1.4fr) minmax(100px,.7fr) minmax(135px,1fr) minmax(125px,.9fr) 42px}

.main,.panel,.sale-entry,.sale-items-scroll,.payment-table-scroll{min-width:0;max-width:100%}.sale-items-scroll,.payment-table-scroll{width:100%;overflow-x:auto}.sale-row.item-grid,.sale-entry-fast .sale-row.item-grid{min-width:790px;grid-template-columns:minmax(210px,1.8fr) minmax(105px,.75fr) minmax(135px,1fr) minmax(125px,.9fr) 42px;align-items:center}.payment-row,.payment-table-head{min-width:650px}

.sweet-alert-overlay{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px;background:rgba(15,29,21,.48)}.sweet-alert-card{width:min(100%,440px);padding:26px 24px 20px;border-radius:18px;background:#fff;box-shadow:0 22px 70px rgba(0,0,0,.28);text-align:center;animation:sweet-alert-enter .16s ease-out}.sweet-alert-icon{width:54px;height:54px;margin:0 auto 12px;border:3px solid #dbe8df;border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:30px;font-weight:700}.sweet-alert-icon.error{border-color:#f0c7c2;color:var(--red)}.sweet-alert-icon.warning{border-color:#f1dfb4;color:#a87612}.sweet-alert-title{margin:5px 0 10px;font-size:19px}.sweet-alert-text{margin:0;color:#526258;font-size:14px;line-height:1.9;white-space:pre-line}.sweet-alert-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.sweet-alert-actions .btn{min-width:112px;min-height:44px}@keyframes sweet-alert-enter{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.main,.panel,.sale-entry{min-width:0;max-width:100%}.sale-items-scroll,.payment-table-scroll{min-width:0;max-width:100%;width:100%;overflow-x:auto}

.sale-row.item-grid{min-width:980px;grid-template-columns:minmax(170px,1.2fr) minmax(210px,1.5fr) minmax(100px,.7fr) minmax(135px,1fr) minmax(125px,.9fr) 42px}.sale-entry-fast .sale-row.item-grid{min-width:790px;grid-template-columns:minmax(210px,1.8fr) minmax(105px,.75fr) minmax(135px,1fr) minmax(125px,.9fr) 42px}

.purchase-items-scroll{width:100%;min-width:0;overflow-x:auto}.purchase-item-grid{min-width:950px;grid-template-columns:minmax(190px,1.4fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(160px,1fr) minmax(145px,1fr) 42px;align-items:center}.purchase-item-grid>[data-remove]{justify-self:center}@media(max-width:760px){.purchase-item-grid{min-width:950px;gap:8px}}
