:root{--pink:#ff5aa5;--blue:#4aa3ff;--dark:#073b86;--soft:#fff4fa;--line:#e8eef8}
*{box-sizing:border-box}body{font-family:'Prompt',sans-serif;background:#fff;color:#263247;margin:0}.topbar{background:#fff4fa;color:#fff;font-size:14px}.navbar{background:#fff;box-shadow:0 6px 25px rgba(7,59,134,.08)}.brand-logo{width:76px;height:76px;object-fit:contain}.nav-link{font-weight:600;color:#1b2a4a!important}.nav-link.active,.btn-pink{background:var(--pink)!important;color:white!important;border-radius:18px}.hero{position:relative;overflow:hidden;background:#fff4fa;min-height:520px}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.58}.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(0);opacity:.75}.hero::before{width:420px;height:420px;background:#ffd4e8;left:-130px;bottom:-120px}.hero::after{width:380px;height:380px;background:#ccecff;right:-120px;top:-100px}.hero-content{position:relative;z-index:2;padding:95px 0}.hero h1{font-size:52px;font-weight:800;color:var(--pink)}.hero h2{font-size:46px;font-weight:800;color:var(--dark)}.glass-card{background:rgba(255,255,255,.92);border:1px solid #fff;border-radius:26px;box-shadow:0 15px 35px rgba(7,59,134,.12)}.quick{margin-top:-70px;position:relative;z-index:5}.quick-card{height:150px;border-radius:18px;background:#fff4fa;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:.2s}.quick-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px rgba(255,90,165,.15)}.quick-card i{font-size:38px;color:var(--pink)}.section-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 28px rgba(7,59,134,.07)}.section-title{font-weight:800;color:var(--pink)}.news-item{display:flex;gap:14px;border-bottom:1px solid #edf2f8;padding:12px 0}.news-item img{width:120px;height:80px;object-fit:cover;border-radius:12px}.date-badge{background:var(--pink);color:#fff;padding:3px 9px;border-radius:10px;font-size:12px}.announce-row{display:flex;gap:14px;align-items:center;border-bottom:1px solid #edf2f8;padding:15px 0}.announce-row i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff0f7;color:var(--pink)}.activity-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.activity-grid img{width:100%;height:135px;object-fit:cover;border-radius:14px}.social-box{border:1px solid var(--line);border-radius:20px;padding:18px;background:#fff}.social-box i{font-size:40px}.info-strip{background:#fff4fa;border-radius:24px}.footer{background:#fff4fa;color:#fff}.footer a{color:#fff;text-decoration:none}.map iframe{width:100%;height:230px;border:0;border-radius:18px}.admin-body{background:#f6f8fc}.sidebar{min-height:100vh;background:#102a56;color:#fff}.sidebar a{display:block;color:#dfeaff;text-decoration:none;padding:12px 18px;border-radius:12px;margin:5px 10px}.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12)}.form-card{background:#fff;border-radius:18px;box-shadow:0 8px 25px rgba(0,0,0,.06);padding:22px}@media(max-width:991px){.hero h1{font-size:36px}.hero h2{font-size:32px}.quick{margin-top:-35px}.activity-grid{grid-template-columns:repeat(2,1fr)}.news-item img{width:95px}.hero-content{padding:60px 0}.sidebar{min-height:auto}}

/* Fixed calendar layout: Bootstrap does not provide row-cols-7, so use CSS Grid */
.calendar-card{overflow:hidden}.calendar-head{font-size:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.calendar-day-name{background:#fff4fa;color:var(--pink);font-weight:800;padding:12px 4px;border-right:1px solid var(--line)}.calendar-day-name:nth-child(7){border-right:0}.calendar-date{position:relative;min-height:48px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--line);border-right:1px solid var(--line);font-weight:600;color:#263247}.calendar-date:nth-child(7n){border-right:0}.calendar-date.muted{color:#c7ced8;background:#fbfcff}.calendar-date.sun span{color:#ff3b3b}.calendar-date.sat span{color:#2f8fff}.calendar-date.has-event::after{content:"";position:absolute;bottom:7px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--pink)}.calendar-date.active span{width:40px;height:40px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center}.calendar-date.active.has-event::after{background:#fff;bottom:5px}@media(max-width:575px){.calendar-date{min-height:38px;font-size:13px}.calendar-day-name{font-size:12px;padding:8px 2px}.calendar-date.active span{width:32px;height:32px}}
.btn-search{width:46px;height:46px;display:grid;place-items:center;background:var(--pink);color:#fff!important}.footer-logo{width:72px;height:72px;object-fit:contain}.social-mini a{font-size:28px;margin-right:14px}.page-wrap{min-height:55vh}.page-hero{background:#fff4fa;border:1px solid var(--line);border-radius:28px;padding:36px;position:relative;overflow:hidden}.page-hero h1{font-weight:800;color:var(--pink);margin-bottom:8px}.page-hero p{color:#516072;margin:0}.content-card,.person-card{display:block;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(7,59,134,.07);height:100%;transition:.2s}.content-card:hover,.person-card:hover,.system-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(255,90,165,.15)}.content-card img{width:100%;height:220px;object-fit:cover}.detail-img{width:100%;max-height:520px;object-fit:cover;border-radius:22px}.content-text{font-size:18px;line-height:1.9}.person-card img{width:100%;height:290px;object-fit:cover;background:#fff4fa}.info-item{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fbfcff;height:100%}.info-item b{display:block;color:var(--pink);margin-bottom:6px}.download-row{display:flex;align-items:center;gap:18px;padding:18px;border-bottom:1px solid var(--line);color:#263247;text-decoration:none}.download-row:last-child{border-bottom:0}.download-row i{font-size:36px;color:var(--pink)}.contact-line{display:flex;gap:14px;margin:18px 0}.contact-line i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff0f7;color:var(--pink);flex:0 0 auto}.map-large iframe{height:420px}.system-card{display:block;background:#fff4fa;border:1px solid var(--line);border-radius:24px;padding:28px;height:100%;color:#263247;text-align:center;box-shadow:0 10px 28px rgba(7,59,134,.07);transition:.2s}.system-card>i{font-size:54px;color:var(--pink)}.system-card h4{font-weight:800;color:#073b86;margin-top:14px}.system-card span{color:var(--pink);font-weight:700}.calendar-big .calendar-date{min-height:80px}.event-list{list-style:none;padding:0;margin:0}.event-list li{padding:14px 18px;border-bottom:1px solid var(--line);position:relative}.event-list li:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--pink);display:inline-block;margin-right:10px}@media(max-width:575px){.page-hero{padding:24px}.content-card img{height:180px}.download-row{align-items:flex-start;flex-direction:column}.calendar-big .calendar-date{min-height:48px}}


/* Hero image slider */
.hero-slider-section{
  position:relative;
  overflow:hidden;
  background:#fff4fa;
}
.hero-slider-section::before{
  content:"";
  position:absolute;
  left:-120px;
  bottom:-130px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:#ffd4e8;
  z-index:2;
  pointer-events:none;
  opacity:.75;
}
.hero-slider-section::after{
  content:"";
  position:absolute;
  right:-110px;
  top:-110px;
  width:330px;
  height:330px;
  border-radius:50%;
  background:#ccecff;
  z-index:2;
  pointer-events:none;
  opacity:.75;
}
.hero-slide-img{
  height:520px;
  object-fit:cover;
}
.hero-slide-caption{
  position:absolute;
  left:8%;
  bottom:70px;
  max-width:560px;
  padding:24px 28px;
  border-radius:26px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(10px);
  box-shadow:0 18px 45px rgba(7,59,134,.14);
}
.hero-slide-caption h2{
  font-size:38px;
  font-weight:800;
  color:var(--dark);
  margin:0 0 8px;
}
.hero-slide-caption p{
  font-size:18px;
  color:#42536a;
  margin:0;
}
.hero-placeholder{
  min-height:520px;
  background:#fff4fa;
  color:var(--dark);
}
#schoolHeroSlider .carousel-indicators [data-bs-target]{
  width:12px;
  height:12px;
  border-radius:50%;
  border:0;
  background:#fff;
  opacity:.9;
}
#schoolHeroSlider .carousel-indicators .active{
  background:var(--pink);
}
#schoolHeroSlider .carousel-control-prev,
#schoolHeroSlider .carousel-control-next{
  z-index:5;
}
@media(max-width:991px){
  .hero-slide-img,.hero-placeholder{height:390px;min-height:390px}
  .hero-slide-caption{left:24px;right:24px;bottom:48px;max-width:none;padding:18px 20px}
  .hero-slide-caption h2{font-size:28px}
  .hero-slide-caption p{font-size:15px}
}
@media(max-width:575px){
  .hero-slide-img,.hero-placeholder{height:300px;min-height:300px}
  .hero-slide-caption{display:none}
}


/* Calendar + Facebook final fix */
.calendar-card{overflow:hidden!important}.calendar-head{font-size:18px!important}.calendar-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;text-align:center}.calendar-table th{background:#fff4fa;color:var(--pink);font-weight:800;padding:11px 4px;border-right:1px solid var(--line)}.calendar-table th:last-child{border-right:0}.calendar-table td{position:relative;height:48px;vertical-align:middle;border-top:1px solid var(--line);border-right:1px solid var(--line);font-weight:600;color:#263247}.calendar-table td:last-child{border-right:0}.calendar-table td.muted{color:#c7ced8;background:#fbfcff}.calendar-table td.sun span{color:#ff3b3b}.calendar-table td.sat span{color:#2f8fff}.calendar-table td.has-event::after{content:"";position:absolute;bottom:7px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--pink)}.calendar-table td.active span{width:40px;height:40px;border-radius:50%;background:var(--pink);color:#fff;display:inline-grid;place-items:center}.calendar-table td.active.has-event::after{background:#fff;bottom:5px}.calendar-table-lg td{height:80px}.facebook-card{min-height:0}.facebook-frame{width:100%;max-width:100%;height:500px;border-radius:16px;overflow:hidden;background:#f7f9fd;border:1px solid var(--line)}.facebook-frame iframe{display:block;width:100%!important;max-width:100%;height:500px!important;border:0!important}@media(max-width:575px){.calendar-table th{font-size:12px;padding:8px 2px}.calendar-table td{height:38px;font-size:13px}.calendar-table td.active span{width:32px;height:32px}.calendar-table-lg td{height:48px}.facebook-frame,.facebook-frame iframe{height:430px!important}}


/* Personnel layout fix */
.personnel-director-section .director-card{
  border:2px solid rgba(255,90,165,.28);
  box-shadow:0 20px 50px rgba(255,90,165,.13);
}
.personnel-director-section .person-card{
  transform:translateY(0);
}
.personnel-staff-section .row{
  align-items:stretch;
}
.person-card{
  height:100%;
}
.person-card img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:top center;
}


.person-rank {
  display: inline-block;
  margin: 6px 0 4px;
  padding: 4px 12px;
  border-radius: 999px;
  background: #fff0f7;
  color: var(--pink);
  font-size: 13px;
  font-weight: 700;
}

/* Fix: show news image in full on detail page */
.news-detail-card {
  overflow: visible;
}
.news-full-image-wrap {
  width: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(7,59,134,.07);
}
.news-full-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
  border-radius: 16px;
}
.content-card img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 575px) {
  .news-full-image-wrap {
    padding: 8px;
    border-radius: 16px;
  }
  .news-full-image {
    border-radius: 12px;
  }
}

