
/* SCHOOL EXCURSION LIGHT THEME
   No black/dark page backgrounds.
   Sky Blue + Earthy Green + Bright Orange.
*/
:root{
  --sky-blue:#55c7f2;
  --sky-blue-soft:#e6f7fc;
  --earth-green:#6fa56a;
  --earth-green-soft:#e8f3e3;
  --adventure-orange:#ff9a3d;
  --adventure-orange-soft:#fff0df;
  --page-bg:#f7fcfd;
  --surface:#ffffff;
  --surface-soft:#f0f8f7;
  --text:#18343a;
  --text-muted:#58747a;
  --border:#cfe5e5;
}
html, body{
  background:#f7fcfd !important;
  color:var(--text);
}
.profile-page{min-height:100vh;background:#f4fafb;color:#eef8ff}.profile-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:16px clamp(18px,4vw,52px);border-bottom:1px solid rgba(129,203,255,.12);background:rgba(7,17,30,.82);backdrop-filter:blur(18px)}.profile-topbar .brand{margin-right:auto}.session-pill{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:999px;border:1px solid rgba(101,230,162,.22);background:rgba(101,230,162,.055);color:#c7e6b8;font:700 9px/1 inherit;letter-spacing:.09em;text-transform:uppercase}.session-pill i{width:7px;height:7px;border-radius:50%;background:#7fb069;box-shadow:0 0 12px rgba(101,230,162,.7)}.session-pill strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.05em;color:#eef8e8}.profile-logout,.back-link{border:1px solid rgba(129,203,255,.15);background:rgba(129,203,255,.045);color:#dcefff;border-radius:12px;padding:10px 13px;font:700 9px/1 inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform .35s var(--butter),border-color .35s var(--butter),background .35s var(--butter)}.profile-logout:hover,.back-link:hover{transform:translateY(-2px);background:rgba(129,203,255,.08);border-color:rgba(129,203,255,.32)}.private-dashboard{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:clamp(48px,7vw,86px) 0 80px}.dashboard-intro{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:28px}.dashboard-intro h1{font-size:clamp(42px,6vw,70px);line-height:.98;margin:10px 0 12px;letter-spacing:-.04em}.dashboard-intro p{max-width:650px;margin:0;color:#8096ab;font-size:12px;line-height:1.7}.mini-label,.detail-label{display:block;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:#6d849a}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-card{min-height:112px;padding:20px;border:1px solid rgba(151,190,226,.1);border-radius:18px;background:linear-gradient(145deg,rgba(151,190,226,.05),rgba(151,190,226,.018));box-shadow:0 18px 45px rgba(0,0,0,.15)}.dashboard-card .detail-label{margin-bottom:9px}.dashboard-card strong{display:block;color:#f0f8ff;font-size:14px;line-height:1.45;word-break:break-word}.dashboard-card small{display:block;margin-top:8px;color:#667e94;font-size:9px}.identity-card{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reg-card{grid-column:1/-1;border-color:rgba(115,220,255,.23);background:linear-gradient(135deg,rgba(115,220,255,.08),rgba(142,128,255,.05))}.reg-card strong{font:800 clamp(22px,3vw,30px)/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;color:#e8f8fa}.dashboard-note{margin-top:16px;padding:15px 17px;border-radius:14px;border:1px solid rgba(115,220,255,.12);background:rgba(115,220,255,.045);color:#8ca2b6;font-size:10px;line-height:1.6}.dashboard-state{min-height:300px;display:grid;place-items:center;align-content:center;text-align:center;gap:9px;color:#b9cbda}.dashboard-state strong{font-size:19px;color:#eef8ff}.dashboard-state span{font-size:11px;color:#72889d}.dashboard-state.error strong{color:#ffd5d5}.state-spinner{width:34px;height:34px;border-radius:50%;border:2px solid rgba(115,220,255,.16);border-top-color:#55c7f2;animation:dashspin .8s linear infinite}.state-action{margin-top:8px;padding:11px 14px;border:1px solid rgba(115,220,255,.2);border-radius:12px;color:#e2f7fb;text-decoration:none;font-size:10px;font-weight:700}@keyframes dashspin{to{transform:rotate(360deg)}}@media(max-width:760px){.profile-topbar{flex-wrap:wrap}.profile-topbar .brand{width:100%}.session-pill{margin-left:auto}.dashboard-intro{flex-direction:column;align-items:flex-start}.dashboard-grid{grid-template-columns:1fr}.reg-card{grid-column:auto}.identity-card{grid-template-columns:1fr}.private-dashboard{width:min(100% - 24px,680px);padding-top:38px}}@media(max-width:480px){.session-pill{padding:8px 10px}.session-pill span{display:none}.profile-logout{padding:9px 11px}.dashboard-intro h1{font-size:44px}}

/* v6.5.11: prevent verification/content overlap */
#dashboardContent[hidden]{display:none!important}
.profile-page.is-verifying .private-dashboard{min-height:calc(100vh - 78px);display:grid;align-items:center}
.profile-page.is-verifying #dashboardState{position:fixed;left:0;right:0;top:78px;bottom:0;min-height:0;z-index:15;display:grid;place-items:center;align-content:center;background:linear-gradient(180deg,rgba(7,17,30,.985),rgba(5,14,25,.985));backdrop-filter:blur(10px);padding:30px;box-sizing:border-box}
.profile-page.is-ready .private-dashboard{display:block}
.profile-page.is-ready #dashboardState{display:none}
#dashboardContent{animation:profileReveal .45s ease both}
@keyframes profileReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.profile-page.is-verifying #dashboardState{top:120px}}


/* v6.5.18 light excursion profile theme */
.profile-page{background:linear-gradient(180deg,#f8fcfd,#eef8f5) !important;color:#17333b !important}
.profile-topbar{background:rgba(255,255,255,.94) !important;color:#17333b !important;border-bottom-color:rgba(57,132,143,.14) !important;box-shadow:0 10px 30px rgba(42,91,101,.08) !important}
.profile-card,.profile-panel,.dashboard-card,.profile-section,.profile-summary{background:rgba(255,255,255,.90) !important;color:#24434b !important;border-color:rgba(57,132,143,.14) !important;box-shadow:0 18px 45px rgba(42,91,101,.08) !important}
.profile-page h1,.profile-page h2,.profile-page h3,.profile-page strong{color:#17333b !important}.profile-page p,.profile-page small{color:#68838a !important}
.profile-page input,.profile-page select{background:#fff !important;color:#17333b !important;border-color:rgba(63,130,141,.17) !important}
.profile-page .btn-primary,.profile-page .btn.primary{background:linear-gradient(135deg,#2fb8e7,#159bd0) !important;color:#fff !important}
.profile-page .is-verifying #dashboardState{background:linear-gradient(180deg,#f5fbfd,#edf8f5) !important}

/* Shared excursion light surface */
html,body{background:#f7fcfd !important;color:#18343a !important}
body{background-image:radial-gradient(circle at 10% 10%,rgba(66,191,233,.10),transparent 25%),radial-gradient(circle at 90% 20%,rgba(111,159,104,.10),transparent 28%) !important}
.card,.panel,.modal-card,.form,.table-wrap{background:rgba(255,255,255,.92) !important;color:#18343a !important;border-color:#cfe5e5 !important;box-shadow:0 18px 50px rgba(35,88,96,.11) !important}
button,.btn{transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease !important}
button:hover,.btn:hover{transform:translateY(-3px)}


/* =========================================================
   BRIGHT ORANGE CTA — v6.5.20
   Primary action buttons such as Send OTP.
   ========================================================= */
.btn.primary,
button.primary,
.send-otp,
#sendOtp,
.sendOtpBtn,
button[type="submit"]{
  background:linear-gradient(135deg,#ff9a3d 0%,#ff7a18 100%) !important;
  color:#ffffff !important;
  border:1px solid rgba(236,111,22,.45) !important;
  box-shadow:0 10px 24px rgba(255,143,56,.24) !important;
  font-weight:800 !important;
  transition:transform .3s cubic-bezier(.22,1,.36,1),
             box-shadow .3s ease,
             filter .3s ease !important;
}

.btn.primary:hover,
button.primary:hover,
.send-otp:hover,
#sendOtp:hover,
.sendOtpBtn:hover,
button[type="submit"]:hover{
  background:linear-gradient(135deg,#ffad55 0%,#ff7a18 100%) !important;
  color:#ffffff !important;
  transform:translateY(-3px) scale(1.015) !important;
  box-shadow:0 16px 32px rgba(255,143,56,.32) !important;
  filter:saturate(1.08) !important;
}

.btn.primary:active,
button.primary:active,
.send-otp:active,
#sendOtp:active,
.sendOtpBtn:active,
button[type="submit"]:active{
  transform:translateY(-1px) scale(.99) !important;
  box-shadow:0 7px 16px rgba(255,143,56,.24) !important;
}

.btn.primary::before,
button.primary::before,
.send-otp::before,
#sendOtp::before,
.sendOtpBtn::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  border-radius:inherit !important;
  pointer-events:none !important;
  background:linear-gradient(
    110deg,
    transparent 20%,
    rgba(255,255,255,.42) 48%,
    transparent 72%
  ) !important;
  transform:translateX(-130%) !important;
  animation:orangeCtaShine 3.2s ease-in-out infinite !important;
}

@keyframes orangeCtaShine{
  0%,45%{transform:translateX(-130%)}
  70%,100%{transform:translateX(130%)}
}

/* OTP button specifically: bright orange even if it is a plain button. */
button.send-otp,
button#sendOtp,
button.sendOtpBtn{
  position:relative !important;
  overflow:hidden !important;
  background:#ff8a2b !important;
  color:#fff !important;
}


/* NEON GREEN PRIMARY REGISTRATION CTA — v6.5.22 */
.btn.primary,.btn.register,.register-btn,a.register-btn,button.register-btn,#registerBtn,.hero .btn.primary{
  position:relative !important; overflow:hidden !important;
  color:#102b18 !important;
  background:linear-gradient(135deg,#b8ff3d 0%,#7dff19 48%,#57f20b 100%) !important;
  border:1px solid rgba(78,190,0,.45) !important;
  box-shadow:0 10px 25px rgba(102,255,20,.28),0 0 0 1px rgba(177,255,68,.25) inset !important;
  font-weight:900 !important; text-shadow:none !important;
  transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease,filter .32s ease !important;
}
.btn.primary:hover,.btn.register:hover,.register-btn:hover,a.register-btn:hover,button.register-btn:hover,#registerBtn:hover,.hero .btn.primary:hover{
  color:#0d2413 !important;
  background:linear-gradient(135deg,#d0ff70 0%,#9aff35 45%,#62ff18 100%) !important;
  transform:translateY(-4px) scale(1.025) !important;
  box-shadow:0 16px 34px rgba(87,242,11,.34),0 0 22px rgba(126,255,25,.32),0 0 0 1px rgba(210,255,120,.35) inset !important;
  filter:saturate(1.08) brightness(1.04) !important;
}
.btn.primary:active,.btn.register:active,.register-btn:active,a.register-btn:active,button.register-btn:active,#registerBtn:active,.hero .btn.primary:active{
  transform:translateY(-1px) scale(.99) !important;
  box-shadow:0 7px 16px rgba(87,242,11,.25) !important;
}
.btn.primary::before,.btn.register::before,.register-btn::before,a.register-btn::before,button.register-btn::before,#registerBtn::before,.hero .btn.primary::before{
  content:"" !important; position:absolute !important; inset:0 !important; border-radius:inherit !important;
  pointer-events:none !important;
  background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.62) 46%,transparent 68%) !important;
  transform:translateX(-135%) !important; animation:neonGreenShine 3.2s ease-in-out infinite !important;
}
@keyframes neonGreenShine{0%,42%{transform:translateX(-135%)}68%,100%{transform:translateX(135%)}}
.btn.primary::after,.btn.register::after,.register-btn::after,a.register-btn::after,button.register-btn::after,#registerBtn::after,.hero .btn.primary::after{
  content:"" !important; position:absolute !important; inset:-5px !important; border-radius:inherit !important;
  pointer-events:none !important; box-shadow:0 0 22px rgba(126,255,25,.22) !important;
  opacity:.7 !important; animation:neonGreenPulse 2.8s ease-in-out infinite !important;
}
@keyframes neonGreenPulse{0%,100%{opacity:.42;transform:scale(.99)}50%{opacity:.9;transform:scale(1.012)}}


/* =========================================================
   FINAL CTA SELECTOR FIX — v6.5.23
   The registration page uses #sendOtpBtn.btn.secondary.
   Target the real DOM id so the secondary-button theme cannot
   override the bright orange OTP CTA.
   ========================================================= */
#sendOtpBtn{
  position:relative !important;
  overflow:hidden !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:52px !important;
  padding:0 28px !important;
  color:#ffffff !important;
  background:linear-gradient(135deg,#ffad45 0%,#ff8a24 48%,#ff7414 100%) !important;
  border:1px solid rgba(225,103,11,.45) !important;
  border-radius:16px !important;
  box-shadow:0 10px 26px rgba(255,126,24,.28),0 0 0 1px rgba(255,255,255,.20) inset !important;
  font-weight:800 !important;
  opacity:1 !important;
  text-shadow:0 1px 1px rgba(120,55,0,.12) !important;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,filter .28s ease !important;
}
#sendOtpBtn:hover:not(:disabled){
  color:#ffffff !important;
  background:linear-gradient(135deg,#ffc064 0%,#ff9635 48%,#ff7b17 100%) !important;
  transform:translateY(-3px) !important;
  box-shadow:0 16px 34px rgba(255,126,24,.34),0 0 22px rgba(255,145,42,.18) !important;
  filter:saturate(1.08) !important;
}
#sendOtpBtn:active:not(:disabled){
  transform:translateY(-1px) scale(.985) !important;
  box-shadow:0 7px 16px rgba(255,126,24,.25) !important;
}
#sendOtpBtn:disabled{
  color:#ffffff !important;
  background:linear-gradient(135deg,#ffbd70,#ff9645) !important;
  opacity:.72 !important;
}
#sendOtpBtn::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  border-radius:inherit !important;
  pointer-events:none !important;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.52) 48%,transparent 70%) !important;
  transform:translateX(-135%) !important;
  animation:sendOtpOrangeShine 3.4s ease-in-out infinite !important;
}
#sendOtpBtn::after{
  content:"" !important;
  position:absolute !important;
  inset:-4px !important;
  border-radius:inherit !important;
  pointer-events:none !important;
  box-shadow:0 0 20px rgba(255,126,24,.20) !important;
  animation:sendOtpOrangeGlow 2.8s ease-in-out infinite !important;
}
@keyframes sendOtpOrangeShine{
  0%,42%{transform:translateX(-135%)}
  68%,100%{transform:translateX(135%)}
}
@keyframes sendOtpOrangeGlow{
  0%,100%{opacity:.35;transform:scale(.99)}
  50%{opacity:.82;transform:scale(1.01)}
}


/* =========================================================
   PAYMENT MODAL SCROLL FIX — v6.5.24
   Keeps the registration/payment flow inside one modal while
   allowing the complete UTR + screenshot section to scroll.
   ========================================================= */

/* The overlay itself must be vertically scrollable on short screens. */
#registrationModal{
  align-items:flex-start !important;
  justify-content:center !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  padding:24px 16px !important;
}

/* The card gets a viewport-aware height instead of being clipped. */
#registrationModal .modal-card{
  width:min(620px,100%) !important;
  max-height:calc(100vh - 48px) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(66,191,233,.55) rgba(220,238,233,.65) !important;
  padding-bottom:28px !important;
  text-align:center !important;
}

