:root{--c1:#0b5e59;--c2:#0e7c74;--bg:#f4f6f6;--card:#fff;--line:#dde3e3;
  --txt:#17322f;--muted:#5c716e;--red:#c0392b;--green:#1e8449;--yellow:#b9770e;
  --blue:#1f618d;--orange:#ca6f1e;--purple:#7d3c98;--gray:#707b7c;--r:10px}
*{box-sizing:border-box;margin:0}
body{font-family:"Segoe UI",Tahoma,sans-serif;background:var(--bg);color:var(--txt)}
#topbar{display:flex;justify-content:space-between;align-items:center;
  background:var(--c1);color:#fff;padding:.6rem 1rem;position:sticky;top:0;z-index:5}
#brand{font-weight:700}
#clock{font-size:.8rem;opacity:.9;display:flex;gap:.45rem;align-items:center;
  white-space:nowrap}
#clock .time{font-weight:700;font-variant-numeric:tabular-nums;
  background:#ffffff22;padding:.1rem .5rem;border-radius:99px}
@media(max-width:560px){#clock .date{display:none}}
.rating-btns button{background:#eef2f2;color:var(--txt);font-size:1.1rem;
  min-width:2.9rem}
.rating-btns button.sel{background:var(--c1);color:#fff}
#userbox{display:flex;gap:.5rem;align-items:center;font-size:.85rem}
#userbox button{background:transparent;border:1px solid #ffffff88;color:#fff}
#nav{display:flex;gap:.25rem;background:var(--c2);padding:.25rem .5rem;
  overflow-x:auto;position:sticky;top:2.6rem;z-index:5}
#nav a{color:#fff;text-decoration:none;padding:.55rem .9rem;border-radius:var(--r);
  white-space:nowrap;font-size:.95rem}
#nav a.active{background:#ffffff2e;font-weight:700}
main{padding:1rem;max-width:1200px;margin:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.7rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:.9rem;cursor:pointer}
.card .num{font-size:1.7rem;font-weight:700;color:var(--c1)}
.card .lbl{color:var(--muted);font-size:.85rem}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:1rem;margin-block:.8rem}
.panel.warn{border-color:#e8a13d;background:#fdf6ec;color:#7a5410}
/* اسم العائلة يبقى ظاهرًا أعلى الصفحات الطويلة (بطاقة العائلة + كشف الحساب) */
.sticky-name{position:sticky;top:5.6rem;z-index:4;
  box-shadow:0 3px 8px rgba(0,0,0,.07)}
.sticky-name a{color:inherit;text-decoration:none}
.sticky-name a:hover{text-decoration:underline}
/* عناصر حسب الجهاز: d-only للحاسوب فقط، m-only للجوال فقط */
.m-only{display:none!important}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
input,select,textarea,button{font:inherit;padding:.55rem .7rem;border-radius:8px;
  border:1px solid var(--line);min-height:44px}
button{background:var(--c1);color:#fff;border:0;cursor:pointer}
button.ghost{background:#eef2f2;color:var(--txt)}
button.danger{background:var(--red)}
table{width:100%;border-collapse:collapse;background:var(--card)}
th,td{padding:.55rem .6rem;border-bottom:1px solid var(--line);text-align:right;
  font-size:.92rem}
th{background:#eef4f3;cursor:pointer;white-space:nowrap}
tr.click{cursor:pointer}
tr.click:hover{background:#f2f8f7}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.badge{display:inline-block;padding:.15rem .55rem;border-radius:99px;color:#fff;
  font-size:.78rem}
.cat-red{background:var(--red)}.cat-green{background:var(--green)}
.cat-yellow{background:var(--yellow)}.cat-blue{background:var(--blue)}
.cat-orange{background:var(--orange)}.cat-purple{background:var(--purple)}
.cat-gray{background:var(--gray)}
.pos{color:var(--red);font-weight:600}.zero{color:var(--green)}
#toast{position:fixed;bottom:4.5rem;right:50%;transform:translateX(50%);
  background:var(--txt);color:#fff;padding:.7rem 1.2rem;border-radius:var(--r);
  z-index:50}
#toast.err{background:var(--red)}
dialog{border:0;border-radius:var(--r);padding:1.2rem;max-width:22rem}
dialog::backdrop{background:#0007}
.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--line);margin-bottom:.8rem;
  overflow-x:auto}
.tabs button{background:none;color:var(--muted);border-radius:0;white-space:nowrap}
.tabs button.active{color:var(--c1);font-weight:700;border-bottom:3px solid var(--c1)}
.tabs a{padding:.35rem .8rem;border-radius:6px;background:var(--card);
  text-decoration:none}
.tabs a.active{background:var(--c1);color:#fff}
.login-box{max-width:22rem;margin:12vh auto;display:flex;flex-direction:column;gap:.7rem}
.admin-layout{display:flex;gap:1rem;align-items:flex-start}
.admin-side{display:flex;flex-direction:column;min-width:11rem}
.admin-side a{color:var(--txt);text-decoration:none;padding:.55rem .7rem;
  border-radius:var(--r);white-space:nowrap}
.admin-side a:hover{background:#eef2f2}
.admin-side a.active{font-weight:bold;background:#eef4f3;color:var(--c1)}
.admin-body{flex:1;min-width:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem .8rem;font-size:.95rem}
.kv b{color:var(--muted);font-weight:600}
.due-big{font-size:1.6rem;font-weight:700;margin:.5rem 0}
.lookup{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}
#foot{text-align:center;color:var(--muted);font-size:.75rem;padding:.8rem 0 1rem;
  letter-spacing:.4px}
@media(max-width:768px){
  #nav{position:fixed;bottom:0;top:auto;left:0;right:0;justify-content:space-around;
    padding:.3rem}
  /* شريط الاسم الثابت أنحف على الجوال: خط أصغر، حشوة أقل، بلا شارة تصنيف */
  .sticky-name{top:3.1rem;padding:.45rem .7rem}
  .sticky-name h2,.sticky-name h3{font-size:1.02rem;margin:0}
  .sticky-name .badge{display:none}
  .sticky-name button{min-height:34px;padding:.3rem .55rem}
  .d-only{display:none!important}
  .m-only{display:flex!important}
  main{padding:.7rem .7rem 4.5rem}
  #foot{padding-bottom:4.5rem}
  .admin-layout{flex-direction:column}
  .admin-side{flex-direction:row;flex-wrap:wrap;min-width:0;width:100%}
  /* صف الترويسة يُنشأ tr مباشرة (بلا thead) — نخفي أول صف في عرض القوائم */
  table.aslist thead,table.aslist tr:first-child{display:none}
  table.aslist tr{display:block;border-bottom:6px solid var(--bg);padding:.4rem}
  table.aslist td{display:flex;justify-content:space-between;border:0;padding:.25rem .4rem}
  table.aslist td::before{content:attr(data-l);color:var(--muted);font-size:.8rem}
}
@media print{
  #topbar,#nav,.noprint{display:none!important}
  .sticky-name{position:static;box-shadow:none}
  main{max-width:none;padding:0}
  body{background:#fff}
  .panel{border:0;padding:0}
}
