/* ═══════════════════════════════════════════════════════════════
   DMS — Dark Design System v3
   Ground-up build. No Bootstrap overrides. Pure custom CSS.
   Font: DM Sans (body) + DM Mono (code)
   ═══════════════════════════════════════════════════════════════ */


/* ── Design Tokens ─────────────────────────────────────────── */
:root {
  --bg0:#07080c; --bg1:#0d0f16; --bg2:#121520; --bg3:#181c2a; --bg4:#1d2235;
  --br0:#181c28; --br1:#1e2438; --br2:#2a3050; --br3:#3a4268;
  --tx0:#edf0fa; --tx1:#8890b0; --tx2:#454d6a; --tx3:#2e3452;
  --ac:#00e0b0; --ac2:#00b890; --ac-a:rgba(0,224,176,.10); --ac-b:rgba(0,224,176,.20);
  --blue:#5097ff; --blue-a:rgba(80,151,255,.12);
  --sky:#38c4f8; --sky-a:rgba(56,196,248,.12);
  --teal:#00e0b0; --teal-a:rgba(0,224,176,.12);
  --green:#2ed89e; --green-a:rgba(46,216,158,.12);
  --amber:#f5b830; --amber-a:rgba(245,184,48,.12);
  --orange:#f57c30; --orange-a:rgba(245,124,48,.12);
  --red:#f55050; --red-a:rgba(245,80,80,.12);
  --pink:#f472c0; --pink-a:rgba(244,114,192,.12);
  --violet:#a07cff; --violet-a:rgba(160,124,255,.12);
  --r1:5px; --r2:9px; --r3:13px; --r4:18px; --r5:24px;
  --sh0:0 1px 3px rgba(0,0,0,.5); --sh1:0 2px 12px rgba(0,0,0,.6);
  --sh2:0 6px 28px rgba(0,0,0,.7); --sh3:0 16px 60px rgba(0,0,0,.85);
  --ff:'DM Sans',system-ui,sans-serif; --fm:'DM Mono',monospace; --fs:14px; --lh:1.6;
}


