@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#f4f6f8;--surf:#fff;--card:#fff;--ink:#0f172a;--mut:#64748b;--line:#e4e8ee;--pri:#0f766e;--priD:#0b5a54;--tint:#e0f5f1;--acc:#d97706;--bad:#dc2626;--side:#0b1324;--r:14px;--sh:0 1px 2px rgba(15,23,42,.05),0 4px 14px rgba(15,23,42,.04)}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 Inter,"Segoe UI Variable","Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer}h1,h2,h3{margin:0}h3{font-size:16px;font-weight:650}
#app{display:flex;min-height:100vh}
#side{width:240px;background:var(--side);padding:18px 14px;position:sticky;top:0;height:100vh;flex:none;display:flex;flex-direction:column;gap:6px}
.brandrow{display:flex;gap:12px;align-items:center;padding:4px 8px 20px}.brand{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#0f766e);color:#fff;font-size:23px;font-weight:700;display:grid;place-items:center;flex:none;box-shadow:0 6px 16px rgba(13,148,136,.4)}
.bt{min-width:0}.bt b{display:block;color:#fff;font-size:16px;letter-spacing:-.01em}.bt small{display:block;color:#8b9ab3;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
#side nav{display:flex;flex-direction:column;gap:3px;flex:1}
#side nav button{display:flex;align-items:center;gap:13px;width:100%;background:none;border:0;color:#9aa8bf;padding:11px 14px;border-radius:11px;font-weight:500;text-align:left;transition:background .15s,color .15s}
#side nav button:hover{background:rgba(255,255,255,.06);color:#e5ebf5}#side nav button.on{background:rgba(45,212,191,.14);color:#5eead4;font-weight:600}.ic{display:flex}.ic svg{width:20px;height:20px}
.usercard{display:flex;align-items:center;gap:11px;padding:11px;border-radius:13px;background:rgba(255,255,255,.06)}.av{width:36px;height:36px;border-radius:50%;background:#2dd4bf;color:#042f2e;font-weight:700;display:grid;place-items:center;flex:none}
.un{flex:1;min-width:0}.un b{display:block;color:#f1f5f9;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.un small{color:#8b9ab3;font-size:12px}
.lockb{background:transparent!important;border-color:rgba(255,255,255,.16)!important;color:#cbd5e1!important;padding:8px!important;border-radius:10px!important}.lockb:hover{background:rgba(255,255,255,.08)!important}
#wrap{flex:1;min-width:0}#top{display:flex;gap:10px;align-items:center;background:var(--surf);border-bottom:1px solid var(--line);padding:0 28px;height:64px;position:sticky;top:0;z-index:2}#top h1{font-size:21px;font-weight:700;letter-spacing:-.02em}
.sp{flex:1}.chip{background:var(--tint);color:var(--priD);padding:5px 13px;border-radius:99px;font-size:12.5px;font-weight:600;white-space:nowrap;border:0}.chip.bad{background:#fef3c7;color:#92400e}button.chip{cursor:pointer}.icb{padding:8px 12px!important}.mlock{display:none}
main{padding:26px 28px 40px;max-width:1640px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:18px;box-shadow:var(--sh)}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.bar h2{font-size:22px;font-weight:700;letter-spacing:-.02em;margin-right:8px}.bar input{width:auto;min-width:200px}
input,select{font:inherit;padding:0 13px;height:42px;border:1px solid #d3d9e2;border-radius:10px;width:100%;color:var(--ink);background:var(--surf);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{outline:0;border-color:var(--pri);box-shadow:0 0 0 3px rgba(15,118,110,.18)}button:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
input[type=checkbox]{height:auto;width:auto}label{display:block;font-size:13px;font-weight:500;color:var(--mut);margin:14px 0 6px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2px 18px}
.b{background:var(--pri);color:#fff;border:0;padding:0 20px;height:42px;border-radius:10px;font-weight:600;box-shadow:0 1px 2px rgba(15,118,110,.3);transition:background .15s,transform .05s}.b:hover{background:var(--priD)}.b:active{transform:translateY(1px)}.b:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.g{background:var(--surf);color:var(--ink);border:1px solid #d3d9e2;padding:0 14px;height:38px;border-radius:10px;font-weight:500;transition:background .15s}.g:hover{background:#f3f5f8}.dng{color:var(--bad);border-color:#fbcaca}
.wide{width:100%;height:46px}
table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:rgba(15,23,42,.02)}
th{font-size:11.5px;color:var(--mut);font-weight:650;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}td.n,th.n{text-align:right;white-space:nowrap}td .g,td .b{height:34px;padding:0 12px;font-size:14px}
.mut{color:var(--mut)}.small{font-size:13px}.err{color:var(--bad);min-height:20px;margin:6px 0;font-size:14px}.empty{text-align:center;padding:44px 10px!important}.cx td{opacity:.5;text-decoration:line-through}
.tag{background:var(--tint);color:var(--priD);padding:3px 11px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}.tag.bad{background:#fee2e2;color:#b91c1c}
.seg{display:inline-flex;background:#e6eaf0;border-radius:11px;padding:4px}.seg button{border:0;background:none;padding:7px 18px;border-radius:8px;color:var(--mut);font-weight:500}.seg button.on{background:var(--surf);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(15,23,42,.14)}
.pos{display:grid;grid-template-columns:1fr 430px;gap:20px;align-items:start}.left{min-width:0}
.sbar{display:flex;gap:10px;margin-bottom:14px}.sbar .search{margin:0;flex:1}
.search{height:50px;font-size:16px;padding-left:46px;border-radius:12px;background:var(--surf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") no-repeat 15px center}
.sbar .g{height:50px;border-radius:12px;white-space:nowrap}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px}.chip2{border:1px solid #d3d9e2;background:var(--surf);border-radius:99px;padding:8px 18px;white-space:nowrap;color:var(--ink);font-weight:500}.chip2:hover{background:#f3f5f8}.chip2.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:10px;text-align:left;background:var(--surf);border:1px solid var(--line);border-left:4px solid var(--c,#cbd5e1);border-radius:12px;padding:13px 14px;min-height:96px;color:var(--ink);box-shadow:0 1px 2px rgba(15,23,42,.04);transition:box-shadow .15s,transform .08s}
.tile:hover{box-shadow:0 8px 20px rgba(15,23,42,.09);transform:translateY(-1px)}.tile:active{transform:scale(.97)}.tile b{font-size:14.5px;font-weight:600;line-height:1.3}.tile span{font-weight:700;font-size:16px;color:var(--priD)}.tile small{font-size:12px}.oos{color:var(--bad);font-weight:600}
.bill{position:sticky;top:84px;display:flex;flex-direction:column;gap:12px;padding:18px}.bill .head{display:flex;gap:8px;align-items:center}.bill .head b{flex:1;font-size:17px;font-weight:700}.bill .head .g{height:34px;padding:0 12px;font-size:14px}
.lines{max-height:34vh;overflow:auto;margin:0 -4px;padding:0 4px}.ln{display:grid;grid-template-columns:1fr auto 78px 26px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.nm small{display:block;color:var(--mut);font-size:12.5px}.qty{display:flex;align-items:center;gap:5px}.qty button{width:30px;height:30px;border-radius:8px;border:1px solid #d3d9e2;background:var(--surf);color:var(--ink);font-size:18px;line-height:1}.qty button:hover{background:#f3f5f8}.qty input{width:54px;height:30px;padding:0 4px;text-align:center}
.amt{text-align:right;font-weight:650}.x{border:0;background:none;color:#94a3b8;font-size:15px}.x:hover{color:var(--bad)}
.dr{display:flex;gap:8px}.dr input{flex:1}.dr select{width:74px}.cr{display:flex;gap:8px}.cr select{flex:1}
.sum{font-size:14px;border-top:1px dashed #cdd5df;padding-top:10px}.sum div{display:flex;justify-content:space-between;color:var(--mut);padding:3px 0}.sum .t{font-size:28px;font-weight:800;color:var(--ink);padding-top:8px;letter-spacing:-.02em}
.pay{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.pay button{border:0;border-radius:12px;color:#fff;padding:12px 4px;min-height:66px;display:flex;flex-direction:column;align-items:center;gap:1px;box-shadow:0 2px 6px rgba(15,23,42,.18);transition:transform .08s,filter .15s}.pay button:hover{filter:brightness(1.08)}.pay button:active{transform:scale(.96)}.pay button span{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.92}.pay button b{font-size:15px}.pay button:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}
.p1{background:#0f766e}.p2{background:#4f46e5}.p3{background:#334155}.p4{background:#b45309}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:18px}
.tile2{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;gap:15px;align-items:center;box-shadow:var(--sh)}.tbody{display:flex;flex-direction:column;min-width:0}.tile2 b{font-size:25px;font-weight:750;letter-spacing:-.02em;margin:1px 0}
.tico{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;flex:none}.tico .ic svg{width:23px;height:23px}
.tico.green{background:#dcfce7;color:#15803d}.tico.blue{background:#dbeafe;color:#1d4ed8}.tico.amber{background:#fef3c7;color:#b45309}.tico.red{background:#fee2e2;color:#b91c1c}.tico.violet{background:#ede9fe;color:#6d28d9}.tico.slate{background:#e2e8f0;color:#334155}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.two .card{margin-bottom:0}
.chart{display:flex;align-items:flex-end;gap:10px;height:180px;margin-top:16px}.col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:6px}.barv{width:100%;background:linear-gradient(180deg,#2dd4bf,#0f766e);border-radius:8px 8px 3px 3px;min-height:3px}.col small{color:var(--mut)}
.warn{background:#fef3c7;color:#92400e;padding:11px 28px;font-size:14px}.chk{display:flex;gap:10px;align-items:center;color:var(--ink);font-size:14px;margin:10px 0}.chk input{width:auto}
dialog.dlg{border:0;border-radius:18px;padding:24px;width:min(480px,92vw);background:var(--surf);color:var(--ink);box-shadow:0 24px 70px rgba(15,23,42,.35)}dialog::backdrop{background:rgba(11,19,36,.55);backdrop-filter:blur(3px)}.acts{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}dialog h3{font-size:19px;margin-bottom:4px}
body.auth{background:radial-gradient(1000px 500px at 80% -10%,rgba(45,212,191,.28),transparent),radial-gradient(800px 500px at -10% 110%,rgba(79,70,229,.25),transparent),#0b1324}
.authbox{align-self:flex-start;margin:7vh auto;width:min(440px,92vw);background:var(--surf);border-radius:22px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.45)}.authbox .logo{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#2dd4bf,#0f766e);color:#fff;font-size:28px;font-weight:700;display:grid;place-items:center;box-shadow:0 8px 20px rgba(13,148,136,.4)}
.authbox h1{margin:16px 0 6px;font-size:26px;font-weight:750;letter-spacing:-.02em}.authbox .wide{margin-top:10px}.who{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.code{font:700 20px/1.5 ui-monospace,Consolas,monospace;letter-spacing:1px;background:#f1f5f9;color:#0f172a;border:1px dashed #94a3b8;border-radius:12px;padding:16px;text-align:center;margin:14px 0;word-break:break-all}
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:12px;z-index:99;font-weight:500;box-shadow:0 12px 30px rgba(15,23,42,.3)}

:root[data-theme=dark]{--bg:#0a101d;--surf:#111a2b;--card:#111a2b;--ink:#e6ebf3;--mut:#93a1b8;--line:#223049;--tint:#0f3b36;--priD:#5eead4;--side:#070c17;--sh:none}
:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] .g,:root[data-theme=dark] .qty button,:root[data-theme=dark] .chip2{border-color:#2b3a55}:root[data-theme=dark] .seg{background:#1a2538}:root[data-theme=dark] .g:hover,:root[data-theme=dark] .chip2:hover,:root[data-theme=dark] .qty button:hover{background:#18233a}
:root[data-theme=dark] .chip.bad{background:#451a03;color:#fbbf24}:root[data-theme=dark] .tag.bad{background:#450a0a;color:#fca5a5}:root[data-theme=dark] .code{background:#1a2538;color:#e6ebf3}:root[data-theme=dark] .chip2.on{background:#e6ebf3;color:#0a101d}:root[data-theme=dark] .toast{background:#e6ebf3;color:#0a101d}
@media(max-width:1100px){.pos{grid-template-columns:1fr 380px}}
@media(max-width:900px){#app{display:block}#side{position:fixed;bottom:0;left:0;right:0;top:auto;width:auto;height:auto;padding:4px;z-index:5;flex-direction:row;gap:0;border-top:1px solid #1e293b}.brandrow,.usercard{display:none}#side nav{flex-direction:row;width:100%;gap:0}#side nav button{flex-direction:column;gap:3px;padding:8px 2px;font-size:11.5px;justify-content:center;align-items:center;flex:1;text-align:center}
 main{padding:16px 14px 96px}.pos{grid-template-columns:1fr}.bill{position:static}#top{padding:0 14px;height:58px}#top h1{font-size:18px}.mlock{display:inline-block}.icb{display:none}.warn{padding:10px 14px}.tiles{grid-template-columns:1fr 1fr}.tile2{padding:14px;flex-direction:column;align-items:flex-start;gap:10px}.tile2 b{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.bar h2{display:none}.bv{font-size:11.5px;color:var(--mut);font-weight:600}.col{gap:5px}
.cartbar{display:none}dialog.dlg{max-height:92vh;overflow:auto}
@media(max-width:900px){.cartbar{display:block;position:fixed;left:14px;right:14px;bottom:76px;z-index:4;height:50px;border:0;border-radius:14px;background:var(--pri);color:#fff;font-weight:700;font-size:16px;box-shadow:0 10px 26px rgba(15,118,110,.45)}.cartbar.empty{display:none}}

.brand img{width:100%;height:100%;object-fit:cover;border-radius:12px}.logorow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.logorow input{width:auto;height:auto;padding:8px}.logoprev{display:none;max-height:64px;max-width:140px;border:1px solid var(--line);border-radius:10px;padding:4px;background:#fff;object-fit:contain}
td.n.ra{white-space:normal;min-width:300px}td.ra .g{margin:2px 0}
#receipt{display:none;font:12px/1.4 ui-monospace,"Courier New",monospace;color:#000;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#receipt .ctr{text-align:center}#receipt .rw{display:flex;justify-content:space-between;gap:8px}#receipt .bd{font-weight:700}#receipt .big{font-size:15px;display:block}#receipt .ttl{font-weight:700;margin-top:4px}#receipt .tot{font-size:14px;margin:4px 0}
#receipt table{width:100%;border-collapse:collapse}#receipt table.it th,#receipt table.it td{padding:2px 0;text-align:left;border:0;vertical-align:top;font-size:12px}#receipt .r{text-align:right}#receipt hr{border:0;border-top:1px dashed #000;margin:5px 0}
#receipt.doc{font:12.5px/1.5 Inter,Arial,sans-serif;width:auto}#receipt.a5{font-size:11px}
.doc .ihead{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #0f766e;padding-bottom:14px}.doc .ibrand{display:flex;gap:14px;align-items:center}.doc .ibrand img{max-height:72px;max-width:130px;object-fit:contain}.doc h1{margin:0 0 2px;font-size:22px;letter-spacing:-.01em;color:#0f172a}
.doc .imeta{text-align:right}.doc .ititle{font-size:20px;font-weight:800;color:#0f766e;margin-bottom:6px;letter-spacing:.02em}.doc .mt{color:#64748b;font-size:10.5px;font-weight:600;letter-spacing:.06em}
.doc .ibill{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0;padding:12px 14px;background:#f1f5f9;border-radius:8px}
.doc .itab th{background:#0f766e;color:#fff;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:8px;text-align:left;border:0}.doc .itab td{padding:8px;border-bottom:1px solid #e2e8f0}.doc .r{text-align:right}
.doc .itot{display:grid;grid-template-columns:1fr 280px;gap:24px;margin-top:16px}.doc .sumt td{padding:4px 0;border:0}.doc .sumt .grand td{font-size:17px;font-weight:800;border-top:2px solid #0f172a;padding-top:8px}
.doc .ifoot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:44px;padding-top:14px;border-top:1px solid #cbd5e1}.doc .isign{text-align:center;width:210px}.doc .sline{height:38px;border-bottom:1px solid #0f172a;margin-bottom:4px}
@media print{body>*{display:none!important}#receipt{display:block!important}}
#receipt table.it th{color:#000;text-transform:none;letter-spacing:0;font-weight:700;font-size:12px;padding:2px 0 2px 6px;border-bottom:1px dashed #000}#receipt table.it td{padding-left:6px}#receipt table.it th:first-child,#receipt table.it td:first-child{padding-left:0}