/* Make the payment section comfortably readable while scrolling. */
#registrationModal .payment-panel{
  max-width:100% !important;
  overflow:visible !important;
}
#registrationModal .payment-proof-card{
  min-width:0 !important;
}
#registrationModal .utr-form{
  min-width:0 !important;
}
#registrationModal #utrInput{
  width:100% !important;
  box-sizing:border-box !important;
}
#registrationModal .payment-panel,
#registrationModal .cash-payment-panel,
#registrationModal .utr-form{
  scroll-margin-top:18px !important;
}

/* A clear but subtle scrollbar on Chromium/Edge. */
#registrationModal .modal-card::-webkit-scrollbar{
  width:8px !important;
}
#registrationModal .modal-card::-webkit-scrollbar-track{
  background:rgba(220,238,233,.55) !important;
  border-radius:99px !important;
}
#registrationModal .modal-card::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#55c7f2,#6fa56a) !important;
  border-radius:99px !important;
  border:2px solid rgba(255,255,255,.75) !important;
}
#registrationModal .modal-card::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#2fb4e5,#5f935e) !important;
}

/* Keep close button accessible while the card is being scrolled. */
#registrationModal .modal-close{
  position:absolute !important;
  z-index:20 !important;
}

/* Short desktop/laptop screens: maximize usable payment area. */
@media (max-height:820px) and (min-width:601px){
  #registrationModal{
    padding:12px 14px !important;
  }
  #registrationModal .modal-card{
    max-height:calc(100vh - 24px) !important;
    padding:28px 28px 24px !important;
  }
}

