:root{
  --bg:#0f1720; --panel:#16212e; --panel2:#1d2b3a; --line:#27384a;
  --txt:#e8eef5; --muted:#93a4b7; --gold:#e0b252; --green:#3fbf7f; --red:#ef5f5f;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font-family:Tahoma,Vazirmatn,sans-serif;direction:rtl}
a{color:var(--gold);text-decoration:none}
header{background:var(--panel);border-bottom:1px solid var(--line);padding:10px 18px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:sticky;top:0;z-index:9}
header .brand{font-weight:bold;color:var(--gold);font-size:18px}
nav{display:flex;gap:6px;flex-wrap:wrap}
nav a{padding:7px 12px;border-radius:8px;color:var(--txt);font-size:14px}
nav a:hover{background:var(--panel2)}
nav a.on{background:var(--gold);color:#12202c;font-weight:bold}
header .right{margin-inline-start:auto;display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted)}
main{padding:18px;max-width:1250px;margin:0 auto}
h1{font-size:20px;margin:0 0 14px}
h2{font-size:16px;margin:0 0 10px;color:var(--gold)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px}
.kpi .l{color:var(--muted);font-size:12px}
.kpi .v{font-size:20px;font-weight:bold;margin-top:6px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:right}
th{color:var(--muted);font-weight:normal;font-size:12px}
td,th,.kpi .v,input{unicode-bidi:plaintext}
tr:hover td{background:#1a2735}
input,select,textarea,button{font-family:inherit;font-size:14px}
input,select,textarea{width:100%;padding:9px 10px;border-radius:9px;border:1px solid var(--line);
  background:#101b26;color:var(--txt)}
label{display:block;font-size:12px;color:var(--muted);margin:0 0 5px}
.field{margin-bottom:12px}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.btn{display:inline-block;padding:9px 16px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--txt);cursor:pointer}
.btn:hover{border-color:var(--gold)}
.btn.p{background:var(--gold);color:#12202c;border-color:var(--gold);font-weight:bold}
.btn.d{color:var(--red)}
.btn.sm{padding:5px 10px;font-size:12px}
.pos{color:var(--green)}.neg{color:var(--red)}
.muted{color:var(--muted);font-size:12px}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:14px}
.flash.ok{background:#12352a;border:1px solid var(--green)}
.flash.error{background:#3a1c1e;border:1px solid var(--red)}
.tag{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--panel2);border:1px solid var(--line)}
.login-wrap{max-width:360px;margin:9vh auto}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
@media print{header,nav,.noprint{display:none}body{background:#fff;color:#000}
 .card{border-color:#ccc}td,th{border-color:#ddd}}

/* ---------------------------------------------- ابزارهای عمومی */
.tablewrap{width:100%}
.hamb{display:none;background:var(--panel2);border:1px solid var(--line);color:var(--txt);
  border-radius:9px;padding:8px 12px;font-size:18px;line-height:1;cursor:pointer}
.flash{display:flex;justify-content:space-between;align-items:center;gap:10px}
.flash .x{background:none;border:0;color:inherit;font-size:18px;cursor:pointer;padding:0 4px}
.flash.warn{background:#3a3218;border:1px solid var(--gold)}
.flash.info{background:#16293a;border:1px solid #3a6b96}

/* مودال تأیید */
.modal-back{position:fixed;inset:0;background:rgba(4,9,14,.72);display:flex;align-items:center;
  justify-content:center;padding:18px;z-index:99}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;
  max-width:380px;width:100%;text-align:center}
.modal h3{margin:0 0 8px;font-size:17px;color:var(--gold)}
.modal p{margin:0 0 18px;font-size:14px;color:var(--muted)}
.modal .acts{display:flex;gap:10px}
.modal .acts .btn{flex:1;text-align:center}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:bold}

/* ---------------------------------------------- موبایل */
@media (max-width:760px){
  header{padding:10px 12px;gap:10px}
  header .brand{font-size:16px;margin-inline-end:auto}
  .hamb{display:block;order:3}
  nav{display:none;width:100%;order:5;flex-direction:column;gap:4px}
  nav.open{display:flex}
  nav a{padding:12px 14px;font-size:15px;background:var(--panel2)}
  header .right{order:4;margin-inline-start:0;font-size:12px}
  main{padding:12px 10px}
  h1{font-size:18px}
  .card{padding:12px;border-radius:12px}
  .grid.g4,.grid.g2{grid-template-columns:1fr 1fr}
  .grid.g2{grid-template-columns:1fr}
  .kpi .v{font-size:17px}
  input,select,textarea{padding:12px 10px;font-size:16px}
  .btn{padding:12px 16px;font-size:15px}
  .btn.sm{padding:8px 12px;font-size:13px}
  .toolbar,.toolbar form{width:100%}
  .toolbar form{display:grid !important;grid-template-columns:1fr 1fr;gap:8px}
  .toolbar .btn,.toolbar form button{width:100%}
  .row{grid-template-columns:1fr}

  /* تبدیل جدول‌ها به کارت‌های عمودی */
  table,tbody,tr,td{display:block;width:100%}
  thead,tr.hrow{display:none}
  table.kv th{display:none}
  table tr{background:var(--panel2);border:1px solid var(--line);border-radius:12px;
    padding:8px 10px;margin-bottom:10px}
  table tr:hover td{background:transparent}
  td{border:0;border-bottom:1px dashed var(--line);padding:7px 2px;display:flex;
    justify-content:space-between;gap:10px;align-items:center;text-align:start}
  td:last-child{border-bottom:0}
  td:empty{display:none}
  td::before{content:attr(data-l);color:var(--muted);font-size:12px;flex:0 0 auto}
  td[data-l=""]::before{content:none}
  table th{display:block;text-align:start;border:0}
}

/* =============================================================== منوی جدید */
header{background:linear-gradient(180deg,var(--panel),var(--panel2));box-shadow:0 2px 10px rgba(0,0,0,.25)}
nav{gap:2px}
nav a{position:relative;padding:10px 14px;border-radius:10px 10px 0 0;font-weight:600;
  color:var(--muted);transition:.15s}
nav a:hover{color:var(--txt);background:transparent}
nav a::after{content:"";position:absolute;inset-inline:10px;bottom:0;height:3px;border-radius:3px;
  background:transparent;transition:.15s}
nav a:hover::after{background:var(--line)}
nav a.on{background:transparent;color:var(--gold);font-weight:800}
nav a.on::after{background:var(--gold)}

/* ============================================== فیش‌های بانکی (سند پرداخت) */
.slips{display:grid;gap:10px}
.slip{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(110px,1fr));
  background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px}
.slip input{padding:7px 9px;font-size:13px}
.slip label{font-size:11px}
.slip .n{grid-column:1/-1;font-size:12px;color:var(--gold);font-weight:700}
@media (max-width:760px){.slip{grid-template-columns:1fr 1fr}}

/* ================================================== نمودارها و مودال بزرگ */
.chartbox{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:12px;
  cursor:zoom-in}
.chartbox h3{margin:0 0 8px;font-size:14px;color:var(--gold)}
.chart{display:flex;align-items:flex-end;gap:6px;height:120px;overflow:hidden}
.chart .bar{flex:1;min-width:6px;background:linear-gradient(180deg,var(--gold),#8a6a22);
  border-radius:5px 5px 0 0;position:relative}
.chart .bar.neg{background:linear-gradient(180deg,var(--red),#7d2c2c)}
.chart .bar span{display:none}
.chart-modal{position:fixed;inset:0;background:rgba(4,9,14,.85);z-index:120;display:flex;
  flex-direction:column;padding:14px;gap:10px}
.chart-modal .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chart-modal .body{flex:1;overflow:auto;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:14px}
.chart-modal .chart{height:60vh;align-items:flex-end}
.chart-modal .chart .bar{min-width:calc(18px * var(--z,1))}
.chart-modal .chart .bar span{display:block;position:absolute;bottom:-22px;inset-inline:0;
  text-align:center;font-size:10px;color:var(--muted);white-space:nowrap}

/* ====================================================== پوسته روشن (آبی) */
html.light{--bg:#f2f6fb;--panel:#ffffff;--panel2:#eaf1fa;--line:#cddcec;--txt:#12283d;
  --muted:#5b7591;--gold:#1668c4;--green:#118a5a;--red:#cf3838}
html.light body{background:var(--bg)}
html.light header{background:linear-gradient(180deg,#ffffff,#e8f1fb);
  box-shadow:0 2px 10px rgba(22,104,196,.12)}
html.light nav a.on{color:#1668c4}
html.light input,html.light select,html.light textarea{background:#fbfdff;color:var(--txt)}
html.light tr:hover td{background:#f0f6fd}
html.light .btn.p{color:#fff}
html.light nav a.on{background:#dbeafe}
html.light .flash.ok{background:#e6f7ee;border:1px solid var(--green);color:#0c5c3d}
html.light .flash.error{background:#fdecec;border:1px solid var(--red);color:#8f1f1f}
html.light .flash.warn{background:#fff6e0;border:1px solid #d8a021;color:#7a5710}
html.light .flash.info{background:#e7f1fd;border:1px solid #6aa5e0;color:#144a80}
html.light .modal-back,html.light .chart-modal{background:rgba(18,40,61,.45)}
html.light .chart .bar{background:linear-gradient(180deg,#3b8fe0,#1668c4)}
html.light .chart .bar.neg{background:linear-gradient(180deg,#e57373,#cf3838)}

/* ============================================ نمودار خطی + کمبو + KPI کوچک */
.chartbox{display:block;color:inherit;cursor:pointer}
.lchost{overflow-x:auto;overflow-y:hidden}
.chart-scroll{overflow:auto;max-width:100%}
svg.lc .grid{stroke:var(--line);stroke-width:1}
svg.lc .line{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
svg.lc .ylab{fill:var(--muted);font-size:9px;text-anchor:end;direction:ltr}
svg.lc .xlab{fill:var(--muted);font-size:9px;text-anchor:middle;direction:ltr}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:3px;border-radius:2px;margin-inline-end:5px;vertical-align:middle}

.kpirow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.kpirow .kpi.sm{flex:1 1 140px;padding:8px 10px;border-radius:10px}
.kpirow .kpi.sm .l{font-size:11px}
.kpirow .kpi.sm .v{font-size:15px;margin-top:2px}

.combo{position:relative}
select.chidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.clist{display:none;position:absolute;z-index:40;inset-inline:0;top:100%;max-height:230px;overflow:auto;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:4px}
.clist.open{display:block}
.citem{padding:9px 10px;cursor:pointer;font-size:14px;border-bottom:1px solid var(--line)}
.citem:last-child{border-bottom:0}
.citem:hover{background:var(--panel2)}

/* ==================================================== قالب چاپ گزارش‌ها A4 */
.printdoc .phead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  border-bottom:2px solid var(--gold);padding-bottom:10px;margin-bottom:12px}
.printdoc .phead.center{text-align:center}
.printdoc .phead .ttl b{font-size:18px;color:var(--gold)}
.printdoc .phead .sub{font-size:12px;color:var(--muted);margin-top:4px}
.printdoc .phead .meta{font-size:12px;color:var(--muted);text-align:end}
.printdoc tfoot th{color:var(--txt);font-weight:700;border-top:2px solid var(--line);font-size:13px}
.printdoc .totals{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px}
.printdoc .totals .bal{display:inline-block;margin-inline-end:14px}
.printdoc.moein table.sheet th,.printdoc.moein table.sheet td{border:1px solid var(--line)}
.printdoc.moein table.sheet thead th{background:var(--panel2)}
.printdoc.total table.summary th,.printdoc.total table.summary td{border-bottom:1px solid var(--line)}
.printdoc.total table.summary thead th{background:var(--panel2);font-size:12px}

@media print{
  @page{size:A4;margin:12mm}
  header,nav,.noprint,.hamb,.flash,.legend{display:none !important}
  html,body{background:#fff !important;color:#000 !important}
  main{padding:0;max-width:100%}
  .card,.printdoc{border:0 !important;box-shadow:none;padding:0;margin:0}
  table{page-break-inside:auto;font-size:11pt}
  thead{display:table-header-group}
  tfoot{display:table-footer-group}
  tr{page-break-inside:avoid}
  th,td{border-color:#999 !important;color:#000 !important}
  .printdoc .phead{border-bottom:2px solid #000}
  .printdoc .phead .ttl b{color:#000;font-size:16pt}
  .printdoc .phead .sub,.printdoc .phead .meta,.muted{color:#333 !important}
  .printdoc.moein table.sheet th,.printdoc.moein table.sheet td{border:1px solid #666 !important}
  .printdoc.moein table.sheet thead th,.printdoc.total table.summary thead th{background:#eee !important}
  .pos,.neg{color:#000 !important}
  .tw{overflow:visible !important}
}

@media print{
  /* اطمینان از پس‌زمینه سفید و متن مشکی در همه عناصر */
  *,*::before,*::after{background:transparent !important;background-image:none !important;
    box-shadow:none !important;color:#000 !important;text-shadow:none !important}
  html,body{background:#fff !important}
  body{padding:0 !important;margin:0 !important}
  main,.wrap,.container,.page{padding:0 4mm !important;margin:0 !important;width:auto !important;max-width:none !important}
  .printdoc{padding:0 2mm !important}
  table{width:100% !important;border-collapse:collapse !important}
  thead th{background:#eee !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .printdoc .phead .ttl b{font-size:15pt}
  .printdoc .totals{border-top:1px solid #000}
}
