@import url('https://fonts.googleapis.com/css2?family=Noto+Nastaliq+Urdu:wght@400;700&family=Poppins:wght@400;500;600;700&display=swap');

/* ===== RESET & ROOT ===== */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --green:#0F6E56;--green-d:#085041;--green-m:#1D9E75;--green-l:#E1F5EE;
  --red:#C0392B;--red-l:#FDEDEC;
  --amber:#D68910;--amber-l:#FEF9E7;
  --blue:#2471A3;--blue-l:#EBF5FB;
  --txt:#1C2833;--txt2:#566573;--txt3:#AAB7B8;
  --bdr:#EAECEE;--bdr2:#D5D8DC;
  --bg:#F2F3F4;--card:#FFFFFF;
  --r:14px;--r2:10px;--r3:8px;
  --sh:0 1px 4px rgba(0,0,0,.08);
  --sh2:0 4px 16px rgba(0,0,0,.10);
  --nh:60px;--bh:68px;
  --safe:env(safe-area-inset-bottom,0px);
}
html{height:-webkit-fill-available}
body{font-family:'Poppins',sans-serif;background:var(--bg);color:var(--txt);font-size:14px;min-height:100vh;min-height:-webkit-fill-available;overscroll-behavior:none;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.urdu{font-family:'Noto Nastaliq Urdu',serif;direction:rtl;text-align:right}

/* ===== SIDEBAR (desktop) ===== */
.sidebar{
  position:fixed;top:0;left:0;width:250px;height:100vh;
  background:var(--green-d);display:flex;flex-direction:column;
  z-index:300;overflow-y:auto;
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  scrollbar-width:none;
}
.sidebar::-webkit-scrollbar{display:none}
.s-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:299;backdrop-filter:blur(3px)}
.s-brand{padding:22px 18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.s-brand h1{color:#fff;font-size:14px;font-weight:700;line-height:1.4}
.s-brand p{color:rgba(255,255,255,.5);font-size:13px;margin-top:3px;font-family:'Noto Nastaliq Urdu',serif;direction:rtl}
.s-nav{padding:10px 0;flex:1}
.s-item{
  display:flex;align-items:center;gap:11px;padding:12px 18px;
  color:rgba(255,255,255,.7);font-size:13px;font-weight:500;
  transition:all .15s;cursor:pointer;text-decoration:none;
  border-left:3px solid transparent;
}
.s-item:hover,.s-item.on{background:rgba(255,255,255,.1);color:#fff}
.s-item.on{border-left-color:#5DCAA5;padding-left:15px}
.s-icon{font-size:18px;width:22px;text-align:center;flex-shrink:0}
.s-foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.1)}
.s-foot a{color:rgba(255,255,255,.5);font-size:12px;display:flex;align-items:center;gap:8px}
.s-foot a:hover{color:#fff}

/* ===== MAIN WRAP ===== */
.main{margin-left:250px;min-height:100vh;display:flex;flex-direction:column}

/* ===== TOP BAR ===== */
.topbar{
  background:var(--card);border-bottom:1px solid var(--bdr);
  height:var(--nh);padding:0 20px;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:200;box-shadow:var(--sh);
}
.tb-left{display:flex;align-items:center;gap:10px}
.tb-title{font-size:15px;font-weight:700;color:var(--txt)}
.tb-right{display:flex;align-items:center;gap:8px}
.hmbg{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--txt);padding:4px;line-height:1;border-radius:8px}
.tb-user{display:flex;align-items:center;gap:5px;background:var(--green-l);color:var(--green-d);font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px}
.tb-date{font-size:11px;color:var(--txt2)}
.tb-newbill{display:flex;align-items:center;gap:5px;background:var(--green);color:#fff;font-size:12px;font-weight:600;padding:7px 14px;border-radius:8px}

/* ===== CONTENT ===== */
.content{padding:16px 20px;flex:1}

/* ===== BOTTOM NAV ===== */
.bnav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  background:var(--card);border-top:1px solid var(--bdr);
  padding-bottom:var(--safe);z-index:250;box-shadow:0 -2px 12px rgba(0,0,0,.08);
}
.bnav-inner{display:flex;height:var(--bh)}
.bn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;color:var(--txt2);font-size:10px;font-weight:600;
  text-decoration:none;border:none;background:none;cursor:pointer;
  padding:6px 4px;position:relative;transition:color .15s;
}
.bn.on{color:var(--green)}
.bn.on::after{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:3px;background:var(--green);border-radius:0 0 6px 6px}
.bn-ic{font-size:22px;line-height:1}
.bn-lb{font-size:9px;font-weight:700}
.bn-fab-w{flex:1;display:flex;align-items:center;justify-content:center}
.bn-fab{
  width:52px;height:52px;background:var(--green);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:28px;color:#fff;text-decoration:none;
  box-shadow:0 4px 16px rgba(15,110,86,.45);
  border:3px solid var(--card);margin-top:-24px;
}

/* ===== CARDS ===== */
.card{background:var(--card);border-radius:var(--r);border:1px solid var(--bdr);padding:16px;margin-bottom:14px;box-shadow:var(--sh)}
.card-hd{font-size:14px;font-weight:700;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px}

/* ===== METRICS ===== */
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.met{background:var(--card);border-radius:var(--r);border:1px solid var(--bdr);padding:14px;box-shadow:var(--sh)}
.met-lb{font-size:10px;font-weight:600;color:var(--txt2);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px}
.met-v{font-size:20px;font-weight:700;color:var(--txt);line-height:1.1}
.met-s{font-size:10px;color:var(--txt3);margin-top:3px}
.met.g .met-v{color:var(--green)}
.met.r .met-v{color:var(--red)}
.met.a .met-v{color:var(--amber)}
.met.b .met-v{color:var(--blue)}

/* ===== FORMS ===== */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}
.fg{display:flex;flex-direction:column;gap:5px}
.lbl{font-size:10px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.5px}
.inp{
  border:1.5px solid var(--bdr2);border-radius:var(--r3);
  padding:11px 13px;font-size:14px;font-family:'Poppins',sans-serif;
  background:var(--card);color:var(--txt);width:100%;
  transition:border .15s,box-shadow .15s;
  -webkit-appearance:none;appearance:none;min-height:46px;
}
.inp:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(15,110,86,.12)}
select.inp{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23566573' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:36px;cursor:pointer}
.inp[readonly]{background:#f8f9fa;color:var(--txt2)}
textarea.inp{min-height:72px;resize:vertical}

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 18px;border-radius:var(--r3);border:1.5px solid var(--bdr2);
  background:var(--card);color:var(--txt);font-size:13px;font-weight:600;
  cursor:pointer;text-decoration:none;transition:all .15s;
  font-family:'Poppins',sans-serif;white-space:nowrap;min-height:46px;
  -webkit-appearance:none;
}
.btn:active{transform:scale(.97);opacity:.9}
.btn:hover{background:var(--bg)}
.btn.p{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 2px 8px rgba(15,110,86,.25)}
.btn.p:hover{background:var(--green-d)}
.btn.r{background:var(--red);color:#fff;border-color:var(--red)}
.btn.wa{background:#25D366;color:#fff;border:none}
.btn.sm{padding:7px 12px;font-size:12px;min-height:36px}
.btn.xs{padding:4px 9px;font-size:11px;min-height:30px}
.btn.full{width:100%}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}

/* ===== TABLES (desktop only) ===== */
.tw{overflow-x:auto;border-radius:var(--r2);border:1px solid var(--bdr);-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{background:#F8F9FA;padding:10px 12px;text-align:left;font-weight:700;font-size:10px;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-bottom:1px solid var(--bdr)}
tbody td{padding:10px 12px;border-top:1px solid var(--bdr);color:var(--txt);vertical-align:middle}
tbody tr:hover td{background:#FAFAFA}
tfoot td{padding:10px 12px;border-top:2px solid var(--bdr);font-weight:700;background:#F8F9FA;font-size:13px}

/* ===== MOBILE CARD LIST ===== */
.mcards{display:none}
.mc{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:14px;margin-bottom:10px;box-shadow:var(--sh)}
.mc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:8px}
.mc-name{font-size:14px;font-weight:700;color:var(--txt)}
.mc-sub{font-size:11px;color:var(--txt2);margin-top:2px}
.mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.mc-f .k{font-size:10px;color:var(--txt2);font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}
.mc-f .v{font-size:13px;font-weight:600;color:var(--txt)}
.mc-btns{display:flex;gap:6px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--bdr)}

/* ===== BADGES ===== */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap}
.badge.cr{background:#E8F8F5;color:#0E6655}
.badge.ca{background:#EAFAF1;color:#1E8449}
.badge.pe{background:#FEF9E7;color:#9A7D0A}
.badge.rd{background:#FDEDEC;color:#C0392B}
.badge.bl{background:#EBF5FB;color:#1A5276}

/* ===== ALERTS ===== */
.alert{padding:13px 15px;border-radius:var(--r3);margin-bottom:14px;font-size:13px;display:flex;align-items:flex-start;gap:9px;line-height:1.5}
.alert.ok{background:#E8F8F5;color:#0E6655;border:1px solid #82E0AA}
.alert.er{background:var(--red-l);color:var(--red);border:1px solid #F1948A}
.alert.in{background:var(--blue-l);color:var(--blue);border:1px solid #85C1E9}
.alert.am{background:var(--amber-l);color:#7D6608;border:1px solid #F7DC6F}

/* ===== ITEMS TABLE (bill) ===== */
.itbl{width:100%;border-collapse:collapse;min-width:480px}
.itbl th{background:#F8F9FA;padding:9px 10px;font-size:10px;font-weight:700;color:var(--txt2);text-align:left;border:1px solid var(--bdr);text-transform:uppercase;letter-spacing:.3px}
.itbl td{padding:5px 7px;border:1px solid var(--bdr)}
.itbl input,.itbl select{border:none;background:transparent;font-size:13px;font-family:'Poppins',sans-serif;width:100%;color:var(--txt);padding:5px;outline:none;min-height:36px}
.itbl input:focus,.itbl select:focus{background:#F0FDF4;border-radius:4px}
/* Mobile items - stacked */
.mitems{display:none}
.mitem{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r2);padding:12px;margin-bottom:8px}
.mitem-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.mitem .fg{margin-bottom:0}

/* ===== TAGS ===== */
.tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 0;min-height:44px}
.tag{display:inline-flex;align-items:center;gap:4px;background:var(--green-l);color:var(--green-d);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600}
.tag button{background:none;border:none;cursor:pointer;color:var(--green-d);font-size:18px;line-height:1;padding:0 0 0 3px}

/* ===== PREV BILLS ===== */
.pbills{background:#F8F9FA;border-radius:var(--r2);padding:12px;margin-top:8px;border:1px solid var(--bdr)}
.pb-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:6px 0;border-bottom:1px solid var(--bdr);gap:8px;flex-wrap:wrap}
.pb-row:last-child{border:none;padding-bottom:0}
.pb-amt{font-weight:700;color:var(--red);white-space:nowrap}

/* ===== LOGIN ===== */
.login-wrap{min-height:100vh;min-height:-webkit-fill-available;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--green-d) 0%,var(--green-m) 100%);padding:20px}
.login-box{background:var(--card);border-radius:var(--r);padding:32px 24px;width:100%;max-width:380px;box-shadow:0 24px 64px rgba(0,0,0,.25)}
.login-logo{text-align:center;margin-bottom:28px}
.login-logo .ic{font-size:56px;display:block;margin-bottom:8px}
.login-logo h1{font-size:20px;font-weight:700;color:var(--green-d);margin-bottom:4px}
.login-logo .ur{font-family:'Noto Nastaliq Urdu',serif;font-size:16px;direction:rtl;color:var(--green-m)}

/* ===== FILTER BAR ===== */
.fbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}

/* ===== NAV TABS ===== */
.ntabs{display:flex;border-bottom:2px solid var(--bdr);margin-bottom:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ntabs::-webkit-scrollbar{display:none}
.ntab{padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;border:none;background:none;color:var(--txt2);border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;font-family:'Poppins',sans-serif;transition:color .15s}
.ntab.on{color:var(--green);border-bottom-color:var(--green)}
.ntab:hover{color:var(--txt)}

/* ===== SUMMARY ===== */
.sum-box{background:#F8F9FA;border-radius:var(--r2);padding:14px;border:1px solid var(--bdr)}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;border-bottom:1px solid var(--bdr)}
.sum-row:last-child{border:none;font-weight:700;font-size:15px;padding-top:10px}
.sum-row.g{color:var(--green)}
.sum-row.r{color:var(--red)}

/* ===== PWA BANNER ===== */
.pwa-bar{display:none;position:fixed;bottom:76px;left:12px;right:12px;background:var(--green-d);color:#fff;border-radius:var(--r);padding:14px 16px;z-index:400;box-shadow:var(--sh2);align-items:center;gap:12px}
.pwa-bar.show{display:flex}
.pwa-txt{flex:1;font-size:13px;line-height:1.4}
.pwa-txt strong{display:block;font-size:14px;margin-bottom:1px}
.pwa-install{background:#fff;color:var(--green-d);border:none;border-radius:8px;padding:9px 16px;font-size:12px;font-weight:700;cursor:pointer}
.pwa-close{background:none;border:none;color:rgba(255,255,255,.6);font-size:22px;cursor:pointer;line-height:1;padding:2px}

/* ===== UTILS ===== */
.g{color:var(--green)!important}
.r{color:var(--red)!important}
.a{color:var(--amber)!important}
.b{color:var(--blue)!important}
.muted{color:var(--txt2)!important}
.bold{font-weight:700}
.s11{font-size:11px}
.s12{font-size:12px}
.hr{border:none;border-top:1px solid var(--bdr);margin:14px 0}
.empty{text-align:center;padding:40px 20px;color:var(--txt2);font-size:13px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.no-print{display:block}
.print-only{display:none}

/* ===== PRINT ===== */
@media print{
  .sidebar,.topbar,.btn-row,.no-print,.bnav,.pwa-bar{display:none!important}
  .main{margin:0!important}
  .print-only{display:block!important}
  .content{padding:6px}
  .card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  .mcards,.mitems{display:none!important}
  .tw{display:block!important}
}

/* ===== MOBILE ===== */
@media(max-width:768px){
  /* Layout */
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0);box-shadow:var(--sh2)}
  .s-overlay.show{display:block}
  .hmbg{display:flex;align-items:center;justify-content:center}
  .main{margin-left:0}
  .topbar{padding:0 12px;height:52px}
  .tb-date,.tb-newbill{display:none}
  .content{padding:12px 12px 80px}
  .bnav{display:flex;flex-direction:column}

  /* Metrics 2-col */
  .mgrid{grid-template-columns:1fr 1fr;gap:8px}
  .met{padding:12px 10px}
  .met-v{font-size:16px}

  /* Cards */
  .card{padding:14px;margin-bottom:10px;border-radius:var(--r2)}

  /* Forms single col */
  .fgrid{grid-template-columns:1fr;gap:10px}
  .two{grid-template-columns:1fr}

  /* Tables → mobile cards */
  .tw{display:none}
  .mcards{display:block}

  /* Items table → stacked */
  .tw.items-tw{display:none}
  .mitems{display:block}

  /* Buttons */
  .btn-row{gap:8px}
  .btn-row .btn.p{flex:1;min-width:100px}

  /* Login */
  .login-box{padding:26px 18px;border-radius:var(--r)}
  .login-logo .ic{font-size:48px}

  /* No two-col on mobile */
  div.two{grid-template-columns:1fr}
}
@media(max-width:380px){
  .met-v{font-size:14px}
  .mgrid{gap:6px}
}