/* ── Hard resets that beat Bootstrap Reboot ─── */
html, body {
  background: #07080c !important;
  color: #edf0fa !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
}
body {
  background-image:
    radial-gradient(ellipse 70% 50% at 0% 0%, rgba(0,224,176,.035) 0%, transparent 55%),
    radial-gradient(ellipse 50% 35% at 100% 100%, rgba(80,151,255,.025) 0%, transparent 50%) !important;
}
a { color: var(--ac) !important; }
a:hover { color: #22f0be !important; }
ul, ol { list-style: none !important; padding-left: 0 !important; margin: 0 !important; }
* { box-sizing: border-box !important; }

/* ── Reset ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--ff);background:var(--bg0);color:var(--tx0);font-size:var(--fs);
  line-height:var(--lh);min-height:100svh;display:flex;flex-direction:column;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(ellipse 70% 50% at 0% 0%,rgba(0,224,176,.035) 0%,transparent 55%),
    radial-gradient(ellipse 50% 35% at 100% 100%,rgba(80,151,255,.025) 0%,transparent 50%);
}
main{flex:1;position:relative;padding:24px 0 48px;}
a{color:var(--ac);text-decoration:none;transition:color .15s;}
a:hover{color:#22f0be;}
h1,h2,h3,h4,h5,h6{font-family:var(--ff);color:var(--tx0);font-weight:600;letter-spacing:-.025em;line-height:1.2;}
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--br2);border-radius:2px;}
::-webkit-scrollbar-thumb:hover{background:var(--ac2);}
code,.mono{font-family:var(--fm);font-size:.82em;background:var(--bg3);padding:2px 6px;border-radius:var(--r1);color:var(--sky);border:1px solid var(--br1);}
.fadein{animation:fadein .3s ease both;}
@keyframes fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ═══ TOPBAR ═══════════════════════════════════════════════════ */
.topbar{
  position:sticky;top:0;z-index:100;height:52px;
  background:rgba(7,8,12,.94);backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--br1);display:flex;align-items:center;
  padding:0 16px;gap:4px;
}
.topbar__brand{
  display:flex;align-items:center;gap:8px;color:var(--tx0);
  font-weight:700;font-size:15px;letter-spacing:-.03em;
  text-decoration:none;flex-shrink:0;margin-right:8px;transition:opacity .15s;
}
.topbar__brand:hover{opacity:.85;color:var(--tx0);}
.topbar__brand-icon{
  width:28px;height:28px;background:var(--ac-a);border:1px solid var(--ac-b);
  border-radius:var(--r2);display:flex;align-items:center;justify-content:center;
  color:var(--ac);font-size:13px;
}
.topbar__links{display:flex;align-items:center;gap:2px;list-style:none;flex:1;overflow-x:auto;scrollbar-width:none;}
.topbar__links::-webkit-scrollbar{display:none;}
.topbar__link{
  display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r2);
  color:var(--tx1);font-size:13px;font-weight:500;white-space:nowrap;
  text-decoration:none;transition:color .15s,background .15s;position:relative;
}
.topbar__link i{font-size:13px;}
.topbar__link:hover{color:var(--tx0);background:var(--bg2);}
.topbar__link.on{color:var(--ac);background:var(--ac-a);}
.topbar__link.on::after{
  content:'';position:absolute;bottom:-1px;left:8px;right:8px;
  height:2px;background:var(--ac);border-radius:2px 2px 0 0;
}
.topbar__sep{flex:1;}
.topbar__user{position:relative;}
.topbar__user-btn{
  display:flex;align-items:center;gap:7px;background:none;
  border:1px solid var(--br1);border-radius:var(--r3);padding:5px 10px 5px 5px;
  color:var(--tx0);cursor:pointer;font-family:var(--ff);font-size:13px;font-weight:500;
  transition:border-color .15s,background .15s;
}
.topbar__user-btn:hover{border-color:var(--br2);background:var(--bg2);}
.topbar__avatar{
  width:26px;height:26px;background:var(--ac-a);border:1px solid var(--ac-b);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--ac);font-size:11px;font-weight:700;letter-spacing:-.02em;
}
.drop{
  display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:160px;
  background:var(--bg2);border:1px solid var(--br2);border-radius:var(--r3);
  box-shadow:var(--sh2);overflow:hidden;z-index:200;
}
.drop.open{display:block;animation:fadein .15s ease both;}
.drop__item{
  display:flex;align-items:center;gap:8px;padding:9px 14px;color:var(--tx0);
  font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;
}
.drop__item i{color:var(--tx1);font-size:13px;}
.drop__item:hover{background:var(--bg3);}
.drop__item.red{color:var(--red);}
.drop__item.red i{color:var(--red);}
.drop__item.red:hover{background:var(--red-a);}
.drop__hr{height:1px;background:var(--br1);margin:2px 0;}
.topbar__burger{
  display:none;align-items:center;gap:5px;background:none;
  border:1px solid var(--br1);border-radius:var(--r2);color:var(--tx0);
  padding:5px 9px;font-size:12px;font-family:var(--ff);font-weight:500;
  cursor:pointer;transition:border-color .15s,background .15s;
}
.topbar__burger i{font-size:16px;}
.topbar__burger:hover{border-color:var(--br2);background:var(--bg2);}
.mob-nav{
  display:none;background:var(--bg1);border-bottom:1px solid var(--br1);
  padding:8px;flex-direction:column;gap:2px;
}
.mob-nav.open{display:flex;}
.mob-nav .topbar__link{padding:10px 14px;border-radius:var(--r2);}
@media(max-width:768px){.topbar__links{display:none;}.topbar__burger{display:flex;}}
@media(max-width:480px){.topbar__user-btn span:not(.topbar__avatar){display:none;}}

/* ═══ FOOTER ════════════════════════════════════════════════════ */
.footer{
  border-top:1px solid var(--br0);padding:12px 24px;display:flex;
  justify-content:space-between;align-items:center;font-size:11.5px;
  color:var(--tx2);background:var(--bg0);
}

/* ═══ LAYOUT ════════════════════════════════════════════════════ */
.wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 20px;}
.page-wrap{width:100%;max-width:1500px;margin:0 auto;padding:0 20px;}

/* Page header — contacts/photos/about/users */
.ph{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--br0);}
.ph__row{display:flex;align-items:center;gap:12px;margin-bottom:4px;}
.ph__icon{width:36px;height:36px;background:var(--ac-a);border:1px solid var(--ac-b);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:16px;flex-shrink:0;}
.ph__title{font-size:20px;font-weight:700;color:var(--tx0);letter-spacing:-.03em;}
.ph__sub{font-size:13px;color:var(--tx1);padding-left:48px;}
.ph__r{flex-shrink:0;display:flex;gap:8px;align-items:center;}

