﻿:root{
  --ams-blue-900:#0B3C6E;
  --ams-blue-700:#145A96;
  --ams-gold-500:#C9A227;
  --ams-gold-300:#E0C35A;
  --ams-danger:#C62828;
  --ams-success:#2E7D32;
  --ams-exempt:#455A64;
  --blue:var(--ams-blue-900);
  --blue2:var(--ams-blue-700);
  --gold:var(--ams-gold-500);
  --ink:#1A2B3C;
  --muted:#5B6B7C;
  --line:#E4EAF1;
  --paper:#F3F6FA;
  --paper-deep:#E8EEF6;
  --white:#fff;
  --font-body:"Plus Jakarta Sans","IBM Plex Sans Arabic",sans-serif;
  --font-display:Fraunces,"IBM Plex Sans Arabic",Georgia,serif;
  --radius-md:14px;
  --radius-lg:20px;
  --shadow-soft:0 10px 30px rgba(11,60,110,.06);
  --shadow-lift:0 18px 40px rgba(11,60,110,.12);
  --ease:cubic-bezier(.22,.68,0,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
  margin:0;
  background:
    radial-gradient(1200px 480px at 10% -10%,rgba(20,90,150,.08),transparent 55%),
    radial-gradient(900px 420px at 100% 0%,rgba(201,162,39,.07),transparent 50%),
    linear-gradient(180deg,var(--paper) 0%,var(--paper-deep) 100%);
  color:var(--ink);
  font-family:var(--font-body);
  --bs-body-font-family:var(--font-body);
  --bs-font-sans-serif:var(--font-body);
  font-weight:400;
  font-size:1.02rem;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.nav-open{overflow:hidden}
body.locale-ar{
  --font-body:"IBM Plex Sans Arabic","Plus Jakarta Sans",sans-serif;
  --font-display:"IBM Plex Sans Arabic","Plus Jakarta Sans",sans-serif;
  font-family:var(--font-body);
}
h1,h2,h3,.page-title,.section-head h2,.hero h1,.contact-intro h2,.program-card-title,.brand-text strong{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.25;
}
a{color:inherit}
.site-header{
  background:rgba(255,255,255,.78);
  border-bottom:1px solid rgba(228,234,241,.75);
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:0 8px 28px rgba(11,60,110,.04);
}
.public-nav{
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  padding:14px 0;
}
.nav-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  margin-inline-start:auto;
}
.nav-toggle{
  display:inline-flex;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--blue);
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
  cursor:pointer;
}
.nav-links{
  position:fixed;
  inset-block:0;
  inset-inline-start:0;
  inset-inline-end:auto;
  width:min(320px,88vw);
  background:#fff;
  border-inline-end:1px solid var(--line);
  box-shadow:0 20px 48px rgba(15,23,42,.24);
  padding:16px 14px 24px;
  z-index:95;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  transform:translateX(calc(-100% - 20px));
  transition:transform .22s ease,visibility .22s ease;
  visibility:hidden;
  pointer-events:none;
}
/* Ø§Ù„Ø¹Ø±Ø¨ÙŠØ©: Ø§Ù„Ø¯Ø±Ø¬ Ù…Ù† Ø§Ù„ÙŠÙ…ÙŠÙ† (inline-start) ÙˆÙŠÙØ®ÙÙ‰ Ø®Ø§Ø±Ø¬ Ø§Ù„Ø´Ø§Ø´Ø© ÙŠÙ…ÙŠÙ†Ø§Ù‹ */
.locale-ar .nav-links,
[dir="rtl"] .nav-links{
  border-inline-end:0;
  border-inline-start:1px solid var(--line);
  transform:translateX(calc(100% + 20px));
}
.nav-links.is-open{
  transform:translateX(0);
  visibility:visible;
  pointer-events:auto;
}
body.nav-open{
  overflow:hidden;
}
.nav-links-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 8px 14px;
  margin-bottom:10px;
  border-bottom:1px solid var(--line);
}
.nav-links-head strong{
  font-size:1rem;
  font-weight:700;
  color:var(--blue);
}
.nav-links-close{
  width:36px;
  height:36px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(2,10,27,.46);
  border:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:90;
}
body.nav-open .nav-backdrop{
  opacity:1;
  pointer-events:auto;
}
.nav-links a{
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight:500;
  color:var(--ink);
  padding:11px 12px;
  border-radius:10px;
  white-space:nowrap;
  transition:color .2s var(--ease), background .2s var(--ease);
}
.nav-links a i{
  font-size:1.05rem;
  color:var(--blue);
  opacity:.9;
  line-height:1;
}
.nav-links a:hover,.nav-links a.active{
  background:#eef3fb;
  color:var(--blue);
}
.nav-links a:hover i,.nav-links a.active i{
  opacity:1;
  color:var(--gold);
}
img,svg,video{max-width:100%;height:auto}
.table-responsive-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--blue);
  min-width:0;
}
.brand-mark{
  width:44px;
  height:44px;
  border-radius:12px;
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:none;
}
.site-header .brand-mark--light,
.brand-mark--light{
  background:transparent;
  border-radius:0;
  overflow:visible;
}
.brand-mark--dark{
  background:transparent;
  border-radius:0;
  overflow:visible;
}
.brand-mark .academy-logo,
.academy-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.brand-text{display:grid;gap:2px;min-width:0}
.brand-text strong{
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:-.01em;
}
.brand-text small{
  color:var(--muted);
  font-size:.72rem;
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:280px;
}
.lang-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  padding:8px 14px;
  font:inherit;
  font-weight:600;
  font-size:.88rem;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.lang-toggle:hover,.lang-toggle[aria-expanded="true"]{
  border-color:#c5d4ec;
  background:#f8fbff;
  box-shadow:0 4px 14px rgba(10,61,145,.08);
}
.lang-toggle .bi-globe2{
  color:var(--blue);
  font-size:1.05rem;
}
.lang-caret{
  font-size:.72rem;
  color:var(--muted);
  transition:transform .15s ease;
}
.lang-toggle[aria-expanded="true"] .lang-caret{transform:rotate(180deg)}
.lang-menu{
  min-width:180px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:6px;
  margin-top:8px !important;
  box-shadow:0 12px 28px rgba(15,23,42,.1);
}
.lang-menu .dropdown-item{
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:8px;
  padding:10px 12px;
  font-weight:600;
  color:var(--ink);
}
.lang-menu .dropdown-item .lang-code{
  width:28px;
  height:28px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#eef3fb;
  color:var(--blue);
  font-size:.72rem;
  font-weight:700;
}
.lang-menu .dropdown-item.active,
.lang-menu .dropdown-item:active{
  background:#eef3fb;
  color:var(--blue);
}
.lang-menu .dropdown-item .bi-check2{
  margin-inline-start:auto;
  color:var(--blue);
}
.lang-switch{
  display:inline-flex;
  border:1px solid var(--line);
  border-radius:999px;
  overflow:hidden;
  background:#fff;
}
.lang-switch a{
  padding:6px 12px;
  text-decoration:none;
  font-weight:700;
  font-size:.82rem;
  color:var(--muted);
}
.lang-switch a.active{
  background:var(--blue);
  color:#fff;
}
.hero{
  position:relative;
  isolation:isolate;
  min-height:min(88vh,760px);
  padding:132px 0 120px;
  overflow:hidden;
  display:flex;
  align-items:center;
  background:#061830;
  color:#fff;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero-media__img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  display:block;
  opacity:.38;
  transform:scale(1.04);
  filter:saturate(.9) contrast(1.05);
}
.hero-veil{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(115deg,rgba(4,22,48,.88) 0%,rgba(11,60,110,.72) 48%,rgba(20,90,150,.55) 100%),
    radial-gradient(900px 420px at 88% 12%,rgba(201,162,39,.18),transparent 58%);
}
.hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:96px;
  z-index:1;
  background:linear-gradient(180deg,transparent,var(--paper));
  pointer-events:none;
}
.hero-inner{
  max-width:720px;
  position:relative;
  z-index:2;
}
.hero-logo{
  width:96px;
  height:96px;
  margin-bottom:22px;
  background:transparent;
}
.hero-logo .academy-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.28));
}
.eyebrow{
  font-family:var(--font-body);
  font-size:.75rem;
  letter-spacing:.12em;
  color:var(--gold);
  font-weight:600;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.hero .eyebrow{
  color:#f5e6a8;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:7px 14px;
  letter-spacing:.08em;
  backdrop-filter:blur(6px);
}
.hero h1{
  font-size:clamp(2.35rem,5.4vw,3.85rem);
  font-weight:600;
  letter-spacing:-.03em;
  line-height:1.16;
  margin:0 0 18px;
  text-shadow:0 10px 30px rgba(0,0,0,.22);
}
.hero-lead{
  font-size:1.1rem;
  font-weight:400;
  max-width:560px;
  opacity:.94;
  margin:0 0 32px;
  line-height:1.75;
  color:rgba(255,255,255,.92);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.gold-button,.ghost-button{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  border-radius:14px;
  padding:.88rem 1.35rem;
  font-weight:600;
  font-family:var(--font-body);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease), border-color .22s var(--ease);
}
.gold-button{
  background:linear-gradient(180deg,var(--ams-gold-300),var(--gold));
  color:#1a1404;
  box-shadow:0 10px 28px rgba(201,162,39,.32);
}
.gold-button:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(201,162,39,.4);
  color:#1a1404;
}
.ghost-button{
  border:1px solid rgba(255,255,255,.55);
  color:#fff;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(8px);
}
.ghost-button:hover{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.8);
  color:#fff;
  transform:translateY(-2px);
}
.section-block{padding:108px 0}
.section-soft{
  background:
    radial-gradient(700px 280px at 10% 0%,rgba(20,90,150,.06),transparent 60%),
    linear-gradient(180deg,rgba(238,243,251,.9),rgba(255,255,255,.55));
}
.about-section .feature-card h3{
  margin:0 0 8px;
  font-size:1.2rem;
  font-weight:600;
}
.section-alt{padding-top:0}
.section-head{margin-bottom:36px}
.section-head .page-intro{margin:14px 0 0}
.section-head h2,.page-title{
  font-weight:600;
  margin:0;
  color:var(--ink);
}
.section-head h2{font-size:clamp(1.75rem,3vw,2.4rem)}
.page-title{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:12px}
.page-main{padding:64px 0 80px}
.page-intro{color:var(--muted);max-width:640px;margin-bottom:28px;line-height:1.75;font-weight:400}
.cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.profile-card,.feature-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(228,234,241,.95);
  border-radius:20px;
  box-shadow:0 12px 32px rgba(11,60,110,.05);
  padding:28px;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