/* Mobile: card is the single scroll container, with comfortable
   touch scrolling and no content escaping the viewport. */
@media (max-width:600px){
  #registrationModal{
    padding:8px !important;
  }
  #registrationModal .modal-card{
    width:min(100%,520px) !important;
    max-height:calc(100vh - 16px) !important;
    padding:22px 12px 18px !important;
    border-radius:20px !important;
  }
  #registrationModal .modal-close{
    position:sticky !important;
    top:0 !important;
    float:right !important;
    margin-bottom:-35px !important;
  }
}

/* Ensure no old "one-screen" clipping rule can hide the payment form. */
#registrationModal,
#registrationModal .modal-card,
#registrationModal .payment-panel,
#registrationModal .payment-proof-card{
  box-sizing:border-box !important;
}


/* PROJECT CREDITS v6.5.25 */
.project-credits{position:relative;overflow:hidden;padding:100px 24px 110px;background:linear-gradient(180deg,#f7fcfd,#edf8f4);border-top:1px solid #d7eceb}
.project-credits-inner{max-width:1180px;margin:auto;position:relative;z-index:1}
.credits-heading{text-align:center;max-width:760px;margin:0 auto 48px}.credits-heading>span{color:#4f7f59;font-size:11px;font-weight:900;letter-spacing:.18em}.credits-heading h2{font-size:clamp(36px,5vw,60px);line-height:1;margin:12px 0;color:#18343a}.credits-heading h2 em{font-style:normal;background:linear-gradient(90deg,#159dcc,#4f7f59,#ff8f38);-webkit-background-clip:text;background-clip:text;color:transparent}.credits-heading p{color:#58747a;line-height:1.7}
.credits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.credit-person{overflow:hidden;background:rgba(255,255,255,.9);border:1px solid #d2e8e7;border-radius:28px;box-shadow:0 18px 50px rgba(35,88,96,.11);transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s ease}.credit-person:hover{transform:translateY(-10px);box-shadow:0 30px 75px rgba(35,88,96,.18)}.credit-photo{position:relative;aspect-ratio:1;overflow:hidden;background:#e8f5f4}.credit-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,1,.36,1)}.credit-person:hover img{transform:scale(1.06)}.credit-photo b{position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:#18343a;font-size:12px}.credit-person>div:last-child{padding:20px 24px 26px}.credit-person small{color:#6f9f68;font-size:10px;font-weight:900;letter-spacing:.16em}.credit-person h3{margin:6px 0 0;color:#18343a;font-size:28px}
@media(max-width:800px){.credits-grid{grid-template-columns:1fr;max-width:480px;margin:auto}.project-credits{padding:75px 18px 85px}}


/* =========================================================
   INLINE CREDITS — v6.5.26
   Portrait is a small circle immediately beside the name,
   matching the supplied reference layout.
   ========================================================= */
.project-credits{
  position:relative;
  padding:72px 28px 78px !important;
  overflow:hidden;
  background:linear-gradient(180deg,#f8fcfd 0%,#eef8f5 100%) !important;
  border-top:1px solid rgba(66,191,233,.13) !important;
}
.project-credits-inner{
  width:min(1240px,100%);
  margin:auto;
}
.credits-heading{
  margin:0 auto 38px !important;
  text-align:center !important;
}
.credits-heading > span{
  color:#4f7f59 !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
}
.credits-heading h2{
  margin:10px 0 0 !important;
  color:#18343a !important;
  font-size:clamp(32px,4vw,50px) !important;
  line-height:1 !important;
}
.credits-heading h2 em{
  font-style:normal !important;
  background:linear-gradient(90deg,#159dcc,#4f7f59,#ff8f38) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
}
.credits-inline-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:48px !important;
  align-items:center !important;
}
.credit-inline{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  min-width:0 !important;
  padding:10px 6px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  transition:transform .4s cubic-bezier(.22,1,.36,1) !important;
}
.credit-inline:hover{
  transform:translateY(-4px) !important;
}
.credit-inline > img{
  flex:0 0 78px !important;
  width:78px !important;
  height:78px !important;
  aspect-ratio:1/1 !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
  border-radius:50% !important;
  border:3px solid rgba(255,255,255,.96) !important;
  box-shadow:0 8px 22px rgba(35,88,96,.16),0 0 0 1px rgba(66,191,233,.20) !important;
  transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .4s ease !important;
}
.credit-inline:hover > img{
  transform:scale(1.07) !important;
  box-shadow:0 12px 28px rgba(35,88,96,.20),0 0 0 3px rgba(66,191,233,.12) !important;
}
.credit-inline-text{
  min-width:0 !important;
}
.credit-inline-text h3{
  margin:0 0 6px !important;
  color:#122c34 !important;
  font-family:inherit !important;
  font-size:24px !important;
  font-weight:800 !important;
  line-height:1.12 !important;
  letter-spacing:-.02em !important;
}
.credit-inline-text p{
  margin:0 !important;
  color:#607b82 !important;
  font-size:14px !important;
  line-height:1.45 !important;
}
@media (max-width:900px){
  .credits-inline-list{
    grid-template-columns:1fr !important;
    gap:14px !important;
    max-width:620px !important;
    margin:auto !important;
  }
  .credit-inline{
    padding:12px 8px !important;
  }
}
@media (max-width:500px){
  .project-credits{padding:58px 18px 64px !important}
  .credit-inline > img{
    flex-basis:62px !important;
    width:62px !important;
    height:62px !important;
  }
  .credit-inline-text h3{font-size:20px !important}
  .credit-inline-text p{font-size:13px !important}
}

/* v6.6.13 — restore readable contrast on light profile/dashboard */
.profile-page{color:#18343a!important}
.profile-topbar .brand,.profile-topbar .brand span,.profile-topbar .brand b{color:#17333b!important}
.session-pill{color:#4f8a55!important;background:#f4fbf2!important;border-color:rgba(82,163,92,.28)!important;box-shadow:0 8px 22px rgba(65,125,72,.08)!important}
.session-pill i{background:#69a85f!important;box-shadow:0 0 10px rgba(82,163,92,.35)!important}
.session-pill strong{color:#18343a!important}
.profile-logout,.back-link{color:#1d5967!important;background:#f6fbfc!important;border-color:rgba(57,132,143,.25)!important;box-shadow:0 8px 20px rgba(42,91,101,.06)!important}
.profile-logout:hover,.back-link:hover{color:#123f4b!important;background:#edf9fb!important;border-color:rgba(57,185,232,.42)!important}
.private-dashboard{color:#18343a!important}
.dashboard-intro h1{color:#17333b!important}
.dashboard-intro p,.dashboard-state span{color:#5e7880!important}
.mini-label,.detail-label{color:#327989!important}
.dashboard-card{background:rgba(255,255,255,.94)!important;border-color:rgba(57,132,143,.18)!important;box-shadow:0 18px 45px rgba(42,91,101,.09)!important}
.dashboard-card strong{color:#17333b!important}
.dashboard-card small{color:#668087!important}
.reg-card{background:linear-gradient(135deg,#f1fbfd,#f3f8ef)!important;border-color:rgba(57,132,143,.25)!important}
.reg-card strong{color:#17333b!important}
.dashboard-note{background:#f5fbfa!important;border-color:rgba(57,132,143,.18)!important;color:#557179!important}
.dashboard-state{color:#49666d!important}
.dashboard-state strong{color:#17333b!important}
.state-spinner{border-color:rgba(57,185,232,.18)!important;border-top-color:#159bc9!important}
.state-action{color:#1d5967!important;background:#f5fbfc!important;border-color:rgba(57,132,143,.24)!important}
.profile-page.is-verifying #dashboardState{background:linear-gradient(180deg,#f7fcfd,#eef8f5)!important;color:#49666d!important}
.profile-page.is-verifying #dashboardState strong{color:#17333b!important}

/* v6.6.21 — restore high-contrast text inside dark My Gallery panel */
.my-gallery-section .mini-label{color:#55c7f2!important}
.my-gallery-section .my-gallery-head h2{color:#f5f9ff!important}
.my-gallery-section .my-gallery-head p{color:#9fb3c6!important}
.my-gallery-section .gallery-file-drop{color:#dcecff!important}
.my-gallery-section .gallery-file-drop strong{color:#eef7ff!important}
.my-gallery-section .gallery-file-drop small{color:#9bb0c4!important}
.my-gallery-section .gallery-upload-form>label:not(.gallery-file-drop){color:#e7f1fc!important}
.my-gallery-section .gallery-upload-form input:not([type=file]){color:#18343a!important}
.my-gallery-section .gallery-upload-actions span{color:#ffd18a!important}
.my-gallery-section .my-gallery-state{color:#9bb0c4!important}

.my-gallery-section{margin-top:28px;padding:30px;border-radius:24px;background:linear-gradient(145deg,rgba(13,29,49,.94),rgba(8,19,33,.97));border:1px solid rgba(151,190,226,.16);box-shadow:0 24px 70px rgba(0,0,0,.22)}
.my-gallery-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px}.my-gallery-head h2{font:700 34px/1 "Playfair Display",serif;margin:7px 0;color:#f5f9ff}.my-gallery-head p{margin:8px 0 0;color:#7f95ab;font-size:11px;max-width:650px}
.gallery-upload-form{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:end;padding:17px;border:1px dashed rgba(115,220,255,.25);border-radius:18px;background:rgba(115,220,255,.035)}
.gallery-file-drop{min-height:125px;display:grid;place-items:center;align-content:center;gap:5px;padding:18px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid rgba(151,190,226,.13);cursor:pointer;text-align:center;transition:border-color .2s ease,background .2s ease,transform .2s ease}.gallery-file-drop:hover,.gallery-file-drop.dragging{border-color:rgba(115,220,255,.55);background:rgba(115,220,255,.06);transform:translateY(-2px)}.gallery-file-drop input{display:none}.upload-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:rgba(115,220,255,.1);color:#55c7f2;font-size:24px}.gallery-file-drop strong{font-size:12px;color:#eaf4ff}.gallery-file-drop small{font-size:9px;color:#70869f}.gallery-upload-form>label:not(.gallery-file-drop){display:grid;gap:7px;color:#e7f1fc;font-size:11px;font-weight:800}.gallery-upload-form input:not([type=file]){width:100%;padding:13px 14px;border-radius:11px;border:1px solid rgba(151,190,226,.18);outline:none;background:#f4fafb;color:#18343a;font:inherit}.gallery-upload-actions{display:flex;align-items:center;gap:12px;grid-column:2}.gallery-upload-actions span{font-size:10px;color:#7fb069}.gallery-progress{grid-column:1/-1;height:4px;border-radius:999px;background:rgba(151,190,226,.12);overflow:hidden}.gallery-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#6fa56a,#55c7f2);transition:width .2s ease}.my-gallery-state{text-align:center;padding:30px;color:#71859c;font-size:11px}.my-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.my-gallery-card{position:relative;overflow:hidden;border-radius:14px;border:1px solid rgba(151,190,226,.14);background:#081321}.my-gallery-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.my-gallery-card .my-gallery-meta{padding:10px}.my-gallery-card strong{display:block;font-size:10px;color:#eaf4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-gallery-card span{display:block;font-size:9px;color:#71859c;margin-top:3px}.my-gallery-card button{position:absolute;top:8px;right:8px;border:1px solid rgba(255,255,255,.16);background:rgba(5,11,21,.76);color:#fff;border-radius:9px;padding:7px 9px;cursor:pointer}.gallery-status{position:absolute;left:8px;top:8px;padding:5px 7px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;background:rgba(5,11,21,.76);color:#b9d7e3}.gallery-status.approved{color:#9ee38a}.gallery-status.pending{color:#ffd18a}@media(max-width:700px){.my-gallery-head{align-items:start;flex-direction:column}.gallery-upload-form{grid-template-columns:1fr}.gallery-upload-actions{grid-column:1}.my-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.my-gallery-section{padding:18px}}

/* Responsive hardening */
.profile-page{overflow-x:hidden}
@media(max-width:760px){
  .profile-topbar{padding:11px 14px;gap:9px}
  .profile-topbar .brand{width:auto;flex:1;min-width:0}
  .profile-topbar .brand span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .session-pill{flex:0 0 auto}
  .private-dashboard{width:min(100% - 24px,680px);padding-bottom:55px}
  .dashboard-card{min-height:0;padding:17px}
  .my-gallery-section{padding:20px !important}
  .gallery-upload-form{min-width:0}
}
@media(max-width:520px){
  .profile-topbar{flex-wrap:nowrap !important}
  .profile-topbar .brand img{width:38px;height:38px}
  .session-pill strong{font-size:9px}
  .profile-logout{padding:9px 10px;font-size:8px}
  .private-dashboard{width:calc(100% - 20px);padding-top:30px}
  .dashboard-intro h1{font-size:40px}
  .dashboard-intro p{font-size:11px}
  .dashboard-grid{gap:9px}
  .dashboard-card{border-radius:15px;padding:15px}
  .reg-card strong{font-size:19px}
  .my-gallery-section{padding:15px !important;border-radius:18px !important}
  .my-gallery-grid{grid-template-columns:1fr 1fr !important;gap:8px !important}
  .gallery-upload-form{padding:12px !important}
  .gallery-upload-actions{flex-direction:column;align-items:stretch !important}
  .gallery-upload-actions .btn{width:100%}
}
@media(max-width:360px){.my-gallery-grid{grid-template-columns:1fr !important}.session-pill{display:none}}
