@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --bg:#140c0b;
  --bg2:#1c1210;
  --surface:#2a1c18;
  --surface2:#35241f;
  --line:rgba(212,175,87,.18);
  --burgundy:#7A1F2B;
  --burgundy-d:#4A1018;
  --gold:#D4AF57;
  --gold-2:#E8D5A3;
  --cream:#F7F0E4;
  --paper:#FFFBF3;
  --ink:#2C1810;
  --muted:#b9a394;
  --teal:#2a8a82;
  --danger:#c44536;
  --ok:#3d8b6e;
  --warn:#c48a2b;
  --shadow:0 18px 50px rgba(0,0,0,.35);
  --r:18px;
  --navw:200px;
  --top:56px;
  --safe-b:env(safe-area-inset-bottom);
  --safe-t:env(safe-area-inset-top);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--cream);font-family:Vazirmatn,Tahoma,sans-serif}
body{padding-top:var(--safe-t)}
button,input,select,textarea{font-family:inherit}
a{color:var(--gold);text-decoration:none}
img{max-width:100%;display:block}
button{cursor:pointer}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(212,175,87,.28);border-radius:8px}

/* splash */
.splash{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:
  radial-gradient(1200px 500px at 50% -10%,rgba(122,31,43,.45),transparent 60%), var(--bg);
  gap:14px}
.splash-logo{width:120px;height:120px;border-radius:28px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.splash-name{font-weight:700;font-size:28px;color:var(--gold-2);letter-spacing:.5px}
.splash-sub{color:var(--muted);font-size:13px}

/* login */
.login{min-height:100dvh;display:grid;place-items:center;padding:24px;
  background:
    linear-gradient(180deg,rgba(20,12,11,.35),rgba(20,12,11,.82) 55%, #140c0b),
    url('/img/hero.jpg') center/cover no-repeat}
.login-card{width:min(420px,100%);background:rgba(26,16,14,.78);backdrop-filter:blur(16px);
  border:1px solid var(--line);border-radius:28px;padding:28px 24px 22px;box-shadow:var(--shadow)}
.login-logo{width:86px;height:86px;border-radius:22px;margin:0 auto 10px;border:1px solid var(--line)}
.login-title{text-align:center;font-size:26px;font-weight:700;color:var(--gold-2);margin:4px 0 0}
.login-tag{text-align:center;color:var(--muted);font-size:13px;margin:6px 0 22px}
.ornament{display:flex;align-items:center;gap:10px;color:var(--gold);font-size:12px;margin:8px 0 18px}
.ornament:before,.ornament:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.55}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.field label{font-size:12px;color:var(--gold-2)}
.field input,.field select,.field textarea{
  background:#201512;border:1px solid var(--line);color:var(--cream);border-radius:12px;
  padding:12px 14px;outline:none;font-size:15px}
.field textarea{min-height:84px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}
.demo-box{background:rgba(212,175,87,.08);border:1px dashed var(--line);border-radius:14px;padding:10px 12px;font-size:12px;color:var(--muted);line-height:1.9;margin-top:14px}
.demo-box b{color:var(--gold-2);font-weight:600}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;
  padding:11px 16px;font-weight:600;font-size:14px;transition:.15s transform,.15s filter}
