:root{--bg:#f7f3ee;--card:#fff;--ink:#2a2018;--muted:#7a6c5f;--line:#e8dfd5;--brand:#9a4f1c;--brand2:#f6e9dc;--side:#2b1d14;--green:#2f7d5b;--red:#b3402f;--amber:#c28a2b}
@media (prefers-color-scheme:dark){:root{--bg:#17110c;--card:#221912;--ink:#f1e8de;--muted:#b3a291;--line:#3a2d22;--brand:#e0924f;--brand2:#3a2616;--side:#100b07}}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 Inter,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink)}
body.rtl{font-family:'Noto Nastaliq Urdu',Tahoma,sans-serif;line-height:2}
a{color:var(--brand);text-decoration:none}
.top{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--side);color:#fff;position:sticky;top:0;z-index:20;flex-wrap:wrap}
.top .brand{color:#fff;font-weight:700;font-size:16px}.sp{flex:1}
.top select{max-width:170px}.pill{background:rgba(255,255,255,.12);color:#fff;padding:4px 10px;border-radius:99px;font-size:13px}.pill b{background:#ef4444;border-radius:99px;padding:0 6px}
.user{opacity:.8;font-size:13px}.burger{display:none;background:none;border:0;color:#fff;font-size:20px}
.shell{display:flex;min-height:calc(100vh - 50px)}
.side{width:250px;flex:none;background:var(--side);padding:10px 8px;overflow:auto;max-height:calc(100vh - 50px);position:sticky;top:50px;align-self:flex-start}
.side summary,.side .navtop{display:block;color:#dbe4ff;padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:600}
.side summary:hover,.side a:hover{background:rgba(255,255,255,.08)}.side .on{background:rgba(255,255,255,.14)}
.side details a{display:block;color:#aebbd8;padding:5px 10px 5px 30px;border-radius:6px;font-size:13px}
.rtl .side details a{padding:5px 30px 5px 10px}
.main{flex:1;padding:18px 22px;min-width:0}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.toolbar h2{margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:14px}.pad{padding:14px}.formcard{padding:16px}
.tablewrap{overflow:auto}
table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:rgba(127,127,127,.05);white-space:nowrap}
.rtl th{text-transform:none}tr:hover td{background:rgba(154,79,28,.06)}.num{text-align:end;font-variant-numeric:tabular-nums}.neg{color:var(--red);font-weight:600}
tr.total td{font-weight:700;background:rgba(127,127,127,.06)}.empty{text-align:center;color:var(--muted);padding:24px}.act a{margin-inline-end:8px}
.kv th{width:240px;text-transform:none;font-size:13px;background:none}
.mini{margin-top:10px;font-size:13px}
.btn{display:inline-block;background:var(--card);border:1px solid var(--line);color:var(--ink);padding:7px 13px;border-radius:8px;cursor:pointer;font:inherit;font-weight:500}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{background:transparent}.btn.small{padding:4px 10px;font-size:13px;margin-top:6px}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 9px;width:100%;max-width:100%}
form.inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}form.inline input,form.inline select{width:auto}
.top form.inline select{background:rgba(255,255,255,.12);color:#fff;border-color:transparent}.top form.inline option{color:#000}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.fld{display:flex;flex-direction:column;gap:3px}.fld span{font-size:12px;color:var(--muted);font-weight:600}.fld i{color:var(--red)}.fld.wide{grid-column:1/-1}
.chk{display:flex;gap:6px;align-items:center;padding:7px 0}.chk input{width:auto}
table.lines td{padding:4px}table.lines input,table.lines select{min-width:90px}.x{background:none;border:0;color:var(--red);cursor:pointer;font-size:16px}
.formbtns{margin-top:18px;display:flex;gap:8px}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600}
.badge.gray{background:#e5e7eb;color:#374151}.badge.amber{background:#fef3c7;color:#92400e}.badge.green{background:#dcfce7;color:#166534}.badge.red{background:#fee2e2;color:#991b1b}.badge.blue{background:var(--brand2);color:var(--brand)}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:12px}.alert.ok{background:#dcfce7;color:#166534}.alert.err{background:#fee2e2;color:#991b1b}
.muted{color:var(--muted);font-size:13px}.pager{display:flex;gap:4px;flex-wrap:wrap}.pager a{padding:4px 10px;border:1px solid var(--line);border-radius:6px}.pager .cur{background:var(--brand);color:#fff}
.note{padding:6px 0;border-bottom:1px dashed var(--line)}
h3{margin:18px 0 8px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}.kpi small{color:var(--muted);display:block;font-weight:600}.kpi b{font-size:24px;display:block;margin-top:4px}.kpi.warn b{color:var(--red)}
.cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}
.bar{display:inline-block;width:90px;height:8px;background:var(--line);border-radius:9px;vertical-align:middle;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}
.login{max-width:380px;margin:9vh auto;padding:28px}.login h1{margin:0 0 4px}
.printmain{max-width:900px;margin:0 auto;padding:20px;background:#fff;color:#000}
.printhead{text-align:center;border-bottom:2px solid #000;margin-bottom:14px}.printhead h1{margin:0}
.signs{display:flex;justify-content:space-between;margin-top:70px}.signs div{border-top:1px solid #000;padding-top:4px;width:22%;text-align:center}
body.bare{background:#fff}.bare .card{border-color:#999}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.tile{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:center;font-weight:600;color:var(--ink)}.tile:hover{border-color:var(--brand)}
@media(max-width:860px){.burger{display:block}.side{position:fixed;inset:50px auto 0 0;z-index:30;transform:translateX(-100%);transition:.2s}.rtl .side{inset:50px 0 0 auto;transform:translateX(100%)}body.navopen .side{transform:none}.main{padding:12px}}
@media print{.top,.side,.toolbar,.formbtns{display:none!important}}
/* login background: leather-grain pattern over a gradient */
body.loginbg{min-height:100vh;margin:0;background:
 radial-gradient(circle at 20% 30%,rgba(255,255,255,.07) 0 1.5px,transparent 2px) 0 0/14px 14px,
 radial-gradient(circle at 70% 60%,rgba(0,0,0,.18) 0 1.5px,transparent 2px) 0 0/11px 11px,
 linear-gradient(135deg,#2b1d14 0%,#7a3f17 55%,#c28a2b 100%);background-attachment:fixed;display:flex;align-items:center;justify-content:center;padding:16px}
body.loginbg .login{margin:0;width:100%;background:rgba(255,255,255,.96);color:#1c2434;box-shadow:0 20px 60px rgba(0,0,0,.35);border:0}
body.loginbg .login .muted{color:#6b7385}
body.loginbg .login input{background:#fff;color:#1c2434;border-color:#d5dbe8}
@media (prefers-color-scheme:dark){body.loginbg .login{background:rgba(23,30,46,.95);color:#e8ecf5}body.loginbg .login input{background:#0f1420;color:#e8ecf5;border-color:#2a3348}}
.sec{grid-column:1/-1;margin:14px 0 0;padding-bottom:4px;border-bottom:2px solid var(--brand2);color:var(--brand);font-size:14px}
.sechead{background:var(--brand2)!important;color:var(--brand);text-transform:none!important;font-size:13px!important}