/* Page header — donor-register/planned/pregnant */
.pg-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--br0);}
.pg-header__title{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;color:var(--tx0);letter-spacing:-.03em;margin-bottom:4px;}
.pg-icon{width:34px;height:34px;background:var(--ac-a);border:1px solid var(--ac-b);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:15px;flex-shrink:0;}
.pg-header__sub{font-size:13px;color:var(--tx1);padding-left:44px;}
.pg-header__actions{display:flex;gap:8px;align-items:center;flex-shrink:0;}

.flex-c{display:flex;align-items:center;} .flex-w{flex-wrap:wrap;}
.gap-2{gap:8px;} .gap-3{gap:12px;}
.mb-3{margin-bottom:12px;} .mb-4{margin-bottom:20px;}
.g3{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);}
@media(max-width:768px){.g3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.g3{grid-template-columns:1fr;}}

/* ═══ PANEL ═════════════════════════════════════════════════════ */
.panel{background:var(--bg1);border:1px solid var(--br1);border-radius:var(--r3);overflow:hidden;}
.panel__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--br0);background:var(--bg2);}
.panel__title{font-size:13px;font-weight:600;color:var(--tx0);display:flex;align-items:center;gap:8px;}
.panel__title i{color:var(--ac);}
.panel__body{padding:16px;}
.panel__body--flush{padding:0;}
/* Legacy */
.panel-flush{padding:0;}

