:root{--sis-blue:#073b82;--sis-navy:#061d45;--sis-gold:#c99118;--sis-teal:#0f9b9f;--sis-soft:#f4f7fb;--sis-text:#10223f;--sis-border:#dce5f1;--radius:18px;--shadow:0 18px 45px rgba(6,29,69,.12)}
*{box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--sis-text);background:#fff}.public-nav{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 8px 28px rgba(6,29,69,.08)}.brand-logo{width:54px;height:54px;object-fit:contain}.navbar-brand strong{display:block;color:var(--sis-blue);font-size:1.1rem;line-height:1}.navbar-brand small{display:block;color:var(--sis-navy);font-size:.78rem}.nav-link{font-weight:650;color:#19304f!important}.nav-link:hover{color:var(--sis-gold)!important}.btn-gold{background:linear-gradient(135deg,#d8a62a,#b9840d);color:#fff;border:0;box-shadow:0 10px 25px rgba(201,145,24,.28)}.btn-primary{background:var(--sis-blue);border-color:var(--sis-blue)}.btn-teal{background:var(--sis-teal);border-color:var(--sis-teal);color:#fff}.hero{position:relative;min-height:620px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(6,29,69,.88),rgba(6,29,69,.36)),url('../img/hero-campus.svg');background-size:cover;background-position:center;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -8% -18% -8%;height:170px;background:#fff;border-radius:50% 50% 0 0}.hero .container{position:relative;z-index:2}.hero h1{font-size:clamp(2.5rem,5vw,5.2rem);font-weight:800;letter-spacing:-.04em;color:#fff;line-height:.95}.hero p{font-size:1.25rem;color:rgba(255,255,255,.92)}.section-title{font-weight:800;color:var(--sis-navy);letter-spacing:-.03em}.quick-card,.program-card,.news-card,.info-card{background:#fff;border:1px solid var(--sis-border);border-radius:var(--radius);box-shadow:0 12px 30px rgba(6,29,69,.07)}.quick-card{padding:20px;height:100%;transition:.2s}.quick-card:hover,.program-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.quick-icon{width:48px;height:48px;border-radius:14px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-weight:800}.program-card{overflow:hidden;height:100%;transition:.2s}.program-img{height:170px;background:linear-gradient(135deg,#dfe8f5,#fff);position:relative;overflow:hidden}.program-img img{width:100%;height:100%;object-fit:cover}.program-body{padding:20px}.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef8f8;color:var(--sis-teal);padding:6px 12px;font-size:.78rem;font-weight:700}.cta-band{background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));border-radius:28px;color:#fff;padding:42px;box-shadow:var(--shadow)}.page-hero{background:linear-gradient(135deg,var(--sis-blue),#0e5bbb);color:#fff;padding:80px 0 54px}.content-page{font-size:1.06rem;line-height:1.8}.public-footer{background:var(--sis-navy);color:#fff}.public-footer a{display:block;color:rgba(255,255,255,.76);text-decoration:none;margin:.38rem 0}.footer-logo{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:50%;padding:4px}.footer-bottom{background:rgba(0,0,0,.18);color:rgba(255,255,255,.75)}.ai-float{position:fixed;right:22px;bottom:22px;z-index:1040;border:0;border-radius:999px;background:linear-gradient(135deg,var(--sis-teal),#086f7b);color:#fff;padding:14px 20px;font-weight:800;box-shadow:0 16px 40px rgba(15,155,159,.35)}.ai-modal{border:0;border-radius:22px;overflow:hidden}.ai-modal .modal-header{background:var(--sis-teal);color:#fff}.ai-messages{height:310px;overflow:auto;background:var(--sis-soft);border-radius:16px;padding:14px}.ai-msg{max-width:86%;padding:10px 12px;border-radius:14px;margin-bottom:10px;font-size:.94rem}.ai-msg.bot{background:#fff;border:1px solid var(--sis-border)}.ai-msg.user{margin-left:auto;background:var(--sis-blue);color:#fff}.admin-body{background:#f3f6fb;min-height:100vh}.admin-login{min-height:100vh;background:radial-gradient(circle at top left,#e8f1ff 0,#fff 42%,#f5f7fb 100%);display:flex;align-items:center}.login-card{background:#fff;border:1px solid var(--sis-border);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.login-brand{background:linear-gradient(180deg,#edf5ff,#fff);display:flex;align-items:center;justify-content:center;text-align:center;padding:48px}.login-brand img{width:140px}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:270px;background:linear-gradient(180deg,var(--sis-navy),#063a7d);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 16px;z-index:10}.admin-sidebar .logo{display:flex;gap:12px;align-items:center;margin-bottom:24px}.admin-sidebar img{width:46px;height:46px;background:#fff;border-radius:50%;padding:3px}.admin-sidebar a{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.83);text-decoration:none;padding:12px 14px;border-radius:13px;font-weight:650;margin:4px 0}.admin-sidebar a:hover,.admin-sidebar a.active{background:rgba(255,255,255,.12);color:#fff}.admin-main{margin-left:270px;flex:1}.admin-topbar{height:74px;background:#fff;border-bottom:1px solid var(--sis-border);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.admin-content{padding:26px}.stat-card,.admin-card{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06)}.stat-card{padding:22px}.stat-card h3{font-weight:850;margin:8px 0 0}.table-card{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06);overflow:hidden}.table th{font-size:.78rem;text-transform:uppercase;color:#62708a;background:#f7f9fd}.badge-soft{background:#e8f7ee;color:#18894b;border-radius:999px;padding:5px 10px;font-weight:700;font-size:.76rem}.badge-draft{background:#fff5d6;color:#a16b00}.form-control,.form-select{border-radius:12px;border-color:#d6e1ef;padding:.75rem .9rem}.btn{border-radius:12px;font-weight:700}.upload-tile{border:2px dashed #b9c8dc;border-radius:18px;min-height:160px;display:grid;place-items:center;background:#fbfdff;text-align:center;color:#65758e}.thumb{height:150px;background:#dfe8f5;border-radius:16px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.small-muted{color:#687992;font-size:.87rem}@media(max-width:992px){.admin-sidebar{position:static;width:100%;height:auto}.admin-shell{display:block}.admin-main{margin-left:0}.hero{min-height:540px}.quick-card{margin-bottom:12px}.cta-band{padding:28px}.admin-content{padding:18px}}
.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:#dbe6f5}.timeline-item{position:relative;margin-bottom:16px}.timeline-item:before{content:"";position:absolute;left:-21px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--sis-blue);box-shadow:0 0 0 4px #eef5ff}.status-new{background:#e8f1ff;color:#0d4ca3}.status-in_progress,.status-scheduled{background:#fff5d6;color:#a16b00}.status-responded,.status-completed{background:#e8f7ee;color:#18894b}.status-closed,.status-cancelled{background:#f4e8e8;color:#a33}.action-bar{display:flex;gap:8px;flex-wrap:wrap}.form-section{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06);padding:24px}.export-chip{border:1px solid var(--sis-border);background:#fff;border-radius:999px;padding:8px 12px;text-decoration:none;color:var(--sis-blue);font-weight:700}
.status-in-progress{background:#fff5d6;color:#a16b00}

/* Phase 1.4 SEO Manager */
.seo-check-list{display:grid;gap:.65rem;color:#334155;font-size:.94rem}.google-preview{border:1px solid #dbe4ef;background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 24px rgba(15,23,42,.06)}.gp-url{font-size:.85rem;color:#15803d;margin-bottom:4px}.gp-title{font-size:1.12rem;color:#1a0dab;line-height:1.25;margin-bottom:5px}.gp-desc{font-size:.92rem;color:#4d5156;line-height:1.35}

/* Phase 2.1 Menu Manager & Header/Footer Control */
.public-topbar{background:linear-gradient(90deg,var(--sis-navy),var(--sis-blue));color:rgba(255,255,255,.88);padding:8px 0}.topbar-link{color:#fff;text-decoration:none;font-weight:700;border-left:1px solid rgba(255,255,255,.22);padding-left:10px}.topbar-link:hover{color:#ffd77a}.public-nav .nav-link.active{color:var(--sis-gold)!important}.footer-social a{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:12px;margin:0;background:rgba(255,255,255,.08);color:#fff;font-weight:900}.footer-social a:hover{background:var(--sis-gold);color:#fff}.menu-location-card{display:flex;align-items:center;justify-content:space-between;text-decoration:none;border:1px solid var(--sis-border);background:#fff;border-radius:16px;padding:14px 16px;color:var(--sis-navy);font-weight:800;box-shadow:0 8px 20px rgba(6,29,69,.05);transition:.18s}.menu-location-card strong{background:#eef5ff;color:var(--sis-blue);border-radius:999px;min-width:34px;text-align:center;padding:4px 8px}.menu-location-card:hover,.menu-location-card.active{border-color:rgba(7,59,130,.35);transform:translateY(-2px);box-shadow:0 14px 30px rgba(6,29,69,.09)}.menu-location-card.active{background:linear-gradient(135deg,#eef5ff,#fff)}.admin-table code{background:#f4f7fb;border:1px solid #e2e8f0;border-radius:8px;padding:4px 7px;color:#0f376c}@media(max-width:992px){.public-topbar{display:none!important}}

/* Phase 2.2 Calendar & Events Schedule */
.calendar-hero{background:linear-gradient(135deg,rgba(7,59,130,.96),rgba(6,29,69,.92)),url('../img/hero-campus.svg');background-size:cover;background-position:center}.calendar-mini-card{background:#fff;color:var(--sis-navy);border-radius:28px;padding:26px;text-align:center;box-shadow:var(--shadow);max-width:260px;margin-left:auto}.calendar-mini-month{font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--sis-gold);font-size:.9rem}.calendar-mini-day{font-size:4.5rem;line-height:1;font-weight:900;color:var(--sis-blue)}.calendar-mini-text{color:#64748b;font-weight:700}.event-filter-bar{background:#fff;border:1px solid var(--sis-border);border-radius:22px;padding:18px;box-shadow:0 12px 30px rgba(6,29,69,.07)}.event-list{display:grid;gap:16px}.event-item{display:flex;gap:18px;background:#fff;border:1px solid var(--sis-border);border-radius:22px;padding:18px;box-shadow:0 10px 28px rgba(6,29,69,.06);transition:.18s}.event-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.event-date-box{min-width:78px;height:86px;border-radius:18px;background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(7,59,130,.22)}.event-date-box strong{font-size:2rem;line-height:1;font-weight:900}.event-date-box span{text-transform:uppercase;font-size:.8rem;font-weight:800;color:#ffd77a}.event-content h4{font-weight:850;color:var(--sis-navy);margin-bottom:8px}.calendar-cat{display:inline-flex;align-items:center;border-radius:999px;background:#eef5ff;color:var(--sis-blue);padding:5px 10px;font-size:.76rem;font-weight:800}.calendar-audience{display:inline-flex;align-items:center;border-radius:999px;background:#eef8f8;color:var(--sis-teal);padding:5px 10px;font-size:.76rem;font-weight:800}.calendar-chip{display:inline-flex;border:1px solid var(--sis-border);border-radius:999px;padding:8px 12px;text-decoration:none;color:var(--sis-navy);font-weight:800;background:#fff}.calendar-chip:hover,.calendar-chip.active{background:var(--sis-blue);border-color:var(--sis-blue);color:#fff}.event-feature-card{background:#fff;border:1px solid var(--sis-border);border-radius:24px;overflow:hidden;box-shadow:0 12px 30px rgba(6,29,69,.07);transition:.18s}.event-feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.event-feature-card img{width:100%;height:150px;object-fit:cover;background:#eef5ff}@media(max-width:768px){.event-item{display:block}.event-date-box{margin-bottom:14px}.calendar-mini-card{margin-left:0}.calendar-mini-day{font-size:3.4rem}}

/* Phase 2.3 Multilingual English / Lao UI */
.font-lao,
html[lang="lo"] body {
  font-family: 'Noto Sans Lao', 'Phetsarath OT', 'Saysettha OT', 'Lao UI', Arial, sans-serif;
}
.language-switcher,
.topbar-lang {
  opacity: .9;
}
.translation-list {
  max-height: 560px;
  overflow: auto;
}
.translation-field textarea.bg-light,
.translation-field input.bg-light {
  color: #52627a;
  border-style: dashed;
}
.public-nav .nav-link.active {
  font-weight: 800;
}


/* ===== UI RESTORE HOTFIX: Phase 1.7/1.8/2.0 polished public + admin styles restored ===== */
:root{--sis-blue:#073b82;--sis-navy:#061d45;--sis-gold:#c99118;--sis-teal:#0f9b9f;--sis-soft:#f4f7fb;--sis-text:#10223f;--sis-border:#dce5f1;--radius:18px;--shadow:0 18px 45px rgba(6,29,69,.12)}
*{box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--sis-text);background:#fff}.public-nav{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 8px 28px rgba(6,29,69,.08)}.brand-logo{width:54px;height:54px;object-fit:contain}.navbar-brand strong{display:block;color:var(--sis-blue);font-size:1.1rem;line-height:1}.navbar-brand small{display:block;color:var(--sis-navy);font-size:.78rem}.nav-link{font-weight:650;color:#19304f!important}.nav-link:hover{color:var(--sis-gold)!important}.btn-gold{background:linear-gradient(135deg,#d8a62a,#b9840d);color:#fff;border:0;box-shadow:0 10px 25px rgba(201,145,24,.28)}.btn-primary{background:var(--sis-blue);border-color:var(--sis-blue)}.btn-teal{background:var(--sis-teal);border-color:var(--sis-teal);color:#fff}.hero{position:relative;min-height:620px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(6,29,69,.88),rgba(6,29,69,.36)),url('../img/hero-campus.svg');background-size:cover;background-position:center;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -8% -18% -8%;height:170px;background:#fff;border-radius:50% 50% 0 0}.hero .container{position:relative;z-index:2}.hero h1{font-size:clamp(2.5rem,5vw,5.2rem);font-weight:800;letter-spacing:-.04em;color:#fff;line-height:.95}.hero p{font-size:1.25rem;color:rgba(255,255,255,.92)}.section-title{font-weight:800;color:var(--sis-navy);letter-spacing:-.03em}.quick-card,.program-card,.news-card,.info-card{background:#fff;border:1px solid var(--sis-border);border-radius:var(--radius);box-shadow:0 12px 30px rgba(6,29,69,.07)}.quick-card{padding:20px;height:100%;transition:.2s}.quick-card:hover,.program-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.quick-icon{width:48px;height:48px;border-radius:14px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-weight:800}.program-card{overflow:hidden;height:100%;transition:.2s}.program-img{height:170px;background:linear-gradient(135deg,#dfe8f5,#fff);position:relative;overflow:hidden}.program-img img{width:100%;height:100%;object-fit:cover}.program-body{padding:20px}.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef8f8;color:var(--sis-teal);padding:6px 12px;font-size:.78rem;font-weight:700}.cta-band{background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));border-radius:28px;color:#fff;padding:42px;box-shadow:var(--shadow)}.page-hero{background:linear-gradient(135deg,var(--sis-blue),#0e5bbb);color:#fff;padding:80px 0 54px}.content-page{font-size:1.06rem;line-height:1.8}.public-footer{background:var(--sis-navy);color:#fff}.public-footer a{display:block;color:rgba(255,255,255,.76);text-decoration:none;margin:.38rem 0}.footer-logo{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:50%;padding:4px}.footer-bottom{background:rgba(0,0,0,.18);color:rgba(255,255,255,.75)}.ai-float{position:fixed;right:22px;bottom:22px;z-index:1040;border:0;border-radius:999px;background:linear-gradient(135deg,var(--sis-teal),#086f7b);color:#fff;padding:14px 20px;font-weight:800;box-shadow:0 16px 40px rgba(15,155,159,.35)}.ai-modal{border:0;border-radius:22px;overflow:hidden}.ai-modal .modal-header{background:var(--sis-teal);color:#fff}.ai-messages{height:310px;overflow:auto;background:var(--sis-soft);border-radius:16px;padding:14px}.ai-msg{max-width:86%;padding:10px 12px;border-radius:14px;margin-bottom:10px;font-size:.94rem}.ai-msg.bot{background:#fff;border:1px solid var(--sis-border)}.ai-msg.user{margin-left:auto;background:var(--sis-blue);color:#fff}.admin-body{background:#f3f6fb;min-height:100vh}.admin-login{min-height:100vh;background:radial-gradient(circle at top left,#e8f1ff 0,#fff 42%,#f5f7fb 100%);display:flex;align-items:center}.login-card{background:#fff;border:1px solid var(--sis-border);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.login-brand{background:linear-gradient(180deg,#edf5ff,#fff);display:flex;align-items:center;justify-content:center;text-align:center;padding:48px}.login-brand img{width:140px}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:270px;background:linear-gradient(180deg,var(--sis-navy),#063a7d);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 16px;z-index:10}.admin-sidebar .logo{display:flex;gap:12px;align-items:center;margin-bottom:24px}.admin-sidebar img{width:46px;height:46px;background:#fff;border-radius:50%;padding:3px}.admin-sidebar a{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.83);text-decoration:none;padding:12px 14px;border-radius:13px;font-weight:650;margin:4px 0}.admin-sidebar a:hover,.admin-sidebar a.active{background:rgba(255,255,255,.12);color:#fff}.admin-main{margin-left:270px;flex:1}.admin-topbar{height:74px;background:#fff;border-bottom:1px solid var(--sis-border);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.admin-content{padding:26px}.stat-card,.admin-card{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06)}.stat-card{padding:22px}.stat-card h3{font-weight:850;margin:8px 0 0}.table-card{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06);overflow:hidden}.table th{font-size:.78rem;text-transform:uppercase;color:#62708a;background:#f7f9fd}.badge-soft{background:#e8f7ee;color:#18894b;border-radius:999px;padding:5px 10px;font-weight:700;font-size:.76rem}.badge-draft{background:#fff5d6;color:#a16b00}.form-control,.form-select{border-radius:12px;border-color:#d6e1ef;padding:.75rem .9rem}.btn{border-radius:12px;font-weight:700}.upload-tile{border:2px dashed #b9c8dc;border-radius:18px;min-height:160px;display:grid;place-items:center;background:#fbfdff;text-align:center;color:#65758e}.thumb{height:150px;background:#dfe8f5;border-radius:16px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.small-muted{color:#687992;font-size:.87rem}@media(max-width:992px){.admin-sidebar{position:static;width:100%;height:auto}.admin-shell{display:block}.admin-main{margin-left:0}.hero{min-height:540px}.quick-card{margin-bottom:12px}.cta-band{padding:28px}.admin-content{padding:18px}}
.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:#dbe6f5}.timeline-item{position:relative;margin-bottom:16px}.timeline-item:before{content:"";position:absolute;left:-21px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--sis-blue);box-shadow:0 0 0 4px #eef5ff}.status-new{background:#e8f1ff;color:#0d4ca3}.status-in_progress,.status-scheduled{background:#fff5d6;color:#a16b00}.status-responded,.status-completed{background:#e8f7ee;color:#18894b}.status-closed,.status-cancelled{background:#f4e8e8;color:#a33}.action-bar{display:flex;gap:8px;flex-wrap:wrap}.form-section{background:#fff;border:1px solid var(--sis-border);border-radius:20px;box-shadow:0 10px 28px rgba(6,29,69,.06);padding:24px}.export-chip{border:1px solid var(--sis-border);background:#fff;border-radius:999px;padding:8px 12px;text-decoration:none;color:var(--sis-blue);font-weight:700}
.status-in-progress{background:#fff5d6;color:#a16b00}

/* Phase 1.4 SEO Manager */
.seo-check-list{display:grid;gap:.65rem;color:#334155;font-size:.94rem}.google-preview{border:1px solid #dbe4ef;background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 24px rgba(15,23,42,.06)}.gp-url{font-size:.85rem;color:#15803d;margin-bottom:4px}.gp-title{font-size:1.12rem;color:#1a0dab;line-height:1.25;margin-bottom:5px}.gp-desc{font-size:.92rem;color:#4d5156;line-height:1.35}

.ai-note{font-size:.82rem;color:#5c6f8a;background:#eef8f8;border:1px solid #d8eeee;border-radius:12px;padding:9px 11px}.ai-quick{display:flex;flex-wrap:wrap;gap:8px}.ai-chip{border:1px solid #d6e1ef;background:#fff;border-radius:999px;padding:7px 11px;font-size:.82rem;font-weight:700;color:var(--sis-blue)}.ai-chip:hover{background:#eef5ff}.ai-lead-form{background:#fff;border:1px solid var(--sis-border);border-radius:16px;padding:12px}.ai-msg.bot br{display:block;margin-bottom:4px}.intent-badge{border-radius:999px;padding:5px 10px;font-weight:800;font-size:.76rem;background:#eef5ff;color:var(--sis-blue)}.confidence-low{background:#fff5d6;color:#9a6600}.confidence-high{background:#e8f7ee;color:#18894b}.admin-mini-card{background:#fff;border:1px solid var(--sis-border);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(6,29,69,.05)}

/* Phase 1.7 Public UI Polish */
.public-topbar{background:linear-gradient(90deg,var(--sis-navy),var(--sis-blue));color:rgba(255,255,255,.86);font-size:.86rem;padding:.55rem 0}.public-topbar a{color:#fff;text-decoration:none;font-weight:700}.topbar-message{font-weight:800;color:#fff}.public-nav{border-bottom:1px solid rgba(220,229,241,.72)}.nav-link{position:relative}.nav-link.active{color:var(--sis-blue)!important}.nav-link.active:after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:.18rem;height:3px;border-radius:999px;background:var(--sis-gold)}.btn-white{background:#fff;color:var(--sis-blue);border-color:#fff;box-shadow:0 10px 25px rgba(255,255,255,.18)}.btn-white:hover{background:#eef5ff;color:var(--sis-blue);border-color:#eef5ff}.hero-v2{min-height:690px;background:radial-gradient(circle at 88% 20%,rgba(15,155,159,.28),transparent 28%),linear-gradient(90deg,rgba(6,29,69,.96),rgba(7,59,130,.76),rgba(6,29,69,.6)),url('../img/hero-campus-modern.svg');background-size:cover;background-position:center}.hero-v2:after{height:125px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 68%);border-radius:0}.hero-bg-shape{position:absolute;right:-180px;top:40px;width:520px;height:520px;border-radius:50%;background:rgba(255,255,255,.08);filter:blur(1px)}.tag-light{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px)}.hero-subtitle{max-width:620px}.hero-trust{display:flex;gap:14px;flex-wrap:wrap}.hero-trust div{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:12px 16px;color:#fff;min-width:150px;backdrop-filter:blur(8px)}.hero-trust strong{display:block;font-size:1.08rem}.hero-trust span{display:block;font-size:.82rem;opacity:.78}.hero-visual-card{position:relative;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:34px;padding:18px;box-shadow:0 30px 70px rgba(0,0,0,.18);backdrop-filter:blur(10px)}.hero-visual-card img{width:100%;border-radius:24px;display:block}.hero-floating-card{position:absolute;background:#fff;color:var(--sis-navy);border:1px solid var(--sis-border);box-shadow:var(--shadow);border-radius:18px;padding:12px 15px;display:flex;align-items:center;gap:8px}.hero-floating-card.top{left:-24px;top:34px}.hero-floating-card.bottom{right:-16px;bottom:46px}.quick-wrap{position:relative;margin-top:-60px;z-index:4}.quick-card-link{display:block;text-decoration:none;color:var(--sis-text);min-height:178px}.quick-card-link:hover{color:var(--sis-text)}.quick-card h5{font-weight:850;color:var(--sis-navy)}.section-heading{gap:1rem}.section-intro{color:#687992;margin:0;max-width:620px}.program-card-v2{border:0;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 14px 34px rgba(6,29,69,.09)}.program-card-v2 .program-img{height:190px}.program-card-v2 .program-body{position:relative}.program-badge{display:inline-flex;border-radius:999px;background:#fff6dd;color:#9b680b;padding:5px 10px;font-weight:800;font-size:.74rem;margin-bottom:.7rem}.program-card-v2 h5{font-weight:850;color:var(--sis-navy)}.why-section{background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));position:relative;overflow:hidden}.why-section:before{content:"";position:absolute;inset:-160px auto auto -160px;width:420px;height:420px;background:rgba(255,255,255,.08);border-radius:50%}.text-white-75{color:rgba(255,255,255,.76)}.why-card{height:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:22px;color:#fff;padding:22px;backdrop-filter:blur(10px);transition:.2s}.why-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.15)}.why-card h5{margin-top:12px;font-weight:850}.why-card p{margin-bottom:0;color:rgba(255,255,255,.76)}.link-arrow{font-weight:800;color:var(--sis-blue);text-decoration:none}.link-arrow:hover{color:var(--sis-gold)}.news-card-v2{border:0;box-shadow:0 14px 34px rgba(6,29,69,.08)}.news-thumb{width:138px;height:108px;flex:0 0 138px}.weekly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.weekly-item{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:128px;background:#dfe8f5;color:#fff;text-decoration:none;box-shadow:0 12px 28px rgba(6,29,69,.08)}.weekly-item img{width:100%;height:100%;min-height:128px;object-fit:cover;display:block;transition:.3s}.weekly-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(6,29,69,.8))}.weekly-item span{position:absolute;left:10px;right:10px;bottom:10px;z-index:2;font-size:.8rem;font-weight:800;text-shadow:0 2px 5px rgba(0,0,0,.28)}.weekly-item:hover img{transform:scale(1.08)}.empty-state{border:1px dashed #b9c8dc;background:#fbfdff;border-radius:18px;padding:28px;text-align:center;color:#687992}.cta-band-v2{position:relative;overflow:hidden}.cta-band-v2:after{content:"";position:absolute;right:-90px;bottom:-120px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,.1)}.footer-wave{height:12px;background:linear-gradient(90deg,var(--sis-gold),var(--sis-teal),var(--sis-blue))}.public-footer{position:relative;margin-top:0}.footer-social a{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.1);display:grid;place-items:center!important;color:#fff!important;font-weight:900;margin:0!important}.ai-float{display:flex;gap:8px;align-items:center}.ai-modal .modal-header{background:linear-gradient(135deg,var(--sis-teal),var(--sis-blue))}.ai-modal .btn-close{opacity:.9}.page-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 85% 35%,rgba(255,255,255,.16),transparent 28%),linear-gradient(135deg,var(--sis-blue),#0e5bbb)}.page-hero:after{content:"";position:absolute;right:-120px;top:-140px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,.08)}@media(max-width:1200px){.weekly-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:992px){.hero-v2{min-height:620px;text-align:left}.hero-actions .btn{width:100%;justify-content:center}.hero-trust{display:grid;grid-template-columns:1fr}.quick-wrap{margin-top:-36px}.nav-link.active:after{display:none}.weekly-grid{grid-template-columns:repeat(2,1fr)}.news-thumb{width:110px;height:96px;flex-basis:110px}}@media(max-width:576px){.hero-v2{min-height:620px}.hero h1{font-size:2.55rem}.hero p{font-size:1.04rem}.quick-card-link{min-height:160px;padding:16px}.weekly-grid{grid-template-columns:1fr 1fr}.weekly-item{min-height:112px}.news-card-v2{display:block!important}.news-thumb{width:100%!important;height:150px!important;margin-bottom:12px}.cta-band{border-radius:22px;padding:24px}}

/* Phase 1.8 Admin UI Polish + Hamburger Sidebar */
.admin-body{--admin-sidebar-width:286px;--admin-sidebar-collapsed:86px;background:#f4f7fb;color:#14213d;overflow-x:hidden}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:var(--admin-sidebar-width);background:linear-gradient(180deg,#041936 0%,#063a7d 58%,#052b5f 100%);color:#fff;position:fixed;inset:0 auto 0 0;padding:18px 14px;z-index:1045;display:flex;flex-direction:column;box-shadow:14px 0 42px rgba(4,25,54,.18);transition:width .22s ease,transform .22s ease}.admin-sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 4px 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:10px}.admin-brand-link{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;min-width:0}.admin-brand-link:hover{color:#fff}.admin-brand-link img{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:50%;padding:3px;box-shadow:0 8px 20px rgba(0,0,0,.16)}.brand-text{min-width:0;white-space:nowrap}.brand-text strong{display:block;font-size:1rem;line-height:1.05}.brand-text small{display:block;color:rgba(255,255,255,.68);font-size:.78rem}.admin-sidebar-close{display:none;width:38px;height:38px;border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;font-size:1.45rem;line-height:1}.admin-nav{flex:1;overflow-y:auto;padding-right:4px}.admin-nav::-webkit-scrollbar{width:6px}.admin-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:99px}.admin-sidebar a{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.82);text-decoration:none;padding:12px 13px;border-radius:15px;font-weight:720;margin:4px 0;position:relative;transition:background .18s ease,color .18s ease,transform .18s ease}.admin-sidebar a:hover{background:rgba(255,255,255,.12);color:#fff;transform:translateX(2px)}.admin-sidebar a.active{background:linear-gradient(135deg,rgba(255,255,255,.20),rgba(255,255,255,.10));color:#fff;box-shadow:inset 4px 0 0 var(--sis-gold)}.nav-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.10);flex:0 0 30px;font-size:1.02rem}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:10px;margin-top:10px}.admin-main{margin-left:var(--admin-sidebar-width);flex:1;min-width:0;transition:margin-left .22s ease}.admin-topbar{height:78px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,229,241,.9);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:1030}.admin-title-group{display:flex;align-items:center;gap:14px;min-width:0}.admin-toggle{width:44px;height:44px;border:1px solid var(--sis-border);border-radius:14px;background:#fff;color:var(--sis-blue);font-size:1.2rem;font-weight:900;box-shadow:0 8px 18px rgba(6,29,69,.07);display:grid;place-items:center}.admin-toggle:hover{background:#eef5ff}.admin-top-actions{display:flex;align-items:center;gap:10px}.admin-user-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--sis-border);border-radius:999px;padding:7px 12px;font-weight:800;box-shadow:0 8px 18px rgba(6,29,69,.05)}.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--sis-blue),var(--sis-teal));color:#fff;display:grid;place-items:center;font-size:.82rem}.admin-content{padding:28px}.stat-card,.admin-card,.table-card,.form-section,.admin-mini-card{border:1px solid rgba(220,229,241,.9);box-shadow:0 12px 32px rgba(6,29,69,.065)}.stat-card{position:relative;overflow:hidden;min-height:132px}.stat-card:after{content:"";position:absolute;right:-34px;top:-38px;width:112px;height:112px;border-radius:50%;background:linear-gradient(135deg,rgba(7,59,130,.10),rgba(15,155,159,.10))}.stat-card h3{font-size:2.05rem;letter-spacing:-.04em;color:var(--sis-navy)}.admin-card{overflow:hidden}.table-card .table{margin-bottom:0}.table-card .table td,.table-card .table th{vertical-align:middle;padding:1rem}.form-control,.form-select{min-height:46px}.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-sm{min-height:34px}.admin-overlay{display:none;position:fixed;inset:0;background:rgba(4,25,54,.52);z-index:1040;backdrop-filter:blur(2px)}
body.sidebar-collapsed .admin-sidebar{width:var(--admin-sidebar-collapsed);padding-left:12px;padding-right:12px}body.sidebar-collapsed .admin-main{margin-left:var(--admin-sidebar-collapsed)}body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-label{display:none}body.sidebar-collapsed .admin-sidebar a{justify-content:center;padding:12px 8px}body.sidebar-collapsed .admin-sidebar a:hover{transform:none}body.sidebar-collapsed .admin-brand-link{justify-content:center;width:100%}body.sidebar-collapsed .admin-sidebar-brand{justify-content:center}body.sidebar-collapsed .admin-sidebar a.active{box-shadow:inset 0 -3px 0 var(--sis-gold)}
.dashboard-grid-icon{width:46px;height:46px;border-radius:16px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-size:1.25rem}.shortcut-card{border:1px solid var(--sis-border);border-radius:18px;background:#fff;padding:17px;height:100%;transition:.18s;box-shadow:0 10px 22px rgba(6,29,69,.04)}.shortcut-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(6,29,69,.09)}
@media(max-width:992px){.admin-sidebar{transform:translateX(-104%);width:286px;max-width:86vw;position:fixed;height:100vh}.admin-main{margin-left:0}.admin-sidebar-close{display:grid;place-items:center}.admin-topbar{height:auto;min-height:72px;padding:12px 16px}.admin-content{padding:18px}.admin-top-actions .btn{display:none!important}body.sidebar-open .admin-sidebar{transform:translateX(0)}body.sidebar-open .admin-overlay{display:block}.admin-title-group h5{font-size:1rem}.admin-title-group small{font-size:.76rem}.table-card{overflow-x:auto}.table{min-width:760px}.stat-card{min-height:116px}}
@media(max-width:576px){.admin-content{padding:14px}.admin-title-group{gap:10px}.admin-toggle{width:40px;height:40px}.admin-user-pill{padding:6px}.admin-card,.stat-card,.table-card,.form-section{border-radius:16px}.stat-card h3{font-size:1.72rem}}


/* Phase 2.0 Public Pages Content Builder */
.builder-section{padding:74px 0;background:#fff}.builder-soft{background:#f5f8fc}.builder-dark{background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));color:#fff}.builder-kicker{display:inline-flex;align-items:center;border-radius:999px;background:#fff6dd;color:#9b680b;padding:7px 13px;font-weight:850;font-size:.78rem;margin-bottom:.85rem}.builder-dark .builder-kicker{background:rgba(255,255,255,.12);color:#fff}.builder-hero{min-height:560px;background:linear-gradient(90deg,rgba(6,29,69,.86),rgba(6,29,69,.35)),url('../img/hero-campus-modern.svg');background-size:cover;background-position:center;color:#fff;display:flex;align-items:center;position:relative;overflow:hidden}.builder-hero:after{content:"";position:absolute;inset:auto 0 0 0;height:90px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff)}.builder-hero .container{position:relative;z-index:2}.builder-hero h1{font-size:clamp(2.6rem,5vw,5.3rem);font-weight:900;letter-spacing:-.05em;line-height:.95;max-width:850px}.builder-lead{font-size:1.14rem;line-height:1.75;max-width:760px;color:inherit}.builder-intro{max-width:760px;color:#5d6d85;line-height:1.75}.builder-dark .builder-intro,.builder-dark .builder-body,.builder-dark .builder-card p{color:rgba(255,255,255,.78)}.builder-body{font-size:1.05rem;line-height:1.85;color:#334155}.builder-image{width:100%;border-radius:28px;box-shadow:var(--shadow);object-fit:cover;max-height:440px}.builder-card{background:#fff;border:1px solid var(--sis-border);border-radius:22px;padding:24px;box-shadow:0 12px 32px rgba(6,29,69,.07);transition:.18s}.builder-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.builder-dark .builder-card{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:#fff}.builder-card-icon{width:52px;height:52px;border-radius:16px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-size:1.35rem;margin-bottom:15px}.builder-card h5{font-weight:850;color:var(--sis-navy)}.builder-dark .builder-card h5{color:#fff}.builder-card p{color:#60708a}.builder-faq .accordion-item{border:1px solid var(--sis-border);border-radius:18px!important;overflow:hidden;margin-bottom:12px;box-shadow:0 8px 22px rgba(6,29,69,.05)}.builder-faq .accordion-button{font-weight:850;color:var(--sis-navy)}.builder-cta{background:linear-gradient(135deg,var(--sis-blue),var(--sis-navy));color:#fff;border-radius:30px;padding:46px;text-align:center;box-shadow:var(--shadow)}.builder-cta.builder-soft{background:linear-gradient(135deg,#eef5ff,#ffffff);color:var(--sis-navy);border:1px solid var(--sis-border)}.builder-cta h2{font-weight:900;letter-spacing:-.04em}.builder-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.builder-gallery-item{position:relative;border-radius:20px;overflow:hidden;min-height:160px;background:#dfe8f5;box-shadow:0 12px 28px rgba(6,29,69,.08)}.builder-gallery-item img{width:100%;height:100%;min-height:160px;object-fit:cover;display:block}.builder-gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(6,29,69,.82))}.builder-gallery-item span{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;color:#fff;font-weight:850;font-size:.9rem}.builder-admin-list{display:grid;gap:14px}.builder-admin-item{background:#fff;border:1px solid var(--sis-border);border-radius:20px;padding:18px;box-shadow:0 10px 26px rgba(6,29,69,.055)}.builder-admin-order{width:42px;height:42px;border-radius:14px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-weight:900;flex:0 0 42px}.builder-admin-preview{font-size:.92rem;color:#5f6f88}.builder-admin-item .action-bar{justify-content:flex-end}@media(max-width:992px){.builder-section{padding:54px 0}.builder-gallery-grid{grid-template-columns:repeat(2,1fr)}.builder-hero{min-height:480px}.builder-admin-item>.d-flex{display:block!important}.builder-admin-order{margin-bottom:12px}.builder-admin-item .action-bar{margin-top:12px;justify-content:flex-start}}@media(max-width:576px){.builder-gallery-grid{grid-template-columns:1fr}.builder-cta{padding:28px;border-radius:22px}.builder-hero h1{font-size:2.55rem}}

/* ===== Phase 2.3.1 multilingual top-up ===== */
.font-lao,
html[lang="lo"] body,
html[lang="lo"] .navbar,
html[lang="lo"] .admin-body {
  font-family: 'Noto Sans Lao', 'Phetsarath OT', 'Saysettha OT', 'Lao UI', Arial, sans-serif;
}
.language-switcher,.topbar-lang{opacity:.95}.translation-list{max-height:560px;overflow:auto}.translation-field textarea.bg-light,.translation-field input.bg-light{color:#52627a;border-style:dashed}.public-nav .nav-link.active{font-weight:800}.language-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--sis-border);border-radius:999px;padding:6px 10px;background:#fff;color:var(--sis-blue);font-weight:800;text-decoration:none}.language-pill.active,.language-pill:hover{background:var(--sis-blue);color:#fff;border-color:var(--sis-blue)}

/* Phase 2.4 Analytics & Inquiry Reports */
.fw-black{font-weight:900;letter-spacing:-.03em}.analytics-stat{min-height:138px}.analytics-bars{display:grid;gap:13px}.analytics-bar-row{display:grid;grid-template-columns:74px 1fr 72px;align-items:center;gap:12px;font-size:.92rem}.bar-track{height:12px;background:#edf3fb;border-radius:999px;overflow:hidden;border:1px solid #e0eaf6}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sis-blue),#2d7be8)}.bar-fill.teal{background:linear-gradient(90deg,var(--sis-teal),#38c6bd)}.bar-fill.gold{background:linear-gradient(90deg,var(--sis-gold),#f3c24c)}.table-bar{height:10px;min-width:110px}.report-meter{display:grid;gap:8px;margin-bottom:16px}.empty-state{background:#f8fbff;border:1px dashed #c9d6e7;color:#63748d;border-radius:18px;padding:22px;text-align:center}.empty-state.small{padding:14px;font-size:.9rem}.analytics-note{background:linear-gradient(135deg,#eef5ff,#ffffff);border:1px solid var(--sis-border);border-radius:18px;padding:16px;color:#486078}@media(max-width:576px){.analytics-bar-row{grid-template-columns:1fr;gap:6px}.analytics-bar-row strong{text-align:right}.table-bar{min-width:80px}}

/* Phase 2.5 Landing Page Professional UI Upgrade */
:root{--sis-blue-2:#0a4fa4;--sis-ink:#071b3a;--sis-cream:#fff8ea;--sis-glass:rgba(255,255,255,.82)}
body{font-family:'Manrope',Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;letter-spacing:-.01em;background:#fbfdff}.font-lao,html[lang="lo"] body{font-family:'Noto Sans Lao','Phetsarath OT','Lao UI',Arial,sans-serif}.public-topbar{font-size:.85rem}.public-nav{border-bottom:1px solid rgba(220,229,241,.86)}.public-nav .navbar-brand strong{font-weight:900;letter-spacing:-.035em}.public-nav .nav-link{font-size:.94rem}.public-nav .btn-gold{padding:.55rem .95rem}.btn-light-outline{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.34);box-shadow:0 16px 34px rgba(6,29,69,.18)}.btn-light-outline:hover{background:#fff;color:var(--sis-blue)}
.home-hero-v2{position:relative;overflow:hidden;padding:104px 0 138px;background:radial-gradient(circle at 17% 12%,rgba(15,155,159,.30),transparent 30%),linear-gradient(135deg,#061d45 0%,#073b82 52%,#0b68c6 100%);color:#fff}.home-hero-v2:after{content:"";position:absolute;inset:auto -8% -90px -8%;height:190px;background:#fbfdff;border-radius:50% 50% 0 0}.hero-bg-orb{position:absolute;border-radius:999px;filter:blur(1px);opacity:.72}.hero-orb-one{width:340px;height:340px;background:rgba(243,194,76,.22);right:8%;top:8%}.hero-orb-two{width:240px;height:240px;background:rgba(15,155,159,.24);left:4%;bottom:8%}.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);padding:9px 14px;font-size:.78rem;font-weight:900;letter-spacing:.02em;text-transform:uppercase}.eyebrow-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sis-gold);box-shadow:0 0 0 5px rgba(201,145,24,.18)}.eyebrow-pill.soft{background:#fff7df;color:#96650c;border-color:#ffe3a1}.hero-title-v2{font-family:'Playfair Display','Manrope',serif;font-size:clamp(3rem,6.2vw,6.9rem);line-height:.9;font-weight:800;letter-spacing:-.055em;margin:0;text-shadow:0 18px 40px rgba(0,0,0,.18)}.hero-lead-v2{font-size:clamp(1.05rem,1.5vw,1.34rem);line-height:1.7;color:rgba(255,255,255,.88);max-width:720px}.hero-actions .btn{border-radius:16px;padding:.92rem 1.22rem;font-weight:900}.hero-trust-row span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.10);border-radius:999px;padding:8px 12px;font-weight:800;font-size:.86rem;color:rgba(255,255,255,.92)}.hero-showcase-card{position:relative;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:34px;padding:18px;box-shadow:0 28px 72px rgba(0,0,0,.22);backdrop-filter:blur(16px)}.hero-photo-wrap{position:relative;border-radius:28px;overflow:hidden;background:#fff;min-height:385px}.hero-photo-wrap img{width:100%;height:100%;min-height:385px;object-fit:cover;display:block}.hero-photo-badge{position:absolute;left:18px;bottom:18px;background:#fff;color:var(--sis-navy);border-radius:18px;padding:13px 16px;box-shadow:0 16px 32px rgba(6,29,69,.18)}.hero-photo-badge strong{display:block;font-size:.72rem;text-transform:uppercase;color:#6a7890}.hero-photo-badge span{display:block;font-size:1.65rem;font-weight:950;color:var(--sis-blue)}.hero-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.hero-info-grid>div{background:#fff;border-radius:18px;padding:14px;color:var(--sis-navy)}.mini-label{display:block;text-transform:uppercase;color:#79879a;font-size:.66rem;font-weight:900;letter-spacing:.07em}.hero-info-grid strong{font-size:.94rem}.quick-access-wrap{position:relative;margin-top:-84px;z-index:4}.quick-access-panel{background:rgba(255,255,255,.95);border:1px solid rgba(220,229,241,.9);border-radius:30px;padding:18px;box-shadow:0 28px 72px rgba(6,29,69,.13);backdrop-filter:blur(14px)}.quick-card-v2{height:100%;display:flex;gap:15px;align-items:flex-start;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #e1eaf6;border-radius:22px;padding:18px;transition:.22s}.quick-card-v2:hover{transform:translateY(-5px);box-shadow:0 20px 42px rgba(6,29,69,.10);border-color:rgba(7,59,130,.22)}.quick-icon-v2{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:#eef5ff;font-size:1.4rem;flex:0 0 54px}.quick-card-v2 h5{font-weight:950;color:var(--sis-navy);margin-bottom:4px}.quick-card-v2 p{font-size:.88rem;color:#63758f;margin:0 0 7px}.quick-card-v2 span{font-size:.82rem;color:var(--sis-blue);font-weight:900}.display-heading{font-family:'Playfair Display','Manrope',serif;font-weight:800;line-height:1.02;letter-spacing:-.045em;color:var(--sis-ink);font-size:clamp(2rem,3.2vw,3.55rem)}.section-lead{font-size:1.06rem;line-height:1.75;color:#64748b;margin-top:1rem}.home-intro-section{position:relative}.why-card{height:100%;padding:24px;border:1px solid #e1eaf6;border-radius:24px;background:#fff;box-shadow:0 14px 35px rgba(6,29,69,.06);transition:.2s}.why-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.why-card span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--sis-blue);color:#fff;font-weight:950;margin-bottom:16px}.why-card h5{font-weight:950;color:var(--sis-navy)}.why-card p{color:#65758e;margin:0;line-height:1.65}.programs-v2-section{background:linear-gradient(180deg,#f7fbff,#fff)}.program-card-v2{display:block;height:100%;border-radius:28px;overflow:hidden;background:#fff;border:1px solid #e0e9f5;box-shadow:0 14px 36px rgba(6,29,69,.07);transition:.22s;color:var(--sis-navy)}.program-card-v2:hover{transform:translateY(-7px);box-shadow:0 24px 54px rgba(6,29,69,.12);color:var(--sis-navy)}.program-card-image{height:210px;position:relative;overflow:hidden;background:#dce8f5}.program-card-image img{width:100%;height:100%;object-fit:cover;transition:.35s}.program-card-v2:hover img{transform:scale(1.06)}.program-number{position:absolute;top:14px;left:14px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--sis-blue);font-weight:950;padding:7px 11px;box-shadow:0 10px 22px rgba(6,29,69,.12)}.program-card-body{padding:23px}.program-card-body h5{font-weight:950;margin-bottom:5px}.program-card-body p{color:#687992;margin-bottom:16px}.program-card-body span{font-weight:900;color:var(--sis-gold)}.stats-band-v2{border-radius:34px;background:linear-gradient(135deg,var(--sis-navy),var(--sis-blue));color:#fff;padding:35px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stats-band-v2:before{content:"";position:absolute;right:-80px;top:-110px;width:300px;height:300px;border-radius:50%;background:rgba(243,194,76,.18)}.stats-band-v2 strong{display:block;font-size:clamp(1.9rem,3vw,3rem);font-weight:950;letter-spacing:-.06em}.stats-band-v2 span{display:block;color:rgba(255,255,255,.74);font-weight:800}.news-card-v2{display:flex;gap:18px;padding:15px;background:#fff;border:1px solid #e1eaf6;border-radius:24px;box-shadow:0 12px 30px rgba(6,29,69,.06);margin-bottom:16px;transition:.2s}.news-card-v2:hover{transform:translateX(4px);box-shadow:var(--shadow)}.news-thumb-v2{width:176px;min-height:132px;flex:0 0 176px;border-radius:20px;overflow:hidden;background:#e6eef8}.news-thumb-v2 img{width:100%;height:100%;object-fit:cover}.news-content-v2 h5{font-weight:950;color:var(--sis-navy);margin:.55rem 0}.news-content-v2 p{color:#65758e;margin-bottom:.55rem}.news-content-v2 a,.view-link{font-weight:950;color:var(--sis-blue);text-decoration:none}.news-category{display:inline-flex;border-radius:999px;background:#eef8f8;color:var(--sis-teal);padding:6px 10px;font-size:.72rem;font-weight:950;text-transform:uppercase}.photo-mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photo-tile{position:relative;min-height:132px;border-radius:22px;overflow:hidden;background:#dce8f5;box-shadow:0 10px 24px rgba(6,29,69,.08);text-decoration:none}.photo-tile.large{grid-column:span 2;grid-row:span 2}.photo-tile img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:.3s}.photo-tile:hover img{transform:scale(1.07)}.photo-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(6,29,69,.82))}.photo-tile span{position:absolute;left:12px;right:12px;bottom:11px;z-index:2;color:#fff;font-weight:900;font-size:.84rem}.events-strip-v2{border:1px solid #e1eaf6;background:linear-gradient(135deg,#fff,#f4f9ff);border-radius:32px;padding:30px;box-shadow:0 16px 40px rgba(6,29,69,.08)}.event-mini-card{height:100%;background:#fff;border:1px solid #e0e9f5;border-radius:22px;padding:18px;box-shadow:0 10px 26px rgba(6,29,69,.05)}.event-mini-card strong{display:inline-flex;border-radius:12px;background:#eef5ff;color:var(--sis-blue);padding:7px 10px;font-weight:950;margin-bottom:12px}.event-mini-card h6{font-weight:950;color:var(--sis-navy)}.event-mini-card p{color:#6b7a91;margin:0;font-size:.88rem}.cta-band-v2{border-radius:36px;background:radial-gradient(circle at 90% 20%,rgba(243,194,76,.28),transparent 24%),linear-gradient(135deg,#073b82,#061d45);color:#fff;padding:48px;box-shadow:0 28px 72px rgba(6,29,69,.16);overflow:hidden}.cta-band-v2 span{color:#f7d578;text-transform:uppercase;font-weight:950;letter-spacing:.09em;font-size:.75rem}.cta-band-v2 h2{font-family:'Playfair Display','Manrope',serif;font-weight:800;font-size:clamp(2rem,3vw,3.35rem);letter-spacing:-.045em;margin:.45rem 0}.cta-band-v2 p{color:rgba(255,255,255,.76);line-height:1.7;margin:0}.ai-float{font-family:'Manrope',Inter,sans-serif}.public-footer{margin-top:2rem!important;background:linear-gradient(180deg,#061d45,#041631)}
@media(max-width:1200px){.hero-title-v2{font-size:clamp(3rem,5.4vw,5.4rem)}}
@media(max-width:992px){.home-hero-v2{padding:76px 0 128px}.hero-showcase-card{margin-top:12px}.quick-access-wrap{margin-top:-74px}.quick-card-v2{display:block}.quick-icon-v2{margin-bottom:12px}.photo-mosaic{grid-template-columns:repeat(2,1fr)}.news-card-v2{display:block}.news-thumb-v2{width:100%;height:190px;margin-bottom:13px}.cta-band-v2{padding:34px}}
@media(max-width:576px){.home-hero-v2{padding:54px 0 112px}.hero-title-v2{font-size:3.05rem}.hero-actions .btn{width:100%}.hero-info-grid{grid-template-columns:1fr}.quick-access-panel{border-radius:22px;padding:12px}.quick-card-v2{padding:15px;border-radius:18px}.display-heading{font-size:2.16rem}.program-card-image{height:178px}.stats-band-v2{padding:26px 16px;border-radius:26px}.photo-mosaic{grid-template-columns:1fr}.photo-tile.large{grid-column:auto;grid-row:auto}.cta-band-v2{border-radius:26px;padding:28px}.public-nav .navbar-brand small{font-size:.7rem}}

/* Phase 2.5.2 Landing page typography/card spacing refinement */
body{font-size:15.5px;line-height:1.6}.home-hero-v2{padding:78px 0 112px}.home-hero-v2:after{height:150px;bottom:-78px}.hero-orb-one{width:250px;height:250px}.hero-orb-two{width:180px;height:180px}.eyebrow-pill{padding:7px 12px;font-size:.70rem;letter-spacing:.04em}.hero-title-v2{font-family:'Manrope','Noto Sans Lao',system-ui,sans-serif;font-size:clamp(2.35rem,4.4vw,4.75rem);line-height:1.02;font-weight:850;letter-spacing:-.05em;max-width:780px}.hero-lead-v2{font-size:clamp(.98rem,1.15vw,1.14rem);line-height:1.65;max-width:640px}.hero-actions .btn{border-radius:13px;padding:.74rem 1rem;font-size:.98rem}.hero-trust-row span{padding:6px 10px;font-size:.78rem}.hero-showcase-card{border-radius:26px;padding:14px}.hero-photo-wrap{border-radius:22px;min-height:300px}.hero-photo-wrap img{min-height:300px}.hero-photo-badge{left:14px;bottom:14px;border-radius:14px;padding:10px 13px}.hero-photo-badge span{font-size:1.35rem}.hero-info-grid{gap:8px;margin-top:10px}.hero-info-grid>div{border-radius:14px;padding:11px}.hero-info-grid strong{font-size:.86rem}.mini-label{font-size:.61rem}.quick-access-wrap{margin-top:-58px}.quick-access-panel{border-radius:24px;padding:14px}.quick-card-v2{gap:12px;border-radius:18px;padding:14px}.quick-icon-v2{width:46px;height:46px;border-radius:14px;font-size:1.18rem;flex-basis:46px}.quick-card-v2 h5{font-size:1rem;margin-bottom:3px}.quick-card-v2 p{font-size:.82rem;line-height:1.45}.quick-card-v2 span{font-size:.78rem}.display-heading{font-family:'Manrope','Noto Sans Lao',system-ui,sans-serif;font-size:clamp(1.65rem,2.4vw,2.55rem);line-height:1.15;font-weight:850;letter-spacing:-.04em}.section-lead{font-size:.98rem;line-height:1.65}.home-intro-section.py-5,.programs-v2-section.py-5,.news-gallery-section.py-5,.container.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.why-card{border-radius:20px;padding:18px}.why-card span{width:36px;height:36px;border-radius:12px;font-size:.86rem;margin-bottom:12px}.why-card h5{font-size:1.02rem}.why-card p{font-size:.88rem;line-height:1.55}.program-card-v2{border-radius:22px}.program-card-image{height:172px}.program-number{top:11px;left:11px;padding:5px 9px;font-size:.82rem}.program-card-body{padding:17px}.program-card-body h5{font-size:1.02rem}.program-card-body p{font-size:.86rem;margin-bottom:10px}.program-card-body span{font-size:.84rem}.stats-band-v2{border-radius:26px;padding:26px}.stats-band-v2 strong{font-size:clamp(1.45rem,2.1vw,2.15rem)}.stats-band-v2 span{font-size:.86rem}.news-card-v2{gap:14px;padding:12px;border-radius:20px;margin-bottom:12px}.news-thumb-v2{width:145px;min-height:108px;flex-basis:145px;border-radius:16px}.news-content-v2 h5{font-size:1.02rem;margin:.38rem 0}.news-content-v2 p{font-size:.86rem;line-height:1.5}.news-category{padding:5px 9px;font-size:.66rem}.photo-mosaic{gap:10px}.photo-tile{min-height:112px;border-radius:18px}.photo-tile span{font-size:.78rem;bottom:9px}.events-strip-v2{border-radius:26px;padding:24px}.event-mini-card{border-radius:18px;padding:15px}.event-mini-card strong{padding:6px 9px;font-size:.82rem}.event-mini-card h6{font-size:.96rem}.cta-band-v2{border-radius:28px;padding:38px}.cta-band-v2 span{font-size:.68rem}.cta-band-v2 h2{font-family:'Manrope','Noto Sans Lao',system-ui,sans-serif;font-size:clamp(1.7rem,2.45vw,2.6rem);line-height:1.16}.cta-band-v2 p{font-size:.96rem}.public-nav .nav-link{font-size:.92rem}.navbar-brand strong{font-size:1.02rem}.navbar-brand small{font-size:.72rem}.brand-logo{width:48px;height:48px}.btn-lg{font-size:1rem;padding:.72rem 1rem}.section-header-v2{margin-bottom:1.25rem!important}
@media(max-width:1200px){.hero-title-v2{font-size:clamp(2.35rem,4.2vw,4.2rem)}}
@media(max-width:992px){body{font-size:15px}.home-hero-v2{padding:58px 0 100px}.hero-showcase-card{margin-top:0}.quick-access-wrap{margin-top:-52px}.quick-card-v2{min-height:100%}.display-heading{font-size:clamp(1.55rem,3vw,2.15rem)}.news-thumb-v2{height:160px}.photo-mosaic{grid-template-columns:repeat(2,1fr)}.cta-band-v2{padding:30px}.home-intro-section.py-5,.programs-v2-section.py-5,.news-gallery-section.py-5,.container.py-5{padding-top:2.5rem!important;padding-bottom:2.5rem!important}}
@media(max-width:576px){.home-hero-v2{padding:44px 0 96px}.hero-title-v2{font-size:2.35rem;line-height:1.05}.hero-lead-v2{font-size:.95rem}.hero-actions .btn{width:100%;font-size:.94rem}.hero-photo-wrap,.hero-photo-wrap img{min-height:235px}.hero-info-grid{grid-template-columns:1fr}.quick-access-panel{border-radius:18px;padding:10px}.quick-card-v2{padding:13px}.display-heading{font-size:1.72rem}.program-card-image{height:155px}.stats-band-v2{padding:22px 14px}.photo-mosaic{grid-template-columns:1fr}.photo-tile.large{grid-column:auto;grid-row:auto}.cta-band-v2{border-radius:22px;padding:24px}.public-nav .navbar-brand small{font-size:.66rem}.brand-logo{width:42px;height:42px}}

/* Phase 2.5.3 Quick Access Curve / Padding Hotfix
   Fixes the tight top-left/top-right spacing where the quick access panel overlaps the blue hero curve. */
.quick-access-wrap{
    position:relative;
    z-index:5;
    margin-top:-38px!important;
    padding-left:18px;
    padding-right:18px;
}
.quick-access-panel{
    background:#fff;
    border:1px solid #dce6f2;
    border-radius:26px;
    padding:20px!important;
    box-shadow:0 18px 44px rgba(6,29,69,.08);
    overflow:visible;
}
.quick-access-panel .row{
    --bs-gutter-x:18px;
    --bs-gutter-y:18px;
}
.quick-card-v2{
    min-height:118px;
    padding:17px 18px!important;
    border-radius:18px;
}
.home-intro-section{
    padding-top:3.25rem!important;
}
@media(max-width:992px){
    .quick-access-wrap{
        margin-top:-30px!important;
        padding-left:14px;
        padding-right:14px;
    }
    .quick-access-panel{
        padding:16px!important;
        border-radius:22px;
    }
    .quick-card-v2{
        min-height:auto;
        padding:15px!important;
    }
}
@media(max-width:576px){
    .quick-access-wrap{
        margin-top:-22px!important;
        padding-left:10px;
        padding-right:10px;
    }
    .quick-access-panel{
        padding:12px!important;
        border-radius:18px;
    }
    .quick-access-panel .row{
        --bs-gutter-x:12px;
        --bs-gutter-y:12px;
    }
}


/* Phase 2.5.4 Page / Landing Hero Background Control */
.home-hero-v2[style*="background-image"]{
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center;
}
.page-hero{
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center;
}


/* Phase 2.5.7 — Public Header Logo / Wordmark Refinement */
.public-nav{
  min-height:76px;
}
.public-nav .navbar-brand{
  gap:12px!important;
  padding-top:10px;
  padding-bottom:10px;
}
.public-nav .brand-logo{
  width:68px!important;
  height:68px!important;
  flex:0 0 68px;
  object-fit:contain;
}
.public-nav .brand-wordmark{
  display:flex;
  flex-direction:column;
  justify-content:center;
  line-height:1;
  min-width:180px;
}
.public-nav .brand-wordmark strong,
.public-nav .navbar-brand strong{
  font-family:'Georgia','Times New Roman',serif;
  font-size:1.52rem!important;
  font-weight:800!important;
  line-height:.95!important;
  letter-spacing:-.025em;
  color:var(--sis-blue)!important;
}
.public-nav .brand-wordmark small,
.public-nav .navbar-brand small{
  font-family:'Georgia','Times New Roman',serif;
  font-size:1.03rem!important;
  font-weight:600;
  line-height:1.05!important;
  letter-spacing:-.012em;
  color:var(--sis-navy)!important;
  transform:scaleX(1.08);
  transform-origin:left center;
}
@media (max-width:991.98px){
  .public-nav{min-height:70px}
  .public-nav .brand-logo{width:58px!important;height:58px!important;flex-basis:58px}
  .public-nav .brand-wordmark{min-width:150px}
  .public-nav .brand-wordmark strong,
  .public-nav .navbar-brand strong{font-size:1.28rem!important}
  .public-nav .brand-wordmark small,
  .public-nav .navbar-brand small{font-size:.88rem!important}
}
@media (max-width:575.98px){
  .public-nav .navbar-brand{gap:9px!important}
  .public-nav .brand-logo{width:50px!important;height:50px!important;flex-basis:50px}
  .public-nav .brand-wordmark{min-width:132px}
  .public-nav .brand-wordmark strong,
  .public-nav .navbar-brand strong{font-size:1.1rem!important}
  .public-nav .brand-wordmark small,
  .public-nav .navbar-brand small{font-size:.76rem!important;transform:scaleX(1.06)}
}

/* Phase 2.5.8 — Dynamic Header Brand Format from Settings */
.public-nav{
  min-height:88px;
}
.public-nav .public-brand,
.public-nav .navbar-brand.public-brand{
  gap:16px!important;
  padding-top:12px;
  padding-bottom:12px;
  max-width:430px;
  min-width:0;
}
.public-nav .public-brand .brand-logo{
  width:70px!important;
  height:70px!important;
  flex:0 0 70px;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(6,29,69,.12));
}
.public-nav .public-brand .brand-wordmark{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  line-height:1.05;
}
.public-nav .public-brand .brand-wordmark strong{
  font-family:'Manrope','Noto Sans Lao',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  font-size:1.38rem!important;
  font-weight:850!important;
  line-height:1.05!important;
  letter-spacing:-.04em;
  color:var(--sis-blue)!important;
  white-space:normal;
}
.public-nav .public-brand .brand-wordmark small{
  font-family:'Manrope','Noto Sans Lao',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  font-size:.88rem!important;
  font-weight:650;
  line-height:1.15!important;
  letter-spacing:-.02em;
  color:var(--sis-navy)!important;
  opacity:.92;
  transform:none!important;
  white-space:normal;
  margin-top:3px;
}
@media (min-width:1200px){
  .public-nav .public-brand{max-width:455px}
  .public-nav .public-brand .brand-logo{width:74px!important;height:74px!important;flex-basis:74px}
  .public-nav .public-brand .brand-wordmark strong{font-size:1.48rem!important}
  .public-nav .public-brand .brand-wordmark small{font-size:.93rem!important}
}
@media (max-width:991.98px){
  .public-nav{min-height:78px}
  .public-nav .public-brand{gap:12px!important;max-width:330px}
  .public-nav .public-brand .brand-logo{width:60px!important;height:60px!important;flex-basis:60px}
  .public-nav .public-brand .brand-wordmark strong{font-size:1.15rem!important;line-height:1.08!important}
  .public-nav .public-brand .brand-wordmark small{font-size:.76rem!important}
}
@media (max-width:575.98px){
  .public-nav{min-height:70px}
  .public-nav .public-brand{gap:10px!important;max-width:270px}
  .public-nav .public-brand .brand-logo{width:52px!important;height:52px!important;flex-basis:52px}
  .public-nav .public-brand .brand-wordmark strong{font-size:1rem!important;letter-spacing:-.035em}
  .public-nav .public-brand .brand-wordmark small{font-size:.68rem!important;line-height:1.12!important}
}

/* Phase 2.5.11 - School Apps / Portal Thumbnails */
.quick-card-link{display:flex;text-decoration:none;color:inherit}.quick-card-link:hover{color:inherit}.apps-hero{background:linear-gradient(135deg,var(--sis-blue),#0e5bbb)}.apps-filter .btn{border-radius:999px}.app-card-link{text-decoration:none;color:inherit;display:block;height:100%}.app-card{height:100%;background:#fff;border:1px solid var(--sis-border);border-radius:24px;overflow:hidden;box-shadow:0 14px 34px rgba(6,29,69,.07);transition:.22s}.app-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(6,29,69,.13);border-color:#b9cbea}.app-thumb{height:190px;position:relative;background:#eef3fb;overflow:hidden}.app-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s}.app-card:hover .app-thumb img{transform:scale(1.04)}.app-audience{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.93);color:var(--sis-blue);border:1px solid rgba(11,75,147,.12);border-radius:999px;padding:6px 11px;font-size:.72rem;font-weight:800}.app-card-body{padding:20px}.app-card-body h4{font-size:1.15rem;font-weight:850;color:var(--sis-navy);margin:0}.app-card-body p{color:#687992;margin:.55rem 0 0;line-height:1.55}.app-open-icon{width:34px;height:34px;border-radius:12px;background:#eef5ff;color:var(--sis-blue);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.apps-group-dot{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--sis-gold),var(--sis-teal));box-shadow:0 0 0 6px rgba(216,166,42,.12)}
@media(max-width:576px){.app-thumb{height:165px}.app-card-body{padding:16px}.app-card-body h4{font-size:1.05rem}}


/* Phase 2.5.12 Alumni Portal Navigation */
.alumni-hero {
    background: linear-gradient(135deg, rgba(6, 48, 103, .96), rgba(19, 88, 163, .88)), url('../img/hero-campus-modern.svg') center/cover no-repeat;
    color: #fff;
}
.alumni-app-card .app-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(2, 21, 57, 0), rgba(2, 21, 57, .08));
    pointer-events: none;
}
.alumni-help-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 34px;
    border-radius: 28px;
    color: #fff;
    background: linear-gradient(135deg, #08265a, #0f55a2);
    box-shadow: 0 18px 45px rgba(8, 38, 90, .22);
}
.alumni-help-panel .eyebrow-pill {
    color: #fff;
    border-color: rgba(255,255,255,.26);
    background: rgba(255,255,255,.12);
}
.alumni-empty-card {
    border-radius: 26px;
}
@media (max-width: 767.98px) {
    .alumni-help-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 24px;
        border-radius: 22px;
    }
}


/* Phase 2.5.13 — Public login link and professional secure login UI */
.topbar-login-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    color:#fff!important;
    text-decoration:none;
    font-weight:800;
    transition:.2s ease;
}
.topbar-login-link:hover{background:#fff;color:var(--sis-blue)!important;transform:translateY(-1px)}
.btn-login-nav{
    background:#082a5a;
    color:#fff!important;
    border:1px solid rgba(8,42,90,.12);
    box-shadow:0 10px 24px rgba(8,42,90,.16);
}
.btn-login-nav:hover{background:#0d438d;color:#fff!important;transform:translateY(-1px)}
.secure-login-page{
    min-height:100vh;
    position:relative;
    overflow:hidden;
    background:linear-gradient(135deg,#eef6ff 0%,#ffffff 42%,#f7fbff 100%);
    font-family:'Manrope',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
}
.login-bg-orb{position:absolute;border-radius:999px;filter:blur(6px);opacity:.55;pointer-events:none}
.login-orb-1{width:420px;height:420px;background:rgba(12,77,160,.15);top:-120px;left:-110px}
.login-orb-2{width:360px;height:360px;background:rgba(201,145,24,.14);right:-130px;bottom:-120px}
.secure-login-card{
    overflow:hidden;
    border-radius:34px;
    border:1px solid rgba(210,225,244,.92);
    background:#fff;
    box-shadow:0 28px 80px rgba(6,29,69,.16);
}
.secure-login-brand{
    position:relative;
    padding:42px;
    color:#fff;
    background:radial-gradient(circle at 28% 16%,rgba(255,255,255,.2),transparent 35%),linear-gradient(155deg,#07244f 0%,#0a4d9d 68%,#0b6d9f 100%);
}
.login-back-link{
    display:inline-flex;
    color:rgba(255,255,255,.86);
    text-decoration:none;
    font-weight:800;
    font-size:.9rem;
    margin-bottom:38px;
}
.login-back-link:hover{color:#fff}
.login-brand-block img{
    width:112px;
    height:112px;
    object-fit:contain;
    background:#fff;
    border-radius:50%;
    padding:7px;
    box-shadow:0 16px 45px rgba(0,0,0,.22);
}
.login-brand-block h1{
    margin:20px 0 8px;
    font-size:clamp(1.75rem,2.5vw,2.6rem);
    line-height:1.05;
    font-weight:900;
    letter-spacing:-.045em;
}
.login-brand-block p{font-size:1.02rem;color:rgba(255,255,255,.78);margin:0;max-width:330px}
.login-security-notes{margin-top:44px;display:grid;gap:12px}
.login-security-notes div{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:0 12px;
    align-items:center;
    padding:13px 14px;
    border-radius:18px;
    background:rgba(255,255,255,.11);
    border:1px solid rgba(255,255,255,.14);
}
.login-security-notes span{grid-row:span 2;width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.16)}
.login-security-notes strong{font-size:.93rem}
.login-security-notes small{font-size:.78rem;color:rgba(255,255,255,.72)}
.secure-login-form-wrap{padding:54px 58px;background:linear-gradient(180deg,#fff,#fbfdff)}
.login-form-header{margin-bottom:26px}
.login-pill{
    display:inline-flex;
    padding:7px 12px;
    border-radius:999px;
    background:#eef7f8;
    color:var(--sis-teal);
    font-weight:900;
    font-size:.78rem;
    margin-bottom:14px;
}
.login-form-header h2{font-size:clamp(2rem,3vw,3rem);font-weight:900;letter-spacing:-.05em;color:var(--sis-navy);margin-bottom:8px}
.login-form-header p{color:#667894;max-width:560px;margin:0}
.secure-login-form .form-label{font-weight:850;color:var(--sis-navy);font-size:.9rem;margin-bottom:8px}
.login-input-group{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:56px;
    border:1px solid #dbe7f5;
    border-radius:17px;
    background:#fff;
    padding:0 14px;
    transition:.2s ease;
}
.login-input-group:focus-within{border-color:#0f64c2;box-shadow:0 0 0 4px rgba(15,100,194,.11)}
.login-input-group>span{width:28px;text-align:center;opacity:.75}
.login-input-group .form-control{border:0!important;box-shadow:none!important;padding-left:0;background:transparent;min-height:52px}
.password-toggle{border:0;background:#edf4fd;color:var(--sis-blue);border-radius:10px;padding:7px 10px;font-weight:850;font-size:.78rem}
.login-submit-btn{min-height:54px;border-radius:16px;font-weight:900;box-shadow:0 16px 34px rgba(10,77,157,.22)}
.login-demo-note{text-align:center;margin-top:16px;color:#7c8ca4;font-size:.88rem}
@media(max-width:991.98px){
    .secure-login-brand,.secure-login-form-wrap{padding:32px 24px}
    .login-security-notes{margin-top:28px}
}
@media(max-width:575.98px){
    .secure-login-card{border-radius:24px}
    .login-brand-block img{width:90px;height:90px}
    .login-security-notes{display:none}
    .secure-login-form-wrap{padding:28px 18px}
    .login-input-group{min-height:52px;border-radius:14px}
    .login-form-header h2{font-size:1.85rem}
}

/* Phase 2.5.15 — Standard login size + hero background */
.secure-login-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    background-image:linear-gradient(135deg,rgba(4,21,50,.86),rgba(8,63,135,.72)),var(--login-bg-image);
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
}
.secure-login-page:before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.12),transparent 28%),radial-gradient(circle at 86% 18%,rgba(201,145,24,.16),transparent 24%);
    pointer-events:none;
}
.secure-login-page .container{position:relative;z-index:2}
.login-bg-orb{opacity:.22;filter:blur(12px)}
.secure-login-card{
    max-width:980px;
    margin:0 auto;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.96);
    box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.secure-login-brand{
    padding:30px 32px;
    background:linear-gradient(160deg,rgba(5,29,70,.96),rgba(8,68,146,.92));
}
.login-back-link{font-size:.82rem;margin-bottom:24px}
.login-brand-block img{width:82px;height:82px;padding:6px;box-shadow:0 12px 28px rgba(0,0,0,.22)}
.login-brand-block h1{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.14;letter-spacing:-.035em;margin:16px 0 6px}
.login-brand-block p{font-size:.92rem;line-height:1.5;max-width:280px}
.login-security-notes{margin-top:28px;gap:10px}
.login-security-notes div{grid-template-columns:34px 1fr;padding:10px 11px;border-radius:15px}
.login-security-notes span{width:34px;height:34px;border-radius:12px;font-size:.9rem}
.login-security-notes strong{font-size:.84rem}
.login-security-notes small{font-size:.72rem;line-height:1.35}
.secure-login-form-wrap{padding:36px 42px;background:linear-gradient(180deg,#fff,#f8fbff)}
.login-form-header{margin-bottom:20px}
.login-pill{padding:6px 10px;font-size:.72rem;margin-bottom:10px}
.login-form-header h2{font-size:clamp(1.55rem,2.3vw,2.25rem);line-height:1.12;letter-spacing:-.04em;margin-bottom:6px}
.login-form-header p{font-size:.92rem;line-height:1.55;max-width:470px}
.secure-login-form .form-label{font-size:.84rem;margin-bottom:6px}
.login-input-group{min-height:48px;border-radius:14px;padding:0 12px}
.login-input-group .form-control{min-height:46px;font-size:.94rem}
.password-toggle{padding:6px 9px;border-radius:9px;font-size:.72rem}
.login-submit-btn{min-height:48px;border-radius:13px;font-size:.95rem}
.login-demo-note{margin-top:12px;font-size:.8rem}
@media(max-width:991.98px){
    .secure-login-page{background-attachment:scroll;padding:18px 0}
    .secure-login-card{max-width:720px}
    .secure-login-brand,.secure-login-form-wrap{padding:28px 24px}
    .login-security-notes{display:none}
}
@media(max-width:575.98px){
    .secure-login-card{border-radius:20px}
    .login-brand-block img{width:72px;height:72px}
    .login-brand-block h1{font-size:1.28rem}
    .secure-login-form-wrap{padding:24px 18px}
    .login-form-header h2{font-size:1.55rem}
}

/* Phase 2.5.16 - Email verification code login */
.otp-input-group .otp-code-input{
    font-size:1.45rem!important;
    font-weight:900;
    letter-spacing:.42rem;
    text-align:center;
    color:var(--sis-navy);
}
.secure-login-form .btn-outline-primary{
    border-color:rgba(15,76,140,.28);
    color:var(--sis-blue);
    font-weight:800;
    border-radius:12px;
}
.secure-login-form .btn-outline-primary:hover{
    background:var(--sis-blue);
    color:#fff;
}
.secure-login-form code,
.secure-login-form-wrap code{
    color:#0f4c8c;
    background:#eef5ff;
    padding:.08rem .32rem;
    border-radius:6px;
}
@media(max-width:575.98px){
    .otp-input-group .otp-code-input{font-size:1.18rem!important;letter-spacing:.28rem;}
}

/* Phase 2.5.18 - Login cleanup and Terms footer/page */
.login-demo-note{display:none!important}
.footer-legal-links a{display:inline-block;color:rgba(255,255,255,.82);text-decoration:none;margin:0;font-weight:650}
.footer-legal-links a:hover{color:#fff;text-decoration:underline}
.terms-page{background:#f7fafd}
.terms-card{font-size:1rem;line-height:1.8;color:#17304f}
.terms-card h2,.terms-card h3{font-weight:800;color:var(--sis-navy);margin-top:1.4rem;margin-bottom:.75rem}
.terms-card h2:first-child,.terms-card h3:first-child{margin-top:0}
.terms-card p{color:#52657f}
.terms-card ul{color:#52657f}
@media(max-width:767.98px){.footer-bottom .container{font-size:.88rem}.terms-card{padding:1.25rem!important}}

/* Phase 2.5.20 — Clean Professional Admin Dashboard */
.admin-body{
  background:#f4f7fb!important;
}
.admin-content{
  padding:24px!important;
}
.dash-hero-card{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:24px;
  align-items:stretch;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.18) 0 90px,transparent 91px),
    linear-gradient(135deg,#073b82 0%,#061d45 70%);
  color:#fff;
  border-radius:28px;
  padding:30px;
  box-shadow:0 22px 55px rgba(6,29,69,.18);
  overflow:hidden;
  position:relative;
}
.dash-hero-card:before{
  content:"";
  position:absolute;
  inset:auto -60px -96px auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:rgba(216,166,42,.18);
}
.dash-hero-content,.dash-hero-panel{position:relative;z-index:1}
.dash-kicker{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  border-radius:999px;
  padding:7px 12px;
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:14px;
}
.dash-kicker:before{content:"●";color:#d8a62a;font-size:.7rem}
.dash-hero-content h2{
  font-family:'Manrope','Noto Sans Lao',system-ui,sans-serif;
  font-weight:850;
  font-size:clamp(1.8rem,3vw,3rem);
  letter-spacing:-.045em;
  line-height:1.05;
  margin:0 0 10px;
}
.dash-hero-content p{
  max-width:720px;
  color:rgba(255,255,255,.82);
  font-size:1rem;
  line-height:1.65;
  margin-bottom:18px;
}
.dash-hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.dash-hero-actions .btn{border-radius:14px;padding:.72rem 1rem;font-weight:850}
.dash-hero-panel{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  align-content:center;
}
.dash-hero-panel>div{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
  border-radius:18px;
  padding:16px;
  backdrop-filter:blur(10px);
}
.dash-hero-panel small{
  display:block;
  color:rgba(255,255,255,.68);
  font-weight:750;
  font-size:.73rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:6px;
}
.dash-hero-panel strong{font-size:1.55rem;line-height:1;font-weight:900}
.dash-stat{
  display:block;
  text-decoration:none;
  background:#fff;
  border:1px solid #dce6f2;
  border-radius:22px;
  padding:20px;
  min-height:158px;
  box-shadow:0 10px 30px rgba(6,29,69,.06);
  color:#061d45;
  transition:.18s ease;
  position:relative;
  overflow:hidden;
}
.dash-stat:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(6,29,69,.11);border-color:#c8d7ea;color:#061d45}
.dash-stat:after{
  content:"";
  position:absolute;
  right:-28px;
  top:-36px;
  width:112px;
  height:112px;
  border-radius:50%;
  opacity:.14;
  background:#073b82;
}
.dash-stat-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#eef5ff;
  font-size:1.35rem;
  margin-bottom:13px;
}
.dash-stat small{display:block;color:#6b7b93;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.dash-stat strong{display:block;font-size:2rem;line-height:1.05;font-weight:900;letter-spacing:-.04em;margin:6px 0 2px}
.dash-stat em{font-style:normal;color:#6b7b93;font-size:.88rem}
.dash-stat-gold .dash-stat-icon{background:#fff5d9}.dash-stat-gold:after{background:#d8a62a}
.dash-stat-teal .dash-stat-icon{background:#e7f8f7}.dash-stat-teal:after{background:#0f9b9f}
.dash-stat-green .dash-stat-icon{background:#eaf8ef}.dash-stat-green:after{background:#1c9b56}
.dash-card{
  background:#fff;
  border:1px solid #dce6f2;
  border-radius:24px;
  box-shadow:0 10px 30px rgba(6,29,69,.06);
  padding:22px;
}
.dash-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.dash-card-head h5{
  margin:0;
  color:#061d45;
  font-size:1.08rem;
  font-weight:900;
  letter-spacing:-.02em;
}
.dash-card-head p{
  margin:5px 0 0;
  color:#718199;
  font-size:.9rem;
}
.dash-card-head a{
  color:#073b82;
  font-weight:850;
  font-size:.88rem;
  text-decoration:none;
  white-space:nowrap;
}
.dash-bars{
  height:255px;
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:13px;
  align-items:end;
  padding:10px 4px 0;
}
.dash-bar-item{
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
.dash-bar-value{font-size:.78rem;font-weight:850;color:#061d45;min-height:19px}
.dash-bar-track{
  width:100%;
  max-width:44px;
  height:185px;
  background:#edf3fb;
  border-radius:999px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  border:1px solid #e0e9f5;
}
.dash-bar-track span{
  display:block;
  width:100%;
  min-height:10px;
  border-radius:999px;
  background:linear-gradient(180deg,#2f7ee6,#073b82);
}
.dash-bar-item small{font-weight:800;color:#718199;font-size:.76rem}
.status-stack{display:grid;gap:14px}
.status-row>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}
.status-row strong{color:#061d45;font-size:.92rem}
.status-row span{color:#718199;font-size:.84rem}
.status-progress{height:9px;background:#eef3fa;border-radius:999px;overflow:hidden}
.status-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#073b82,#0f9b9f)}
.dash-shortcut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dash-shortcut{
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  text-decoration:none;
  color:#061d45;
  border:1px solid #dce6f2;
  background:#fbfdff;
  border-radius:18px;
  padding:15px;
  transition:.18s ease;
}
.dash-shortcut:hover{background:#fff;border-color:#c5d7ed;transform:translateY(-2px);box-shadow:0 12px 28px rgba(6,29,69,.08);color:#061d45}
.dash-shortcut>span{
  width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:#eef5ff;font-size:1.35rem
}
.dash-shortcut strong{display:block;font-size:.98rem;font-weight:900;margin-bottom:2px}
.dash-shortcut small{display:block;color:#718199;line-height:1.35;font-size:.84rem}
.dash-shortcut em{font-style:normal;font-size:.78rem;color:#073b82;background:#eef5ff;border-radius:999px;padding:6px 9px;font-weight:850}
.dash-list{display:grid;gap:10px}
.dash-list-item,.dash-event-item{
  display:flex;
  gap:12px;
  align-items:center;
  border:1px solid #e2eaf5;
  background:#fbfdff;
  border-radius:16px;
  padding:12px;
}
.dash-avatar{
  width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#073b82;color:#fff;font-weight:900;flex:0 0 40px
}
.dash-list-item strong,.dash-event-item strong{display:block;color:#061d45;font-size:.94rem;font-weight:900;line-height:1.25}
.dash-list-item small,.dash-event-item small{display:block;color:#718199;font-size:.8rem;margin-top:2px}
.dash-date{width:48px;height:48px;border-radius:15px;background:#eef5ff;color:#073b82;display:grid;place-items:center;line-height:1;flex:0 0 48px}
.dash-date strong{font-size:1.05rem!important}.dash-date small{font-weight:900;color:#073b82!important;margin-top:-10px!important}
.dash-empty-state,.dash-empty-note{
  background:#f6f9fd;border:1px dashed #cad8ea;border-radius:16px;color:#718199;padding:14px;text-align:center;font-size:.9rem
}
.dash-table th{background:#f7f9fd!important;color:#64748b!important;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.dash-table td{border-color:#edf2f8;color:#061d45}
.dash-table code{background:#f4f7fb;border:1px solid #e2eaf5;border-radius:8px;color:#073b82;padding:4px 7px}
@media(max-width:1199.98px){
  .dash-hero-card{grid-template-columns:1fr}.dash-hero-panel{max-width:680px}
}
@media(max-width:767.98px){
  .admin-content{padding:16px!important}.dash-hero-card{padding:22px;border-radius:22px}.dash-hero-panel{grid-template-columns:1fr 1fr}.dash-shortcut-grid{grid-template-columns:1fr}.dash-bars{gap:8px}.dash-bar-track{max-width:34px}.dash-shortcut{grid-template-columns:46px minmax(0,1fr);}.dash-shortcut em{grid-column:2;justify-self:start}.dash-card{padding:18px;border-radius:20px}
}
@media(max-width:480px){.dash-hero-panel{grid-template-columns:1fr}.dash-hero-actions .btn{width:100%}}


/* Phase 2.5.26 Gallery Album UI */
.gallery-album-card,
.gallery-photo-card {
    display: block;
    height: 100%;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 18px 38px rgba(15, 23, 42, .07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gallery-album-card:hover,
.gallery-photo-card:hover,
.gallery-album-card.is-active {
    transform: translateY(-3px);
    border-color: rgba(16, 88, 180, .24);
    box-shadow: 0 24px 46px rgba(15, 23, 42, .11);
}
.gallery-album-cover,
.gallery-photo-img {
    display: block;
    height: 170px;
    background: #edf3fb;
    overflow: hidden;
}
.gallery-album-cover img,
.gallery-photo-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}
.gallery-album-card:hover img,
.gallery-photo-card:hover img { transform: scale(1.04); }
.gallery-album-body,
.gallery-photo-body { padding: 18px; }
.gallery-album-body h5 { font-size: 1.02rem; font-weight: 800; color: #0f2f5f; margin-bottom: 5px; }
.gallery-album-body p { color: #64748b; margin-bottom: 10px; font-size: .9rem; }
.gallery-album-body span { color: #0d6efd; font-weight: 700; font-size: .9rem; }
.gallery-photo-body strong { color: #0f2f5f; font-size: .96rem; }
@media (max-width: 767.98px) {
    .gallery-album-cover,
    .gallery-photo-img { height: 150px; }
    .gallery-album-body,
    .gallery-photo-body { padding: 14px; }
}

/* Phase 2.5.30: public gallery all photos layout */
.gallery-all-photos-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}
.gallery-all-photo-item {
    min-width: 0;
}
.gallery-all-photos-grid .gallery-photo-img {
    height: 135px;
}
.gallery-all-photos-grid .gallery-photo-body {
    padding: 12px 13px;
}
.gallery-all-photos-grid .gallery-photo-body strong {
    font-size: .88rem;
    line-height: 1.25;
}
.gallery-all-photos-grid .gallery-photo-body small {
    font-size: .76rem;
}
.gallery-all-photo-empty {
    grid-column: 1 / -1;
}
@media (max-width: 1199.98px) {
    .gallery-all-photos-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .gallery-all-photos-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .gallery-all-photos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .gallery-all-photos-grid .gallery-photo-img { height: 125px; }
}
@media (max-width: 420px) {
    .gallery-all-photos-grid { grid-template-columns: 1fr; }
}

/* Phase 2.5.31: cleaner footer brand when logo is hidden on selected public pages */
.footer-brand-no-logo{gap:0!important;}
.footer-brand-no-logo h5{font-size:1.25rem;font-weight:900;letter-spacing:-.02em;}
.footer-brand-no-logo small{display:block;color:rgba(255,255,255,.78);margin-top:4px;}

/* Phase 2.5.32: hide footer logo globally on all public pages */
.public-footer .footer-logo{display:none!important;}
.public-footer .footer-brand-block{gap:0!important;}
.public-footer .footer-brand-no-logo h5{font-size:1.25rem;font-weight:900;letter-spacing:-.02em;}
.public-footer .footer-brand-no-logo small{display:block;color:rgba(255,255,255,.78);margin-top:4px;}

/* Phase 2.5.34 Clubs public page */
.clubs-hero{background:linear-gradient(135deg,#0b3f85,#0f6abf);position:relative;overflow:hidden}.clubs-hero::after{content:"";position:absolute;inset:auto -8% -35% 45%;height:260px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);pointer-events:none}.clubs-filter .btn{border-radius:999px;font-weight:750}.club-card-link{text-decoration:none;color:inherit;display:block;height:100%}.club-card{height:100%;background:#fff;border:1px solid var(--sis-border);border-radius:24px;overflow:hidden;box-shadow:0 14px 34px rgba(6,29,69,.07);transition:.22s}.club-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(6,29,69,.13);border-color:#b9cbea}.club-card.is-active{border-color:#0d6efd;box-shadow:0 18px 40px rgba(13,110,253,.14)}.club-card-img{height:185px;position:relative;background:#eef3fb;overflow:hidden}.club-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s}.club-card:hover .club-card-img img{transform:scale(1.04)}.club-card-img span,.club-category{display:inline-flex;align-items:center;border-radius:999px;padding:6px 11px;background:rgba(255,255,255,.94);border:1px solid rgba(11,75,147,.12);color:#0b4b93;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.club-card-img span{position:absolute;left:14px;top:14px}.club-category{background:#eef7ff}.club-card-body{padding:19px}.club-card-body h4{font-size:1.08rem;font-weight:850;color:var(--sis-navy);margin:0 0 .45rem}.club-card-body p{color:#687992;line-height:1.55;font-size:.93rem;margin:0 0 1rem}.club-mini-meta{display:grid;gap:5px;color:#66758a}.club-mini-meta small{font-size:.8rem}.club-feature-panel{background:#fff;border:1px solid var(--sis-border);border-radius:28px;padding:28px;box-shadow:0 16px 40px rgba(6,29,69,.08)}.club-feature-img{width:100%;height:330px;object-fit:cover;border-radius:22px;background:#eef3fb;box-shadow:0 16px 30px rgba(6,29,69,.08)}.club-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.club-info-grid div{background:#f7faff;border:1px solid var(--sis-border);border-radius:16px;padding:14px}.club-info-grid strong{display:block;color:#0b4b93;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.club-info-grid span{font-weight:750;color:var(--sis-navy)}.club-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.club-photo-card{background:#fff;border:1px solid var(--sis-border);border-radius:20px;overflow:hidden;box-shadow:0 14px 34px rgba(6,29,69,.07)}.club-photo-card img{width:100%;height:170px;object-fit:cover;display:block}.club-photo-card figcaption{padding:13px 14px}.club-photo-card strong{display:block;font-size:.92rem;color:var(--sis-navy)}.club-photo-card small{color:#687992;font-size:.78rem}.club-photo-empty{grid-column:1/-1}.club-help-panel{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#092b5a,#0d4c98);color:#fff;border-radius:28px;padding:28px;box-shadow:0 18px 40px rgba(6,29,69,.14)}.club-help-panel p{color:rgba(255,255,255,.82)}
@media(max-width:1199px){.club-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.club-info-grid{grid-template-columns:1fr}}@media(max-width:767px){.club-card-img{height:165px}.club-feature-panel{padding:18px;border-radius:22px}.club-feature-img{height:230px}.club-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.club-help-panel{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.club-photo-grid{grid-template-columns:1fr}}

/* Phase 2.5.39 Affiliates & Partners */
.affiliates-section{padding-top:2.5rem;padding-bottom:2.5rem}
.affiliates-panel{background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 100%);border:1px solid rgba(13,55,112,.12);border-radius:28px;padding:32px;box-shadow:0 20px 48px rgba(15,45,90,.08)}
.affiliate-logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.affiliate-logo-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:132px;padding:18px 14px;border:1px solid rgba(13,55,112,.12);border-radius:20px;background:#fff;text-decoration:none;color:#09224a;box-shadow:0 10px 24px rgba(15,45,90,.06);transition:.2s ease}
.affiliate-logo-card:hover{transform:translateY(-3px);border-color:rgba(202,143,18,.5);box-shadow:0 16px 34px rgba(15,45,90,.1);color:#09224a}
.affiliate-logo-box{height:52px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.affiliate-logo-box img{max-width:128px;max-height:52px;object-fit:contain;display:block}
.affiliate-logo-box span{width:54px;height:54px;border-radius:16px;background:#eef6ff;color:#0b4ea2;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.04em}
.affiliate-logo-card strong{font-size:.94rem;line-height:1.2}
.affiliate-logo-card small{font-size:.78rem;color:#65758f;line-height:1.25}
.affiliate-logo-preview{height:110px;border:1px solid #dbe7f4;border-radius:18px;background:#f8fbff;display:flex;align-items:center;justify-content:center;padding:18px}
.affiliate-logo-preview img{max-width:100%;max-height:76px;object-fit:contain}
.affiliate-admin-grid{display:grid;gap:12px}
.affiliate-admin-card{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #dbe7f4;border-radius:18px;background:#fff}
.affiliate-admin-logo{width:86px;height:58px;border:1px solid #e3edf8;border-radius:16px;background:#f8fbff;display:flex;align-items:center;justify-content:center;flex:0 0 86px;padding:8px}
.affiliate-admin-logo img{max-width:100%;max-height:42px;object-fit:contain}
.affiliate-admin-logo span{font-weight:800;color:#0b4ea2}
.affiliate-admin-card p{margin:2px 0 8px;color:#6b7b94;font-size:.84rem}
.admin-page-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid #dbe7f4;border-radius:22px;padding:22px 24px;box-shadow:0 12px 34px rgba(15,45,90,.06)}
.admin-kicker{display:block;color:#0b64d8;text-transform:uppercase;font-weight:800;letter-spacing:.08em;font-size:.74rem;margin-bottom:4px}
.admin-metric-card{background:#fff;border:1px solid #dbe7f4;border-radius:20px;padding:20px;box-shadow:0 12px 30px rgba(15,45,90,.06)}
.admin-metric-card span{display:block;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#60708a;font-size:.72rem}
.admin-metric-card strong{font-size:1.8rem;color:#062a5f;margin-right:8px}
.admin-metric-card small{color:#6b7b94}
@media (max-width:991.98px){.affiliate-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.affiliates-panel{padding:24px}.admin-page-hero{align-items:flex-start;flex-direction:column}.affiliate-admin-card{align-items:flex-start}}
@media (max-width:575.98px){.affiliate-logo-grid{grid-template-columns:1fr}.affiliate-admin-card{flex-direction:column}.affiliate-admin-logo{width:100%;height:64px}}


/* Phase 2.5.40 - Summer Class and Join Us pages */
.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}.portal-card{border:1px solid rgba(15,23,42,.10);border-radius:24px;background:#fff;box-shadow:0 16px 45px rgba(15,23,42,.07);overflow:hidden;height:100%;transition:.2s ease}.portal-card:hover{transform:translateY(-3px);box-shadow:0 20px 55px rgba(15,23,42,.11)}.portal-card img{width:100%;height:190px;object-fit:cover;display:block}.portal-card-body{padding:1.1rem}.portal-card-body h3{font-size:1.05rem;font-weight:800;color:#08285c;margin:0 0 .45rem}.portal-card-body p{font-size:.9rem;color:#667792;margin-bottom:.8rem}.portal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.8rem}.portal-meta span{background:#f3f7fc;border:1px solid #dce8f6;border-radius:14px;padding:.55rem .65rem;font-size:.76rem;color:#455875}.portal-detail-panel{border:1px solid rgba(15,23,42,.10);border-radius:28px;background:#fff;box-shadow:0 20px 60px rgba(15,23,42,.09);padding:1.25rem}.portal-detail-panel img{width:100%;height:330px;object-fit:cover;border-radius:22px}.portal-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.portal-photo-card{border-radius:20px;overflow:hidden;background:#fff;border:1px solid #e0e8f4;box-shadow:0 10px 28px rgba(15,23,42,.06)}.portal-photo-card img{width:100%;height:180px;object-fit:cover;display:block}.portal-photo-card figcaption{padding:.75rem .9rem;font-size:.85rem;color:#42536f}.process-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.process-step{background:#fff;border:1px solid #dce8f6;border-radius:22px;padding:1rem;box-shadow:0 12px 32px rgba(15,23,42,.06)}.process-step b{display:inline-flex;width:34px;height:34px;border-radius:12px;align-items:center;justify-content:center;background:#0b4595;color:#fff;margin-bottom:.7rem}.job-card{border:1px solid #dce8f6;border-radius:22px;background:#fff;padding:1.1rem;box-shadow:0 14px 35px rgba(15,23,42,.06);height:100%}.job-card h3{font-size:1.05rem;font-weight:800;color:#08285c}.job-pill{display:inline-flex;border-radius:999px;background:#eef7ff;color:#0b4595;font-weight:700;font-size:.75rem;padding:.35rem .7rem;margin:.15rem}.admin-mini-preview{width:72px;height:58px;border-radius:14px;object-fit:cover;background:#f1f5f9;border:1px solid #dce8f6}@media(max-width:991.98px){.portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-photo-grid,.process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.portal-card-grid,.portal-photo-grid,.process-steps{grid-template-columns:1fr}.portal-card img,.portal-photo-card img{height:190px}.portal-detail-panel img{height:230px}}
