:root{
  --bg:#f5f6fa;--panel:#fff;--ink:#1b1f2a;--muted:#6b7280;--line:#e5e7ee;
  --brand:#4f46e5;--brand-d:#4338ca;--brand-l:#eef0ff;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;
  --radius:10px;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0f1220;--panel:#171b2e;--ink:#e8eaf3;--muted:#98a0b8;--line:#272c45;--brand:#7c83ff;--brand-d:#9aa0ff;--brand-l:#222750;--shadow:none}
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0 0 .5rem}
h2{font-size:1.25rem}h3{font-size:1rem}
.hidden{display:none!important}
.muted{color:var(--muted)}.right{text-align:right}.center{text-align:center}
.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.row{display:flex;gap:.6rem;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}
.gap{margin-top:1rem}

/* inputs */
input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}
label{display:block;font-size:12px;color:var(--muted);margin:.7rem 0 .25rem}
label.check{display:flex;gap:.5rem;align-items:center;color:var(--ink);font-size:14px}
label.check input{width:auto}
.btn{border:1px solid var(--line);background:var(--panel);padding:.5rem .9rem;border-radius:8px;cursor:pointer;font-weight:600;white-space:nowrap}
.btn:hover{border-color:var(--brand)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.btn.danger{color:var(--bad)}
.btn.sm{padding:.25rem .55rem;font-size:12px}
.btn.big{width:100%;padding:.8rem;font-size:1.05rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* auth */
.auth{min-height:100%;display:grid;place-items:center;padding:1rem}
.auth-card{width:100%;max-width:420px;background:var(--panel);border-radius:14px;box-shadow:var(--shadow);padding:1.6rem}
.logo{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.3rem;margin-bottom:.3rem}
.logo i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--brand);color:#fff;font-style:normal}
.tabs{display:flex;gap:.3rem;margin:1rem 0 .4rem;background:var(--bg);padding:.25rem;border-radius:9px}
.tabs button{flex:1;border:0;background:none;padding:.5rem;border-radius:7px;cursor:pointer;font-weight:600;color:var(--muted)}
.tabs button.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.err{background:#fee2e2;color:#991b1b;border-radius:8px;padding:.5rem .7rem;margin-top:.8rem}

/* shell */
.shell{display:grid;grid-template-columns:220px 1fr;height:100vh}
.side{background:var(--panel);border-right:1px solid var(--line);padding:1rem .7rem;display:flex;flex-direction:column;gap:.2rem;overflow:auto}
.side .logo{padding:0 .4rem;margin-bottom:1rem}
.nav{display:flex;gap:.6rem;align-items:center;padding:.6rem .7rem;border-radius:8px;cursor:pointer;border:0;background:none;text-align:left;width:100%;font-weight:600;color:var(--muted)}
.nav:hover{background:var(--bg)}
.nav.on{background:var(--brand-l);color:var(--brand)}
.side .foot{margin-top:auto;padding:.6rem .4rem;font-size:12px;color:var(--muted)}
.main{display:flex;flex-direction:column;min-width:0;height:100vh}
.banner{background:#fef3c7;color:#92400e;padding:.5rem 1rem;font-size:13px}
.banner.bad{background:#fee2e2;color:#991b1b}
.view{padding:1.1rem 1.3rem;overflow:auto;flex:1}
.bar{display:none}

/* cards, tables */
.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem}
.kpi .v{font-size:1.5rem;font-weight:800}
.kpi .l{color:var(--muted);font-size:12px}
table{width:100%;border-collapse:collapse}
th,td{padding:.55rem .6rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.tablewrap{overflow:auto}
.pill{display:inline-block;padding:.1rem .5rem;border-radius:99px;font-size:12px;font-weight:600;background:var(--brand-l);color:var(--brand)}
.pill.red{background:#fee2e2;color:#991b1b}.pill.green{background:#dcfce7;color:#166534}.pill.amber{background:#fef3c7;color:#92400e}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.empty{padding:2rem;text-align:center;color:var(--muted)}

/* POS */
.pos{display:grid;grid-template-columns:1fr 380px;gap:1rem;height:100%}
.pos-left{display:flex;flex-direction:column;min-height:0}
.cats{display:flex;gap:.4rem;overflow:auto;padding:.5rem 0}
.chip{border:1px solid var(--line);background:var(--panel);border-radius:99px;padding:.3rem .8rem;cursor:pointer;white-space:nowrap;font-weight:600;font-size:13px}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;overflow:auto;align-content:start;padding-bottom:1rem}
.prod{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:.2rem;min-height:92px}
.prod:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.prod .n{font-weight:600;line-height:1.25}
.prod .p{color:var(--brand);font-weight:800;margin-top:auto}
.prod .s{font-size:11px;color:var(--muted)}
.prod.out{opacity:.5}
.cart{display:flex;flex-direction:column;min-height:0;padding:0}
.cart-head{padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.cart-items{flex:1;overflow:auto;padding:.3rem 1rem}
.line{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;padding:.5rem 0;border-bottom:1px dashed var(--line)}
.qty{display:flex;align-items:center;gap:.25rem}
.qty button{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-weight:700}
.qty span{min-width:24px;text-align:center;font-weight:600}
.cart-foot{padding:1rem;border-top:1px solid var(--line)}
.totals div{display:flex;justify-content:space-between;padding:.12rem 0}
.totals .t{font-size:1.35rem;font-weight:800;border-top:1px solid var(--line);margin-top:.3rem;padding-top:.4rem}
.methods{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem;margin:.6rem 0}

/* modal & toast */
.modal{position:fixed;inset:0;background:rgba(10,12,24,.5);display:grid;place-items:center;padding:1rem;z-index:50}
.sheet{background:var(--panel);border-radius:14px;max-width:520px;width:100%;max-height:92vh;overflow:auto;padding:1.3rem;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.sheet.wide{max-width:760px}
.sheet .actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.2rem}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:.6rem 1rem;border-radius:9px;z-index:60;box-shadow:var(--shadow)}
.toast.bad{background:#b91c1c}
.receipt{font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;max-width:320px;margin:0 auto}
.receipt hr{border:0;border-top:1px dashed var(--muted);margin:.6rem 0}
.receipt .l{display:flex;justify-content:space-between;gap:.5rem}

/* charts */
.chart{display:flex;align-items:flex-end;gap:3px;height:150px;padding-top:.5rem}
.chart .b{flex:1;background:var(--brand);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.chart .b:hover{background:var(--brand-d)}
.hbar{height:8px;background:var(--brand-l);border-radius:99px;overflow:hidden;margin-top:.25rem}
.hbar i{display:block;height:100%;background:var(--brand)}

@media (max-width:900px){
  .shell{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:100vh}
  .side{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:.4rem;gap:.2rem;align-items:center}
  .side .logo,.side .foot{display:none}
  .nav{width:auto;white-space:nowrap;padding:.5rem .7rem}
  .pos{grid-template-columns:1fr;height:auto}
  .cart{min-height:420px}
  .grid2{grid-template-columns:1fr}
  .main{height:auto}
}
@media print{
  body *{visibility:hidden}
  .receipt,.receipt *{visibility:visible}
  .receipt{position:absolute;left:0;top:0;max-width:none;width:80mm}
}

.tabs.inline{margin:0}.tabs.inline button{flex:none;white-space:nowrap;padding:.5rem .9rem}
@media(max-width:820px){#outsw{width:auto!important;margin:0!important;flex:none}}

/* Windows 11 look: light, soft, green accent */
:root{color-scheme:light;--bg:#f3f3f3;--panel:#fff;--ink:#1a1a1a;--muted:#616161;--line:#e5e5e5;--brand:#0f7b0f;--brand-d:#0b5e0b;--brand-l:#e3f3e3;--ok:#0f7b0f;--warn:#9d5d00;--bad:#c42b1c;--radius:8px;--shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.04)}
body{font-family:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;background:var(--bg)}
.side{background:#eef3ee;border-right:1px solid #dfe6df}
.nav{border-radius:6px;color:#2b2b2b;font-weight:500}
.nav:hover{background:rgba(0,0,0,.05)}
.nav.on{background:#fff;color:var(--ink);box-shadow:var(--shadow);position:relative}
.nav.on::before{content:"";position:absolute;left:0;top:25%;height:50%;width:3px;border-radius:3px;background:var(--brand)}
.logo i{border-radius:8px;background:var(--brand)}
input,select,textarea{border-radius:6px;border:1px solid #d1d1d1;border-bottom-color:#8a8a8a;background:#fff}
input:focus,select:focus,textarea:focus{outline:0;border-color:#d1d1d1;border-bottom:2px solid var(--brand)}
.btn{border-radius:6px;font-weight:500;background:#fff;border-color:#d1d1d1}
.btn:hover{background:#f6f6f6;border-color:#c2c2c2}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.card,.prod,.auth-card{border-radius:8px;border:1px solid #e8e8e8;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.prod:hover{border-color:var(--brand);background:#f7fbf7}
.chip{border-radius:6px;border-color:#d1d1d1}
.chip.on{background:var(--brand);border-color:var(--brand)}
.tabs{background:#e9e9e9;border-radius:8px}
.sheet{border-radius:12px}
.modal{background:rgba(0,0,0,.35);backdrop-filter:blur(4px)}
.banner{background:#fff4ce;color:#5d4b00}
th{color:#616161}
tbody tr:hover td{background:#fafafa}
.pill.green{background:#dff6dd;color:#0b5e0b}
.toast{background:#2b2b2b}

.chart2{display:flex;gap:6px;align-items:flex-end;height:170px;padding-top:.5rem}
.chart2 .col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:4px}
.chart2 .pair{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}
.chart2 .pair i{display:block;width:40%;max-width:22px;border-radius:3px 3px 0 0;min-height:2px}
.chart2 i.s,.dot.s{background:var(--brand)}.chart2 i.c,.dot.c{background:#b9c2b9}
.chart2 span{font-size:11px;color:var(--muted)}
.dot{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}

/* DealPOS-style layout (own look) */
.nav{text-transform:uppercase;font-size:12.5px;letter-spacing:.04em;font-weight:600;padding:.62rem .8rem}
.nav span{width:22px;text-align:center;font-size:15px}
.view h2{font-weight:500;font-size:1.5rem;margin:0}
.pagehead{display:flex;align-items:center;gap:.8rem;margin-bottom:.4rem}
.hsearch{max-width:220px}
.btn.add{padding:.5rem 1.6rem;font-weight:700}
.subtabs{display:flex;gap:1.4rem;border-bottom:1px solid var(--line);margin:.4rem 0 .9rem}
.subtabs button{border:0;background:none;padding:.55rem 0;font-weight:600;color:#1565a8;cursor:pointer;border-bottom:2px solid transparent}
.subtabs button.on{color:var(--ink);border-bottom-color:var(--brand)}
.pcell{display:flex;align-items:center;gap:.7rem}.pcell a{color:#1565a8}
.thumb{width:36px;height:36px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;flex:none}
.pos2{display:flex;flex-direction:column;height:100%;min-height:0}
.pos-top{display:flex;align-items:center;gap:1rem;padding:.2rem 0 .7rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pos-outlet{display:flex;gap:.5rem;align-items:center}.pos-outlet b{font-size:1.15rem}
.pos-online{display:flex;align-items:center;gap:.4rem;font-size:13px}.dot{width:10px;height:10px;border-radius:50%;background:#2ecc40;display:inline-block}
.more{position:relative}.menu{position:absolute;right:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:20;min-width:200px;display:flex;flex-direction:column;padding:.3rem}
.menu a{padding:.5rem .7rem;color:var(--ink);text-decoration:none;border-radius:6px}.menu a:hover{background:var(--bg)}
.sper{width:200px}
.pos-main{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex:1;min-height:0;padding-top:.7rem}
.pos-left{display:flex;flex-direction:column;min-height:0}
.cattabs{display:flex;gap:.2rem;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:.8rem}
.cattabs button{border:0;background:none;padding:.6rem .9rem;cursor:pointer;font-weight:600;text-transform:uppercase;font-size:12.5px;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent}
.cattabs button.on{color:var(--ink);border-bottom-color:var(--brand)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.7rem;overflow:auto;align-content:start}
.tile{border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center;padding:.2rem;font-size:12px}
.tile:hover .ph{outline:2px solid var(--brand)}
.tile .ph{width:58px;height:58px;border-radius:6px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px}
.tile .n{line-height:1.2;color:var(--ink)}.tile .p{color:var(--muted)}.tile .s{font-size:10.5px;color:var(--muted)}.tile.out{opacity:.5}
.pos-right{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line);padding-left:1rem}
.gap2{display:flex;gap:.6rem}
.pos-right .cart-items{flex:1;overflow:auto;padding:.3rem 0}
.emptycart{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;color:#9aa3a0;text-align:center}
.emptycart .ico{font-size:4rem;opacity:.5}
.payrow{display:flex;gap:.6rem;align-items:stretch;margin-top:.6rem}
.payrow .disc{width:80px}
.parkbtn{flex:0 0 28%;font-weight:700;letter-spacing:.05em}
.paybtn{flex:1;display:flex;justify-content:space-between;align-items:center;background:#7aa72b;color:#fff;border:0;border-radius:6px;padding:.8rem 1rem;font-size:1.15rem;cursor:pointer}
.paybtn:disabled{opacity:.55;cursor:default}
.paybtn{background:var(--brand)}
@media (max-width:900px){.pos-main{grid-template-columns:1fr}.pos-right{border-left:0;padding-left:0}}
tr.click{cursor:pointer}tr.click:hover{background:var(--bg)}

.invgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.invgrid .card{margin:0}
.kv{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid var(--line,#e5e7eb)}
.pagehead .btn+h2{margin-left:.8rem}
@media(max-width:700px){.invgrid{grid-template-columns:1fr}}

.subtabs.scroll{overflow-x:auto;white-space:nowrap}
.rpt tr.total td{font-weight:700;border-top:2px solid var(--line,#d1d5db)}
.rng{font-size:.7em;font-weight:400}

.dash{padding:1rem}.dtiles{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
.dtile{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:6px;padding:.7rem .9rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.2rem}
.dtile.on{background:#f1f5f2}.dtile span{color:#374151}.dtile b{font-size:1.15rem;font-weight:500}
.dbody{display:grid;grid-template-columns:1fr 230px;gap:1rem;margin-top:1rem}
.linechart{width:100%;height:auto}.legend{display:flex;gap:1rem;justify-content:center;font-size:12px;color:#4b5563}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.dside{border:1px solid var(--line,#e5e7eb);border-radius:6px;padding:.6rem .8rem;align-self:start}.dper{border:0;font-size:1.2rem;text-align:right;width:100%}
.drow{display:flex;justify-content:space-between;padding:.45rem 0;border-top:1px solid var(--line,#e5e7eb)}.drow.bad span{color:#dc2626}.drow.ok span{color:#65a30d}.dstamp{font-size:11px;margin-top:.4rem}
@media(max-width:800px){.dtiles{grid-template-columns:repeat(2,1fr)}.dbody{grid-template-columns:1fr}}
.searchbox{margin-left:.8rem}
.statcards{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.statcard{padding:.9rem 1.1rem}.statcard.on{border-color:#1a73e8}
.statcard small{display:block;color:var(--muted)}.statcard b{display:block;font-size:1.6rem;margin:.1rem 0}
.statcard .blue{color:#1a73e8;font-size:.82rem}.statcard .grn{color:#3a9d23;font-size:.82rem}.statcard .pink{color:#e0267a;font-size:.82rem}
.ctable th{font-size:.72rem;letter-spacing:.03em;color:var(--muted)}
.clink{color:#1565a8;text-decoration:none}.clink:hover{text-decoration:underline}
.pager{display:flex;align-items:center;gap:.4rem;padding:.7rem 1rem}
.cgrid{display:grid;grid-template-columns:2fr 1fr;gap:.8rem}
.cf{margin-bottom:.7rem}.cf label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.2rem}
.cf .cv{border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;min-height:2.1rem;background:#fafafa}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 .8rem}
.okdot{color:#fff;background:#6aa51f;border-radius:50%;font-size:.7rem;padding:.1rem .35rem;vertical-align:middle}
.createdbar{background:#fff7cf;border:1px solid #f0e19a;border-radius:6px;padding:.6rem .9rem;font-size:.85rem}
@media(max-width:760px){.statcards,.cgrid,.g3{grid-template-columns:1fr}}
.statcards.two{grid-template-columns:repeat(2,minmax(0,320px))}
.debtgrid{display:grid;grid-template-columns:1fr 280px;gap:.8rem;align-items:start}
.tblhead{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem}
.agepanel{padding:1rem}.agerow{display:flex;align-items:center;gap:.6rem;padding:.65rem .5rem;border-top:1px solid var(--line);cursor:pointer}
.agerow i{width:10px;height:10px;border-radius:50%}.agerow.on{background:#fff1f0}.agerow b{font-size:1.05rem}
.subtabs.scroll{overflow-x:auto;white-space:nowrap}.ctable tr.total td{border-top:2px solid var(--line)}
@media(max-width:900px){.debtgrid{grid-template-columns:1fr}.statcards.two{grid-template-columns:1fr}}
.pstat{display:block;margin:-.55rem -.6rem;padding:.55rem .6rem;font-weight:500;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 6px,transparent 6px 12px)}
.pstat.paid{color:#3a9d23}.pstat.partial{color:#e6a100}.pstat.unpaid{background-color:#fde9a8;color:#d1432d}.pstat.void{background-color:#f6c6c6;color:#c62828}
.pstat.partial{background-color:#fff3c8}
.fsent{color:#3a9d23}.funsent{display:block;margin:-.55rem -.6rem;padding:.55rem .6rem;background-color:#f6c6c6;color:#d1432d;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 6px,transparent 6px 12px)}.fway{color:#e6a100}
.setwrap{display:grid;grid-template-columns:230px 1fr;gap:1.2rem;align-items:start}
.setside{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.8rem}
.setside a{display:flex;justify-content:space-between;padding:.5rem .6rem;border-radius:6px;color:var(--ink);text-decoration:none;font-size:.9rem}
.setside a.sub{padding-left:1.4rem;color:var(--muted)}.setside a.on{background:var(--brand-l);color:var(--brand);font-weight:600}.setside a:hover{background:#f3f4f3}
.sethead{margin:.2rem 0 1rem}.setgrp{margin:1.2rem 0 .6rem;font-size:1rem}
.setcards{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.setcard{display:flex;gap:.7rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.8rem;text-decoration:none;color:var(--ink)}
.setcard:hover{border-color:var(--brand)}.setcard i{flex:none;width:34px;height:34px;border-radius:8px;background:var(--brand-l);color:var(--brand);display:grid;place-items:center;font-style:normal;font-weight:700}
.setcard small{display:block;color:var(--muted);font-size:.78rem;margin-top:.15rem}
@media(max-width:800px){.setwrap{grid-template-columns:1fr}.setcards{grid-template-columns:1fr}}

/* ===== Modern refresh: fresh emerald, soft depth, smooth motion ===== */
:root{
  --bg:#f2f7f4;--panel:#fff;--ink:#14231b;--muted:#5d7066;--line:#e1ebe5;
  --brand:#10a35a;--brand-d:#0b8348;--brand-l:#e1f6ea;--accent:#0ea5a4;--sun:#f5a524;
  --ok:#0e9f55;--warn:#c27803;--bad:#d9382c;--radius:14px;
  --shadow:0 1px 2px rgba(16,60,40,.06),0 6px 18px rgba(16,60,40,.07);
  --lift:0 2px 4px rgba(16,60,40,.08),0 12px 28px rgba(16,60,40,.12);
}
body{background:radial-gradient(1200px 500px at 85% -10%,#dff5e8 0,transparent 60%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}
*{transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,transform .12s,opacity .15s}
::selection{background:#bdecd2}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c5d8cd;border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#9fc2ae;background-clip:padding-box;border:2px solid transparent}

/* sidebar */
.side{background:linear-gradient(175deg,#0c3b2a 0,#0f5a3c 55%,#0b6b4a 100%);border-right:0;padding:1.1rem .8rem;box-shadow:4px 0 24px rgba(10,50,35,.18)}
.side .logo{color:#fff;font-size:1.35rem;letter-spacing:-.01em;margin-bottom:1.2rem}
.logo i{background:linear-gradient(135deg,#34d57f,#0ea5a4);box-shadow:0 4px 12px rgba(20,200,120,.4);border-radius:11px}
.nav{color:#cfeadb;border-radius:10px;font-weight:600;letter-spacing:.05em}
.nav:hover{background:rgba(255,255,255,.1);color:#fff;transform:translateX(2px)}
.nav.on{background:rgba(255,255,255,.95);color:#0b5a38;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.nav.on::before{background:linear-gradient(#34d57f,#0ea5a4);width:4px;left:3px;top:20%;height:60%}
.nav span{filter:saturate(1.2)}
.side .foot{color:#a8d4bd}.side .foot b{color:#fff}
.side .foot .btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.side .foot .btn:hover{background:rgba(255,255,255,.22)}

/* headings, pages */
.view{padding:1.3rem 1.6rem}
.view h2{font-weight:700;font-size:1.55rem;letter-spacing:-.015em;color:#0d3a28}
.pagehead{margin-bottom:.7rem}

/* buttons */
.btn{border-radius:10px;font-weight:600;border:1px solid #d3e3da;background:#fff;box-shadow:0 1px 1px rgba(16,60,40,.05)}
.btn:hover{background:#f3faf6;border-color:var(--brand);transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,60,40,.1)}
.btn:active{transform:translateY(0)}
.btn.primary,.paybtn{background:linear-gradient(135deg,#17b865,#0d9a55);border-color:#0d9a55;color:#fff;box-shadow:0 4px 12px rgba(16,163,90,.32)}
.btn.primary:hover,.paybtn:hover:not(:disabled){background:linear-gradient(135deg,#14ad5e,#0a8a4b);box-shadow:0 7px 18px rgba(16,163,90,.4)}
.btn.danger{border-color:#f3c9c5}.btn.danger:hover{background:#fff3f2;border-color:var(--bad)}
.btn:focus-visible,.nav:focus-visible,.chip:focus-visible,.tile:focus-visible{outline:3px solid rgba(16,163,90,.35);outline-offset:2px}
.btn.add{border-radius:99px;padding:.5rem 1.5rem}

/* inputs */
input,select,textarea{border-radius:10px;border:1px solid #d3e3da;border-bottom-color:#d3e3da;background:#fbfdfc}
input:hover,select:hover,textarea:hover{border-color:#a9cdb9}
input:focus,select:focus,textarea:focus{background:#fff;border-color:var(--brand);border-bottom:1px solid var(--brand);box-shadow:0 0 0 4px rgba(16,163,90,.15)}

/* cards and tables */
.card,.auth-card,.dside,.setside,.setcard,.dtile,.statcard{border:1px solid #e3ede7;border-radius:14px;box-shadow:var(--shadow);background:#fff}
.card:hover{box-shadow:var(--lift)}
.card.nohover:hover{box-shadow:var(--shadow)}
table{border-collapse:separate;border-spacing:0}
th{background:#f4faf6;color:#4d6a5b;font-size:11.5px;letter-spacing:.06em;border-bottom:1px solid #dcebe2}
th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}
td{border-bottom:1px solid #edf4f0}
tbody tr:hover td,tr.click:hover td{background:#f3fbf6}
tr.click:hover{background:none}
.pill{background:var(--brand-l);color:#0a7a43;font-weight:600}
.pill.green{background:#d9f5e5;color:#0a6d3b}.pill.amber{background:#fff0cc;color:#8a5a00}.pill.red{background:#fde2df;color:#a92319}

/* dashboard tiles */
.dtiles{gap:1rem}
.dtile{padding:.95rem 1.1rem;position:relative;overflow:hidden}
.dtile::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#34d57f,#0ea5a4);opacity:.45}
.dtile:hover{transform:translateY(-3px);box-shadow:var(--lift)}
.dtile.on{background:linear-gradient(160deg,#e9f9f0,#fff);border-color:#9fdcbb}.dtile.on::after{opacity:1}
.dtile span{color:var(--muted);font-weight:600;font-size:.85rem}.dtile b{font-size:1.4rem;font-weight:700;color:#0d3a28}
.dtile:nth-child(2)::after{background:linear-gradient(#5eb8ff,#6366f1)}
.dtile:nth-child(3)::after{background:linear-gradient(#ffd166,#f5a524)}
.dtile:nth-child(4)::after{background:linear-gradient(#ff8fb1,#e0267a)}
.dtile:nth-child(5)::after{background:linear-gradient(#7ee0d6,#0ea5a4)}
.statcard{padding:1rem 1.2rem}.statcard:hover{transform:translateY(-2px);box-shadow:var(--lift)}
.statcard.on{border-color:var(--brand);background:linear-gradient(160deg,#eefaf3,#fff)}
.statcard b{font-weight:700;color:#0d3a28}
.drow{border-top-color:#e6f0ea}.drow.ok span{color:var(--ok)}
.chart2 i.s,.dot.s{background:linear-gradient(#34d57f,#0e9f55)}.chart2 i.c,.dot.c{background:linear-gradient(#cfe0d6,#b4cbbd)}
.chart .b,.hbar i{background:linear-gradient(#34d57f,#0e9f55)}
.hbar{background:#e1f6ea}

/* sell screen */
.pos-top{border-bottom:1px solid #dcebe2}
.pos-online .dot{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.2)}
.cattabs{border-bottom:1px solid #dcebe2}
.cattabs button{color:var(--muted);border-bottom:3px solid transparent;border-radius:6px 6px 0 0}
.cattabs button:hover{color:var(--brand);background:#f1faf5}
.cattabs button.on{color:#0a7a43;border-bottom-color:var(--brand);background:#f1faf5}
.tiles{grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:.8rem}
.tile{background:#fff;border:1px solid #e3ede7;border-radius:14px;padding:.6rem .35rem;box-shadow:var(--shadow)}
.tile:hover{transform:translateY(-3px);box-shadow:var(--lift);border-color:#9fdcbb}
.tile:hover .ph{outline:0;transform:scale(1.06)}
.tile:active{transform:scale(.97)}
.tile .ph{width:62px;height:62px;border-radius:16px;box-shadow:0 5px 12px rgba(0,0,0,.16);text-shadow:0 1px 2px rgba(0,0,0,.2)}
.tile .n{font-weight:600}.tile .p{color:#0a7a43;font-weight:700}
.pos-right{border-left:1px solid #dcebe2}
.emptycart{color:#8fb1a0}.emptycart .ico{opacity:.7;filter:saturate(1.3)}
.paybtn{border-radius:12px;font-weight:700;padding:.9rem 1.1rem}
.parkbtn{border-radius:12px}
.thumb{border-radius:10px;box-shadow:0 3px 8px rgba(0,0,0,.14)}
.chip{border-radius:99px}.chip.on{background:linear-gradient(135deg,#17b865,#0d9a55)}
.line{border-bottom-color:#e1ece6}
.qty button{border-radius:8px}.qty button:hover{background:var(--brand-l);border-color:var(--brand)}
.totals .t{color:#0d3a28}

/* tabs, subtabs, settings */
.tabs{background:#e4efe9;border-radius:12px}
.tabs button.on{border-radius:9px}
.subtabs{border-bottom:1px solid #dcebe2;gap:1.5rem}
.subtabs button{color:#4d6a5b;border-bottom:3px solid transparent;border-radius:4px 4px 0 0}
.subtabs button:hover{color:var(--brand)}
.subtabs button.on{color:#0a7a43;border-bottom-color:var(--brand)}
.setside a{border-radius:10px}.setside a:hover{background:#f1faf5}
.setside a.on{background:linear-gradient(135deg,#e1f6ea,#d3f0e1);color:#0a6d3b}
.setcard:hover{transform:translateY(-2px);box-shadow:var(--lift);border-color:#9fdcbb}
.setcard i{background:linear-gradient(135deg,#d9f5e5,#c4ecd7);color:#0a7a43;border-radius:11px}
.clink,.pcell a{color:#0b7f8f}

/* modal, menus, toast, banners */
.modal{background:rgba(8,40,28,.45);backdrop-filter:blur(6px)}
.sheet{border-radius:18px;box-shadow:0 30px 70px rgba(5,40,25,.35);animation:pop .18s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.menu{border-radius:12px;box-shadow:var(--lift);border-color:#dcebe2;animation:pop .14s ease-out}
.menu a{border-radius:8px}.menu a:hover{background:#eefaf3;color:#0a6d3b}
.toast{background:linear-gradient(135deg,#0f3d2b,#14543a);border-radius:12px;box-shadow:var(--lift);animation:pop .2s ease-out}
.toast.bad{background:linear-gradient(135deg,#b3261e,#d9382c)}
.banner{background:linear-gradient(90deg,#fff3cf,#ffe9a8);color:#6b4a00;border-bottom:1px solid #f3dc8c}
.banner.bad{background:linear-gradient(90deg,#fde2df,#fbcfca);color:#8c1d14}
.createdbar{border-radius:12px}
.err{border-radius:10px}
.empty{color:#7c968a}

/* sign in / sign up */
.auth{background:radial-gradient(900px 500px at 15% 0,#c9f1dc 0,transparent 60%),radial-gradient(800px 500px at 100% 100%,#bfeaf0 0,transparent 55%),#eef8f2}
.auth-card{max-width:440px;border-radius:20px;padding:2rem;box-shadow:0 24px 60px rgba(10,80,50,.18);animation:pop .3s ease-out}
.auth-card .logo{font-size:1.5rem;color:#0d3a28}

@media (max-width:900px){
  .side{background:linear-gradient(90deg,#0c3b2a,#0f5a3c);padding:.4rem}
  .nav:hover{transform:none}
  .tiles{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.side .foot a{color:#9fe8c3;text-decoration:none}.side .foot a:hover{color:#fff;text-decoration:underline}
.auth{min-height:100vh}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.6rem}.keypad .btn{padding:.7rem;font-size:1.1rem}
.thumb.sm{width:30px;height:30px;font-size:11px;border-radius:8px}.line.wimg{grid-template-columns:auto 1fr auto auto}
.setgrp{margin:1.1rem 0 .1rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#4d6a5b}.setgrp:first-child{border-top:0;margin-top:0;padding-top:0}
.setrow{padding:.35rem 0}
@media print{.receipt.p58{width:58mm!important}.receipt.pa4{width:190mm!important;max-width:none!important}}
@media print{.noprint{display:none!important}}
@media print{body.pg *{visibility:visible}body.pg .side,body.pg .dside,body.pg .topbar,body.pg .toast{display:none!important}body.pg #view{position:absolute;left:0;top:0;width:100%}}
.cdisp{min-height:100vh;background:#0f2a1d;color:#fff;display:flex;flex-direction:column;padding:2rem 3rem;font-size:1.6rem}.cdhead{font-size:2.2rem;font-weight:700;color:#7be3a8;margin-bottom:1.5rem}.cdlist{flex:1;overflow:auto}.cdrow{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #ffffff22}.cdtot{margin-top:1rem}.cdgrand{display:flex;justify-content:space-between;font-size:3.2rem;font-weight:800;margin-top:.8rem;color:#7be3a8}.cdidle{flex:1;display:flex;align-items:center;justify-content:center;font-size:2.6rem;text-align:center}