/* ═══ STAT CARDS ════════════════════════════════════════════════ */
.stat-grid{display:grid;gap:12px;}
.stat{
  background:var(--bg1);border:1px solid var(--br1);border-radius:var(--r3);
  padding:16px 18px;display:flex;align-items:center;gap:14px;
  position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;
}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;opacity:0;transition:opacity .2s;border-radius:var(--r3) var(--r3) 0 0;}
.stat:hover{transform:translateY(-2px);box-shadow:var(--sh1);border-color:var(--br2);}
.stat:hover::before{opacity:1;}
.stat__icon{font-size:22px;flex-shrink:0;opacity:.9;}
.stat__num{font-size:26px;font-weight:700;letter-spacing:-.04em;line-height:1;}
.stat__lbl{font-size:12px;color:var(--tx1);margin-top:2px;font-weight:400;}
.stat--blue{background:linear-gradient(135deg,#0a1530 0%,#070d1e 100%);border-color:#142040;}
.stat--blue .stat__icon,.stat--blue .stat__num{color:var(--blue);} .stat--blue::before{background:var(--blue);}
.stat--teal{background:linear-gradient(135deg,#051f1a 0%,#031410 100%);border-color:#0a3028;}
.stat--teal .stat__icon,.stat--teal .stat__num{color:var(--teal);} .stat--teal::before{background:var(--teal);}
.stat--sky{background:var(--bg1);border-color:var(--br1);}
.stat--sky .stat__icon,.stat--sky .stat__num{color:var(--sky);} .stat--sky::before{background:var(--sky);}
.stat--pink{background:var(--bg1);border-color:var(--br1);}
.stat--pink .stat__icon,.stat--pink .stat__num{color:var(--pink);} .stat--pink::before{background:var(--pink);}
.stat--green{background:var(--bg1);border-color:var(--br1);}
.stat--green .stat__icon,.stat--green .stat__num{color:var(--green);} .stat--green::before{background:var(--green);}
.stat--amber{background:linear-gradient(135deg,#1e1404 0%,#130e02 100%);border-color:#2e2006;}
.stat--amber .stat__icon,.stat--amber .stat__num{color:var(--amber);} .stat--amber::before{background:var(--amber);}
.stat--cyan{background:linear-gradient(135deg,#04182a 0%,#020f1c 100%);border-color:#072540;}
.stat--cyan .stat__icon,.stat--cyan .stat__num{color:var(--sky);} .stat--cyan::before{background:var(--sky);}

/* ═══ TABLES ════════════════════════════════════════════════════ */
.table-wrap,.tbl-wrap{overflow-x:auto;}
.dms-table,.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;}
.dms-table thead th,.tbl thead th{
  background:var(--bg2);color:var(--tx1);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;padding:10px 14px;
  border-bottom:1px solid var(--br1);white-space:nowrap;
}
.dms-table tbody td,.tbl tbody td{
  padding:10px 14px;border-bottom:1px solid var(--br0);
  color:var(--tx0);vertical-align:middle;
}
.dms-table tbody tr:last-child td,.tbl tbody tr:last-child td{border-bottom:none;}
.dms-table tbody tr:hover td,.tbl tbody tr:hover td{background:var(--bg2);}
.t-sm{font-size:12px;} .t-xs,.txs{font-size:11px;} .t-faint,.t2{color:var(--tx1);}
.t3{color:var(--tx2);} .fw6,.fw-6{font-weight:600;} .fw-500{font-weight:500;}

/* DataTables */
.dataTables_wrapper{color:var(--tx0);padding:12px 16px;}
.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{
  background:var(--bg4)!important;color:var(--tx0)!important;border:1px solid var(--br2)!important;
  border-radius:var(--r2)!important;padding:5px 10px!important;font-size:13px!important;
  font-family:var(--ff)!important;outline:none!important;transition:border-color .15s!important;
}
.dataTables_wrapper .dataTables_filter input:focus,.dataTables_wrapper .dataTables_length select:focus{
  border-color:var(--ac)!important;box-shadow:0 0 0 3px var(--ac-a)!important;
}
.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label,.dataTables_wrapper .dataTables_info{color:var(--tx1)!important;font-size:12px!important;}
.dataTables_wrapper .dataTables_paginate .paginate_button{
  background:var(--bg2)!important;border:1px solid var(--br1)!important;color:var(--tx1)!important;
  border-radius:var(--r1)!important;padding:4px 10px!important;font-size:12px!important;
  margin:0 2px!important;cursor:pointer!important;transition:all .15s!important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:var(--bg3)!important;border-color:var(--br2)!important;color:var(--tx0)!important;}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:var(--ac-a)!important;border-color:var(--ac-b)!important;color:var(--ac)!important;font-weight:600!important;}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled{opacity:.35!important;cursor:default!important;}
/* also alias as dms-datatable */
.dms-datatable{}

/* ═══ CHIPS ══════════════════════════════════════════════════════ */
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap;background:var(--bg3);color:var(--tx1);border:1px solid var(--br1);}
.chip--green {background:var(--green-a); color:var(--green); border-color:rgba(46,216,158,.2);}
.chip--teal  {background:var(--teal-a);  color:var(--teal);  border-color:rgba(0,224,176,.2);}
.chip--blue  {background:var(--blue-a);  color:var(--blue);  border-color:rgba(80,151,255,.2);}
.chip--sky   {background:var(--sky-a);   color:var(--sky);   border-color:rgba(56,196,248,.2);}
.chip--amber {background:var(--amber-a); color:var(--amber); border-color:rgba(245,184,48,.2);}
.chip--orange{background:var(--orange-a);color:var(--orange);border-color:rgba(245,124,48,.2);}
.chip--red   {background:var(--red-a);   color:var(--red);   border-color:rgba(245,80,80,.2);}
.chip--pink  {background:var(--pink-a);  color:var(--pink);  border-color:rgba(244,114,192,.2);}
.chip--violet{background:var(--violet-a);color:var(--violet);border-color:rgba(160,124,255,.2);}
.chip--muted {background:var(--bg3);     color:var(--tx1);   border-color:var(--br1);}
.chip--boy   {background:rgba(56,196,248,.10); color:var(--sky);  border-color:rgba(56,196,248,.22);}
.chip--girl  {background:rgba(244,114,192,.10);color:var(--pink); border-color:rgba(244,114,192,.22);}
.chip--purple{background:var(--violet-a);color:var(--violet);border-color:rgba(160,124,255,.2);}
/* Legacy chip aliases */
.chip-red   {background:var(--red-a);   color:var(--red);   border:1px solid rgba(245,80,80,.2);padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.chip-blue  {background:var(--blue-a);  color:var(--blue);  border:1px solid rgba(80,151,255,.2);padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.chip-green {background:var(--green-a); color:var(--green); border:1px solid rgba(46,216,158,.2);padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.chip-muted {background:var(--bg3);     color:var(--tx1);   border:1px solid var(--br1);padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.badge-gender-m{background:rgba(56,196,248,.10);color:var(--sky); border:1px solid rgba(56,196,248,.2); padding:2px 7px;border-radius:10px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:3px;}
.badge-gender-f{background:rgba(244,114,192,.10);color:var(--pink);border:1px solid rgba(244,114,192,.2);padding:2px 7px;border-radius:10px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:3px;}

/* ═══ BUTTONS ═══════════════════════════════════════════════════ */
.btn,.btn--primary,.btn--ghost,.btn--danger{
  display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r2);
  font-family:var(--ff);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;
  transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;
  text-decoration:none;white-space:nowrap;line-height:1.4;
}
.btn i,.btn--primary i,.btn--ghost i,.btn--danger i{font-size:13px;}
.btn:hover,.btn--primary:hover,.btn--ghost:hover,.btn--danger:hover{transform:translateY(-1px);}
.btn:active,.btn--primary:active,.btn--ghost:active,.btn--danger:active{transform:translateY(0);}
.btn-sm,.btn--sm{padding:4px 10px!important;font-size:12px!important;}
.btn-lg{padding:10px 20px;font-size:14px;}
.btn-full{width:100%;justify-content:center;}

.btn-p,.btn--primary{background:var(--ac);color:#030e0a;border-color:var(--ac);}
.btn-p:hover,.btn--primary:hover{background:#22f0be;border-color:#22f0be;box-shadow:0 4px 16px rgba(0,224,176,.3);color:#030e0a;}
.btn-g,.btn--ghost{background:var(--bg2);color:var(--tx1);border-color:var(--br1);}
.btn-g:hover,.btn--ghost:hover{background:var(--bg3);border-color:var(--br2);color:var(--tx0);}
.btn-ok{background:var(--green-a);color:var(--green);border-color:rgba(46,216,158,.25);}
.btn-ok:hover{background:rgba(46,216,158,.2);}
.btn-d,.btn--danger{background:var(--red-a);color:var(--red);border-color:rgba(245,80,80,.2);}
.btn-d:hover,.btn--danger:hover{background:rgba(245,80,80,.22);border-color:rgba(245,80,80,.35);}
.btn-warn{background:var(--amber-a);color:var(--amber);border-color:rgba(245,184,48,.2);}
.btn-warn:hover{background:rgba(245,184,48,.2);}

/* Bootstrap modal button aliases */
.btn-secondary{background:var(--bg3)!important;color:var(--tx1)!important;border:1px solid var(--br2)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:7px 14px!important;border-radius:var(--r2)!important;font-family:var(--ff)!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;transition:all .15s!important;}
.btn-secondary:hover{background:var(--bg4)!important;color:var(--tx0)!important;border-color:var(--br3)!important;}
.btn-primary{background:var(--ac)!important;color:#030e0a!important;border:1px solid var(--ac)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:7px 14px!important;border-radius:var(--r2)!important;font-family:var(--ff)!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;transition:all .15s!important;}
.btn-primary:hover{background:#22f0be!important;border-color:#22f0be!important;box-shadow:0 4px 14px rgba(0,224,176,.28)!important;}
.btn-warning{background:var(--amber-a)!important;color:var(--amber)!important;border:1px solid rgba(245,184,48,.25)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:7px 14px!important;border-radius:var(--r2)!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;}
.btn-warning:hover{background:rgba(245,184,48,.2)!important;}
.btn-danger{background:var(--red-a)!important;color:var(--red)!important;border:1px solid rgba(245,80,80,.2)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:7px 14px!important;border-radius:var(--r2)!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;}
.btn-danger:hover{background:rgba(245,80,80,.22)!important;}

/* ═══ FORMS ══════════════════════════════════════════════════════ */
.frow{margin-bottom:14px;}
.flabel,.form-label{display:block;font-size:12px;font-weight:600;color:var(--tx1);margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase;}
.finput,.fselect,.ftextarea,.form-control,.form-select{
  width:100%;background:var(--bg4)!important;color:var(--tx0)!important;
  border:1px solid var(--br2)!important;border-radius:var(--r2)!important;
  padding:8px 12px!important;font-size:13.5px!important;font-family:var(--ff)!important;
  outline:none!important;transition:border-color .15s,box-shadow .15s!important;
  -webkit-appearance:none;appearance:none;
}
.finput::placeholder,.form-control::placeholder{color:var(--tx2)!important;}
.finput:focus,.fselect:focus,.ftextarea:focus,.form-control:focus,.form-select:focus{
  border-color:var(--ac)!important;box-shadow:0 0 0 3px var(--ac-a)!important;
}
.finput:disabled,.form-control:disabled{background:var(--bg2)!important;color:var(--tx1)!important;cursor:not-allowed;opacity:.7;}
.form-select,.fselect{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238890b0' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 10px center!important;padding-right:30px!important;
}
.form-check-input{width:16px!important;height:16px!important;background:var(--bg4)!important;border:1px solid var(--br2)!important;border-radius:4px!important;cursor:pointer;transition:all .15s!important;accent-color:var(--ac);}
.form-check-input:checked{background:var(--ac)!important;border-color:var(--ac)!important;}
.form-check-label{color:var(--tx1)!important;font-size:13px!important;font-weight:400!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer;padding-left:4px;}
.form-check{display:flex;align-items:center;gap:8px;}
.fg{display:flex;}
.fg-pre{display:flex;align-items:center;justify-content:center;width:38px;background:var(--bg3);border:1px solid var(--br2);border-right:none;border-radius:var(--r2) 0 0 var(--r2);color:var(--tx1);font-size:14px;flex-shrink:0;}
.fg .finput,.fg .form-control{border-radius:0 var(--r2) var(--r2) 0!important;}
.pwd-toggle{display:flex;align-items:center;justify-content:center;width:38px;background:var(--bg3);border:1px solid var(--br2);border-left:none;border-radius:0 var(--r2) var(--r2) 0;color:var(--tx1);cursor:pointer;font-size:15px;transition:background .15s,color .15s;}
.pwd-toggle:hover{background:var(--bg4);color:var(--tx0);}

/* ═══ ALERTS ════════════════════════════════════════════════════ */
.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r3);font-size:13px;line-height:1.5;margin-bottom:12px;}
.alert i{font-size:15px;flex-shrink:0;margin-top:1px;}
.alert--ok  {background:var(--green-a);color:var(--green);border:1px solid rgba(46,216,158,.2);}
.alert--err {background:var(--red-a);  color:var(--red);  border:1px solid rgba(245,80,80,.2);}
.alert--warn{background:var(--amber-a);color:var(--amber);border:1px solid rgba(245,184,48,.2);}
.alert--info{background:var(--blue-a); color:var(--sky);  border:1px solid rgba(56,196,248,.2);}
.notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r2);font-size:13px;line-height:1.5;border-left:3px solid;margin-bottom:12px;}
.notice .notice__icon{font-size:15px;flex-shrink:0;margin-top:1px;}
.notice--success{background:var(--green-a);border-color:var(--green);color:var(--tx0);}
.notice--warning{background:var(--amber-a);border-color:var(--amber);color:var(--tx0);}
.notice--info{background:var(--blue-a);border-color:var(--sky);color:var(--tx0);}

/* ═══ MODALS ════════════════════════════════════════════════════ */
.modal-content{background:var(--bg2)!important;border:1px solid var(--br2)!important;border-radius:var(--r4)!important;box-shadow:var(--sh3)!important;color:var(--tx0)!important;}
.modal-header{background:var(--bg3)!important;border-bottom:1px solid var(--br1)!important;padding:14px 18px!important;}
.modal-title{color:var(--tx0)!important;font-size:15px!important;font-weight:600!important;letter-spacing:-.02em!important;}
.modal-body{padding:18px!important;background:var(--bg2)!important;}
.modal-footer{background:var(--bg3)!important;border-top:1px solid var(--br1)!important;padding:12px 18px!important;}
.btn-close{filter:invert(1) brightness(.6)!important;}
.btn-close:hover{filter:invert(1) brightness(1)!important;}
.modal-backdrop{background:rgba(0,0,0,.7)!important;}

/* ═══ SECTION DIVIDERS ══════════════════════════════════════════ */
.sec-divider{display:flex;align-items:center;gap:12px;margin:24px 0 14px;}
.sec-divider::before,.sec-divider::after{content:'';flex:1;height:1px;background:var(--br1);}
.sec-divider__label{font-size:11px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}
.divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--br0);}
.divider__txt{font-size:11px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.07em;}
.section-divider{display:flex;align-items:center;gap:12px;margin:24px 0 14px;}
.section-divider::before,.section-divider::after{content:'';flex:1;height:1px;background:var(--br1);}
.section-divider span{font-size:11px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}

/* ═══ PROGRESS BAR ═══════════════════════════════════════════════ */
.prog-bar{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;}
.prog-bar__fill{height:100%;background:linear-gradient(90deg,var(--ac2),var(--ac));border-radius:3px;transition:width .5s ease;box-shadow:0 0 8px var(--ac-a);}

/* ═══ CONTACT / PROFILE CARDS ═══════════════════════════════════ */
.pcard{background:var(--bg1);border:1px solid var(--br1);border-radius:var(--r3);overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s;}
.pcard:hover{border-color:var(--br2);transform:translateY(-2px);box-shadow:var(--sh1);}
.pcard__head{display:flex;align-items:center;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--br0);background:var(--bg2);}
.pcard__av{width:36px;height:36px;background:var(--ac-a);border:1px solid var(--ac-b);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:16px;flex-shrink:0;}
.pcard__name{font-weight:700;font-size:14px;color:var(--tx0);}
.pcard__body{padding:12px 16px;}
.pcard__row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;font-size:13px;color:var(--tx0);}
.pcard__row i{color:var(--tx1);font-size:13px;margin-top:2px;flex-shrink:0;}
.pcard__row a{color:var(--ac);}
.pcard__foot{padding:10px 16px;border-top:1px solid var(--br0);background:var(--bg2);display:flex;gap:8px;}

/* ═══ PREGNANCY CARDS ════════════════════════════════════════════ */
.preg-card{background:var(--bg1);border:1px solid var(--br1);border-radius:var(--r3);padding:16px;transition:border-color .2s,box-shadow .2s;}
.preg-card:hover{border-color:var(--br2);box-shadow:var(--sh1);}

/* ═══ ABOUT SECTIONS ════════════════════════════════════════════ */
.about-sec{background:var(--bg1);border:1px solid var(--br1);border-radius:var(--r3);overflow:hidden;margin-bottom:14px;}
.about-sec__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg2);border-bottom:1px solid var(--br0);}
.about-sec__title{font-weight:700;font-size:14px;color:var(--ac);}
.about-sec__body{padding:16px;font-size:13.5px;line-height:1.7;color:var(--tx0);white-space:pre-wrap;}

/* ═══ PHOTOS ════════════════════════════════════════════════════ */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.photo-tile{position:relative;border-radius:var(--r3);overflow:hidden;border:1px solid var(--br1);background:var(--bg2);aspect-ratio:1;transition:border-color .2s,transform .2s;}
.photo-tile:hover{border-color:var(--ac-b);transform:scale(1.02);}
.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;}
.photo-tile__ov{position:absolute;inset:0;background:rgba(7,8,12,.7);display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:opacity .2s;}
.photo-tile:hover .photo-tile__ov{opacity:1;}

/* ═══ DOTS ═══════════════════════════════════════════════════════ */
.dots{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2px;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ac);opacity:.7;cursor:help;transition:opacity .15s,transform .15s;}
.dot:hover{opacity:1;transform:scale(1.3);}

