:root{--bg:#f1f6f2;--card:#fff;--fg:#13201a;--mut:#66756e;--line:#e0e8e3;--brand:#0f5c4d;--brand2:#e2f4e9;--g1:#16a34a;--g2:#0f5c4d;--bad:#c0392b;--pri2:#0b4a3e;--ring:rgba(22,163,74,.28);--shadow:0 1px 2px rgba(16,40,28,.05),0 8px 24px rgba(16,40,28,.06);--r:14px}@media(prefers-color-scheme:dark){:root{--bg:#0f1512;--card:#17201b;--fg:#e8f0eb;--mut:#92a39a;--line:#26332c;--brand:#4ade80;--brand2:#173324;--g1:#22c55e;--g2:#15803d;--pri2:#15803d;--ring:rgba(74,222,128,.3);--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25)}}*{box-sizing:border-box}html{scroll-padding-top:env(safe-area-inset-top,0)}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 Plus Jakarta Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}h1{font-size:24px;margin:0 0 16px;font-weight:800;letter-spacing:-.02em}h2{font-size:17px;margin:20px 0 10px;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}.btn,button{cursor:pointer;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:9px 15px;display:inline-block;transition:background .15s,border-color .15s,transform .05s,box-shadow .15s}.btn:hover,button:hover:not(:disabled){border-color:var(--g1);background:var(--brand2)}button:active:not(:disabled){transform:scale(.98)}button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);border-color:var(--g1)}.btn.pri,button.pri{background:linear-gradient(135deg,var(--g1),var(--g2));border-color:transparent;color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(21,128,61,.28)}button.pri:hover:not(:disabled){background:linear-gradient(135deg,var(--g1),var(--pri2));filter:brightness(1.05)}@media(prefers-color-scheme:dark){button.pri{color:#04210f}}button.bad{color:var(--bad)}button.bad:hover:not(:disabled){background:#fde8e6;border-color:var(--bad)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;max-width:100%;transition:border-color .15s,box-shadow .15s}.col input,.col select{width:100%}header.top{display:flex;gap:10px;padding:10px 20px;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;z-index:5}.logo,header.top{align-items:center}.logo{display:inline-flex;gap:9px;font-weight:800;font-size:20px;color:var(--brand);margin-right:10px;letter-spacing:-.02em}header.top nav{display:flex;gap:2px;flex:1 1;flex-wrap:wrap}header.top nav a{padding:9px 14px;border-radius:10px;color:var(--mut);font-weight:500;transition:background .15s,color .15s}header.top nav a:hover{background:var(--bg);color:var(--fg)}header.top nav a.on{background:var(--brand2);color:var(--brand);font-weight:700}.badge-n{background:var(--bad);color:#fff;border-radius:99px;padding:0 7px;font-size:12px;margin-left:6px}main{padding:18px 20px;max-width:1400px;margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.grid{display:grid;grid-gap:14px;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.kpi{border-left:4px solid var(--g1)}.kpi b{display:block;font-size:26px;font-weight:800;color:var(--brand);letter-spacing:-.02em}.kpi span{color:var(--mut);font-size:13px}a.kpi:hover{transform:translateY(-2px)}table{width:100%;border-collapse:collapse}td,th{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:14px}th{color:var(--mut);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover td{background:color-mix(in srgb,var(--brand2) 45%,transparent)}td.r,th.r{text-align:right}.wrap{overflow-x:auto}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.col{gap:10px}.col,label{display:flex;flex-direction:column}label{gap:4px;font-size:13px;color:var(--mut)}.flash,label{font-weight:500}.flash{padding:12px 16px;border-radius:12px;margin-bottom:14px}.flash.ok{background:#dcf5e5;color:#0b5e3c}.flash.err{background:#fde8e6;color:#9b2c20}.tag{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:var(--brand2);color:var(--brand)}.tag.bad{background:#f8d9d5;color:#8e2a1f}.tag.warn{background:#f8ecce;color:#7a5412}.mut{color:var(--mut)}.authbg{min-height:100vh;display:grid;place-items:center;padding:16px;background:radial-gradient(900px 500px at 15% -10%,#4ade80 0,transparent 55%),linear-gradient(160deg,#0f5c4d,#16a34a)}.login{width:100%;max-width:400px;margin:0;padding:28px;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.login h1{font-size:inherit;margin-bottom:6px}.pi{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#eef3ef;display:block}.pi.th{width:40px;height:40px;flex:none;border-radius:8px}.pos{display:grid;grid-template-columns:1.45fr 1fr;grid-gap:16px;gap:16px;align-items:start}@media(max-width:860px){.pos{grid-template-columns:1fr}}.searchbox{position:relative}.searchbox svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--mut)}.search{width:100%;height:54px;font-size:16px;padding:0 16px 0 46px;border:2px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.search:focus{border-color:var(--g1);box-shadow:0 0 0 4px var(--ring)}.chips{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.chip{padding:7px 16px;border-radius:99px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-size:14px;transition:all .15s}.chip.on,.chip:hover{border-color:var(--g1)}.chip.on{background:var(--brand2);color:var(--brand);font-weight:700}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));grid-gap:10px;gap:10px;max-height:58vh;overflow:auto;padding:4px}.tile{text-align:left;padding:8px;border:1px solid var(--line);background:var(--card);border-radius:var(--r);font-size:13.5px;transition:transform .15s,box-shadow .15s,border-color .15s}.tile:hover:not(:disabled){transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--g1);background:var(--card)}.tile.in{border-color:var(--g1);box-shadow:0 0 0 3px var(--ring)}.tile .pi{aspect-ratio:4/3;height:auto;margin-bottom:6px}.tile .nm{display:block;font-weight:500;min-height:2.6em}.tile .pr{display:block;font-weight:800;font-size:15px;margin-top:2px}.tile small{color:var(--mut)}.tile.out{opacity:.5}.cart{padding:14px}.cart h2{margin:0 0 4px;font-size:19px}.cartfoot{bottom:0;z-index:2;background:var(--card);margin:10px -14px -14px;padding:10px 14px 14px;border-top:1px solid var(--line);border-radius:0 0 var(--r) var(--r);box-shadow:0 -10px 18px -12px rgba(16,40,28,.25)}.cartfoot,.pos>div:first-child{position:-webkit-sticky;position:sticky}.pos>div:first-child{top:78px;align-self:start}@media(max-width:860px){.pos>div:first-child{position:static}}.cartline{display:flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.cartline .inf{flex:1 1;min-width:0}.cartline .inf b{display:block;font-weight:600;font-size:14px}.cartline .inf small{color:var(--mut)}.qty{display:flex;gap:4px;align-items:center}.qty button{padding:2px 10px}.cartline .amt{min-width:72px;text-align:right;font-weight:600}.cartline .x{color:var(--bad);padding:8px 12px}.cartline .x:hover{background:#fde8e6;border-color:var(--bad)}.sum>div{color:var(--mut);padding:3px 0}.sum>div,.total{display:flex;justify-content:space-between}.total{align-items:baseline;font-weight:800;font-size:30px;margin:8px 0;color:var(--brand);letter-spacing:-.03em}.acts{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin:8px 0}.acts button{padding:10px 4px}.paybtn{width:100%;padding:16px;font-size:19px;border-radius:14px}.modalbg{position:fixed;inset:0;background:#0a1a1299;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:20;padding:12px}.modal{background:var(--card);border-radius:20px;padding:22px;width:min(460px,100%);max-height:92vh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.35)}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#10231a;color:#fff;padding:13px 20px;border-radius:12px;z-index:30;max-width:90vw;box-shadow:var(--shadow)}.receipt{font:13px/1.35 ui-monospace,Menlo,Consolas,monospace;background:#fff;color:#111;padding:12px;margin:8px auto;border:1px dashed #999;border-radius:8px}.receipt .c{text-align:center}.receipt hr{border:0;border-top:1px dashed #000;margin:6px 0}.receipt .l{display:flex;justify-content:space-between;gap:6px}@media print{body *{visibility:hidden}.receipt,.receipt *{visibility:visible}.receipt{position:fixed;left:0;top:0;border:0;margin:0}.noprint{display:none!important}}.sbox{position:relative;background:var(--card);border-radius:14px}.ghost{position:absolute;inset:0;display:flex;align-items:center;padding:0 16px 0 46px;border:2px solid transparent;font-size:16px;white-space:pre;overflow:hidden;pointer-events:none;color:var(--mut)}.ghost i{visibility:hidden;font-style:normal}.sbox .search{position:relative;z-index:1;background:transparent}.paydue{font-size:44px;font-weight:800;color:var(--brand);letter-spacing:-.03em;line-height:1.1}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{flex:1 1 auto;padding:10px 16px}.paycta{padding:14px;font-size:16px}.pi.photo{object-fit:contain;background:#fff;padding:0}.pi.th.photo{padding:0}.sk{display:block;max-width:100%;border-radius:8px;background:linear-gradient(90deg,var(--line) 25%,var(--brand2) 50%,var(--line) 75%);background-size:200% 100%;animation:sk 1.4s ease-in-out infinite}.skrow{display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk{animation:none}}