/* بکایی موبایل — طرح ظاهری
   رنگ‌ها: سرمه‌ای عمیق برای منو، سبز-فیروزه‌ای برای عمل اصلی،
   طلایی فقط برای نشانهٔ برند و حالت فعال منو. */
:root{
  --ink:#101519; --ink-2:#3d4b57; --muted:#6b7a88;
  --bg:#eef1f5; --surface:#fff; --line:#dfe5ec; --line-2:#eef2f6;
  --rail:#0f1d2b; --rail-2:#16293b; --rail-ink:#b9c8d6;
  --primary:#0b6e63; --primary-2:#095a51; --primary-soft:#e6f2f0;
  --gold:#e9b93c; --ok:#15703f; --warn:#a05a00; --danger:#a52222;
  --r:10px; --r-sm:8px;
  --shadow:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.04);
  --shadow-lg:0 8px 24px rgba(16,24,40,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Vazirmatn,Tahoma,system-ui,sans-serif; background:var(--bg); color:var(--ink);
  font-size:14.5px; line-height:1.75; font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--primary); text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--primary); outline-offset:2px; border-radius:4px}
svg.ic{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto}

/* ---------- نوار بالا ---------- */
.topbar{
  position:fixed; inset:0 0 auto 0; height:56px; background:var(--rail); color:#e9eff5;
  display:flex; align-items:center; gap:12px; padding:0 16px; z-index:30;
}
.topbar .brand{display:flex; align-items:center; gap:9px; color:#fff; font-weight:700; font-size:16px}
.topbar .brand:hover{text-decoration:none}
.chip{
  width:28px; height:28px; border-radius:7px; display:grid; place-items:center;
  background:linear-gradient(160deg,var(--gold),#c9962a); color:#2b2103;
}
.topbar .today{color:#8fa5b8; font-size:13px; padding-inline-start:8px; border-inline-start:1px solid #2a3d4f}
.spacer{flex:1}
.avatar{
  width:30px; height:30px; border-radius:50%; background:#24384b; color:#dbe6ef;
  display:grid; place-items:center; font-weight:700; font-size:14px;
}
.who{font-size:13px; color:#cfdae4; line-height:1.25; display:flex; flex-direction:column}
.who small{color:#7f97ab; font-size:11.5px}
.menu-btn{display:none; background:none; border:0; color:#fff; font-size:20px; cursor:pointer}

/* ---------- منوی کناری ---------- */
.rail{
  position:fixed; top:56px; right:0; bottom:0; width:232px; background:var(--rail-2);
  padding:10px 10px 24px; overflow:auto; z-index:25;
}
.rail a{
  display:flex; align-items:center; gap:10px; padding:9px 12px; margin-bottom:2px;
  color:var(--rail-ink); font-size:14px; border-radius:var(--r-sm); position:relative;
}
.rail a:hover{background:#20364a; color:#fff; text-decoration:none}
.rail a.on{background:#0f2233; color:#fff; box-shadow:inset 3px 0 0 var(--gold)}
.rail a span{flex:1}
.rail-sep{
  color:#7891a6; font-size:12px; padding:16px 12px 6px; margin-top:8px;
  border-top:1px solid #24394d;
}
.pill{background:var(--gold); color:#3a2c05; border-radius:999px; padding:0 7px; font-size:12px; font-weight:700}
.scrim{display:none}

main.app{margin:56px 232px 0 0; padding:22px; max-width:1320px}
main.plain{max-width:400px; margin:8vh auto; padding:20px}
@media(max-width:900px){
  .menu-btn{display:block}
  .hide-sm{display:none}
  .rail{transform:translateX(100%); transition:transform .18s ease; box-shadow:var(--shadow-lg)}
  body.nav-open .rail{transform:none}
  body.nav-open .scrim{display:block; position:fixed; inset:56px 0 0 0; background:rgba(8,15,22,.45); z-index:20}
  main.app{margin-right:0; padding:14px}
  .topbar .today{display:none}
}

/* ---------- کارت‌ها ---------- */
.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:18px; margin-bottom:16px; box-shadow:var(--shadow);
}
.card > h2{
  margin:0 0 14px; font-size:15.5px; font-weight:700; display:flex; align-items:center;
  gap:10px; flex-wrap:wrap;
}
.card > h2 .sub{font-weight:400; color:var(--muted); font-size:13px}
.grid{display:grid; gap:16px}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid.c4{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}

/* ---------- شاخص‌ها ---------- */
.kpi{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:14px 16px; box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.kpi::before{content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--primary)}
.kpi .label{color:var(--muted); font-size:12.5px}
.kpi .value{font-size:25px; font-weight:700; letter-spacing:-.4px; line-height:1.5}
.kpi .value small{font-size:12.5px; font-weight:400; color:var(--muted)}
.kpi.alert::before{background:var(--gold)}
.kpi.alert{background:#fffbf1}
.kpi.good::before{background:var(--ok)}

/* ---------- جدول‌ها ---------- */
.scroll{overflow:auto}
table{width:100%; border-collapse:collapse; font-size:13.8px}
th,td{padding:9px 10px; border-bottom:1px solid var(--line-2); text-align:right; vertical-align:middle}
thead th, table tr:first-child th{
  background:#f5f8fa; color:var(--ink-2); font-weight:600; font-size:12.8px; white-space:nowrap;
  border-bottom:1px solid var(--line);
}
tbody tr:hover, table tr:hover{background:#fafcfd}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:left; font-feature-settings:"tnum"}
.empty{color:var(--muted); padding:22px; text-align:center; font-size:13.5px}

/* ---------- فرم‌ها ---------- */
label{display:block; font-size:12.8px; color:var(--ink-2); margin-bottom:5px}
input,select,textarea{
  width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:var(--r-sm);
  font:inherit; font-size:14px; background:#fff; color:var(--ink); transition:border-color .12s, box-shadow .12s;
}
input:focus,select:focus,textarea:focus{
  outline:0; border-color:var(--primary); box-shadow:0 0 0 3px rgba(11,110,99,.13);
}
input[type=checkbox]{width:auto; margin-inline-end:6px; accent-color:var(--primary)}
input[type=file]{padding:7px; background:#fbfcfd}
textarea{line-height:1.8}
.field{margin-bottom:13px}
.row{display:flex; gap:12px; flex-wrap:wrap}
.row > *{flex:1 1 165px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 16px; border-radius:var(--r-sm); border:1px solid transparent;
  background:var(--primary); color:#fff; cursor:pointer; font:inherit; font-size:14px; font-weight:500;
  transition:background .12s, transform .06s;
}
.btn:hover{background:var(--primary-2); color:#fff; text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff; border-color:var(--line); color:var(--ink-2)}
.btn.ghost:hover{background:#f4f7f9; border-color:#c6d0da; color:var(--ink)}
.btn.sm{padding:5px 11px; font-size:13px}
.btn.danger{background:var(--danger)} .btn.danger:hover{background:#8d1c1c}
.btn.warn{background:var(--warn)}
.inline{display:inline-flex; margin-inline-end:4px}
.hidden{display:none}
.actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center}

/* ---------- برچسب‌ها ---------- */
.tag{
  display:inline-block; padding:2px 9px; border-radius:999px; font-size:12px;
  border:1px solid var(--line); background:#f3f6f8; color:var(--ink-2); white-space:nowrap;
}
.tag.irancell{background:#fff4c2; border-color:#e8cf6a; color:#5c4a00}
.tag.mci{background:#e4edfb; border-color:#b6cdf0; color:#12417f}
.tag.ok{background:#e6f4ec; border-color:#b9dfc9; color:var(--ok)}
.tag.pending{background:#fdf3e0; border-color:#ecd3a1; color:var(--warn)}
.tag.bad{background:#fbeaea; border-color:#eebcbc; color:var(--danger)}
.muted{color:var(--muted); font-size:12.8px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace; direction:ltr; unicode-bidi:embed; font-size:13.2px}
.big{font-size:19px; font-weight:700}

/* ---------- پیام‌ها ---------- */
.flashes{margin-bottom:14px}
.flash{
  padding:11px 15px; border-radius:var(--r-sm); margin-bottom:8px; border:1px solid;
  font-size:13.8px; box-shadow:var(--shadow);
}
.flash.ok{background:#eaf6ee; border-color:#bcdfc8; color:#125c31}
.flash.error{background:#fceded; border-color:#eebcbc; color:#8b1d1d}
.flash.message{background:#eef3f7; border-color:var(--line); color:var(--ink-2)}

/* ---------- ورود ---------- */
body.login-page{background:radial-gradient(1200px 500px at 70% -10%, #1b3348 0%, #0f1d2b 60%)}
.login{box-shadow:var(--shadow-lg); border:0; padding:26px}
.login .chip{width:38px; height:38px; border-radius:10px; margin-bottom:12px}
.login .chip svg{width:22px; height:22px}
.login h1{font-size:19px; margin:0 0 4px}
.login p{color:var(--muted); margin:0 0 20px; font-size:13.5px}

/* ---------- فاکتور چاپی ---------- */
.print-wrap{background:#fff; color:#000; max-width:800px; margin:0 auto; padding:26px;
  border:1px solid var(--line); border-radius:var(--r)}
.print-wrap.receipt{max-width:320px; font-size:12.5px}
.print-head{display:flex; justify-content:space-between; align-items:flex-start;
  border-bottom:2px solid #222; padding-bottom:12px; margin-bottom:14px; gap:12px}
.print-head h1{font-size:19px; margin:0 0 4px}
.print-meta{font-size:12.5px; color:#333; text-align:left}
.print-wrap table{font-size:13px}
.print-wrap th{background:#f2f2f2 !important; color:#000}
.print-total{margin-top:12px; display:flex; justify-content:flex-start; gap:24px; font-weight:700}
.print-foot{margin-top:18px; border-top:1px dashed #999; padding-top:10px; font-size:12px; color:#333}
@media print{
  .topbar,.rail,.scrim,.no-print,.flashes{display:none !important}
  main.app{margin:0; padding:0; max-width:none}
  body{background:#fff}
  .print-wrap{border:0; padding:0; max-width:none; box-shadow:none}
  @page{margin:12mm}
}
