:root{--p:#0f766e;--p2:#14b8a6;--pl:#ccfbf1;--bg:#f4f7f7;--card:#fff;--tx:#0f172a;--mu:#64748b;--bd:#e2e8f0;--red:#dc2626;--green:#16a34a;--amber:#d97706;--blue:#2563eb;--r:14px;--sh:0 1px 3px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.05);--side:250px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Segoe UI",Tahoma,"Noto Sans Arabic","Cairo",system-ui,sans-serif;background:var(--bg);color:var(--tx);line-height:1.6;font-size:16px}
a{color:var(--p);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{margin:0 0 .5rem;line-height:1.35}h2{font-size:1.3rem}h3{font-size:1.08rem}
p{margin:.4rem 0}.muted{color:var(--mu)}.sm{font-size:.86rem}.center{text-align:center}
code{background:#f1f5f9;padding:.05rem .35rem;border-radius:6px;font-size:.85em;word-break:break-all}
.code{background:#f8fafc;border:1px solid var(--bd);padding:.6rem;border-radius:8px;font-family:monospace;font-size:.8rem;text-align:left}
[hidden]{display:none!important}
/* forms */
label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.92rem}
input,select,textarea{font:inherit;font-weight:400;width:100%;padding:.7rem .85rem;border:1px solid var(--bd);border-radius:10px;background:#fff;color:var(--tx);min-height:46px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--p2);outline-offset:0;border-color:var(--p2)}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--p);flex:none}
input[type=file]{padding:.5rem;background:#f8fafc}
input:disabled,select:disabled,textarea:disabled{background:#f1f5f9;color:var(--mu)}
.chk{flex-direction:row;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}
fieldset{border:0;padding:0;margin:0}legend{font-weight:700;margin-bottom:.5rem}
.stack{display:flex;flex-direction:column;gap:.85rem}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.form-grid .full{grid-column:1/-1}
.row-form{display:flex;gap:.6rem;align-items:flex-end}.grow{flex:1}
.row-btns{display:flex;gap:.5rem;flex-wrap:wrap}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:10px;background:var(--p);color:#fff;font:inherit;font-weight:700;padding:.65rem 1.1rem;min-height:44px;cursor:pointer;text-decoration:none!important;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.lg{width:100%;padding:.85rem 1.2rem;font-size:1.05rem;min-height:52px}
.btn.sm{padding:.4rem .8rem;min-height:36px;font-size:.88rem}
.btn.outline{background:#fff;color:var(--p);border:1.5px solid var(--p)}
.btn.ghost{background:transparent;color:var(--p);border:1px solid var(--bd)}
.btn.green{background:var(--green)}.btn.red{background:var(--red)}.btn.blue{background:var(--blue)}
.btn.google{background:#fff;color:#1f2937;border:1px solid var(--bd)}.btn.google .g{font-weight:900;color:#4285f4}
.link{background:none;border:0;color:var(--p);font:inherit;cursor:pointer;padding:.5rem;text-decoration:underline}
.icon-btn{background:none;border:0;font-size:1.3rem;cursor:pointer;padding:.4rem;min-width:44px;min-height:44px;color:var(--tx)}
/* cards */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:1.15rem;margin-bottom:1rem;border:1px solid rgba(226,232,240,.7)}
.card.notice{text-align:center}.card.dashed{border:2px dashed var(--bd);box-shadow:none;background:transparent}
.big-ic{font-size:2.6rem;line-height:1.2}
.flash{padding:.7rem 1rem;border-radius:10px;margin:0 0 1rem;background:#ecfeff;border:1px solid #a5f3fc;font-size:.94rem}
.flash.ok{background:#f0fdf4;border-color:#bbf7d0}.flash.err{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.pill{display:inline-block;padding:.12rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;background:#f1f5f9;color:#334155;white-space:nowrap}
.pill.green{background:#dcfce7;color:#166534}.pill.red{background:#fee2e2;color:#991b1b}.pill.amber{background:#fef3c7;color:#92400e}.pill.blue{background:#dbeafe;color:#1e40af}.pill.teal{background:var(--pl);color:#115e59}.pill.gray{background:#f1f5f9;color:#475569}
.chip{display:inline-block;padding:.2rem .65rem;border-radius:999px;background:var(--pl);color:#115e59;font-size:.85rem;margin:.15rem 0}
.badge{background:var(--red);color:#fff;border-radius:999px;font-size:.72rem;padding:0 .45rem;margin-inline-start:auto}
.dot{position:absolute;top:-2px;inset-inline-end:-4px;width:9px;height:9px;background:var(--red);border-radius:50%}
.grid{display:grid;gap:1rem}
.seg{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;gap:4px;margin-bottom:1rem}
.seg a{flex:1;text-align:center;padding:.5rem .8rem;border-radius:9px;color:var(--mu);font-weight:600;white-space:nowrap}
.seg a.on{background:#fff;color:var(--p);box-shadow:var(--sh)}.seg.wrap{flex-wrap:wrap;margin:0}.seg.wrap a{flex:none}
.or{display:flex;align-items:center;gap:.8rem;color:var(--mu);margin:1rem 0}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--bd)}
.kv{list-style:none;padding:0;margin:.5rem 0;display:grid;gap:.45rem}
.kv li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed var(--bd);padding-bottom:.35rem;font-size:.93rem}.kv li span{color:var(--mu)}
.kv.two{grid-template-columns:1fr 1fr;column-gap:1.5rem}
.mini-notif{padding:.55rem 0;border-bottom:1px solid var(--bd)}.mini-notif:last-child{border:0}
.notif.unread{border-inline-start:4px solid var(--p)}
.line-link{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--bd);color:var(--tx)}
.section-title{margin:1.2rem 0 .6rem}
.steps{padding-inline-start:1.3rem;margin:.5rem 0 1rem}.steps li{padding:.3rem 0;color:var(--mu)}.steps li.done{color:var(--green)}.steps li.done::marker{content:"✓ "}.steps li.now{color:var(--tx);font-weight:700}
.todo li{padding:.25rem 0}
/* auth */
body.bare{min-height:100vh;background:linear-gradient(160deg,#e6fffb 0%,#f4f7f7 45%,#eef2ff 100%)}
.auth-wrap{max-width:440px;margin:0 auto;padding:2rem 1rem 3rem}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:.6rem;font-size:1.6rem;font-weight:800;color:var(--p);margin:1rem 0 1.5rem}
.auth-brand img{border-radius:14px}
.hero h2{font-size:1.45rem}.hero .stack{margin-top:1.2rem}.cat-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.otp{font-size:1.8rem;letter-spacing:.6rem;text-align:center;font-weight:700}
.install-btn{width:100%;margin-top:1rem}
/* app shell */
.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:var(--side);background:#0b3b38;color:#e2f3f1;display:flex;flex-direction:column;padding:1rem .8rem;z-index:40;overflow-y:auto}
.sidebar .brand{display:flex;align-items:center;gap:.6rem;color:#fff;font-weight:800;font-size:1.15rem;padding:.3rem .5rem 1.2rem;text-decoration:none}
.sidebar .brand img{border-radius:10px}
.sidebar nav{display:flex;flex-direction:column;gap:.2rem;flex:1}
.sidebar nav a{display:flex;align-items:center;gap:.7rem;color:#cde7e4;padding:.65rem .8rem;border-radius:10px;font-weight:600;text-decoration:none}
.sidebar nav a:hover{background:rgba(255,255,255,.07)}.sidebar nav a.active{background:var(--p2);color:#04211f}
.sidebar .ic{width:1.5rem;text-align:center}
.side-foot{display:flex;flex-direction:column;gap:.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}
.side-foot .btn.ghost{color:#cde7e4;border-color:rgba(255,255,255,.2);width:100%}
.main{margin-inline-start:var(--side);min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--bd);padding:.6rem 1.5rem;min-height:60px}
.topbar .page-title{font-size:1.15rem;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .brand{display:flex;align-items:center;gap:.4rem;font-weight:800;color:var(--p)}.topbar .brand img{border-radius:8px}
.top-actions{display:flex;align-items:center;gap:.4rem}.who{color:var(--mu);font-size:.9rem}
.content{padding:1.5rem;width:100%;max-width:1200px;margin:0 auto;flex:1}
.bottomnav{display:none}
.m-only{display:none!important}
.scrim{display:none}
/* customer */
.grid.cats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tile{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:#fff;border-radius:var(--r);padding:1.2rem .8rem;box-shadow:var(--sh);border:2px solid transparent;color:var(--tx);text-decoration:none!important}
.tile.on{border-color:var(--p2);background:#f0fdfa}.tile-ic{font-size:2.2rem}
.grid.svc{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.svc-card{display:flex;flex-direction:column;gap:.4rem;margin:0}.svc-card .btn{margin-top:auto}.price{font-size:1.2rem;font-weight:800;color:var(--p)}
/* nurse */
.status-card{border-top:5px solid var(--bd)}.status-card.s-green{border-top-color:var(--green)}.status-card.s-amber{border-top-color:var(--amber)}.status-card.s-red{border-top-color:var(--red)}.status-card.s-blue{border-top-color:var(--blue)}.status-card.s-teal{border-top-color:var(--p2)}
.pay-cta{text-align:center;background:linear-gradient(135deg,#f0fdfa,#fff)}.pay-cta h2{color:var(--p);font-size:1.5rem}.pay-cta .btn{max-width:360px}
.check-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem}
.check-card{flex-direction:row;align-items:flex-start;gap:.6rem;border:1.5px solid var(--bd);border-radius:12px;padding:.8rem;cursor:pointer;font-weight:500}
.check-card:has(input:checked){border-color:var(--p2);background:#f0fdfa}
.check-card span{display:flex;flex-direction:column}
.gov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem}
.gov-grid .chk{background:#f8fafc;border-radius:8px;padding:.45rem .55rem}
.grid.docs{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.doc{margin:0;display:flex;flex-direction:column;gap:.5rem}.doc.has.s-accepted{border-color:#bbf7d0}.doc.has.s-rejected{border-color:#fecaca;background:#fffafa}
.doc-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.upload{display:flex;flex-direction:column;gap:.5rem}
/* admin */
.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.toolbar label{flex-direction:row;align-items:center;gap:.5rem}.toolbar select{width:auto;min-width:170px}
.filters{justify-content:flex-start}.filters input{flex:1 1 240px;width:auto}.filters select{flex:0 1 auto}
.grid.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-bottom:1rem}
.stat{background:#fff;border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--sh);border-inline-start:5px solid var(--bd);display:flex;flex-direction:column;color:var(--tx);text-decoration:none!important}
.stat b{font-size:1.6rem}.stat span{color:var(--mu);font-size:.88rem}
.stat.amber{border-inline-start-color:var(--amber)}.stat.blue{border-inline-start-color:var(--blue)}.stat.green{border-inline-start-color:var(--green)}.stat.teal{border-inline-start-color:var(--p2)}
table.rt{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:1rem}
.rt th{background:#f8fafc;text-align:start;font-size:.84rem;color:var(--mu);padding:.75rem .9rem;border-bottom:1px solid var(--bd);white-space:nowrap}
.rt td{padding:.7rem .9rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.93rem}
.rt tr:last-child td{border-bottom:0}.rt tbody tr[data-href]{cursor:pointer}.rt tbody tr:hover{background:#fafcfc}
.rt .clip{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card table.rt{box-shadow:none;border:1px solid var(--bd)}
.name-cell{display:flex;align-items:center;gap:.6rem;color:var(--tx)}.name-cell span:last-child{display:flex;flex-direction:column}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--pl);color:var(--p);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.avatar.xl{width:84px;height:84px;font-size:2rem}
.pager{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:center}.pager a{padding:.35rem .75rem;border-radius:8px;background:#fff;border:1px solid var(--bd)}.pager a.on{background:var(--p);color:#fff}
.detail{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}
.detail-side{position:sticky;top:76px}
.profile-head{display:flex;gap:1rem;align-items:center;margin-bottom:.8rem}.photo{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid var(--pl)}
.grid.docs-view{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.doc-tile{border:1px solid var(--bd);border-radius:12px;padding:.6rem;display:flex;flex-direction:column;gap:.4rem}
.doc-tile.s-rejected{border-color:#fecaca}.doc-tile.empty{background:#fafafa}
.thumb{width:100%;height:130px;object-fit:cover;border-radius:8px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;color:var(--mu);cursor:zoom-in}
.thumb.pdf{font-weight:700;color:var(--p);cursor:pointer}.thumb.none{cursor:default;font-size:.85rem}
details.action-card summary,details summary{cursor:pointer;font-weight:700;padding:.2rem 0}details[open] summary{margin-bottom:.6rem}
.action-card .btn{width:100%}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px}
.grid.govs{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.gov{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin:0}.gov div{display:flex;flex-direction:column}.gov.on{border-color:#99f6e4;background:#f0fdfa}
.switch{display:flex;align-items:center;gap:.5rem;background:none;border:0;cursor:pointer;font:inherit;padding:.3rem}
.switch span{width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s;flex:none}
.switch span:after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch.on span{background:var(--green)}.switch.on span:after{inset-inline-start:23px}.switch em{font-style:normal;font-size:.82rem;color:var(--mu)}
.grid.cats-admin{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grid.cats-admin .card{margin:0}.icon-in{font-size:1.4rem;text-align:center}
.gov-prices{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem}
.gp{display:grid;grid-template-columns:1fr 100px;gap:.3rem .5rem;align-items:center;background:#f8fafc;border-radius:10px;padding:.55rem .7rem;border:1px solid transparent}
.gp.active{border-color:#99f6e4;background:#f0fdfa}.gp-name{font-weight:600;font-size:.9rem}.gp input{min-height:38px;padding:.4rem .6rem}.gp .chk{grid-column:1/-1}
.chk.big{font-size:1rem;font-weight:700}
.sticky-save{position:sticky;bottom:0;padding:.8rem 0;background:linear-gradient(transparent,var(--bg) 35%)}
.grid.pms{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.pm{display:flex;flex-direction:column;gap:.7rem;margin:0}
.pm-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pm-head h3{margin:0;flex:1}
.pm-flags{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:.6rem;background:#f8fafc;border-radius:10px}
/* ---------- tablet / mobile ---------- */
@media (max-width:1024px){.detail{grid-template-columns:1fr}.detail-side{position:static}}
@media (max-width:860px){
  .sidebar{transform:translateX(100%);transition:transform .25s;width:min(82vw,300px);box-shadow:-8px 0 30px rgba(0,0,0,.2)}
  html[dir=rtl] .sidebar{transform:translateX(100%)}
  body.menu-open .sidebar{transform:none}
  body.menu-open .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:35}
  body.app:not(.admin) .sidebar{display:none}
  .main{margin:0}
  .m-only{display:inline-flex!important}.d-only{display:none!important}
  .topbar{padding:.5rem .8rem;padding-top:max(.5rem,env(safe-area-inset-top))}
  .topbar .page-title{font-size:1.02rem}
  body.app:not(.admin) .topbar .page-title{text-align:center}
  .content{padding:1rem .85rem 6rem}
  .bottomnav{display:flex;position:fixed;bottom:0;inset-inline:0;background:#fff;border-top:1px solid var(--bd);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
  .bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .2rem;font-size:.72rem;color:var(--mu);font-weight:600;text-decoration:none!important}
  .bottomnav a .ic{font-size:1.25rem;position:relative}.bottomnav a.active{color:var(--p)}
  .kv.two{grid-template-columns:1fr}
  .toolbar select{min-width:0;width:100%}.toolbar label{width:100%}.filters>*{flex:1 1 100%}
  /* tables become cards */
  table.rt,table.rt tbody,table.rt tr,table.rt td{display:block;width:100%}
  table.rt{background:transparent;box-shadow:none;border:0!important}
  table.rt thead{display:none}
  table.rt tr{background:#fff;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:.7rem;padding:.4rem .2rem;border:1px solid var(--bd)}
  table.rt td{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:0;padding:.4rem .8rem;text-align:end}
  table.rt td[data-label]::before{content:attr(data-label);color:var(--mu);font-size:.8rem;font-weight:600;text-align:start;flex:none}
  table.rt td:first-child{border-bottom:1px solid #f1f5f9;padding-bottom:.6rem}
  table.rt td:first-child[data-label]::before{display:none}
  .rt .clip{max-width:60%;white-space:normal}
  .grid.pms,.grid.cats-admin{grid-template-columns:1fr}
}
@media (max-width:420px){.grid.stats{grid-template-columns:1fr 1fr}.stat b{font-size:1.3rem}.grid.cats{grid-template-columns:1fr 1fr}.seg a{padding:.45rem .5rem;font-size:.9rem}}
@media (display-mode:standalone){.install-btn{display:none!important}}