.profile-card:hover,.feature-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 40px rgba(11,60,110,.1);
  border-color:#cfe0f2;
}
.profile-card h3,.feature-card h2{
  margin:0 0 8px;
  font-size:1.18rem;
  font-weight:600;
}
.profile-card p,.feature-card p{margin:0 0 8px;color:var(--muted);line-height:1.65}
.profile-card .meta{display:flex;align-items:center;gap:8px}
.avatar{
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  color:#fff;
  font-size:1.35rem;
  margin-bottom:14px;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(11,60,110,.18);
}
.avatar img{width:100%;height:100%;object-fit:cover}
.program-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.program-card{
  background:rgba(255,255,255,.97);
  border:1px solid rgba(228,234,241,.95);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 12px 32px rgba(11,60,110,.05);
  display:flex;
  flex-direction:column;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
.program-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 40px rgba(11,60,110,.1);
  border-color:#cfe0f2;
}
.program-card-media{
  position:relative;
  height:180px;
  background:linear-gradient(135deg,var(--ams-blue-900),var(--ams-blue-700));
  overflow:hidden;
}
.program-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.program-card-fallback{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.85);
  font-size:3rem;
}
.program-card-subject{
  position:absolute;
  inset-inline-start:14px;
  bottom:14px;
  background:rgba(201,162,39,.95);
  color:#1a1400;
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:600;
  padding:6px 12px;
  border-radius:999px;
  letter-spacing:.02em;
}
.program-card-body{
  padding:18px 18px 20px;
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
}
.program-card-title{
  margin:0;
  font-size:1.22rem;
  font-weight:600;
  color:var(--ink);
  line-height:1.35;
}
.program-card-meta{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.program-card-meta li{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:var(--muted);
  font-size:.92rem;
  font-weight:600;
  line-height:1.45;
}
.program-card-meta i{
  color:var(--blue);
  margin-top:2px;
}
.program-card-schedule{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.program-card-schedule-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:600;
  color:var(--blue);
  margin-bottom:8px;
}
.program-card-schedule ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:6px;
}
.program-card-schedule li{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:.88rem;
  color:var(--ink);
  background:#f5f8fc;
  border-radius:10px;
  padding:8px 10px;
}
.program-card-schedule li strong{font-weight:600}
.program-card-empty-schedule{margin:0;color:var(--muted)}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}
.contact-panel{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:40px;
  align-items:center;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(228,234,241,.95);
  border-radius:var(--radius-lg);
  padding:44px;
  box-shadow:var(--shadow-soft);
}
.contact-compact{
  max-width:920px;
  margin:0 auto;
}
.contact-section.section-block{padding:72px 0}
.contact-chips{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.contact-chip{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(228,234,241,.95);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
  text-decoration:none;
  color:inherit;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
}
a.contact-chip:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-lift);
  border-color:#cfdceb;
  color:inherit;
}
.contact-chip i{
  width:36px;
  height:36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#eef3fb,#f7fafc);
  color:var(--blue);
  font-size:1.05rem;
  flex:none;
}
.contact-chip .bi-whatsapp{color:#1fa855;background:#e8f8ef}
.contact-chip span{display:grid;gap:2px;min-width:0}
.contact-chip small{
  font-size:.75rem;
  font-weight:600;
  color:var(--muted);
  letter-spacing:.02em;
}
.contact-chip strong{
  font-size:.98rem;
  font-weight:600;
  color:var(--ink);
  line-height:1.45;
  word-break:break-word;
}
.contact-chip.is-static{cursor:default}
.contact-map-block{margin-top:28px}
.contact-map-title{
  margin:0 0 12px;
  font-size:1.05rem;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--blue);
}
.contact-map-title i{color:var(--gold)}
.contact-intro h2{
  margin:0 0 12px;
  font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:600;
}
.contact-intro p{
  margin:0;
  color:var(--muted);
  max-width:420px;
  line-height:1.8;
}
.contact-list{display:grid;gap:18px}
.contact-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.contact-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#eef3fb;
  color:var(--blue);
  font-size:1.15rem;
  flex:none;
}
.contact-icon.whatsapp{background:#e8f8ef;color:#1fa855}
.contact-label{
  display:block;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--muted);
  margin-bottom:2px;
}
.contact-item a,.contact-item strong{
  color:var(--ink);
  font-weight:600;
  text-decoration:none;
  border:0;
  box-shadow:none;
}
.contact-item a:hover{
  color:var(--blue);
  text-decoration:none;
}
.contact-page-panel{
  align-items:stretch;
  margin-top:28px;
}
.contact-map-wrap{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  min-height:360px;
  background:#eef3fb;
  display:flex;
  flex-direction:column;
}
.contact-map-wrap iframe{
  width:100%;
  height:100%;
  min-height:360px;
  border:0;
  display:block;
  flex:1;
}
.contact-map-load{
  min-height:220px;
  width:100%;
  border:0;
  background:linear-gradient(180deg,#eef3fb,#e2eaf6);
  color:var(--blue);
  display:grid;
  place-content:center;
  gap:8px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.contact-map-load i{font-size:1.6rem;color:var(--gold)}
.contact-map-load:hover{background:linear-gradient(180deg,#e7eef9,#d9e4f3)}
.contact-map-actions{
  padding:12px 14px;
  background:#fff;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:center;
}
.contact-map-actions .gold-button{
  width:100%;
  justify-content:center;
}
.contact-map-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
  font-weight:700;
  color:var(--blue);
  text-decoration:none;
}
.contact-map-link:hover{color:var(--gold);text-decoration:underline}
.objectives-block .section-head{margin-bottom:20px}
.objectives-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}
.objectives-list li{
  position:relative;
  padding:16px 18px 16px 48px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(228,234,241,.95);
  border-radius:var(--radius-md);
  font-weight:500;
  line-height:1.75;
}
.objectives-list li::before{
  content:counter(obj);
  counter-increment:obj;
  position:absolute;
  inset-inline-start:14px;
  top:16px;
  width:28px;
  height:28px;
  border-radius:8px;
  background:linear-gradient(180deg,var(--ams-gold-300),var(--gold));
  color:#1a1400;
  display:grid;
  place-items:center;
  font-size:.85rem;
  font-weight:700;
}
.objectives-list{counter-reset:obj}
.locale-ar .objectives-list li{padding:16px 48px 16px 18px}
.whatsapp-float{
  position:fixed;
  inset-inline-end:22px;
  bottom:22px;
  z-index:80;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  background:#25D366;
  color:#fff;
  text-decoration:none;
  border-radius:50%;
  box-shadow:0 12px 28px rgba(37,211,102,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.whatsapp-float i{font-size:1.55rem;line-height:1}
.whatsapp-float:hover{
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(37,211,102,.42);
}
.feature-icon{
  width:46px;
  height:46px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#eef3fb,#f7fafc);
  color:var(--blue);
  font-size:1.2rem;
  margin-bottom:14px;
}
.empty-note{
  background:rgba(255,255,255,.9);
  border:1px dashed var(--line);
  border-radius:12px;
  padding:24px;
  color:var(--muted);
}

/* Modern motion */
@keyframes fade-up{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
.fade-up{
  animation:fade-up .7s var(--ease) both;
}
.fade-up-delay-1{animation-delay:.12s}
.fade-up-delay-2{animation-delay:.24s}
.fade-up-delay-3{animation-delay:.36s}
@media (prefers-reduced-motion:reduce){
  .fade-up{animation:none}
  .profile-card,.feature-card,.program-card,.gold-button,.ghost-button,.nav-links a{
    transition:none;
  }
}
.site-footer{
  background:linear-gradient(160deg,#062a63,#0A3D91 55%,#134fa8);
  color:#dbe7ff;
  margin-top:40px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1.1fr;
  gap:36px;
  padding:56px 0 40px;
}
.footer-logo{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:14px;
}
.footer-logo .footer-logo-img,
.footer-logo .academy-logo{
  width:46px;
  height:46px;
  object-fit:contain;
  background:transparent;
  flex:none;
}
.footer-logo strong{display:block;color:#fff;font-size:1.15rem;font-weight:600}
.footer-logo p,.footer-about,.footer-tagline{margin:0;color:#c9d8f5}
.footer-about{margin:10px 0 14px;max-width:360px}
.footer-tagline{display:flex;align-items:center;gap:8px;color:#f5e6a8;font-weight:600}
.footer-links,.footer-contact{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.footer-contact li,
.footer-links a,
.footer-contact a,
.footer-contact span{
  color:#dbe7ff;
  text-decoration:none;
}
.footer-contact li{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.footer-contact li > i{
  flex:none;
  width:1.15rem;
  margin-top:.2rem;
  text-align:center;
  color:#f5e6a8;
}
.footer-links a{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.footer-contact a,
.footer-contact span{
  display:inline-block;
  line-height:1.5;
  min-width:0;
}
.site-footer h3{
  color:#fff;
  font-size:1.05rem;
  font-weight:600;
  margin:0 0 16px;
  display:flex;
  align-items:center;
  gap:10px;
}
.footer-links a:hover,.footer-contact a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 0;
  font-size:.92rem;
  color:#b7cae9;
}
.footer-bottom p{margin:0}
.login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  position:relative;
  background:linear-gradient(160deg,#f8fafc 0%,#e8eef8 55%,#dce7f7 100%);
}
.login-lang-float{
  position:absolute;
  top:22px;
  inset-inline-end:22px;
  z-index:5;
}
.login-card{
  width:min(420px,100%);
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:36px;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
  display:grid;
  gap:14px;
}
.login-brand{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:8px;
  margin-bottom:6px;
}
.login-logo{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  margin-bottom:4px;
}
.login-logo--light{
  background:transparent;
  box-shadow:none;
}
.login-logo .academy-logo{
  width:100%;
  height:100%;
  object-fit:contain;
}
.login-academy{
  margin:0;
  color:var(--gold);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.login-card h1{
  margin:0;
  font-size:1.7rem;
  font-weight:800;
  text-align:center;
}
.login-card .muted{
  margin:0;
  color:var(--muted);
  text-align:center;
}
.login-card label{display:grid;gap:6px;font-weight:600;font-size:.9rem}
.login-card input[type=email],.login-card input[type=password],.login-card input[type=text]{
  border:1px solid var(--line);
  border-radius:8px;
  padding:12px 14px;
  font:inherit;
  width:100%;
}
.password-field{position:relative}
.password-field input{padding-inline-end:46px}
.password-toggle{
  position:absolute;
  inset-inline-end:8px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  color:var(--muted);
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:8px;
  cursor:pointer;
}
.password-toggle:hover{color:var(--blue);background:#eef3fb}
.login-card .check{display:flex;align-items:center;gap:8px;font-weight:500}
.login-card .check--remember{
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
  cursor:pointer;
}
.login-card .check--remember input{
  width:18px;
  height:18px;
  margin-top:2px;
  flex:none;
  accent-color:var(--blue);
}
.login-card .check--remember strong{display:block;font-size:.92rem;color:#0f172a}
.login-card .check--remember small{display:block;margin-top:2px;color:#64748b;font-weight:500;font-size:.8rem;line-height:1.35}
.login-card button[type=submit]{
  background:var(--blue);
  color:#fff;
  border:0;
  border-radius:8px;
  padding:12px 16px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.admin-shell{
  display:flex;
  min-height:100vh;
  align-items:flex-start;
  font-family:var(--font-body);
}
.admin-shell .btn,
.admin-shell .form-control,
.admin-shell .form-select,
.admin-shell .form-label,
.admin-shell .table,
.admin-shell .nav-link,
.admin-shell .dropdown-menu,
.admin-shell .alert,
.admin-shell input,
.admin-shell select,
.admin-shell textarea,
.admin-shell button{
  font-family:var(--font-body) !important;
}
.admin-shell .btn,
.admin-shell a.btn,
.admin-shell .dash-action,
.admin-shell .btn-sm{
  border-radius:999px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  min-height:40px;
  padding:.55rem 1.05rem;
  box-shadow:none;
}
.admin-shell .btn-sm{
  min-height:34px;
  padding:.35rem .85rem;
  font-size:.85rem;
}
.admin-shell .btn-outline-primary,
.admin-shell .btn-outline-secondary,
.admin-shell .btn-outline-danger{
  background:#fff;
}
.admin-shell .form-control,
.admin-shell .form-select,
.admin-shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.admin-shell select,
.admin-shell textarea{
  border-radius:999px !important;
  min-height:40px;
  padding:.55rem 1rem;
  border-color:#dbe3ef;
  box-shadow:none;
}
.admin-shell textarea.form-control{
  border-radius:18px !important;
  min-height:96px;
}
.admin-shell .form-select{
  padding-inline-start:1rem;
  padding-inline-end:2.75rem;
  background-position: right 1rem center;
  background-size: 16px 12px;
}
html[dir="rtl"] .admin-shell .form-select,
body.locale-ar .admin-shell .form-select{
  background-position: left 1rem center;
  padding-inline-start:1rem;
  padding-inline-end:2.75rem;
  /* Fallback for engines that still use physical sides with the caret */
  padding-left:2.75rem;
  padding-right:1rem;
}
.admin-shell .form-control:focus,
.admin-shell .form-select:focus{
  border-color:#93c5fd;
  box-shadow:0 0 0 .2rem rgba(37,99,235,.12);
}
.admin-shell h1,
.admin-shell h2,
.admin-shell h3,
.admin-topbar h1,
.admin-shell .panel-title h2,
.admin-shell .eyebrow{
  font-family:var(--font-display) !important;
}
.sidebar{
  width:255px;
  flex:none;
  position:fixed;
  top:0;
  bottom:0;
  inset-inline-start:0;
  z-index:30;
  height:100vh;
  height:100dvh;
  max-height:100vh;
  max-height:100dvh;
  padding:28px 16px 20px;
  background:var(--blue);
  color:#cddbf3;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.sidebar .brand{display:flex;align-items:center;gap:8px;color:#fff;margin-bottom:8px;font-weight:800;flex:none}
.sidebar .brand-mark{
  width:40px;
  height:40px;
  background:transparent;
  overflow:visible;
}
.sidebar-caption{font-size:.7rem;letter-spacing:.08em;display:block;flex:none}
.sidebar nav{
  margin:14px 0;
  display:grid;
  gap:6px;
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-inline-end:6px;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.45) rgba(255,255,255,.12);
}
.sidebar nav::-webkit-scrollbar{width:7px}
.sidebar nav::-webkit-scrollbar-track{
  background:rgba(255,255,255,.12);
  border-radius:999px;
  margin-block:4px;
}
.sidebar nav::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.42);
  border-radius:999px;
  border:1px solid rgba(11,60,110,.15);
}
.sidebar nav::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.6);
}
.sidebar nav a,.logout{
  padding:12px 14px;
  color:#dbeafe;
  text-decoration:none;
  border-radius:7px;
  background:transparent;
  border:0;
  text-align:start;
  font:inherit;
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  cursor:pointer;
}
.sidebar nav a:hover{color:#fff;background:transparent}
.sidebar-lang{margin-bottom:14px}
.admin-main{
  width:100%;
  min-width:0;
  margin-inline-start:255px;
  padding:34px 45px;
}
.admin-topbar,.admin-main header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:30px}
.admin-main h1{margin:0;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:800}
.admin-dot{font-size:.8rem;color:#16A34A;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.admin-dot.is-offline{color:#dc2626}
.admin-status-group{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.admin-db-badge{
  font-size:.78rem;
  color:#64748b;
  background:#f1f5f9;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
.pwa-install-btn{
  width:100%;
  padding:12px 14px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.1);
  color:#fff;
  font:inherit;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  cursor:pointer;
}
.pwa-install-btn:hover{background:rgba(255,255,255,.16);color:#fff}
.pwa-ios-hint{
  margin:0;
  font-size:.72rem;
  line-height:1.5;
  color:#dbeafe;
  opacity:.92;
}
.admin-content{min-width:0}
.admin-local-note{
  margin:-12px 0 18px;
  padding:10px 14px;
  border-radius:10px;
  background:#eff6ff;
  border:1px solid #dbeafe;
  color:#1e40af;
  font-size:.86rem;
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.admin-content .table,.panel .table{min-width:560px}
.admin-content .panel,.admin-content form{max-width:100%}
.stat-card,.panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.stat-card{padding:22px;position:relative;overflow:hidden}
.stat-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.stat-top span{display:block;color:#64748b;font-size:.86rem;font-weight:600}
.stat-icon{color:var(--blue);opacity:.75;font-size:1.1rem}
.stat-card strong{font-size:2rem;color:var(--blue);display:block}

.dash-intro{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:stretch;margin-bottom:18px}
.dash-intro__eyebrow{margin:0 0 4px;color:#64748b;font-size:.8rem;font-weight:700;letter-spacing:.02em}
.dash-intro__text{margin:0;color:#334155;font-size:1rem;line-height:1.55;max-width:42rem}
.dash-alert{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;font-weight:700;font-size:.92rem;text-decoration:none;border:1px solid transparent}
.dash-alert--warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.dash-alert--ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.dash-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.dash-kpi__item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.dash-kpi__item span{display:block;color:#64748b;font-size:.82rem;font-weight:700;margin-bottom:6px}
.dash-kpi__item strong{display:block;font-size:1.85rem;line-height:1.1;color:var(--blue);margin-bottom:8px}
.dash-kpi__item small{display:block;color:#64748b;font-size:.78rem;line-height:1.4}
.dash-kpi__item--accent strong{color:#0f766e}
.dash-kpi__item--danger{border-color:#fecaca;background:#fffafa}
.dash-kpi__item--danger strong{color:#b91c1c}
.dash-charts{margin-bottom:22px}
.dash-charts__head{margin-bottom:12px}
.dash-charts__sub{margin:4px 0 0;color:#64748b;font-size:.88rem}
.dash-charts__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.dash-chart-card{margin:0;overflow:hidden}
.dash-chart-card--wide{grid-column:1 / -1}
.dash-chart-wrap{height:260px;padding:4px 18px 18px}
.dash-chart-wrap--donut{height:240px;max-width:340px;margin-inline:auto}
.dash-section-title{font-size:.95rem;margin:0 0 10px;color:#0f172a}
.dash-actions{margin-bottom:22px}
.dash-actions__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.dash-actions__head .dash-section-title{margin:0}
.dash-actions__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.dash-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:#0f172a;
  text-decoration:none;
  font-weight:600;
  font-size:.84rem;
  line-height:1.2;
  height:auto;
  min-height:36px;
  width:auto;
  white-space:nowrap;
  cursor:pointer;
}
.dash-action i{font-size:.95rem}
.dash-action:hover{border-color:#93c5fd;background:#f8fbff;color:var(--blue)}
.dash-action--primary{background:var(--blue);border-color:var(--blue);color:#fff}
.dash-action--primary:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff}
.dash-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}
.dash-grid--bottom{grid-template-columns:1fr 1fr}
.dash-panel .panel-title span{display:block;color:#64748b;font-size:.82rem;margin-top:4px}
.dash-panel .panel-title a{font-weight:700;text-decoration:none;color:var(--blue);white-space:nowrap}
.dash-finance-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 22px 16px}
.dash-finance-strip > div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.dash-finance-strip span{display:block;color:#64748b;font-size:.78rem;font-weight:700;margin-bottom:4px}
.dash-finance-strip strong{font-size:1.05rem}
@media (max-width:1100px){
  .dash-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dash-grid,.dash-grid--bottom,.dash-charts__grid{grid-template-columns:1fr}
  .dash-chart-card--wide{grid-column:auto}
}
@media (max-width:640px){
  .dash-kpi{grid-template-columns:1fr}
  .dash-finance-strip{grid-template-columns:1fr;padding-inline:14px}
  .dash-chart-wrap{height:220px;padding-inline:12px}
}
.sidebar nav a.active{color:#fff;background:rgba(255,255,255,.08)}
.sidebar-footer{margin-top:auto;display:grid;gap:10px;flex:none}
.sidebar-lang-btn{
  width:100%;
  justify-content:flex-start;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
  color:#fff;
}
.sidebar-lang-btn .bi-globe2{color:#f5e6a8}
.sidebar-lang-btn .lang-current{color:#fff}
.logout{
  background:#dc2626;
  color:#fff;
  border:1px solid #ef4444;
  justify-content:center;
  font-weight:700;
}
.logout:hover{
  background:#b91c1c;
  color:#fff;
}
.table-actions{
  vertical-align:middle;
  white-space:nowrap;
}
.table-actions a,
.table-actions .btn,
.table-actions form{
  display:inline-flex;
  align-items:center;
  gap:4px;
  vertical-align:middle;
  margin-inline-end:10px;
}
.table-actions a:last-child,
.table-actions .btn:last-child,
.table-actions form:last-child{
  margin-inline-end:0;
}
.table-actions a{
  text-decoration:none;
  font-weight:600;
  color:var(--blue);
}
.table-actions form{margin:0}
.admin-shell .table tbody td.table-actions,
.admin-shell .table tbody td:has(> .btn),
.admin-shell .table tbody td:has(> a),
.admin-shell .table tbody td:has(> form){
  vertical-align:middle;
}
.days-grid{display:flex;flex-wrap:wrap;gap:8px}
.day-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 12px;
  background:#fff;
  cursor:pointer;
  font-weight:600;
  font-size:.9rem;
}
.day-chip input{margin:0}
.form-label{font-weight:600;margin-bottom:6px}
.admin-content .alert{border-radius:12px}
.panel{overflow:auto}
.panel-title{padding:20px 22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-title h2{font-size:1.05rem;margin:0}
.toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.toolbar > form,
.toolbar-filters{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap;
  align-items:center;
  gap:10px;
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  padding-bottom:2px;
}
.toolbar > form > .form-control,
.toolbar > form > .form-select,
.toolbar-filters > .form-control,
.toolbar-filters > .form-select{
  width:auto;
  min-width:150px;
  max-width:220px;
  flex:0 0 auto;
}
.toolbar > form > .form-control[name="search"],
.toolbar-filters > .form-control[name="search"],
.toolbar > form > input[type="search"],
.toolbar-filters > input[type="search"]{
  min-width:220px;
  max-width:280px;
  flex:1 1 220px;
}
.toolbar > .d-flex,
.toolbar-actions{
  display:flex !important;
  flex-wrap:nowrap;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.toolbar .btn-filter-submit{display:none}
.status{font-size:.75rem;font-weight:700;text-transform:capitalize;padding:4px 8px;border-radius:20px}
.status.paid{background:#dcfce7;color:#166534}
.status.missing{background:#fef3c7;color:#92400e}
.status.unpaid{background:#fee2e2;color:#991b1b}
.status.exempt{background:#eceff1;color:#37474f}
.btn-primary{background:var(--blue)!important;border-color:var(--blue)!important}

/* â€”â€” Admin topbar / user menu â€”â€” */
.admin-topbar{
  position:relative;
  z-index:50;
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 18px;
  box-shadow:0 8px 24px rgba(15,23,42,.04);
  margin-bottom:22px;
  backdrop-filter:blur(8px);
  isolation:isolate;
}
.admin-topbar__title{min-width:0;flex:1 1 auto}
.admin-topbar__brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  flex:1 1 auto;
}
.admin-topbar__logo{
  flex:none;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:14px;
  background:linear-gradient(160deg,#fff 0%,#f3f7fc 100%);
  border:1px solid var(--line);
  box-shadow:0 4px 12px rgba(11,60,110,.06);
  text-decoration:none;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.admin-topbar__logo:hover{
  border-color:#93c5fd;
  box-shadow:0 6px 16px rgba(11,60,110,.1);
  transform:translateY(-1px);
}
.admin-topbar__logo-img,
.admin-topbar__logo .academy-logo{
  width:34px !important;
  height:34px !important;
  object-fit:contain;
  display:block;
}
.admin-status-group{
  position:relative;
  z-index:51;
  flex:0 0 auto;
}
.admin-user-menu{position:relative;z-index:52}
.admin-user-dropdown{z-index:1050 !important}
.admin-content{
  position:relative;
  z-index:1;
  clear:both;
}
.toolbar.toolbar--page-actions{
  justify-content:flex-start;
  margin-top:0;
  margin-bottom:16px;
  position:relative;
  z-index:2;
}
.admin-user-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:6px 12px 6px 6px;
  cursor:pointer;
  font:inherit;
  color:var(--ink);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.admin-user-btn:hover,
.admin-user-btn[aria-expanded="true"]{
  border-color:#93c5fd;
  box-shadow:0 0 0 .15rem rgba(37,99,235,.1);
}
.admin-user-avatar{
  width:36px;
  height:36px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--ams-blue-900),var(--ams-blue-700));
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:.95rem;
  flex:none;
}
.admin-user-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.2;
  text-align:start;
}
.admin-user-meta strong{font-size:.88rem;font-weight:700}
.admin-user-meta small{font-size:.72rem;color:#64748b;font-weight:600}
.admin-user-btn > .bi-chevron-down{font-size:.75rem;color:#94a3b8}
.admin-user-dropdown{min-width:220px;border-radius:14px;border-color:var(--line);padding:8px}
.admin-user-dropdown .dropdown-item{
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  padding:10px 12px;
}
.admin-user-dropdown .dropdown-item i{opacity:.8}

/* â€”â€” Settings submenu â€”â€” */
.settings-subnav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
  padding:8px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.03);
}
.settings-subnav__item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  text-decoration:none;
  color:#475569;
  font-weight:700;
  font-size:.9rem;
  border:1px solid transparent;
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.settings-subnav__item:hover{background:#f8fafc;color:var(--blue)}
.settings-subnav__item.is-active{
  background:var(--blue);
  color:#fff;
  border-color:var(--blue);
}
.settings-field{
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  height:100%;
}
.settings-field strong{
  display:block;
  font-size:.78rem;
  color:#64748b;
  margin-bottom:4px;
}
.settings-field span{display:block;color:#0f172a;font-weight:600;word-break:break-word}

/* â€”â€” Colored professional tables â€”â€” */
.admin-shell .table{
  --bs-table-bg:transparent;
  border-collapse:separate;
  border-spacing:0;
  font-size:.92rem;
}
.admin-shell .table thead th{
  background:rgba(11,60,110,.70);
  color:#fff;
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.02em;
  text-transform:none;
  border:0;
  padding:12px 14px;
  white-space:nowrap;
  vertical-align:middle;
}
.admin-shell .table thead th:first-child{border-start-start-radius:0}
.admin-shell .table thead th:last-child{border-start-end-radius:0}
.admin-shell .panel .table thead th:first-child{border-start-start-radius:0}
.admin-shell .table tbody td{
  padding:12px 14px;
  border-color:#e8eef6;
  vertical-align:middle;
  background:#fff;
}
.admin-shell .table tbody tr:nth-child(even) td{background:#f7fafc}
.admin-shell .table tbody tr:hover td{background:#eff6ff}
.admin-shell .table.table-colored tbody tr.table-row-income td{background:#f0fdf4}
.admin-shell .table.table-colored tbody tr.table-row-expense td{background:#fff1f2}
.admin-shell .table.table-colored tbody tr.table-row-income:hover td{background:#dcfce7}
.admin-shell .table.table-colored tbody tr.table-row-expense:hover td{background:#fee2e2}

/* Column-tinted tables â€” soft / translucent */
.admin-shell .table.table-colored thead th,
.admin-shell .table.table-cols thead th{
  background:rgba(11,60,110,.72);
  color:#fff;
  font-weight:700;
  border:0;
  backdrop-filter:blur(2px);
}
.admin-shell .table.table-colored thead th:nth-child(1),
.admin-shell .table.table-cols thead th:nth-child(1){background:rgba(37,99,235,.55)}
.admin-shell .table.table-colored thead th:nth-child(2),
.admin-shell .table.table-cols thead th:nth-child(2){background:rgba(13,148,136,.50)}
.admin-shell .table.table-colored thead th:nth-child(3),
.admin-shell .table.table-cols thead th:nth-child(3){background:rgba(202,138,4,.48)}
.admin-shell .table.table-colored thead th:nth-child(4),
.admin-shell .table.table-cols thead th:nth-child(4){background:rgba(124,58,237,.48)}
.admin-shell .table.table-colored thead th:nth-child(5),
.admin-shell .table.table-cols thead th:nth-child(5){background:rgba(2,132,199,.48)}
.admin-shell .table.table-colored thead th:nth-child(6),
.admin-shell .table.table-cols thead th:nth-child(6){background:rgba(101,163,13,.48)}
.admin-shell .table.table-colored thead th:nth-child(7),
.admin-shell .table.table-cols thead th:nth-child(7){background:rgba(100,116,139,.48)}
.admin-shell .table.table-colored thead th:nth-child(n+8),
.admin-shell .table.table-cols thead th:nth-child(n+8){background:rgba(100,116,139,.45)}
/* Actions column â€” soft neutral (same family as other headers) */
.admin-shell .table.table-colored thead th:last-child,
.admin-shell .table.table-cols thead th:last-child{background:rgba(71,85,105,.50)}

.admin-shell .table.table-colored tbody td:nth-child(1),
.admin-shell .table.table-cols tbody td:nth-child(1){background:rgba(239,246,255,.55)}
.admin-shell .table.table-colored tbody td:nth-child(2),
.admin-shell .table.table-cols tbody td:nth-child(2){background:rgba(240,253,250,.55)}
.admin-shell .table.table-colored tbody td:nth-child(3),
.admin-shell .table.table-cols tbody td:nth-child(3){background:rgba(255,251,235,.55)}
.admin-shell .table.table-colored tbody td:nth-child(4),
.admin-shell .table.table-cols tbody td:nth-child(4){background:rgba(245,243,255,.55)}
.admin-shell .table.table-colored tbody td:nth-child(5),
.admin-shell .table.table-cols tbody td:nth-child(5){background:rgba(240,249,255,.55)}
.admin-shell .table.table-colored tbody td:nth-child(6),
.admin-shell .table.table-cols tbody td:nth-child(6){background:rgba(247,254,231,.55)}
.admin-shell .table.table-colored tbody td:nth-child(7),
.admin-shell .table.table-cols tbody td:nth-child(7){background:rgba(248,250,252,.55)}
.admin-shell .table.table-colored tbody td:nth-child(n+8),
.admin-shell .table.table-cols tbody td:nth-child(n+8){background:rgba(248,250,252,.50)}
.admin-shell .table.table-colored tbody td:last-child,
.admin-shell .table.table-cols tbody td:last-child{background:rgba(241,245,249,.60)}

.admin-shell .table.table-colored tbody tr:hover td:nth-child(1),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(1){background:rgba(219,234,254,.70)}
.admin-shell .table.table-colored tbody tr:hover td:nth-child(2),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(2){background:rgba(204,251,241,.70)}
.admin-shell .table.table-colored tbody tr:hover td:nth-child(3),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(3){background:rgba(254,243,199,.70)}
.admin-shell .table.table-colored tbody tr:hover td:nth-child(4),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(4){background:rgba(237,233,254,.70)}
.admin-shell .table.table-colored tbody tr:hover td:nth-child(5),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(5){background:rgba(224,242,254,.70)}
.admin-shell .table.table-colored tbody tr:hover td:nth-child(6),
.admin-shell .table.table-cols tbody tr:hover td:nth-child(6){background:rgba(236,252,203,.70)}
.admin-shell .table.table-colored tbody tr:hover td:last-child,
.admin-shell .table.table-cols tbody tr:hover td:last-child{background:rgba(226,232,240,.75)}

.admin-shell .table.table-colored tbody tr.table-row-income td{background:rgba(240,253,244,.65) !important}
.admin-shell .table.table-colored tbody tr.table-row-expense td{background:rgba(255,241,242,.65) !important}

.table-avatar{
  width:36px;height:36px;border-radius:50%;flex:none;
  background:#e2e8f0 center/cover no-repeat;border:1px solid var(--line);
}
.badge-soft{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;padding:4px 10px;border-radius:999px;
  background:#e0f2fe;color:#0369a1;font-weight:700;font-size:.85rem;
}

/* —— Weekly academic timetable —— */
.program-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.program-legend{
  display:flex;flex-wrap:wrap;gap:8px;
  padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;
}
.program-legend__item{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 12px;border-radius:999px;
  background:var(--g-bg);border:1px solid var(--g-border);color:var(--g-text);
  font-size:.8rem;box-shadow:0 4px 12px rgba(15,23,42,.08);
}
.program-legend__item strong{font-weight:800}
.program-legend__item small{opacity:.9}
.program-legend__dot{
  width:10px;height:10px;border-radius:50%;
  background:rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);flex:none;
}
.timetable{
  --slot-height:40px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 10px 28px rgba(15,23,42,.05);
  overflow:hidden;
}
.timetable__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.timetable__grid{
  --time-col:64px;
  display:grid;
  grid-template-columns:var(--time-col) repeat(7,minmax(132px,1fr));
  min-width:1080px;
}
.timetable__corner{
  position:sticky;
  inset-inline-start:0;
  z-index:4;
  background:rgba(11,60,110,.55);
  border-bottom:1px solid rgba(255,255,255,.18);
}
.timetable__day-head{
  padding:12px 10px;
  text-align:center;
  background:rgba(11,60,110,.55);
  color:#fff;
  border-inline-start:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(4px);
}
.timetable__day-head strong{display:block;font-size:.92rem;font-weight:800}
.timetable__day-head span{
  display:inline-block;margin-top:4px;
  font-size:.68rem;font-weight:800;letter-spacing:.04em;
  background:rgba(245,230,168,.92);color:#0B3C6E;border-radius:999px;padding:2px 8px;
}
.timetable__day-head small{display:block;margin-top:4px;font-size:.72rem;opacity:.88}
.timetable__day-head.is-today{
  background:rgba(37,99,235,.62);
  box-shadow:inset 0 -3px 0 rgba(245,230,168,.9);
}
.timetable__room-lanes{
  display:grid;
  grid-template-columns:repeat(var(--room-count, 3), minmax(0, 1fr));
  gap:2px;
  margin-top:8px;
}
.timetable__room-lanes span{
  display:block;
  font-size:.62rem;
  font-weight:700;
  line-height:1.2;
  padding:3px 2px;
  border-radius:6px;
  background:rgba(255,255,255,.18);
  color:#fff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.timetable__room-guides{
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
  z-index:1;
}
.timetable__room-guide{
  position:absolute;
  top:0;bottom:0;
  border-inline-end:1px dashed rgba(148,163,184,.35);
}
.timetable__room-guide:last-child{border-inline-end:0}
.timetable__times{
  position:sticky;
  inset-inline-start:0;
  z-index:3;
  background:#f8fafc;
  border-inline-end:1px solid var(--line);
}
.timetable__time{
  height:var(--slot-height);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:4px;
  font-size:.72rem;
  font-weight:700;
  color:#64748b;
  border-bottom:1px solid #eef2f7;
}
.timetable__time.is-hour{
  font-weight:800;
  color:#334155;
  border-bottom-color:#dbe3ef;
}
.timetable__time.is-half{
  font-size:.66rem;
  color:#94a3b8;
  font-weight:600;
}
.timetable__col{
  position:relative;
  height:calc(var(--slot-count) * var(--slot-height));
  background:
    repeating-linear-gradient(
      to bottom,
      #fff 0,
      #fff calc(var(--slot-height) - 1px),
      #eef2f7 calc(var(--slot-height) - 1px),
      #eef2f7 var(--slot-height)
    );
  border-inline-start:1px solid #e8eef6;
}
.timetable__col.is-today{
  background:
    repeating-linear-gradient(
      to bottom,
      #f8fbff 0,
      #f8fbff calc(var(--slot-height) - 1px),
      #dbeafe calc(var(--slot-height) - 1px),
      #dbeafe var(--slot-height)
    );
  box-shadow:inset 0 0 0 2px rgba(37,99,235,.12);
}
.timetable__slot-line{height:var(--slot-height);border-bottom:1px solid transparent}
.timetable__slot-line.is-hour{box-shadow:inset 0 -1px 0 #dbe3ef}
.timetable__slot-line.is-half{box-shadow:inset 0 -1px 0 #f1f5f9}
.timetable-block{
  position:absolute;
  z-index:2;
  box-sizing:border-box;
  padding:7px 9px;
  border-radius:10px;
  background:var(--g-bg);
  border:1px solid var(--g-border);
  border-inline-start:4px solid var(--g-border);
  color:var(--g-text);
  box-shadow:0 4px 12px rgba(15,23,42,.06);
  overflow:hidden;
  cursor:pointer;
  backdrop-filter:blur(2px);
  transition:transform .18s ease, box-shadow .18s ease, width .18s ease, height .18s ease, inset-inline-start .18s ease;
}
.timetable-block:hover{
  z-index:5;
  transform:scale(1.01);
  box-shadow:0 8px 18px rgba(15,23,42,.1);
}
.timetable-block.is-expanded{
  z-index:40;
  width:min(260px, 72vw) !important;
  height:auto !important;
  min-height:180px;
  inset-inline-start:50% !important;
  transform:translateX(-50%) scale(1.02);
  overflow:visible;
  padding:12px 14px;
  box-shadow:0 18px 40px rgba(15,23,42,.18);
  background:#fff;
  border-color:var(--g-border);
}
html[dir="rtl"] .timetable-block.is-expanded,
body.locale-ar .timetable-block.is-expanded{
  transform:translateX(50%) scale(1.02);
}
.timetable-block__details{display:none}
.timetable-block.is-expanded .timetable-block__compact{display:none}
.timetable-block.is-expanded .timetable-block__details{display:block}
.timetable-block__details-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}
.timetable-block__details-head strong{
  font-size:1rem;
  line-height:1.3;
  color:var(--g-text);
}
.timetable-block__close{
  border:0;
  background:rgba(15,23,42,.06);
  color:#334155;
  width:28px;height:28px;
  border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;flex:none;
}
.timetable-block__close:hover{background:rgba(15,23,42,.1)}
.timetable-block__facts{
  list-style:none;margin:0;padding:0;display:grid;gap:8px;
}
.timetable-block__facts li{
  display:grid;
  grid-template-columns:18px 1fr auto;
  gap:8px;
  align-items:center;
  font-size:.8rem;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(248,250,252,.95);
  border:1px solid rgba(226,232,240,.9);
}
.timetable-block__facts i{color:var(--g-border);opacity:.9}
.timetable-block__facts span{color:#64748b;font-weight:600}
.timetable-block__facts strong{color:#0f172a;font-weight:800;text-align:end}
.timetable-block__room{
  display:inline-block;
  font-size:.62rem;
  font-weight:800;
  line-height:1;
  padding:3px 6px;
  border-radius:999px;
  margin-bottom:4px;
  background:rgba(255,255,255,.55);
  border:1px solid var(--g-border);
  color:var(--g-text);
}
.timetable-block__subject{
  display:block;
  font-size:.84rem;
  line-height:1.25;
  font-weight:800;
  margin-bottom:3px;
}
.timetable-block__line{
  display:block;
  font-size:.72rem;
  line-height:1.35;
  opacity:.92;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.timetable-block__line i{margin-inline-end:3px;opacity:.8}
@media (max-width:1100px){
  .timetable{--slot-height:36px}
  .timetable__grid{min-width:980px;--time-col:56px}
}
@media (max-width:768px){
  .timetable{--slot-height:34px}
  .timetable__grid{min-width:900px}
}

.stat-card--success{border-color:#bbf7d0;background:linear-gradient(180deg,#fff 60%,#f0fdf4)}
.stat-card--success strong{color:#047857}
.stat-card--info{border-color:#bfdbfe;background:linear-gradient(180deg,#fff 60%,#eff6ff)}
.stat-card--danger{border-color:#fecaca;background:linear-gradient(180deg,#fff 60%,#fef2f2)}

/* Desktop: horizontal header (not mobile drawer) */
@media (min-width:992px){
  .public-nav{
    flex-wrap:nowrap;
    gap:18px;
  }
  .public-nav > .brand{order:1;flex:none}
  .public-nav > .nav-links{order:2}
  .public-nav > .nav-toolbar{order:3;margin-inline-start:0}
  .nav-toggle,
  .nav-links-head,
  .nav-backdrop,
  .nav-links-close{
    display:none !important;
  }
  .nav-links,
  .locale-ar .nav-links,
  [dir="rtl"] .nav-links{
    position:static;
    inset:auto;
    width:auto;
    transform:none;
    visibility:visible;
    pointer-events:auto;
    background:transparent;
    border:0;
    box-shadow:none;
    padding:0;
    margin:0;
    flex:1;
    flex-direction:row;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    z-index:auto;
  }
  .nav-links a{
    padding:8px 12px;
    font-size:.93rem;
    font-weight:500;
    white-space:nowrap;
  }
  .nav-links a i{
    display:inline-flex;
    font-size:1rem;
  }
  body.nav-open{
    overflow:auto;
  }
}

@media (max-width:991px){
  html{scroll-padding-top:110px}
  .lang-toggle{padding:8px 10px}
  .lang-current,.lang-caret{display:none}
  .brand-text small{display:none}
  .brand-text strong{font-size:.95rem}
  .cards,.feature-grid,.program-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .contact-panel{
    grid-template-columns:1fr;
    gap:28px;
    padding:28px;
  }
  .contact-chips{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px;padding:40px 0 28px}
  .section-block{padding:64px 0}
  .hero{padding:88px 0 72px;min-height:0}
  .hero-actions .gold-button,.hero-actions .ghost-button{width:100%;justify-content:center}
  .hero-media__img{opacity:.32}
  .sidebar{
    width:76px;
    padding:18px 10px;
  }
  .sidebar-caption,.sidebar .brand-label,.sidebar nav a span,.logout span{
    display:none;
  }
  .sidebar .brand{justify-content:center;margin-bottom:18px}
  .sidebar nav a,.logout{justify-content:center;padding:12px}
  .sidebar-lang{justify-content:center}
  .admin-main{margin-inline-start:76px;padding:22px 16px 90px}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:640px){
  .container{padding-inline:16px}
  .cards,.feature-grid,.stats-grid,.footer-grid,.program-cards{
    grid-template-columns:1fr;
  }
  .hero{
    padding:64px 0 56px;
    min-height:0;
    text-align:start;
  }
  .hero-logo{width:76px;height:76px;margin-bottom:16px}
  .hero .eyebrow{padding:6px 12px;font-size:.7rem}
  .hero h1{font-size:clamp(1.8rem,8vw,2.4rem)}
  .hero-lead{font-size:1rem}
  .hero-media__img{opacity:.28;object-position:center 30%}
  .section-block{padding:48px 0}
  .section-head h2{font-size:1.45rem}
  .profile-card,.feature-card{padding:20px}
  .contact-panel{padding:24px 18px;border-radius:16px}
  .footer-logo{align-items:center}
  .footer-tagline{flex-wrap:wrap}
  .footer-bottom{padding:16px;text-align:center}
  .whatsapp-float{
    inset-inline-end:14px;
    bottom:14px;
    width:52px;
    height:52px;
  }
  .login-shell{padding:16px;align-content:center}
  .login-lang-float{top:14px;inset-inline-end:14px}
  .login-card{padding:28px 20px;border-radius:14px}
  .login-card h1{font-size:1.4rem}
  .admin-shell{flex-direction:column;align-items:stretch}
  .sidebar{
    width:100%;
    height:auto;
    max-height:none;
    inset:auto;
    inset-inline-start:auto;
    bottom:auto;
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    overflow-x:auto;
    overflow-y:hidden;
    position:sticky;
    top:0;
    z-index:40;
  }
  .sidebar nav{
    margin:0;
    display:flex;
    gap:4px;
    flex:none;
    min-height:0;
    overflow:visible;
    padding-inline-end:0;
    scrollbar-gutter:auto;
  }
  .sidebar-caption,.sidebar-lang,.sidebar form{display:none}
  .sidebar .brand{margin:0;flex:none}
  .sidebar nav a{
    width:auto;
    min-width:44px;
    height:44px;
    border-radius:10px;
  }
  .admin-main{margin-inline-start:0;width:100%;padding:18px 14px 28px}
  .admin-topbar{align-items:flex-start;flex-direction:column}
  .admin-topbar__logo{width:42px;height:42px;border-radius:12px}
  .admin-topbar__logo-img,
  .admin-topbar__logo .academy-logo{width:30px !important;height:30px !important}
  .admin-user-meta{display:none}
  .admin-user-btn{padding:4px}
  .toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .toolbar > form,
  .toolbar-filters{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .toolbar > .d-flex,
  .toolbar-actions{
    flex-wrap:wrap;
  }
  .toolbar .btn,
  .toolbar a.btn{
    width:auto;
  }
}

/* Global save / upload / navigation loading overlay */
.ams-loading-overlay{
  position:fixed;
  inset:0;
  z-index:2000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:
    radial-gradient(ellipse 70% 55% at 50% 42%,rgba(11,60,110,.18),transparent 70%),
    rgba(10,28,48,.48);
  backdrop-filter:blur(8px) saturate(1.15);
  -webkit-backdrop-filter:blur(8px) saturate(1.15);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s var(--ease),visibility .28s var(--ease);
}
.ams-loading-overlay.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.ams-loading-overlay.is-visible .ams-loading-card{
  transform:translateY(0) scale(1);
  opacity:1;
}
.ams-loading-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
  width:min(300px,92vw);
  padding:32px 28px 28px;
  border-radius:22px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(248,251,255,.96) 100%);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 24px 48px rgba(8,30,55,.22),
    0 8px 16px rgba(8,30,55,.1);
  text-align:center;
  transform:translateY(10px) scale(.96);
  opacity:0;
  transition:transform .32s var(--ease),opacity .32s var(--ease);
}
.ams-loading-visual{
  position:relative;
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
}
.ams-loading-ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  border-style:solid;
  border-color:transparent;
  box-sizing:border-box;
}
.ams-loading-ring--outer{
  border-width:2.5px;
  border-top-color:var(--ams-blue-900);
  border-inline-end-color:rgba(20,90,150,.35);
  animation:ams-spin-plain 1s cubic-bezier(.55,.15,.45,.85) infinite;
}
.ams-loading-ring--inner{
  inset:8px;
  border-width:2px;
  border-bottom-color:var(--ams-gold-500);
  border-inline-start-color:rgba(201,162,39,.4);
  animation:ams-spin-plain .75s cubic-bezier(.55,.15,.45,.85) infinite reverse;
}
.ams-loading-mark{
  position:relative;
  z-index:1;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(160deg,#fff 0%,#f3f7fc 100%);
  box-shadow:0 4px 14px rgba(11,60,110,.12);
  animation:ams-loading-pulse 1.8s ease-in-out infinite;
}
.ams-loading-logo{
  width:28px !important;
  height:28px !important;
  object-fit:contain;
  display:block;
}
.ams-loading-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:100%;
}
.ams-loading-text{
  margin:0;
  color:var(--ams-blue-900);
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1.35;
}
.ams-loading-bar{
  display:block;
  width:72%;
  max-width:160px;
  height:3px;
  border-radius:999px;
  background:rgba(11,60,110,.1);
  overflow:hidden;
}
.ams-loading-bar-fill{
  display:block;
  width:40%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--ams-blue-700),var(--ams-gold-500));
  animation:ams-loading-bar 1.15s ease-in-out infinite;
}
body.ams-is-loading{
  overflow:hidden;
  cursor:wait;
}
button.is-loading,
.btn.is-loading{
  position:relative;
  pointer-events:none;
  opacity:.82;
}
button.is-loading > *:not(.ams-btn-spinner),
.btn.is-loading > *:not(.ams-btn-spinner){
  opacity:.35;
}
.ams-btn-spinner{
  position:absolute;
  inset-inline-start:50%;
  top:50%;
  width:1.1em;
  height:1.1em;
  margin:0;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  transform:translate(-50%,-50%);
  animation:ams-spin .65s linear infinite;
}
.btn-outline-primary.is-loading .ams-btn-spinner,
.btn-outline-secondary.is-loading .ams-btn-spinner,
.btn-outline-danger.is-loading .ams-btn-spinner{
  border-color:rgba(11,60,110,.25);
  border-top-color:var(--ams-blue-700);
}
@keyframes ams-spin{
  to{transform:translate(-50%,-50%) rotate(360deg)}
}
@keyframes ams-spin-plain{
  to{transform:rotate(360deg)}
}
@keyframes ams-loading-pulse{
  0%,100%{transform:scale(1);box-shadow:0 4px 14px rgba(11,60,110,.12)}
  50%{transform:scale(1.04);box-shadow:0 6px 18px rgba(11,60,110,.18)}
}
@keyframes ams-loading-bar{
  0%{transform:translateX(-120%)}
  100%{transform:translateX(280%)}
}
@media (prefers-reduced-motion:reduce){
  .ams-loading-ring--outer,
  .ams-loading-ring--inner,
  .ams-loading-mark,
  .ams-loading-bar-fill,
  .ams-btn-spinner{
    animation:none;
  }
  .ams-loading-card{
    transition:none;
    transform:none;
    opacity:1;
  }
  .ams-loading-bar-fill{width:70%;transform:none}
}

