/* V40 visual polish based on the approved Spring of Hope mobile reference screens.
   This file changes presentation only; existing content and functions remain intact. */
:root{
  --v40-green:#00452f;--v40-green-2:#006044;--v40-green-3:#0c7254;
  --v40-gold:#e7a915;--v40-gold-soft:#fff4cf;--v40-navy:#0d3d73;
  --v40-ink:#15271f;--v40-muted:#66756d;--v40-line:#dce6e1;--v40-bg:#f7f9f8;
  --v40-shadow:0 10px 28px rgba(0,59,40,.08);--v40-radius:18px;
}
html{scroll-behavior:smooth}
body{background:var(--v40-bg);color:var(--v40-ink)}
.container{width:min(1180px,calc(100% - 40px))}
header{background:linear-gradient(105deg,#003d2b,#004f38)!important;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.header{min-height:78px}.brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}.brand strong{font-size:18px}.brand span{color:var(--v40-gold)!important;font-family:Georgia,serif;font-style:italic}
header nav a{border-radius:9px;padding:9px 10px}header nav a:hover,header nav a.active{background:rgba(255,255,255,.09)}header nav .cta{background:var(--v40-gold)!important;color:#173729!important}
.btn.green,.primary-btn,.portal-btn{background:var(--v40-green)!important}.btn.gold,.portal-btn.gold{background:var(--v40-gold)!important;color:#173729!important}

/* ===== Member login / recovery ===== */
.member-auth-section{padding:54px 0 70px;background:linear-gradient(180deg,#f7faf8,#eef4f1)}
.member-auth-grid{max-width:1080px;grid-template-columns:minmax(360px,.86fr) minmax(420px,1.14fr);gap:34px;align-items:stretch}
.member-login-card,.reset-wrap{border:0!important;border-radius:24px!important;box-shadow:0 22px 54px rgba(0,63,43,.14)!important;background:#fff;padding:36px!important}
.member-login-card{position:relative;overflow:hidden}.member-login-card:before{content:"";position:absolute;left:0;top:0;right:0;height:8px;background:linear-gradient(90deg,var(--v40-green),var(--v40-gold))}
.member-lock{width:64px;height:64px;border-radius:50%;background:var(--v40-green);color:var(--v40-gold);font-size:30px;margin:0 auto 18px;box-shadow:0 0 0 8px #edf6f2}
.member-login-card h2{text-align:center;font-size:30px;color:var(--v40-green)}.member-login-card>p.member-muted{text-align:center}
.member-label{color:#29483c}.member-login-card .field,.reset-wrap .field{min-height:52px;border-radius:12px;border:1px solid #d8e3de;background:#fbfcfc;padding:0 14px}.member-full-btn{min-height:52px;border-radius:12px;font-weight:900;letter-spacing:.02em}
.member-login-info{border-radius:24px;background:linear-gradient(135deg,#003e2c,#00563c);color:white;padding:38px;box-shadow:var(--v40-shadow);position:relative;overflow:hidden}.member-login-info:after{content:"♫";position:absolute;right:-20px;bottom:-45px;font-size:210px;color:rgba(255,255,255,.035);transform:rotate(-12deg)}.member-login-info h2{color:white;font-size:34px}.member-login-info p{color:#e2efe9}.member-login-info .member-feature-list{grid-template-columns:1fr 1fr}.member-login-info .member-feature-list span{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.17);color:white}
.reset-wrap{max-width:690px!important}.reset-wrap .member-lock{margin-left:0}.reset-wrap h2{font-size:28px;color:var(--v40-green)}

/* ===== Members portal desktop ===== */
.portal-body{background:#f3f6f4}
.portal-topbar{height:84px;background:linear-gradient(100deg,#003d2b,#00523a);padding:0 30px;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.portal-brand img{width:56px;height:56px;background:#fff;padding:2px;object-fit:contain}.portal-brand strong{font-size:18px;letter-spacing:.02em}.portal-brand small{color:var(--v40-gold);font-family:Georgia,serif;font-size:14px}
.portal-layout{grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 84px)}.portal-sidebar{background:#003d2b;border-right:0;padding:22px 13px;position:sticky;top:84px;height:calc(100vh - 84px);overflow:auto}.portal-sidebar a,.portal-sidebar button{color:#e9f3ef}.portal-sidebar a.active,.portal-sidebar a:hover,.portal-sidebar button:hover{background:linear-gradient(90deg,#096a4c,#0a7a56);color:#fff}.portal-public-link{border:1px solid rgba(255,255,255,.18)!important;margin-top:18px}.portal-main{max-width:none;padding:30px 34px 54px}.portal-welcome{border-radius:22px;padding:30px 34px;background:linear-gradient(105deg,#00452f 0%,#005f43 60%,#003d2b 100%);box-shadow:var(--v40-shadow);position:relative;overflow:hidden}.portal-welcome:after{content:"♪ ♫ ♪";position:absolute;right:34px;bottom:-12px;color:rgba(255,255,255,.08);font-size:70px}.portal-welcome h1{font-size:34px}.dashboard-identity{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.dashboard-chip{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.16)!important;color:white!important;border-radius:999px!important}
.portal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.portal-stat,.portal-panel{border-radius:16px;border:1px solid var(--v40-line);box-shadow:0 5px 18px rgba(0,58,40,.045)}.portal-stat{min-height:110px;position:relative;overflow:hidden}.portal-stat:after{content:"";position:absolute;left:16px;right:16px;bottom:12px;height:2px;background:linear-gradient(90deg,var(--v40-green),transparent);opacity:.25}.portal-stat strong{font-size:30px;color:var(--v40-green)}.portal-content-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}
.portal-section-head h1{font-size:28px;color:var(--v40-green)}.profile-grid{grid-template-columns:210px minmax(0,1fr)}.profile-large-avatar{width:165px;height:165px;border-radius:50%!important;border:5px solid white;box-shadow:0 0 0 2px var(--v40-gold),0 8px 20px rgba(0,0,0,.1)}

/* Attendance visual system */
.attendance-shell{display:grid;gap:18px}.attendance-summary{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:12px!important}.att-card{background:#fff!important;border:1px solid var(--v40-line)!important;border-radius:15px!important;padding:16px!important;box-shadow:0 4px 14px rgba(0,60,40,.035)}.att-card strong{color:var(--v40-green)!important;font-size:25px!important}.attendance-tabs{background:#fff;border:1px solid var(--v40-line);border-radius:14px;padding:6px;display:flex;gap:6px;flex-wrap:wrap}.attendance-tab{border-radius:10px!important}.attendance-tab.active{background:var(--v40-green)!important;color:#fff!important}.att-table-wrap{border:1px solid var(--v40-line);border-radius:14px;overflow:auto}.att-table thead th{background:#0e3d70!important;color:#fff!important}.att-table tbody tr:nth-child(even){background:#fafcfb}.att-table td,.att-table th{padding:13px 12px!important}.att-status-present,.status-present{color:#087246}.att-status-late,.status-late{color:#b47700}.att-status-excused,.status-excused{color:#174f92}.att-status-absent,.status-absent{color:#b32626}

/* ===== Media ===== */
.media-hero{padding:72px 0!important;background:linear-gradient(100deg,rgba(0,61,43,.97),rgba(0,61,43,.86)),url("assets/024A9429.JPG") center 40%/cover no-repeat!important}.media-hero-inner{max-width:820px}.media-hero h1{font-size:clamp(44px,5vw,72px)}
.media-featured,.media-gallery-section{background:#f6f8f7!important}.featured-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.featured-video-card{background:#fff;border:1px solid var(--v40-line);border-radius:18px;overflow:hidden;box-shadow:var(--v40-shadow);transition:.2s transform,.2s box-shadow}.featured-video-card:hover{transform:translateY(-3px);box-shadow:0 15px 34px rgba(0,59,40,.12)}.video-thumb{aspect-ratio:16/9}.play-badge{width:58px!important;height:58px!important;border-radius:50%!important;background:rgba(255,255,255,.92)!important;color:var(--v40-green)!important;display:grid!important;place-items:center!important}.platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.platform-card{border-radius:15px!important;border:1px solid var(--v40-line)!important;box-shadow:0 4px 14px rgba(0,60,40,.03)}.gallery-placeholder-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.media-kit-card{background:linear-gradient(105deg,#003f2d,#005b40)!important;border:1px solid rgba(231,169,21,.35);box-shadow:var(--v40-shadow)}

/* ===== Admin Users & Roles ===== */
.v40-role-guide{margin-top:18px}.v40-role-guide h3{margin:0 0 5px;color:var(--v40-green)}.v40-role-guide>p{margin:0 0 16px;color:var(--v40-muted)}.v40-role-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v40-role-guide-card{background:#fff;border:1px solid var(--v40-line);border-radius:14px;padding:15px;box-shadow:0 4px 14px rgba(0,60,40,.03)}.v40-role-guide-card b{display:block;color:var(--v40-green);margin-bottom:6px}.v40-role-guide-card p{margin:0;color:#607269;font-size:13px;line-height:1.5}.v38-role-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}.v38-role-row{grid-template-columns:minmax(250px,1fr) minmax(210px,.55fr) auto!important}.v38-role-row select{min-width:205px!important}

/* Mobile app-like navigation injected by V40 JS */
.v40-mobile-bottom{display:none}

@media(max-width:1100px){
  .portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}.v40-role-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .container{width:min(100% - 28px,760px)}
  .member-auth-grid{grid-template-columns:1fr;max-width:620px}.member-login-info .member-feature-list{grid-template-columns:1fr 1fr}
  .portal-layout{grid-template-columns:1fr}.portal-sidebar{display:none}.portal-main{padding:20px 16px 112px}.portal-topbar{height:78px;padding:0 16px}.portal-brand img{width:50px;height:50px}.portal-grid{grid-template-columns:1fr 1fr}.portal-content-grid{grid-template-columns:1fr}.attendance-summary{grid-template-columns:repeat(3,1fr)!important}.profile-grid{grid-template-columns:1fr}.featured-video-grid{grid-template-columns:1fr 1fr}.gallery-placeholder-grid{grid-template-columns:1fr 1fr}.v40-role-guide-grid{grid-template-columns:1fr 1fr}.v38-role-row{grid-template-columns:1fr!important}
  .v40-mobile-bottom{position:fixed;left:0;right:0;bottom:0;z-index:100;background:linear-gradient(100deg,#003d2b,#00533a);display:grid;grid-template-columns:repeat(5,1fr);padding:9px max(8px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -4px 20px rgba(0,0,0,.18)}.v40-mobile-bottom a,.v40-mobile-bottom button{border:0;background:none;color:#fff;text-decoration:none;text-align:center;font:inherit;font-size:11px;display:grid;gap:3px;justify-items:center;padding:3px 1px}.v40-mobile-bottom .ico{font-size:22px;line-height:1}.v40-mobile-bottom .active{color:var(--v40-gold)}
  body.has-v40-mobile-bottom{padding-bottom:78px}
}
@media(max-width:620px){
  body{background:#fff}.container{width:calc(100% - 28px)}
  header .header{min-height:72px}.brand img{width:48px;height:48px}.brand strong{font-size:15px}.brand span{font-size:12px}
  .page-hero{padding:38px 0!important}.page-hero h1{font-size:34px!important}
  .member-auth-section{padding:20px 0 34px;background:linear-gradient(180deg,#00432f 0 235px,#fff 235px 100%)}.member-login-card,.reset-wrap{padding:25px 20px!important;border-radius:22px!important}.member-login-info{padding:24px 20px;border-radius:20px}.member-login-info .member-feature-list{grid-template-columns:1fr}.member-login-card h2{font-size:27px}.member-login-card .field,.reset-wrap .field{min-height:50px}
  .portal-topbar{height:72px}.portal-brand strong{font-size:14px}.portal-brand small{font-size:12px}.portal-user .portal-avatar{width:38px;height:38px}.portal-logout{font-size:0;padding:8px}.portal-logout:after{content:"↪";font-size:20px}
  .portal-welcome{padding:23px 20px;border-radius:18px;align-items:flex-start;flex-direction:column}.portal-welcome h1{font-size:27px}.portal-grid{grid-template-columns:1fr 1fr;gap:10px}.portal-stat{padding:14px;min-height:92px}.portal-stat strong{font-size:24px}.portal-panel{padding:16px}.portal-content-grid{gap:12px}.attendance-summary{grid-template-columns:1fr 1fr!important}.att-card{padding:12px!important}.att-card strong{font-size:22px!important}.profile-large-avatar{width:130px;height:130px}.profile-details{grid-template-columns:1fr}
  .media-hero{padding:35px 0!important;background:linear-gradient(100deg,#003d2b,#00533a)!important}.media-hero h1{font-size:36px!important;margin-bottom:8px}.media-hero p{font-size:14px!important;line-height:1.55}.media-hero-actions{gap:8px}.media-hero-actions .btn{font-size:12px;padding:10px 12px}.media-featured,.media-platforms,.media-gallery-section,.media-press,.media-kit{padding:34px 0!important}.featured-video-grid{grid-template-columns:1fr;gap:14px}.featured-video-card:first-child .video-thumb{aspect-ratio:16/9}.featured-video-info{padding:16px}.featured-video-info h3{font-size:21px}.platform-grid{grid-template-columns:1fr 1fr;gap:10px}.platform-card{padding:12px!important}.platform-card p{display:none}.gallery-placeholder-grid{grid-template-columns:1fr 1fr;gap:10px}.gallery-placeholder{min-height:150px;padding:14px}.media-gallery-section .v38-public-gallery{grid-template-columns:1fr 1fr!important;gap:10px!important}.v38-public-gallery-card img{height:150px!important}.media-kit-card{padding:22px!important}
  .v40-role-guide-grid{grid-template-columns:1fr}.v38-role-summary{grid-template-columns:1fr 1fr!important}.v38-toolbar{flex-direction:column;align-items:stretch}.v38-role-row select{width:100%;min-width:0!important}
}
