/* Shared GrahaDisha navigation, account and app UI. Page styles remain in their pages. */
.gd-nav-actions{display:flex;align-items:center;gap:10px}
.gd-message-link{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;position:relative;background:#fff;color:var(--purple,#5b21b6);border:1.5px solid var(--border,#e4dffa);box-shadow:0 3px 12px rgba(91,33,182,.12);line-height:1;flex:0 0 auto;transition:transform .15s,box-shadow .2s}
.gd-message-link:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(91,33,182,.18)}
.gd-message-link i{font-size:16px}
.gd-message-link-mobile{width:40px;height:40px}
.gd-message-dot{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;background:#dc2626;border:2px solid #fff;box-shadow:0 0 0 1px rgba(220,38,38,.18)}
.gd-message-dot.is-hidden{display:none}
.gd-profile-link{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(120deg,var(--purple,#5b21b6),var(--purple2,#7c3aed));color:#fff;border:2px solid #fff;box-shadow:0 3px 12px rgba(91,33,182,.22);line-height:1;flex:0 0 auto;transition:transform .15s,box-shadow .2s}
.gd-profile-link:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(91,33,182,.28)}
.gd-profile-link img{width:100%;height:100%;display:block;object-fit:cover;border-radius:50%}
.gd-profile-link i{font-size:17px}
.gd-profile-link .gd-profile-fallback{display:none}
.gd-profile-link-mobile{width:40px;height:40px}
.gd-login-open{cursor:pointer}
.gd-rail-group{display:none}
/* Keep the familiar horizontal strip on phones and compact screens. */
@media (min-width:1024px){
  body:has(> .gd-shared-header):has(> .top-nav-bar){--gd-sidebar-width:clamp(224px,19vw,256px);padding-left:var(--gd-sidebar-width)}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .desktop-nav{
    justify-content:space-between;animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;
    box-shadow:0 2px 18px rgba(58,28,107,.035);
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .desktop-nav::before{
    content:attr(data-gd-section);min-width:0;overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap;color:var(--text,#1c1338);font-size:15px;font-weight:750;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .desktop-nav .dnav-brand{
    position:fixed;top:0;left:0;z-index:210;
    width:var(--gd-sidebar-width);height:68px;padding:0 17px;
    background:#fff;border-right:1px solid #e9e3f5;border-bottom:1px solid #eee9f8;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .desktop-nav .dnav-logo{
    width:37px;height:37px;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .desktop-nav .dnav-name{font-size:24px}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar{
    position:fixed;inset:0 auto 0 0;top:0;z-index:195;
    display:flex;flex-direction:column;width:var(--gd-sidebar-width);
    height:100vh;height:100dvh;margin:0;padding:0;overflow:hidden;
    background:#fcfbff;border:0;border-right:1px solid #e9e3f5;
    box-shadow:4px 0 24px rgba(58,28,107,.045);animation:none;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar > .top-nav-inner{
    display:flex;flex:1;flex-direction:column;align-items:stretch;gap:2px;
    width:100%;max-width:none;min-height:0;margin:0;padding:77px 12px 24px;
    overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
    scrollbar-width:thin;scrollbar-color:#d6c9ec transparent;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar > .top-nav-inner::-webkit-scrollbar{display:block;width:6px;height:auto}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar > .top-nav-inner::-webkit-scrollbar-thumb{background:#d6c9ec;border-radius:6px}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .gd-rail-group{
    display:block;flex:none;padding:19px 12px 8px;
    color:#8d82aa;font-size:10px;font-weight:800;letter-spacing:.12em;
    line-height:1.2;text-transform:uppercase;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .gd-rail-group:first-child{padding-top:8px}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill{
    display:flex;align-items:center;flex-shrink:0;width:100%;min-height:39px;
    padding:8px 12px;border:1px solid transparent;border-radius:11px;
    background:transparent;color:var(--text2,#4c4579);
    font-size:13px;font-weight:600;white-space:normal;
    line-height:1.3;text-align:left;transition:background .18s,color .18s,box-shadow .18s;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill .pill-label{font-size:inherit;line-height:inherit}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill:hover:not(.active){
    background:#f0ebfb;color:var(--purple,#5b21b6);
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill.active{
    background:#ede6fb;border-color:#e6dbfa;border-radius:11px;
    box-shadow:inset 3px 0 #7c3aed;color:var(--purple,#5b21b6);
    font-weight:800;
  }
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill.active::after{display:none}
  body:has(> .gd-shared-header):has(> .top-nav-bar) > .top-nav-bar .tn-pill:focus-visible{
    outline:2px solid var(--purple,#5b21b6);outline-offset:-2px;
  }
}
body:has(> .gd-shared-header) .onesignal-bell-container,
body:has(> .gd-shared-header) .onesignal-bell-launcher,
body:has(> .gd-shared-header) #onesignal-bell-container,
body:has(> .gd-shared-header) #onesignal-bell-launcher{display:none!important;visibility:hidden!important;pointer-events:none!important}
.gd-app-install{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:190;height:44px;border:0;border-radius:999px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(120deg,var(--purple,#5b21b6),var(--purple2,#7c3aed));color:#fff;font-size:13px;font-weight:800;box-shadow:0 10px 28px rgba(91,33,182,.28);cursor:pointer}
.gd-app-install[hidden]{display:none}
.gd-app-install i{font-size:15px}
@media(max-width:520px){.gd-app-install{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));height:42px;padding:0 13px;font-size:12.5px}}
@media(display-mode:standalone){.gd-app-install{display:none!important}body:has(> .gd-shared-header){overscroll-behavior-y:contain}}
html.gd-android-app .gd-app-install{display:none!important}
body:has(> .gd-shared-header) .avatar:has(img){cursor:zoom-in}
.gd-profile-photo-viewer{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:rgba(8,5,20,.84);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}
.gd-profile-photo-viewer.open{opacity:1;visibility:visible}
.gd-profile-photo-viewer img{display:block;max-width:min(92vw,540px);max-height:80vh;object-fit:contain;border-radius:18px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.gd-profile-photo-viewer button{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer}

/* ── Mobile login button ─────────────────────────────────── */
.gd-mobile-login{width:40px;height:40px;border:0;border-radius:999px;display:grid;place-items:center;background:linear-gradient(120deg,#5b21b6,#7c3aed);color:#fff;box-shadow:0 4px 14px rgba(91,33,182,.24);font-size:16px;cursor:pointer}

/* ── Modal shell ─────────────────────────────────────────── */
.gd-login-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:16px}
.gd-login-modal.is-open{display:flex}
.gd-login-backdrop{position:absolute;inset:0;background:rgba(15,10,40,.65);backdrop-filter:blur(10px)}
.gd-login-card{
  position:relative;width:min(420px,100%);
  background:linear-gradient(160deg,#fff 0%,#f5f2ff 100%);
  border:1px solid rgba(139,92,246,.18);
  border-radius:24px;
  padding:32px 28px 24px;
  box-shadow:0 24px 80px rgba(28,19,56,.32),0 0 0 1px rgba(255,255,255,.7) inset;
  animation:gdLoginPop .22s cubic-bezier(.34,1.56,.64,1) both;
}

/* ── Close button ────────────────────────────────────────── */
.gd-login-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(139,92,246,.1);color:#6d28d9;display:grid;place-items:center;cursor:pointer;transition:background .15s,transform .15s;font-size:14px}
.gd-login-close:hover{background:rgba(139,92,246,.18);transform:rotate(90deg)}

/* ── Brand row ───────────────────────────────────────────── */
.gd-login-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.gd-login-mark{flex:0 0 50px;display:grid;place-items:center;}
.gd-login-mark img{width:36px;height:36px;object-fit:contain;border-radius:6px}
.gd-login-brand h2{font-family:'Cormorant Garamond',serif;font-size:21px;line-height:1.15;color:#3b0764;margin:0 0 3px}
.gd-login-sub{font-size:12.5px;color:#7c6fa0;margin:0}

/* ── Field label ─────────────────────────────────────────── */
.gd-field-label{font-size:12.5px;font-weight:700;color:#4c4579;margin-bottom:8px;display:flex;align-items:center;gap:6px}

/* ── Phone field ─────────────────────────────────────────── */
.gd-phone-field{
  position:relative;
  border:1.5px solid #e5deff;
  border-radius:14px;
  background:#fff;
  transition:border-color .18s,box-shadow .18s;
  margin-bottom:10px;
}
.gd-phone-field:focus-within{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.12)}
.gd-phone-field .iti{
  width:100%;
  display:block;
  border-radius:12px;
  --iti-border-color:#e5deff;
  --iti-hover-color:#f2edff;
  --iti-path-flags-1x:url("https://cdn.jsdelivr.net/npm/intl-tel-input@29.1.1/dist/img/flags.webp");
  --iti-path-flags-2x:url("https://cdn.jsdelivr.net/npm/intl-tel-input@29.1.1/dist/img/flags@2x.webp");
  --iti-path-globe-1x:url("https://cdn.jsdelivr.net/npm/intl-tel-input@29.1.1/dist/img/globe.webp");
  --iti-path-globe-2x:url("https://cdn.jsdelivr.net/npm/intl-tel-input@29.1.1/dist/img/globe@2x.webp");
}
.gd-phone-field .iti:not(.iti--container){
  overflow:visible;
}
.gd-phone-field .iti__country-container{
  top:0;
  bottom:0;
}
.gd-phone-field .iti__selected-country{
  height:100%;
  min-width:94px;
  padding:0 10px 0 12px;
  background:#f8f5ff;
  border:0;
  border-right:1.5px solid #e5deff;
  border-radius:0;
  display:flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
}
.gd-phone-field .iti__selected-country:hover,
.gd-phone-field .iti__selected-country:focus{background:#efe8ff;outline:0}
.gd-phone-field .iti__selected-dial-code{font-size:13.5px;font-weight:700;color:#5b21b6;margin-left:2px}
.gd-phone-field .iti__arrow{border-top-color:#8b5cf6;margin-left:2px}
.gd-phone-field .iti__arrow--up{border-top:0;border-bottom-color:#8b5cf6}
.gd-phone-field .iti__tel-input,
.gd-phone-input{
  width:100%;
  height:48px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#1c1338;
  font-size:15px;
  outline:0!important;
  box-shadow:none!important;
}
.gd-phone-field .iti--separate-dial-code .iti__tel-input,
.gd-phone-field .iti--separate-dial-code .gd-phone-input{padding-right:14px!important}
.gd-phone-input::placeholder{color:#c4b8e8}
.iti__country-selector{
  z-index:10001!important;
  border:1.5px solid #e5deff!important;
  border-radius:14px!important;
  box-shadow:0 18px 52px rgba(28,19,56,.22)!important;
  overflow:hidden!important;
  background:#fff!important;
}
body > .iti--detached-country-selector{z-index:20000!important}
.iti__search-input{
  height:42px!important;
  padding:0 13px!important;
  border:0!important;
  border-bottom:1px solid #ede8ff!important;
  border-radius:0!important;
  background:#faf8ff!important;
  color:#1c1338!important;
  font-size:13.5px!important;
  outline:0!important;
}
.iti__country-list{max-height:240px!important;padding:4px 0!important;margin:0!important}
.iti__country{padding:8px 12px!important;align-items:center!important}
.iti__country:hover,
.iti__country.iti__highlight{background:#f2edff!important}
.iti__country-name{font-size:13.5px!important;color:#2d1b69!important}
.iti__dial-code{font-size:12.5px!important;font-weight:700!important;color:#7c3aed!important}
@media(max-width:460px){
  .gd-login-card{padding:28px 18px 22px}
  .gd-phone-field .iti__selected-country{min-width:86px;padding-left:10px;padding-right:8px}
  .iti--inline-country-selector .iti__country-selector{width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)!important}
}

/* ── Submit button ───────────────────────────────────────── */
.gd-submit-btn{height:48px;width:100%;border:0;border-radius:14px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px rgba(22,163,74,.28);transition:opacity .15s,transform .15s}
.gd-submit-btn:hover{opacity:.92;transform:translateY(-1px)}
.gd-submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.gd-submit-verify{background:linear-gradient(135deg,#6d28d9,#7c3aed);box-shadow:0 4px 16px rgba(109,40,217,.3)}

/* ── Divider ─────────────────────────────────────────────── */
.gd-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:#b8aed8;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.gd-divider::before,.gd-divider::after{content:"";height:1px;background:#e9e4fa;flex:1}

/* ── Google button ───────────────────────────────────────── */
.gd-google-button{min-height:48px;display:flex;justify-content:center;margin-bottom:16px}

/* ── Terms ───────────────────────────────────────────────── */
.gd-login-terms{font-size:11.5px;color:#9991b8;text-align:center;margin:0}
.gd-login-terms a{color:#7c3aed;text-decoration:none}
.gd-login-terms a:hover{text-decoration:underline}

/* ── OTP screen ──────────────────────────────────────────── */
.gd-back-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;font-size:13px;font-weight:600;color:#7c3aed;cursor:pointer;padding:0;margin-bottom:20px;transition:color .15s}
.gd-back-btn:hover{color:#4c1d95}
.gd-otp-header{text-align:center;margin-bottom:22px}
.gd-otp-icon{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#e6f9ee;color:#16a34a;font-size:26px;margin-bottom:12px}
.gd-otp-header h3{font-family:'Cormorant Garamond',serif;font-size:22px;color:#3b0764;margin:0 0 6px}
.gd-otp-header p{font-size:13px;color:#7c6fa0;margin:0}

/* ── OTP boxes ───────────────────────────────────────────── */
.gd-otp-boxes{display:flex;gap:8px;justify-content:center;margin-bottom:16px}
.gd-otp-box{width:46px;height:54px;border:1.5px solid #e5deff;border-radius:12px;text-align:center;font-size:22px;font-weight:700;color:#3b0764;background:#fff;outline:none;transition:border-color .18s,box-shadow .18s;caret-color:#7c3aed}
.gd-otp-box:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.14)}
.gd-otp-box.is-filled{border-color:#7c3aed;background:#f9f7ff}
@media(max-width:380px){.gd-otp-box{width:38px;height:46px;font-size:18px;gap:5px}}

/* ── Resend ──────────────────────────────────────────────── */
.gd-resend-row{text-align:center;font-size:13px;color:#7c6fa0;margin:12px 0 0}
.gd-resend-btn{border:0;background:none;color:#7c3aed;font-weight:600;cursor:pointer;padding:0;font-size:13px}
.gd-resend-btn:hover{text-decoration:underline}

/* ── Status ──────────────────────────────────────────────── */
.gd-login-status{min-height:22px;margin:12px 0 0!important;font-size:13px!important;color:#7c6fa0!important;display:flex;align-items:center;justify-content:center;gap:8px}
.gd-login-status.is-loading::before{content:"";width:14px;height:14px;border-radius:50%;flex:0 0 14px;border:2px solid #ede9fe;border-top-color:#7c3aed;animation:gdSpin .75s linear infinite}
.gd-login-status.is-error{color:#be123c!important}
.gd-login-status.is-success{color:#16a34a!important}

body.gd-login-locked{overflow:hidden}
@keyframes gdLoginPop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
@keyframes gdSpin{to{transform:rotate(360deg)}}
