@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --bg: #F3F7F6;
  --panel: #FFFFFF;
  --border: #DCE6E2;
  --ink: #16241F;
  --ink-soft: #4C5F59;
  --teal: #0E6B5C;
  --teal-dark: #0A4F45;
  --teal-soft: #E4F1EE;
  --amber: #E8A33D;
  --amber-soft: #FBF0DC;
  --red: #C1443A;
  --red-soft: #FBE7E5;
  --font-ui: 'Vazirmatn','Noto Sans Arabic','Tahoma',sans-serif;
  --font-num: 'IBM Plex Mono','Consolas',monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);min-height:100vh;}
.app{max-width:1180px;margin:0 auto;padding:20px 18px 60px;}

.capsule{display:inline-block;width:26px;height:12px;border-radius:7px;background:linear-gradient(90deg, var(--teal) 50%, var(--amber) 50%);flex:none;}
.capsule-divider{display:flex;align-items:center;gap:10px;margin:26px 0 14px;}
.capsule-divider .line{flex:1;height:1px;background:var(--border);}
.capsule-divider .label{font-weight:700;font-size:14px;color:var(--ink-soft);letter-spacing:.3px;}

header.top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--teal);border-radius:16px;color:#fff;margin-bottom:18px;box-shadow:0 6px 18px rgba(14,107,92,.25);flex-wrap:wrap;gap:10px;}
header.top .brand{display:flex;align-items:center;gap:12px;}
header.top .brand .capsule{width:34px;height:16px;border-radius:9px;}
.app-logo{flex:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));}
.login-brand .app-logo{width:46px;height:46px;}

.toggle-group{display:flex;border:1.5px solid var(--border);border-radius:10px;overflow:hidden;}
.toggle-group button{flex:1;border:none;background:#fff;padding:9px 10px;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.15s;}
.toggle-group button.active{background:var(--teal);color:#fff;}
.pack-hint{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.tag-status.tag-return{background:#EFE3F8;color:#6A3FA0;}
header.top h1{font-size:19px;margin:0;font-weight:800;}
header.top .sub{font-size:12px;opacity:.85;margin-top:2px;}
header.top .date{font-family:var(--font-num);font-size:13px;background:rgba(255,255,255,.15);padding:6px 12px;border-radius:10px;}

.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.tab-btn{padding:10px 18px;border-radius:12px;border:1.5px solid var(--border);background:var(--panel);color:var(--ink-soft);font-family:var(--font-ui);font-weight:600;font-size:14px;cursor:pointer;transition:.15s;text-decoration:none;display:inline-block;}
.tab-btn:hover{border-color:var(--teal);color:var(--teal);}
.tab-btn.active{background:var(--teal);border-color:var(--teal);color:#fff;}

.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media(max-width:820px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px;position:relative;overflow:hidden;}
.stat-card .lbl{font-size:12.5px;color:var(--ink-soft);font-weight:600;margin-bottom:6px;}
.stat-card .val{font-family:var(--font-num);font-size:24px;font-weight:600;color:var(--teal-dark);}
.stat-card.warn .val{color:var(--amber);}
.stat-card.danger .val{color:var(--red);}

.alert-box{border-radius:14px;border:1px solid var(--border);background:var(--panel);padding:14px 16px;margin-top:10px;}
.alert-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;margin-bottom:8px;font-size:14px;}
.alert-row:last-child{margin-bottom:0;}
.alert-row.low{background:var(--amber-soft);}
.alert-row.expired{background:var(--red-soft);}
.alert-row .name{font-weight:700;}
.alert-row .meta{font-family:var(--font-num);font-size:13px;color:var(--ink-soft);}
.badge{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px;}
.badge.low{background:var(--amber);color:#fff;}
.badge.expired{background:var(--red);color:#fff;}
.badge.soon{background:#fff;border:1.5px solid var(--red);color:var(--red);}
.empty-note{color:var(--ink-soft);font-size:13.5px;padding:6px 2px;}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px;}
input, select{font-family:var(--font-ui);font-size:14px;padding:10px 12px;border-radius:10px;border:1.5px solid var(--border);background:#fff;color:var(--ink);outline:none;}
input:focus, select:focus{border-color:var(--teal);}
input.search{flex:1;min-width:180px;}
.btn{font-family:var(--font-ui);font-weight:700;font-size:14px;padding:10px 18px;border-radius:10px;border:none;cursor:pointer;transition:.15s;}
.btn-primary{background:var(--teal);color:#fff;}
.btn-primary:hover{background:var(--teal-dark);}
.btn-amber{background:var(--amber);color:#fff;}
.btn-amber:hover{filter:brightness(.95);}
.btn-outline{background:#fff;border:1.5px solid var(--border);color:var(--ink);}
.btn-outline:hover{border-color:var(--teal);color:var(--teal);}
.btn-danger{background:var(--red-soft);color:var(--red);}
.btn-danger:hover{background:var(--red);color:#fff;}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:8px;}

.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;overflow-x:auto;}
table{width:100%;border-collapse:collapse;min-width:640px;}
thead th{background:var(--teal-soft);color:var(--teal-dark);font-size:13px;font-weight:700;padding:12px 14px;text-align:right;white-space:nowrap;}
tbody td{padding:12px 14px;border-top:1px solid var(--border);font-size:13.5px;vertical-align:middle;}
tbody tr:hover{background:#FAFCFB;}
td.num, th.num{font-family:var(--font-num);}
.row-actions{display:flex;gap:6px;}
.tag-status{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.tag-ok{background:var(--teal-soft);color:var(--teal-dark);}
.tag-low{background:var(--amber-soft);color:#8a5c14;}
.tag-expired{background:var(--red-soft);color:var(--red);}

.overlay{position:fixed;inset:0;background:rgba(15,30,27,.45);display:none;align-items:center;justify-content:center;z-index:50;padding:16px;}
.overlay.show{display:flex;}
.modal{background:#fff;border-radius:16px;padding:22px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;}
.modal h3{margin:0 0 16px;font-size:17px;color:var(--teal-dark);}
.field{margin-bottom:12px;}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:5px;}
.field input, .field select{width:100%;}
.field-row{display:flex;gap:8px;}
.field-row .field{flex:1;}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions .btn{flex:1;}

.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
@media(max-width:820px){.report-grid{grid-template-columns:repeat(2,1fr);}}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px;}
.filters .field{margin-bottom:0;}

.scan-row{display:flex;gap:8px;}
.scan-row input{flex:1;}
#qrReader{width:100%;border-radius:12px;overflow:hidden;margin-top:10px;}

.section-note{font-size:12.5px;color:var(--ink-soft);margin-bottom:10px;}
footer.hint{text-align:center;color:var(--ink-soft);font-size:12px;margin-top:26px;}

.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;}
.login-box{background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px;max-width:380px;width:100%;}
.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px;}
.login-brand h1{font-size:18px;color:var(--teal-dark);margin:0;}