/* ═══ LOGIN ══════════════════════════════════════════════════════ */
.login-wrap{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg0);background-image:radial-gradient(ellipse 60% 50% at 20% 20%,rgba(0,224,176,.06) 0%,transparent 50%),radial-gradient(ellipse 50% 40% at 80% 80%,rgba(80,151,255,.04) 0%,transparent 50%);}
.login-box{width:100%;max-width:400px;background:var(--bg1);border:1px solid var(--br2);border-radius:var(--r4);padding:32px;box-shadow:var(--sh3);}
.login-icon{font-size:36px;color:var(--ac);display:block;margin-bottom:10px;filter:drop-shadow(0 0 14px var(--ac-b));}
.step-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:600;}
.step-1{background:var(--blue-a);color:var(--blue);border:1px solid rgba(80,151,255,.2);}
.step-2{background:var(--green-a);color:var(--green);border:1px solid rgba(46,216,158,.2);}
.t2{color:var(--tx1);} .t3{color:var(--tx2);} .ts{font-size:13px;}

/* ═══ CALENDAR ═══════════════════════════════════════════════════ */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cal-nav h3{margin:0;font-size:15px;font-weight:700;color:var(--tx0);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.cal-header-cell{text-align:center;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx2);padding:.4rem 0;background:var(--bg2);border-radius:var(--r1);}
.cal-day{min-height:72px;background:var(--bg1);border:1px solid var(--br0);border-radius:var(--r2);padding:5px;position:relative;transition:background .15s,border-color .15s;}
.cal-day.other-month{background:var(--bg0);opacity:.4;}
.cal-day.today{border-color:var(--ac);border-width:2px;box-shadow:0 0 0 1px var(--ac-a);}
.cal-day-num{font-size:.72rem;font-weight:700;color:var(--tx1);line-height:1;margin-bottom:4px;}
.cal-day.today .cal-day-num{color:var(--ac);}
.cal-birthday{display:block;font-size:.64rem;line-height:1.3;border-radius:var(--r1);padding:2px 5px;margin-bottom:2px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:opacity .15s,transform .1s;}
.cal-birthday:hover{opacity:.85;transform:scale(1.02);}
.cal-birthday.gender-m{background:rgba(56,196,248,.12);color:var(--sky);border:1px solid rgba(56,196,248,.2);}
.cal-birthday.gender-f{background:rgba(244,114,192,.12);color:var(--pink);border:1px solid rgba(244,114,192,.2);}
.cal-birthday.gender-x{background:var(--bg3);color:var(--tx1);border:1px solid var(--br1);}
.month-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.month-pill{padding:4px 12px;border-radius:20px;font-size:.78rem;border:1px solid var(--br1);background:var(--bg1);cursor:pointer;transition:all .15s;font-weight:500;color:var(--tx1);}
.month-pill:hover{background:var(--bg2);border-color:var(--br2);color:var(--tx0);}
.month-pill.active{background:var(--ac-a);color:var(--ac);border-color:var(--ac-b);}
.month-pill.has-bday{border-color:var(--br2);color:var(--tx0);}
.month-pill.active.has-bday{color:var(--ac);border-color:var(--ac-b);}
.cal-nav-btn{background:var(--bg2);border:1px solid var(--br1);border-radius:var(--r2);color:var(--tx1);padding:5px 10px;cursor:pointer;font-size:14px;transition:all .15s;}
.cal-nav-btn:hover{background:var(--bg3);border-color:var(--br2);color:var(--tx0);}
.bday-list-row td,.dms-table tbody .bday-list-row td{transition:background .1s;}
.bday-list-row.today-row td{background:rgba(245,184,48,.06)!important;}
.bday-list-row.upcoming-row td:first-child{border-left:3px solid var(--green);}
#bdayTooltip{position:fixed;z-index:9999;background:var(--bg2);border:1px solid var(--br2);border-radius:var(--r3);box-shadow:var(--sh2);padding:14px;min-width:220px;max-width:280px;pointer-events:none;display:none;font-size:13px;}
.cal-card-header{background:var(--bg2)!important;border-bottom:1px solid var(--br1)!important;color:var(--tx0)!important;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;}
@media(max-width:576px){.cal-day{min-height:48px;}.cal-birthday{font-size:.58rem;}.cal-day-num{font-size:.65rem;}}