.btn:active{transform:scale(.98)}
.btn-gold{background:linear-gradient(180deg,#e3c56a,#c49a3a);color:#2c1810}
.btn-gold:hover{filter:brightness(1.06)}
.btn-burgundy{background:linear-gradient(180deg,#9a2a38,#6b1a24);color:#fff}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--gold-2)}
.btn-teal{background:var(--teal);color:#fff}
.btn-danger{background:var(--danger);color:#fff}
.btn-ok{background:var(--ok);color:#fff}
.btn-block{width:100%}
.btn-sm{padding:7px 11px;font-size:12px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* staff shell — منو همیشه سمت راست فیزیکی؛ صفحه کار تمام عرض باقی‌مانده */
.staff{min-height:100dvh;background:
  linear-gradient(180deg,rgba(20,12,11,.92),rgba(20,12,11,.96)),
  url('/img/pattern.jpg') center/280px repeat,
  var(--bg);display:flex;flex-direction:column}
.sidenav{display:none;background:linear-gradient(180deg,#241614,#140c0b);
  border-right:0;border-left:2px solid var(--gold);padding:14px 10px;z-index:20;overflow:auto}
.staff-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;width:100%}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}
.brand img{width:40px;height:40px;border-radius:12px}
.brand .bn{font-weight:700;color:var(--gold-2);font-size:15px}
.brand .bt{font-size:11px;color:var(--muted)}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;color:var(--muted);margin-bottom:3px;border:0;background:transparent;width:100%;text-align:right;font-size:13px}
.nav-item.active,.nav-item:hover{background:rgba(212,175,87,.12);color:var(--gold-2)}
.nav-item svg{width:18px;height:18px;flex:0 0 auto}
.topbar{position:sticky;top:0;z-index:15;height:var(--top);display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;background:rgba(20,12,11,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);flex:0 0 auto}
.topbar .who{font-size:12px;color:var(--muted);text-align:left}
.topbar .who b{display:block;color:var(--cream);font-size:13px}
.main{padding:16px 16px calc(88px + var(--safe-b));flex:1 1 auto;min-width:0;width:100%}
.bottomnav{position:fixed;bottom:0;right:0;left:0;z-index:20;display:flex;background:rgba(20,12,11,.92);
  border-top:1px solid var(--line);padding:6px 6px calc(8px + var(--safe-b));gap:4px}
.bottomnav button{flex:1;background:transparent;border:0;color:var(--muted);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px}
.bottomnav button.active{color:var(--gold)}
.bottomnav svg{width:20px;height:20px}

@media(min-width:720px){
  .staff{
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--navw);
    grid-template-areas:"body nav";
    align-items:stretch;
  }
  .sidenav{display:flex;flex-direction:column;grid-area:nav;position:sticky;top:0;height:100dvh;width:var(--navw);max-width:var(--navw)}
  .staff-body{grid-area:body;min-width:0;width:auto}
  .bottomnav{display:none}
  .main{padding:20px 24px 36px}
}

/* cards / kpi */
.h1{margin:0 0 4px;font-size:22px;color:var(--gold-2);font-weight:700}
.sub{color:var(--muted);font-size:13px;margin:0 0 16px}
.grid{display:grid;gap:12px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g-4,.g-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.g-4,.g-3,.g-2{grid-template-columns:1fr}}
.card{background:rgba(42,28,24,.86);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.kpi{display:flex;flex-direction:column;gap:4px}
.kpi .k{font-size:12px;color:var(--muted)}
.kpi .v{font-size:22px;font-weight:700;color:var(--gold-2)}
.kpi .d{font-size:11px;color:var(--muted)}

/* tables floor */
.zones{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin-bottom:8px}
.chip{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;white-space:nowrap}
.chip.on{background:rgba(212,175,87,.16);color:var(--gold-2);border-color:var(--gold)}
.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tcard{position:relative;border-radius:20px;padding:14px 12px 12px;border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(53,36,31,.9),rgba(32,20,17,.9));min-height:148px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:inherit;width:100%}
.tcard.vip{box-shadow:inset 0 0 0 1px rgba(212,175,87,.55)}
.vip-tag{position:absolute;top:10px;left:10px;background:linear-gradient(180deg,#e3c56a,#c49a3a);color:#2c1810;font-size:10px;font-weight:700;border-radius:999px;padding:2px 7px}
.tcard .tacts{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.cat-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.cat-card img{height:120px;width:100%;object-fit:cover;background:#201512}
.cat-card .b{padding:10px;display:flex;flex-direction:column;gap:6px}
.tcard.empty{box-shadow:inset 0 0 0 1px rgba(212,175,87,.12)}
.tcard.occupied{background:linear-gradient(180deg,#6b1a24,#3d1016);border-color:rgba(255,200,160,.2)}
.tcard.billed{background:linear-gradient(180deg,#1d4f4b,#123330);border-color:rgba(120,220,200,.25)}
.tcard .no{font-size:11px;color:var(--gold-2);opacity:.8}
.tcard .nm{font-size:18px;font-weight:700}
.tcard .meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}
.tcard .amt{font-weight:700;color:var(--gold)}
.pulse{position:absolute;top:10px;left:10px;width:10px;height:10px;border-radius:50%;background:#ffce6a;box-shadow:0 0 0 0 rgba(255,206,106,.7);animation:pulse 1.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px transparent}}

/* data table */
.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line)}
table.data{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
table.data th,table.data td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
table.data th{color:var(--gold-2);font-weight:600;background:rgba(0,0,0,.18);position:sticky;top:0}
table.data tr:hover td{background:rgba(212,175,87,.05)}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px}
.b-open{background:rgba(196,138,43,.2);color:#e8c36a}
.b-prep{background:rgba(122,31,43,.35);color:#f0c9a0}
.b-served{background:rgba(42,138,130,.25);color:#9ee0d8}
.b-billed{background:rgba(30,80,140,.3);color:#a8c8ff}
.b-paid{background:rgba(61,139,110,.28);color:#b6efd2}
.b-empty{background:rgba(255,255,255,.08);color:var(--muted)}
.neg{color:#f0a098}
.pos{color:#9ee0c4}

/* products */
.search{width:100%;background:#201512;border:1px solid var(--line);color:var(--cream);border-radius:12px;padding:11px 14px;margin-bottom:12px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.pcard img{height:110px;width:100%;object-fit:cover}
.pcard .b{padding:10px;display:flex;flex-direction:column;gap:4px;flex:1}
.pcard .n{font-weight:600;font-size:13px}
.pcard .pr{color:var(--gold);font-weight:700;font-size:13px}
.pcard .ds{font-size:11px;color:var(--muted);line-height:1.5}

/* cart / sheet */
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet-card{width:min(560px,100%);max-height:92dvh;overflow:auto;background:var(--bg2);border:1px solid var(--line);
  border-radius:22px 22px 0 0;padding:8px 16px 20px}
.grab{width:42px;height:4px;border-radius:4px;background:rgba(255,255,255,.2);margin:8px auto 12px}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--cream)}

/* toasts / modal */
#toasts{position:fixed;top:calc(12px + var(--safe-t));left:50%;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;width:min(420px,92vw)}
.toast{background:#2a1c18;border:1px solid var(--line);color:var(--cream);padding:12px 14px;border-radius:14px;box-shadow:var(--shadow);font-size:13px;animation:in .2s ease}
.toast.err{border-color:#c44536;background:#3a1816}
.toast.ok{border-color:#3d8b6e}
@keyframes in{from{transform:translateY(-8px);opacity:0}to{opacity:1}}
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:grid;place-items:center;padding:16px}
.modal{width:min(560px,100%);background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:18px;max-height:90dvh;overflow:auto}
.modal h3{margin:0 0 12px;color:var(--gold-2)}

/* customer */
.cust{min-height:100dvh;background:var(--paper);color:var(--ink);
  background-image:linear-gradient(180deg,rgba(247,240,228,.92),rgba(255,251,243,.96)),url('/img/pattern.jpg');
  background-size:auto, 280px}
.cust-top{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,#4A1018,#6b1a24);color:var(--cream);
  padding:calc(10px + var(--safe-t)) 16px 14px;box-shadow:0 8px 24px rgba(74,16,24,.25)}
.cust-top .cafe{font-size:12px;opacity:.8}
.cust-top h1{margin:2px 0 0;font-size:20px}
.cust-top .tbl{display:inline-block;margin-top:8px;background:rgba(212,175,87,.18);border:1px solid rgba(212,175,87,.35);
  color:var(--gold-2);border-radius:999px;padding:4px 10px;font-size:12px}
.cats{display:flex;gap:8px;overflow:auto;padding:12px 16px 4px;position:sticky;top:86px;z-index:9;background:linear-gradient(180deg,var(--paper),rgba(255,251,243,.9))}
.cats .chip{border-color:#e6d7b8;color:#6b4b3a;background:#fff}
.cats .chip.on{background:var(--burgundy);color:#fff;border-color:var(--burgundy)}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;padding:8px 16px 140px}
.ccard{background:#fff;border:1px solid #eadfca;border-radius:18px;overflow:hidden;box-shadow:0 8px 20px rgba(74,16,24,.06)}
.ccard img{height:120px;width:100%;object-fit:cover}
.ccard .b{padding:10px}
.ccard .n{font-weight:700;font-size:14px}
.ccard .ds{font-size:11px;color:#7a6456;min-height:32px;margin:4px 0}
.ccard .pr{color:var(--burgundy);font-weight:700}
.cartbar{position:fixed;bottom:0;left:0;right:0;background:#4A1018;color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px calc(12px + var(--safe-b));box-shadow:0 -10px 30px rgba(0,0,0,.2)}
.cartbar .s{font-size:12px;opacity:.85}
.cartbar .btn{background:var(--gold);color:#2c1810}

.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px}
.tab{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:8px 12px;font-size:12px;white-space:nowrap}
.tab.on{background:rgba(212,175,87,.16);color:var(--gold-2);border-color:var(--gold)}
.bar{height:8px;background:rgba(255,255,255,.08);border-radius:8px;overflow:hidden}
.bar > span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#fff3c4)}
.muted{color:var(--muted);font-size:12px}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.hr{height:1px;background:var(--line);margin:12px 0;border:0}
.install{background:rgba(212,175,87,.12);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.install p{margin:0;font-size:12px;color:var(--muted)}
.fab{position:fixed;left:16px;bottom:calc(78px + var(--safe-b));z-index:12;width:56px;height:56px;border-radius:18px;border:0;
  background:linear-gradient(180deg,#e3c56a,#c49a3a);color:#2c1810;font-size:28px;box-shadow:var(--shadow)}
@media(min-width:980px){.fab{bottom:24px}}

.inv{background:var(--paper);color:var(--ink);border-radius:12px;padding:18px;max-width:720px}
.inv h2{margin:0;text-align:center}
@media print{
  body{background:#fff;color:#000}
  .staff,.bottomnav,.sidenav,.topbar,.no-print,#toasts{display:none !important}
  .print-only{display:block}
}

.ios-hint{font-size:12px;color:var(--muted);line-height:1.8}
.role-tag{font-size:10px;border:1px solid var(--line);border-radius:999px;padding:2px 8px;color:var(--gold-2)}
.empty-state{text-align:center;padding:28px 10px;color:var(--muted)}
.item-line{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.tiny{font-size:11px;color:var(--muted)}
.price-input{direction:ltr;text-align:left}
.switch{display:flex;align-items:center;gap:8px;font-size:13px}
.qr-print{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.qr-card{background:var(--paper);color:var(--ink);border-radius:16px;padding:14px;text-align:center;border:1px solid #eadfca}
.qr-card img{width:180px;height:180px;margin:8px auto}
.live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3d8b6e;margin-left:6px}
.cost-ok{background:rgba(61,139,110,.12)}
.cost-bad{background:rgba(196,69,54,.12)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 12px}

.pay-opts{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.pay-opt{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line,#e6dcc8);border-radius:12px;background:#fff;cursor:pointer}
.kit-banner{background:linear-gradient(90deg,#7a1f2b,#c44536);color:#fff;padding:10px 14px;border-radius:12px;margin-bottom:12px;font-weight:700;animation:kitpulse 1s ease-in-out infinite}
@keyframes kitpulse{50%{opacity:.72}}
.kit-new{box-shadow:0 0 0 2px #c44536}
.badge.b-ready{background:#d4a017;color:#1a1208}
.badge.b-open{background:#7a1f2b;color:#fff}
