:root{
  --bg:#F6F7F3;
  --paper:#FFFFFF;
  --ink:#1C2620;
  --ink-soft:#5B6660;
  --primary:#1B5E52;
  --primary-dark:#123F37;
  --primary-tint:#E7EFEC;
  --accent-amber:#C98A2C;
  --accent-red:#B0433A;
  --accent-red-tint:#FBEAE8;
  --line:#D8DDD6;
  --line-soft:#EAEDE8;
  --radius:10px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Noto Sans Bengali','Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
.num,.tabular{font-family:'JetBrains Mono',monospace; font-variant-numeric: tabular-nums;}
button{font-family:inherit; cursor:pointer;}
input,select{font-family:inherit;}
a{color:inherit;}

/* ---------- plain top bar ---------- */
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; background:var(--paper); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:30;
}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:16px; color:var(--primary-dark); text-decoration:none;}
.brand-mark{
  width:28px;height:28px;border-radius:7px;background:var(--primary);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700;
}
.topbar-actions{display:flex; align-items:center; gap:8px;}
.icon-btn{
  background:transparent;border:1px solid var(--line);color:var(--ink-soft);
  border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500;
  display:flex;align-items:center;gap:6px; text-decoration:none;
}
.icon-btn:hover{border-color:var(--primary); color:var(--primary-dark);}

/* ---------- plain centered auth page ---------- */
.center-screen{min-height:calc(100vh - 60px); display:flex; align-items:center; justify-content:center; padding:24px 16px;}
.container{max-width:960px; margin:0 auto; width:100%; padding:20px 16px 60px;}
.narrow{max-width:400px;}