/* Activity multi-image gallery */
.activity-album h3{
  color:#073b86;
}
.activity-photo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.activity-photo{
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:16px;
  border:1px solid var(--line);
  background:#fff;
  min-height:150px;
}
.activity-photo img{
  width:100%;
  height:100%;
  min-height:150px;
  object-fit:cover;
  object-position:center;
  transition:.2s;
}
.activity-photo:hover img{
  transform:scale(1.04);
}
.activity-photo.featured{
  grid-column:span 2;
  grid-row:span 2;
  min-height:320px;
}
.activity-photo.featured img{
  min-height:320px;
}
@media(max-width:991px){
  .activity-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .activity-photo.featured{grid-column:span 2;min-height:260px;}
  .activity-photo.featured img{min-height:260px;}
}
@media(max-width:575px){
  .activity-photo-grid{grid-template-columns:1fr;}
  .activity-photo.featured{grid-column:auto;grid-row:auto;min-height:210px;}
  .activity-photo.featured img,.activity-photo img{min-height:210px;}
}

/* Final updates: activity popup, scroll top, footer credit, dynamic calendar */
.activity-photo{
  cursor:pointer;
  padding:0;
  text-align:left;
  appearance:none;
  -webkit-appearance:none;
}
.activity-image-modal .modal-content{
  border:0;
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 24px 70px rgba(7,59,134,.22);
}
.activity-image-modal .modal-body{
  background:#fbfcff;
}
.activity-modal-img{
  display:block;
  width:100%;
  max-height:78vh;
  object-fit:contain;
  border-radius:16px;
  background:#fff;
}
.scroll-top-btn{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:999;
  width:54px;
  height:54px;
  border:3px solid #ffffff;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#4aa3ff;
  color:#ffffff;
  box-shadow:0 12px 30px rgba(74,163,255,.35);
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:.22s;
}
.scroll-top-btn i{font-size:34px;line-height:1;font-weight:900}
.scroll-top-btn.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.scroll-top-btn:hover,.scroll-top-btn:focus{background:#ff5aa5;color:#4E98B8;transform:translateY(-3px);box-shadow:0 14px 34px rgba(255,90,165,.38);outline:none}
.footer-credit span{
  display:inline-block;
  margin-left:6px;
  padding:3px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  font-weight:700;
}
.academic-calendar-table td{
  height:92px;
  vertical-align:top;
  padding-top:9px;
}
.calendar-event-title{
  margin:6px 6px 0;
  padding:3px 6px;
  border-radius:8px;
  background:#fff0f7;
  color:var(--pink);
  font-size:11px;
  line-height:1.25;
  font-weight:700;
}
@media(max-width:575px){
  .scroll-top-btn{right:14px;bottom:14px;width:48px;height:48px}
  .activity-modal-img{max-height:72vh}
  .academic-calendar-table td{height:48px;padding-top:0}
}


/* Thai announcement + student count pages */
.announcement-list-row{
  display:flex;
  gap:16px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.announcement-list-row:last-child{border-bottom:0}
.announcement-icon{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  background:#fff0f7;color:var(--pink);font-size:24px;flex:0 0 auto;
}
.announcement-list-row img{
  width:140px;height:90px;object-fit:cover;border-radius:14px;border:1px solid var(--line);
}
.student-chart-wrap{height:360px;position:relative}
.student-table thead th,.admin-student-table thead th{background:#fff4fa;color:var(--pink)}
.student-table tfoot th{background:#eaf6ff;color:#073b86}
.student-summary-card{border:1px solid var(--line);border-radius:18px;padding:16px;text-align:center;background:#fff4fa}
.student-summary-card span{display:block;color:#64748b;font-size:14px}.student-summary-card b{font-size:30px;color:var(--pink)}
.student-count-input{max-width:130px}
@media(max-width:575px){.announcement-list-row{align-items:flex-start}.announcement-list-row img{display:none}.student-chart-wrap{height:300px}}

/* Student count latest-only display */
.student-total-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  background:#fff4fa;
  color: #42526b;
  box-shadow: 0 10px 24px rgba(64, 126, 201, .08);
}
.student-total-pill b {
  color: var(--pink);
  font-size: 28px;
  line-height: 1;
}


/* News / announcements latest update */
.announce-embed-wrap {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  padding: 16px;
  overflow: hidden;
}
.announce-embed-wrap iframe,
.announce-embed-wrap embed,
.announce-embed-wrap object {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 540px;
  border: 0;
  border-radius: 16px;
}
.announce-file-wrap {
  border: 1px solid var(--line);
  border-radius: 22px;
  background:#fff4fa;
  padding: 16px;
}
.pdf-viewer {
  width: 100%;
  height: 760px;
  border: 0;
  border-radius: 18px;
  background: #f7f9fc;
}
@media(max-width: 768px){
  .pdf-viewer { height: 520px; }
  .announce-embed-wrap iframe,
  .announce-embed-wrap embed,
  .announce-embed-wrap object { min-height: 420px; }
}

/* Documents page */
.download-row .bi-file-earmark-pdf-fill { color:#dc3545; }
.download-row .bi-file-earmark-image-fill { color:var(--blue); }


/* Hero slider responsive fix: show full image, no colored circles/dots */
.hero-slider-section{
  background:#fff4fa!important;
  overflow:hidden;
}
.hero-slider-section::before,
.hero-slider-section::after{
  display:none!important;
  content:none!important;
}
#schoolHeroSlider{
  background:#fff4fa;
}
#schoolHeroSlider .carousel-inner,
#schoolHeroSlider .carousel-item{
  width:100%;
  background:#fff4fa;
}
.hero-slide-img{
  width:100%;
  height:auto!important;
  max-height:720px;
  min-height:0!important;
  aspect-ratio:16/7;
  object-fit:contain!important;
  object-position:center center;
  background:#fff4fa;
  display:block;
}
#schoolHeroSlider .carousel-indicators{
  display:none!important;
}
#schoolHeroSlider .carousel-control-prev,
#schoolHeroSlider .carousel-control-next{
  width:8%;
}
#schoolHeroSlider .carousel-control-prev-icon,
#schoolHeroSlider .carousel-control-next-icon{
  width:42px;
  height:42px;
  border-radius:50%;
  background-color:rgba(7,59,134,.35);
  background-size:55% 55%;
}
.hero-placeholder{
  min-height:clamp(220px,43vw,620px)!important;
}
@media(max-width:991px){
  .hero-slide-img{
    aspect-ratio:16/8;
    max-height:520px;
  }
}
@media(max-width:575px){
  .hero-slide-img{
    aspect-ratio:4/3;
    max-height:420px;
  }
}

/* Quick links carousel on homepage */
.quick-slider-card { position: relative; }
.quick-slider-controls .btn { width: 34px; height: 34px; display: inline-grid; place-items: center; }
.quick-slider-card .carousel-item { transition: transform .45s ease-in-out; }
.quick-page-indicator { display: flex; justify-content: center; gap: 8px; }
.quick-page-indicator button { width: 28px; height: 8px; border: 0; border-radius: 999px; background: #d8e8ff; transition: .2s; }
.quick-page-indicator button.active { width: 42px; background: var(--pink); }
.icon-preview-box { min-height: 42px; border: 1px solid #dbe6f5; border-radius: 12px; display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: #fff; }
.icon-preview-box i { font-size: 28px; color: var(--pink); }
@media(max-width:575px){
  .quick-card { height: 142px; padding: 10px; }
  .quick-card i { font-size: 32px; }
  .quick-card b { font-size: 14px; }
  .quick-card small { font-size: 11px; }
}

/* Q&A page */
.qa-accordion .accordion-item{
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  margin-bottom:12px;
  background:#fff;
}
.qa-accordion .accordion-button{
  font-weight:700;
  color:#073b86;
  background:#fff;
  box-shadow:none;
}
.qa-accordion .accordion-button:not(.collapsed){
  background:#fff4fa;
  color:var(--pink);
}
.qa-accordion .accordion-body{
  line-height:1.85;
  color:#44546a;
}
.qa-form-card{
  top:100px;
}
.answered-qa-item{
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.answered-qa-item:last-child{
  border-bottom:0;
}
.qa-answer-box{
  background:#fff4fa;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  line-height:1.8;
}
@media(max-width:991px){
  .qa-form-card{position:static!important;}
}

/* Header redesign: soft pink-blue school theme + admin login top pill */
.site-top-actions{
  position:relative;
  z-index:1040;
  padding:10px 0 0;
  background:#fff4fa;
}
.admin-login-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border-radius:999px;
  background:#fff4fa;
  color:#fff!important;
  text-decoration:none;
  font-weight:700;
  box-shadow:0 10px 24px rgba(255,90,165,.20);
  transition:.2s;
}
.admin-login-pill:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(74,163,255,.23);
}
.main-navbar{
  position:sticky;
  overflow:hidden;
  background:#fff4fa!important;
  box-shadow:0 8px 28px rgba(7,59,134,.08)!important;
  border-bottom:1px solid rgba(232,238,248,.9);
}
.main-navbar::before{
  content:"";
  position:absolute;
  width:350px;
  height:350px;
  border-radius:50%;
  left:-205px;
  top:-210px;
  background:#fff4fa;
  opacity:.95;
  pointer-events:none;
  z-index:0;
}
.main-navbar::after{
  content:"";
  position:absolute;
  width:250px;
  height:250px;
  border-radius:50%;
  right:-150px;
  top:-160px;
  background:radial-gradient(circle,#dff3ff 0%,rgba(223,243,255,.75) 45%,rgba(255,255,255,0) 70%);
  pointer-events:none;
  z-index:0;
}
.main-navbar .container{
  position:relative;
  z-index:2;
}
.main-navbar .nav-link{
  border-radius:18px;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
.main-navbar .nav-link.active{
  background:var(--pink)!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(255,90,165,.22);
}
.main-navbar .brand-logo{
  filter:drop-shadow(0 8px 14px rgba(7,59,134,.12));
}
@media(max-width:991px){
  .site-top-actions{display:block!important;padding:8px 0;background:#fff;}
  .site-top-actions .container{justify-content:center!important;}
  .admin-login-pill{font-size:14px;padding:8px 14px;}
  .main-navbar::before{width:250px;height:250px;left:-160px;top:-170px;}
  .main-navbar .navbar-collapse{padding-top:14px;}
  .main-navbar .nav-link{margin:4px 0;}
}

/* About page school emblem from uploaded logo */
.about-logo-hero{
  position:relative;
  overflow:hidden;
  background:#fff4fa;
}
.about-logo-hero::before{
  content:"";
  position:absolute;
  inset:auto -90px -130px auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,90,165,.18),rgba(74,163,255,.12),rgba(255,255,255,0) 70%);
}
.school-emblem-wrap{
  width:210px;
  height:210px;
  border-radius:38px;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid rgba(232,238,248,.95);
  box-shadow:0 18px 45px rgba(7,59,134,.12);
  padding:24px;
  position:relative;
}
.school-emblem-wrap::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:30px;
  border:2px dashed rgba(255,90,165,.22);
  pointer-events:none;
}
.school-emblem-img{
  width:100%;
  height:100%;
  object-fit:contain;
  position:relative;
  z-index:2;
}
.about-kicker{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:8px 16px;
  background:rgba(255,90,165,.10);
  color:var(--pink);
  font-weight:800;
  margin-bottom:14px;
}
.about-school-title{
  color:#0b4bc5;
  font-weight:900;
}
.about-school-en{
  color:#4f8ee8;
  font-weight:700;
  font-size:1.1rem;
}
.about-school-desc{
  color:#43536a;
  line-height:1.9;
}
@media(max-width:575px){
  .school-emblem-wrap{
    width:170px;
    height:170px;
    border-radius:30px;
    padding:18px;
  }
}


/* Flat pink-blue-white theme: no gradients */
:root{--pink:#ff5aa5;--blue:#4aa3ff;--dark:#073b86;--soft:#fff4fa;--soft-blue:#edf8ff;--line:#e8eef8}
body{background:#ffffff!important;color:#263247}
.topbar,.site-top-actions{background:#fff4fa!important;color:#4aa3ff!important;border-bottom:1px solid #ffe0ef!important}
.main-navbar,.navbar{background:#ffffff!important;border-bottom:1px solid #eef3fb!important;box-shadow:0 6px 25px rgba(7,59,134,.08)!important}
.nav-link.active,.btn-pink,.btn-search,.admin-login-pill,.date-badge,.calendar-date.active span,.calendar-table td.active span{background:#ff5aa5!important;color:#ffffff!important}
.hero,.hero-slider-section,.hero-placeholder,.page-hero,.info-strip,.system-card,.quick-card,.student-summary-card,.qa-card,.document-category-card,.school-emblem-wrap,.about-logo-hero{background:#ffffff!important}
.quick-card:nth-child(odd),.system-card:nth-child(odd),.student-summary-card:nth-child(odd){background:#fff4fa!important}
.quick-card:nth-child(even),.system-card:nth-child(even),.student-summary-card:nth-child(even){background:#edf8ff!important}
.section-card,.content-card,.person-card,.social-box,.form-card,.info-item{background:#ffffff!important;border-color:#e8eef8!important}
.calendar-day-name,.calendar-table th{background:#fff4fa!important;color:#ff5aa5!important}
.footer{background:#ff5aa5!important;color:#ffffff!important}
.footer a{color:#ffffff!important}
.hero::before,.hero::after,.hero-slider-section::before,.hero-slider-section::after{display:none!important}
.btn-outline-primary{border-color:#4aa3ff!important;color:#4aa3ff!important;background:#ffffff!important}
.btn-outline-primary:hover{background:#4aa3ff!important;color:#ffffff!important}

/* User update: restore website blue tone */
:root{
  --blue:#4aa3ff;
  --dark:#073b86;
  --admin-navy:#102a56;
}
.text-primary,
.link-primary,
a.text-primary,
.page-hero p,
.about-school-en,
.system-card h4,
.student-table tfoot th,
.activity-album h3,
.qa-accordion .accordion-button,
.info-item span,
.navbar-brand .text-primary{
  color:#4aa3ff!important;
}
.btn-outline-primary{
  border-color:#4aa3ff!important;
  color:#4aa3ff!important;
}
.btn-outline-primary:hover{
  background:#4aa3ff!important;
  color:#ffffff!important;
}
.download-row .bi-file-earmark-image-fill{
  color:#4aa3ff!important;
}
.main-navbar::before,
.main-navbar::after,
.about-logo-hero::before{
  display:none!important;
  content:none!important;
  background:none!important;
}

/* About page: identity card followed by a separate emblem card */
.identity-card-connected{
  margin-bottom:12px!important;
  border-bottom-left-radius:14px!important;
  border-bottom-right-radius:14px!important;
}
.emblem-card-connected{
  margin-top:0!important;
  border-top-left-radius:14px!important;
  border-top-right-radius:14px!important;
  background:#ffffff!important;
}
.school-emblem-plain-img{
  display:block;
  width:min(190px,70vw);
  height:auto;
  max-height:210px;
  object-fit:contain;
  margin:0 auto;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:0!important;
}
@media(max-width:991px){
  .emblem-card-connected{margin-bottom:24px!important;}
}

/* Contact page social buttons */
.contact-social-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.contact-social-buttons .btn{border-radius:999px;padding:.6rem 1rem;font-weight:700}
.contact-social-buttons .btn i{margin-right:6px}
@media(max-width:575px){.contact-social-buttons .btn{width:100%;justify-content:center;display:inline-flex;align-items:center}}


/* About page: framed school emblem */
.emblem-logo-frame{
  width:min(230px,78vw);
  min-height:230px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  border:2px solid var(--line);
  border-radius:24px;
  background:#ffffff;
  box-shadow:0 14px 36px rgba(51,157,219,.12);
}
.emblem-logo-frame .school-emblem-plain-img{
  width:100%;
  max-width:180px;
  max-height:180px;
  object-fit:contain;
}
@media(max-width:575px){
  .emblem-logo-frame{
    width:min(210px,82vw);
    min-height:210px;
    padding:18px;
  }
}

/* =========================
   Modern responsive admin UI
   ========================= */
.admin-modern-body,
.admin-login-page{
  font-family:'Prompt',sans-serif;
  background:#f4f8ff!important;
  color:#263247;
}
.admin-modern-body{
  min-height:100vh;
  overflow-x:hidden;
}
.admin-sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:286px;
  height:100vh;
  background:#ffffff;
  border-right:1px solid #dbeafe;
  box-shadow:0 18px 50px rgba(15,23,42,.08);
  z-index:1050;
  display:flex;
  flex-direction:column;
  padding:18px 14px;
  overflow-y:auto;
}
.admin-sidebar-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 10px 18px;
  border-bottom:1px solid #eef4ff;
  margin-bottom:12px;
}
.admin-brand-mark{
  width:46px;
  height:46px;
  border-radius:16px;
  background:#ff5aa5;
  color:#ffffff;
  display:grid;
  place-items:center;
  font-size:22px;
  box-shadow:0 12px 28px rgba(255,90,165,.22);
}
.admin-brand-title{
  font-weight:800;
  color:#4aa3ff;
  font-size:20px;
  line-height:1.1;
}
.admin-brand-subtitle{
  color:#7d8ca3;
  font-size:12px;
  margin-top:3px;
}
.admin-nav{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:4px 0 14px;
}
.admin-nav-link{
  display:flex!important;
  align-items:center;
  gap:12px;
  color:#40506b!important;
  text-decoration:none!important;
  padding:12px 14px!important;
  border-radius:16px!important;
  font-weight:700;
  margin:0!important;
  transition:background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.admin-nav-link i{
  width:24px;
  height:24px;
  border-radius:9px;
  display:grid;
  place-items:center;
  color:#4aa3ff;
  background:#edf8ff;
  flex:0 0 24px;
}
.admin-nav-link:hover{
  background:#fff4fa!important;
  color:#ff5aa5!important;
  transform:translateX(3px);
}
.admin-nav-link:hover i,
.admin-nav-link.active i{
  color:#ffffff;
  background:#ff5aa5;
}
.admin-nav-link.active{
  background:#fff4fa!important;
  color:#ff5aa5!important;
  box-shadow:0 10px 24px rgba(255,90,165,.12);
}
.admin-sidebar-footer{
  margin-top:auto;
  border-top:1px solid #eef4ff;
  padding-top:12px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.admin-view-site{
  background:#edf8ff!important;
  color:#4aa3ff!important;
}
.admin-logout-link{
  background:#fff5f5!important;
  color:#e64646!important;
}
.admin-logout-link i{background:#ffe5e5!important;color:#e64646!important;}
.admin-main{
  margin-left:286px;
  min-height:100vh;
  padding:20px;
}
.admin-topbar{
  position:sticky;
  top:0;
  z-index:100;
  min-height:76px;
  display:flex;
  align-items:center;
  gap:14px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(16px);
  border:1px solid #dbeafe;
  border-radius:24px;
  box-shadow:0 16px 40px rgba(15,23,42,.06);
  padding:14px 18px;
  margin-bottom:20px;
}
.admin-top-title{
  font-size:20px;
  font-weight:800;
  color:#ff5aa5;
  line-height:1.25;
}
.admin-top-subtitle{
  color:#7d8ca3;
  font-size:13px;
}
.admin-menu-btn{
  width:44px;
  height:44px;
  border:0;
  border-radius:15px;
  background:#edf8ff;
  color:#4aa3ff;
  font-size:24px;
  display:none;
  align-items:center;
  justify-content:center;
}
.admin-user-pill{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff4fa;
  color:#ff5aa5;
  font-weight:700;
  white-space:nowrap;
}
.admin-content{
  display:block;
}
.admin-content h1,
.admin-content h2,
.admin-content h3{
  color:#ff5aa5;
  font-weight:800;
}
.admin-content .form-card,
.admin-content .card,
.admin-content .section-card{
  border:1px solid #dbeafe!important;
  border-radius:24px!important;
  background:#ffffff!important;
  box-shadow:0 16px 42px rgba(15,23,42,.06)!important;
}
.admin-content .form-card{
  padding:24px!important;
}
.admin-content .form-control,
.admin-content .form-select,
.admin-content textarea{
  border-radius:14px!important;
  border:1px solid #dbeafe!important;
  padding:.72rem .9rem;
}
.admin-content .form-control:focus,
.admin-content .form-select:focus,
.admin-content textarea:focus{
  border-color:#4aa3ff!important;
  box-shadow:0 0 0 .25rem rgba(74,163,255,.14)!important;
}
.admin-content .btn{
  border-radius:999px;
  font-weight:700;
}
.admin-content .btn-primary,
.admin-content .btn-success{
  background:#ff5aa5!important;
  border-color:#ff5aa5!important;
  color:#ffffff!important;
}
.admin-content .btn-outline-primary{
  border-color:#4aa3ff!important;
  color:#4aa3ff!important;
  background:#ffffff!important;
}
.admin-content .btn-outline-primary:hover{
  background:#4aa3ff!important;
  color:#ffffff!important;
}
.admin-content .table{
  background:#ffffff;
  border-radius:18px;
  overflow:hidden;
}
.admin-content .table thead th{
  background:#edf8ff!important;
  color:#4aa3ff!important;
  border-bottom:1px solid #dbeafe!important;
  white-space:nowrap;
}
.admin-content .table td,
.admin-content .table th{
  vertical-align:middle;
}
.admin-content table{
  width:100%;
}
.admin-content img{
  max-width:100%;
  height:auto;
}
.admin-mobile-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.46);
  z-index:1040;
  opacity:0;
  visibility:hidden;
  transition:.2s;
}
.admin-sidebar-open .admin-mobile-backdrop{
  opacity:1;
  visibility:visible;
}
.admin-login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:#f4f8ff!important;
}
.admin-login-shell{
  width:min(460px,100%);
}
.admin-login-card{
  background:#ffffff;
  border:1px solid #dbeafe;
  border-radius:30px;
  box-shadow:0 24px 70px rgba(15,23,42,.10);
  padding:34px;
  text-align:center;
}
.admin-login-logo{
  width:74px;
  height:74px;
  border-radius:24px;
  background:#ff5aa5;
  color:#ffffff;
  display:grid;
  place-items:center;
  font-size:34px;
  margin:0 auto 18px;
  box-shadow:0 16px 36px rgba(255,90,165,.25);
}
.admin-login-card h1{
  color:#ff5aa5;
  font-size:28px;
  font-weight:800;
  margin:0 0 6px;
}
.admin-login-card p{
  color:#7d8ca3;
  margin-bottom:24px;
}
.admin-login-form{text-align:left;}
.admin-login-form .input-group-text{
  border-radius:14px 0 0 14px;
  background:#edf8ff;
  border-color:#dbeafe;
  color:#4aa3ff;
}
.admin-login-form .form-control{
  border-radius:0 14px 14px 0;
  border-color:#dbeafe;
  padding:.85rem 1rem;
}
.admin-back-home{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:18px;
  color:#4aa3ff;
  text-decoration:none;
  font-weight:700;
}
.admin-back-home:hover{color:#ff5aa5;}

@media(max-width:991px){
  .admin-sidebar{
    transform:translateX(-105%);
    transition:transform .22s ease;
    width:min(286px,86vw);
  }
  .admin-sidebar-open .admin-sidebar{
    transform:translateX(0);
  }
  .admin-main{
    margin-left:0;
    padding:12px;
  }
  .admin-topbar{
    border-radius:20px;
    margin-bottom:14px;
  }
  .admin-menu-btn{display:inline-flex;}
  .admin-user-pill span{display:none;}
  .admin-top-title{font-size:17px;}
  .admin-content .form-card{padding:18px!important;}
  .admin-content table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
    border-radius:16px;
  }
}
@media(max-width:575px){
  .admin-main{padding:10px;}
  .admin-topbar{padding:12px;gap:10px;}
  .admin-top-subtitle{display:none;}
  .admin-login-card{padding:26px 20px;border-radius:24px;}
  .admin-content .row{--bs-gutter-y:1rem;}
  .admin-content .btn{width:100%;margin-top:4px;}
  .admin-content .btn + .btn{margin-left:0!important;}
}