/* ═══ BOOTSTRAP COMPAT ═══════════════════════════════════════════ */
.row{display:flex;flex-wrap:wrap;margin:-8px;}
.row.g-3>[class*="col-"]{padding:8px;}
.col-12{width:100%;padding:8px;} .col-6{width:50%;padding:8px;}
.col-md-2{width:16.666%;padding:8px;} .col-md-3{width:25%;padding:8px;}
.col-md-4{width:33.333%;padding:8px;} .col-md-6{width:50%;padding:8px;}
.col-md-8{width:66.666%;padding:8px;}
@media(max-width:768px){.col-md-2,.col-md-3,.col-md-4,.col-md-6,.col-md-8{width:100%;}}
.col-sm-4{width:33.333%;padding:8px;}
@media(max-width:576px){.col-sm-4{width:50%;padding:8px;}}
.me-1{margin-right:4px;} .me-2{margin-right:8px;} .ms-1{margin-left:4px;} .ms-2{margin-left:8px;}
.mt-1{margin-top:4px;} .mt-4{margin-top:16px;}
.d-flex{display:flex;} .align-items-center{align-items:center;} .align-items-start{align-items:flex-start;}
.justify-content-between{justify-content:space-between;} .flex-shrink-0{flex-shrink:0;}
.text-nowrap,.nowrap{white-space:nowrap;} .text-center{text-align:center;}
.text-muted{color:var(--tx1)!important;} .small{font-size:12px;}
.d-none{display:none;} .opacity-50{opacity:.5;}
@media(min-width:768px){.d-md-inline{display:inline!important;}}
.text-small{font-size:12px;}
.fw-bold{font-weight:700;} .fw-500{font-weight:500;}

/* Tooltip */
.tooltip-inner{background:var(--bg3)!important;color:var(--tx0)!important;border:1px solid var(--br2)!important;font-size:12px!important;border-radius:var(--r2)!important;}
.tooltip{z-index:1070;}