.card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:26px;}
.card h1,.card h2{margin:0 0 4px; font-size:19px; color:var(--primary-dark);}
.card .sub{color:var(--ink-soft); font-size:13px; margin:0 0 18px;}
.field{margin-bottom:14px;}
.field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:6px;}
.field input, .field select{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px;
  font-size:14.5px; background:#fff; color:var(--ink);
}
.field input:focus, .field select:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-tint);}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background:var(--primary); color:#fff; border:none; border-radius:8px;
  padding:12px 18px; font-size:14.5px; font-weight:600; width:100%; text-decoration:none;
}
.btn:hover{background:var(--primary-dark);}
.btn.secondary{background:transparent; color:var(--primary-dark); border:1px solid var(--line);}
.btn.secondary:hover{border-color:var(--primary);}
.btn.danger{background:var(--accent-red);}
.btn.danger:hover{background:#8f362e;}
.btn.small{width:auto; padding:8px 13px; font-size:13px;}
.btn:disabled{opacity:.5; cursor:not-allowed;}
.link-row{text-align:center; margin-top:16px; font-size:13.5px; color:var(--ink-soft);}
.link-row button{background:none; border:none; color:var(--primary-dark); font-weight:600; text-decoration:underline; font-size:13.5px; padding:0;}
.error-box{
  background:var(--accent-red-tint); color:var(--accent-red); border:1px solid #ecc; border-radius:8px;
  padding:10px 12px; font-size:13px; margin-bottom:14px; line-height:1.6;
}
.info-box{
  background:var(--primary-tint); color:var(--primary-dark); border:1px solid #cfe0da; border-radius:8px;
  padding:12px 14px; font-size:13.5px; margin-bottom:14px; line-height:1.6;
}
.success-box{
  background:#EAF6EE; color:#256B3F; border:1px solid #cfe6d6; border-radius:8px;
  padding:10px 12px; font-size:13px; margin-bottom:14px; line-height:1.6;
}
.status-pill{display:inline-block; font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:999px;}
.status-pill.pending{background:#FCEFDD; color:var(--accent-amber);}
.status-pill.approved{background:var(--primary-tint); color:var(--primary-dark);}

.tabs-toggle{display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; margin-bottom:20px;}
.tabs-toggle button{flex:1; padding:10px; background:var(--paper); border:none; font-size:13.5px; font-weight:600; color:var(--ink-soft);}
.tabs-toggle button.active{background:var(--primary); color:#fff;}

/* ---------- dashboard header ---------- */
.dash-header{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px;}
.dash-title h2{margin:0; font-size:19px; color:var(--primary-dark);}
.dash-title .addr{font-size:13px; color:var(--ink-soft); margin-top:2px;}
.month-picker{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.month-picker select{padding:8px 10px; border:1px solid var(--line); border-radius:8px; font-size:13.5px;}

/* ---------- tabs (admin) ---------- */
.tabs{display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap; border-bottom:1px solid var(--line);}
.tab-btn{
  background:none; border:none; padding:10px 14px; font-size:14px; font-weight:600;
  color:var(--ink-soft); border-bottom:2px solid transparent; margin-bottom:-1px; text-decoration:none;
  display:inline-block;
}
.tab-btn.active{color:var(--primary-dark); border-bottom-color:var(--primary);}

/* ---------- ledger table ---------- */
.ledger-wrap{border:1px solid var(--line); border-radius:var(--radius); overflow:auto; background:var(--paper); max-height:74vh;}
table.ledger{border-collapse:separate; border-spacing:0; width:100%; font-size:12.5px;}
table.ledger th, table.ledger td{border-bottom:1px solid var(--line-soft); border-right:1px solid var(--line-soft); padding:0; text-align:center; white-space:nowrap;}
table.ledger thead th{background:var(--primary); color:#fff; font-weight:600; padding:9px 6px; font-size:12px; position:sticky; top:0; z-index:5;}
table.ledger td.sl{padding:8px 6px; color:var(--ink-soft); font-family:'JetBrains Mono',monospace;}
table.ledger td.name, table.ledger th.name{text-align:left; padding:8px 10px; font-weight:500; min-width:150px; position:sticky; left:0; background:var(--paper); z-index:4;}
table.ledger thead th.name{background:var(--primary); z-index:6;}
table.ledger tbody tr:nth-child(even) td.name{background:#FAFBF9;}
table.ledger td.stock, table.ledger th.stock{position:sticky; right:0; background:var(--paper); z-index:4; font-weight:700; font-family:'JetBrains Mono',monospace; min-width:80px;}
table.ledger thead th.stock{background:var(--primary); z-index:6;}
table.ledger tbody tr:nth-child(even) td.stock{background:#FAFBF9;}
table.ledger td.stock.low{color:var(--accent-red);}
table.ledger td.day input{width:40px; border:none; text-align:center; font-family:'JetBrains Mono',monospace; font-size:12.5px; padding:9px 2px; background:transparent; color:var(--ink);}
table.ledger td.day input:disabled{color:#C7CCC4; background:#FBFBFA;}
table.ledger td.day input:focus{outline:none; background:var(--primary-tint);}
table.ledger td.stock input{width:66px; border:none; text-align:center; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:13px; padding:9px 4px; background:transparent; color:var(--primary-dark);}
table.ledger td.stock input:focus{outline:none; background:var(--primary-tint);}
table.ledger td.stock .set-btn{border:1px dashed var(--primary); background:none; color:var(--primary-dark); font-size:11px; padding:5px 7px; border-radius:6px; font-weight:600;}
table.ledger td.readonly-val{font-family:'JetBrains Mono',monospace; padding:9px 2px; color:var(--ink-soft);}

.ledger-legend{display:flex; gap:16px; margin-top:10px; font-size:12px; color:var(--ink-soft); flex-wrap:wrap;}
.ledger-legend span{display:inline-flex; align-items:center; gap:5px;}
.dot{width:8px; height:8px; border-radius:50%; display:inline-block;}
.dot.red{background:var(--accent-red);}
.dot.green{background:var(--primary);}

/* ---------- admin lists ---------- */
.list-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.list-card .info b{display:block; font-size:15px; color:var(--ink); margin-bottom:2px;}
.list-card .info span{font-size:12.5px; color:var(--ink-soft);}
.list-card .actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.empty-note{text-align:center; color:var(--ink-soft); font-size:13.5px; padding:40px 20px; border:1px dashed var(--line); border-radius:var(--radius); background:var(--paper);}
.mini-form{display:flex; gap:6px; align-items:center;}
.mini-form input{padding:8px 10px; border:1px solid var(--line); border-radius:7px; font-size:13px; width:140px;}

.med-row{display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line-soft);}
.med-row .mname{flex:1; font-size:14px;}
.med-row .mno{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); width:22px;}
.med-actions{display:flex; gap:4px;}
.med-actions button{background:none; border:1px solid var(--line); border-radius:6px; width:28px; height:28px; font-size:13px; color:var(--ink-soft);}
.med-actions button:hover{border-color:var(--primary); color:var(--primary-dark);}
.add-med-row{display:flex; gap:8px; padding:14px; background:var(--primary-tint); border-radius:0 0 var(--radius) var(--radius);}
.add-med-row input{flex:1; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-size:14px;}

/* ---------- toast ---------- */
#toast{
  position:fixed; bottom:22px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:#fff; padding:12px 18px; border-radius:8px; font-size:13.5px;
  opacity:0; transition:.25s; z-index:100; max-width:88vw; text-align:center; pointer-events:none;
}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------- viewer org select ---------- */
.org-select-grid{display:grid; gap:10px; max-width:480px; margin:0 auto;}
.org-pick{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; text-align:left; display:flex; flex-direction:column; gap:3px; width:100%;}
.org-pick:hover{border-color:var(--primary);}
.org-pick b{font-size:15px;}
.org-pick span{font-size:12.5px; color:var(--ink-soft);}

.countdown{font-family:'JetBrains Mono',monospace; font-weight:700;}

footer.foot{text-align:center; padding:22px 16px; color:var(--ink-soft); font-size:11.5px;}
