:root {
  --edu-primary: #0eaaa0;
  --edu-primary-600: #078c87;
  --edu-primary-50: #e5fbf8;
  --edu-ink: #0f172a;
  --edu-muted: #64748b;
  --edu-border: #e2e8f0;
  --edu-surface: #ffffff;
  --edu-bg: #f8fafc;
  --edu-sidebar: #0b1220;
  --edu-sidebar-text: #cbd5e1;
  --edu-success: #059669;
  --edu-warning: #d97706;
  --edu-danger: #dc2626;
  --edu-radius: 14px;
  --edu-shadow: 0 10px 30px rgba(15, 23, 42, .06);
  --edu-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.edu-body { margin:0; background:var(--edu-bg); color:var(--edu-ink); font-family:var(--edu-font); }
.edu-workspace { min-height:100vh; display:flex; }
.edu-sidebar {
  width:260px; background:linear-gradient(180deg,#0b1220 0%, #111827 100%);
  color:var(--edu-sidebar-text); flex-shrink:0; padding:1.25rem 1rem;
  position:sticky; top:0; height:100vh; overflow:auto;
}
.edu-brand { display:flex; align-items:center; gap:.75rem; color:#fff; text-decoration:none; margin-bottom:1.5rem; }
.edu-brand-mark {
  width:36px; height:36px; border-radius:10px; display:grid; place-items:center;
  background:linear-gradient(135deg,#102f4d,#16d7c2); color:#fff; font-weight:700;
}
.edu-brand-text { font-weight:700; letter-spacing:.02em; }
.edu-nav { display:flex; flex-direction:column; gap:.25rem; }
.edu-nav a {
  color:var(--edu-sidebar-text); text-decoration:none; border-radius:10px;
  padding:.65rem .85rem; display:flex; align-items:center; gap:.65rem;
}
.edu-nav a:hover, .edu-nav a.active { background:rgba(14,170,160,.18); color:#fff; }
.edu-nav .nav-section { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin:1rem .85rem .35rem; }
.edu-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.edu-topbar {
  background:rgba(255,255,255,.85); backdrop-filter:blur(8px); border-bottom:1px solid var(--edu-border);
  padding:.85rem 1.25rem; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:20;
}
.edu-content { flex:1 0 auto; padding:1.25rem; }
.edu-card {
  background:var(--edu-surface); border:1px solid var(--edu-border); border-radius:var(--edu-radius);
  box-shadow:var(--edu-shadow); overflow:hidden;
}
.edu-card .card-body { padding:1.1rem 1.2rem; }
.edu-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; }
.edu-stat {
  background:var(--edu-surface); border:1px solid var(--edu-border); border-radius:var(--edu-radius);
  padding:1rem 1.1rem; box-shadow:var(--edu-shadow); text-decoration:none; color:inherit; display:block;
}
.edu-stat:hover { border-color:#bfdbfe; transform:translateY(-1px); }
.edu-stat .label { color:var(--edu-muted); font-size:.85rem; }
.edu-stat .value { font-size:1.45rem; font-weight:700; margin-top:.2rem; }
.edu-stat .hint { color:var(--edu-muted); font-size:.78rem; margin-top:.35rem; }
.edu-stat .icon {
  width:36px; height:36px; border-radius:10px; display:grid; place-items:center;
  background:var(--edu-primary-50); color:var(--edu-primary); margin-bottom:.55rem;
}
.edu-table-wrap { overflow:auto; }
.edu-table { margin:0; }
.edu-table thead th {
  font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--edu-muted);
  border-bottom-color:var(--edu-border); background:#f8fafc; white-space:nowrap;
}
.edu-table td { vertical-align:middle; }
.btn-edu-primary { background:var(--edu-primary); border-color:var(--edu-primary); color:#fff; }
.btn-edu-primary:hover { background:var(--edu-primary-600); border-color:var(--edu-primary-600); color:#fff; }
.edu-badge {
  display:inline-flex; align-items:center; gap:.25rem; border-radius:999px; padding:.2rem .55rem;
  font-size:.75rem; font-weight:600; border:1px solid transparent;
}
.edu-badge-pending { background:#fff7ed; color:#c2410c; border-color:#fed7aa; }
.edu-badge-success, .edu-badge-confirmed, .edu-badge-approved, .edu-badge-active, .edu-badge-paid {
  background:#ecfdf5; color:#047857; border-color:#a7f3d0;
}
.edu-badge-danger, .edu-badge-rejected, .edu-badge-cancelled, .edu-badge-failed {
  background:#fef2f2; color:#b91c1c; border-color:#fecaca;
}
.edu-badge-info, .edu-badge-issued, .edu-badge-partial, .edu-badge-open {
  background:#e5fbf8; color:#078c87; border-color:#a9eee7;
}
.edu-badge-muted, .edu-badge-draft, .edu-badge-secondary { background:#f1f5f9; color:#475569; border-color:#e2e8f0; }
.edu-badge-cancelled { background:#fef2f2; color:#b91c1c; border-color:#fecaca; }
.edu-badge-confirmed { background:#ecfdf5; color:#047857; border-color:#a7f3d0; }
.edu-empty { text-align:center; padding:2.5rem 1rem; color:var(--edu-muted); }
.edu-empty .icon { font-size:2rem; color:#94a3b8; margin-bottom:.5rem; }
.edu-disclaimer {
  background:#fffbeb; border:1px solid #fde68a; color:#92400e; border-radius:12px; padding:.85rem 1rem; font-size:.9rem;
}
.edu-timeline { list-style:none; padding:0; margin:0; }
.edu-timeline li { position:relative; padding:0 0 1rem 1.25rem; border-left:2px solid #e2e8f0; }
.edu-timeline li:last-child { border-left-color:transparent; }
.edu-timeline li::before {
  content:""; position:absolute; left:-5px; top:.35rem; width:8px; height:8px; border-radius:50%; background:var(--edu-primary);
}
.edu-page-header { display:flex; flex-wrap:wrap; gap:1rem; align-items:flex-start; justify-content:space-between; margin-bottom:1.1rem; }
.edu-page-header h1 { font-size:1.35rem; margin:0; font-weight:700; }
.edu-page-header .sub { color:var(--edu-muted); margin:.25rem 0 0; }
.edu-auth-wrap {
  min-height:100vh; display:grid; place-items:center; padding:1.5rem;
  /* background:radial-gradient(circle at top left, #dbeafe, transparent 40%), linear-gradient(180deg,#f8fafc,#eef2ff); */
}
.edu-auth-card {
  width:min(420px,100%); background:#fff; border:1px solid var(--edu-border); border-radius:18px;
  box-shadow:var(--edu-shadow); padding:1.75rem;
}
.edu-landing-hero {
  min-height:70vh; display:grid; place-items:center; text-align:center; padding:3rem 1rem;
  background:radial-gradient(circle at 20% 20%, #dbeafe, transparent 35%), var(--edu-bg);
}
.edu-landing-hero h1 { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800; }
.edu-landing-page { --landing-navy:#102f4d; --landing-ink:#143755; --landing-teal:#16d7c2; --landing-mint:#d9fff5; font-family:"DM Sans", sans-serif; color:var(--landing-ink); background:#f8fbfc; }
.edu-landing-page h1,.edu-landing-page h2,.edu-landing-page h3,.edu-landing-page .edu-landing-brand { font-family:"Space Grotesk", sans-serif; }
.edu-landing-nav { position:absolute; inset:0 0 auto; z-index:5; color:#fff; }.edu-landing-nav-inner { height:86px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }.edu-landing-brand { display:flex; align-items:center; gap:.65rem; color:inherit; font-size:1.35rem; font-weight:700; text-decoration:none; }.edu-landing-logo { display:block; width:146px; height:auto; }.edu-landing-links { display:flex; align-items:center; gap:2rem; margin-left:auto; }.edu-landing-links a,.edu-landing-login { color:rgba(255,255,255,.78); text-decoration:none; font-size:.88rem; font-weight:500; }.edu-landing-links a:hover,.edu-landing-login:hover { color:#fff; }.edu-landing-actions { display:flex; align-items:center; gap:1.25rem; }.edu-landing-nav-cta,.edu-landing-primary { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; border:0; border-radius:999px; background:var(--landing-teal); color:#0f3b4b; font-weight:700; text-decoration:none; padding:.78rem 1.2rem; transition:transform .2s,background .2s; }.edu-landing-nav-cta:hover,.edu-landing-primary:hover { color:#0f3b4b; background:#43ead7; transform:translateY(-2px); }
.edu-landing-nav .edu-landing-logo,.edu-footer-top .edu-landing-logo { filter:brightness(0) invert(1); }
.edu-landing-hero { min-height:690px; position:relative; overflow:hidden; color:#fff; text-align:left; background:var(--landing-navy); }.edu-landing-hero-backdrop { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,42,68,.97) 5%,rgba(12,42,68,.88) 40%,rgba(12,42,68,.48)),url('https://images.unsplash.com/photo-1556742049-0cfed4f6a45d?auto=format&fit=crop&w=1800&q=85') center/cover; opacity:.9; }.edu-landing-hero::after { content:""; position:absolute; width:620px; height:620px; right:-180px; bottom:-280px; border:1px solid rgba(66,229,210,.24); border-radius:50%; box-shadow:0 0 0 70px rgba(66,229,210,.04),0 0 0 140px rgba(66,229,210,.03); }.edu-landing-hero-content { position:relative; z-index:1; padding-top:145px; padding-bottom:100px; }.edu-eyebrow { display:flex; align-items:center; gap:.65rem; margin:0 0 1.2rem; color:var(--landing-teal); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:700; }.edu-eyebrow span { width:25px; height:2px; display:inline-block; background:currentColor; }.edu-eyebrow-dark { color:#0aafaa; }.edu-landing-hero h1 { max-width:650px; margin:0; font-size:clamp(3.4rem,6.5vw,6.4rem); line-height:.94; letter-spacing:-.07em; }.edu-landing-hero h1 em,.edu-section-title em { color:var(--landing-teal); font-style:normal; }.edu-landing-lead { max-width:520px; margin:1.8rem 0 0; color:rgba(255,255,255,.74); font-size:1.08rem; line-height:1.7; }.edu-landing-hero-actions { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-top:2rem; }.edu-landing-primary { padding:1rem 1.45rem; font-size:1rem; }.edu-landing-watch { color:#fff; text-decoration:none; display:flex; align-items:center; gap:.65rem; font-weight:600; }.edu-landing-watch span { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; }.edu-landing-proof { display:flex; align-items:center; gap:.5rem; margin-top:2.2rem; color:rgba(255,255,255,.55); font-size:.8rem; }.edu-landing-proof i { color:var(--landing-teal); }
.edu-hero-visual { min-height:420px; position:relative; }.edu-hero-photo { position:absolute; width:min(410px,90%); height:480px; right:8%; top:-20px; border-radius:190px 190px 22px 22px; background:url('https://images.unsplash.com/photo-1551650975-87deedd944c3?auto=format&fit=crop&w=900&q=85') center/cover; box-shadow:25px 30px 80px rgba(0,0,0,.38); transform:rotate(5deg); }.edu-hero-photo::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(180deg,transparent 50%,rgba(7,35,57,.6)); }.edu-hero-orbit { position:absolute; border:1px solid rgba(73,232,212,.45); border-radius:50%; pointer-events:none; }.edu-hero-orbit-one { width:470px; height:470px; top:-15px; right:-2%; }.edu-hero-orbit-two { width:570px; height:570px; top:-65px; right:-14%; border-color:rgba(73,232,212,.18); }.edu-payment-float { position:absolute; z-index:2; display:flex; align-items:center; gap:.65rem; min-width:245px; padding:.8rem 1rem; color:var(--landing-ink); background:rgba(255,255,255,.95); border-radius:14px; box-shadow:0 18px 40px rgba(0,0,0,.2); font-size:.75rem; }.edu-payment-float b,.edu-payment-float small { display:block; }.edu-payment-float small { color:#718195; margin-top:.15rem; }.edu-payment-float strong { margin-left:auto; font-size:.78rem; color:#00a998; }.edu-float-icon { width:31px; height:31px; display:grid; place-items:center; border-radius:10px; color:#0a9e8f; background:#d9fff5; font-size:1rem; }.edu-float-icon-blue { color:#2563eb; background:#e7efff; }.edu-payment-float-top { top:58px; left:2%; }.edu-payment-float-bottom { bottom:35px; right:0; }.edu-payment-float-bottom > i { margin-left:auto; color:#17bbaa; }.edu-hero-scroll { position:absolute; z-index:2; bottom:23px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:.6rem; color:rgba(255,255,255,.5); font-size:.72rem; }.edu-hero-scroll span { width:17px; height:27px; display:block; border:1px solid rgba(255,255,255,.5); border-radius:12px; position:relative; }.edu-hero-scroll span::after { content:""; position:absolute; width:3px; height:6px; top:5px; left:6px; background:var(--landing-teal); border-radius:4px; }
.edu-feature-strip { padding:4rem 0; background:#fff; border-bottom:1px solid #eaf0f2; }.edu-strip-item { display:flex; align-items:flex-start; gap:1rem; padding-right:1rem; }.edu-strip-item > span { flex:0 0 45px; width:45px; height:45px; display:grid; place-items:center; border-radius:14px; color:#0cb8aa; background:#dcfff8; font-size:1.25rem; }.edu-strip-item h2 { margin:0 0 .4rem; font-size:1.15rem; }.edu-strip-item p { margin:0; color:#718195; font-size:.88rem; line-height:1.5; }.edu-landing-section { padding:7.5rem 0; }.edu-section-light { background:#f8fbfc; }.edu-section-navy { color:#fff; background:var(--landing-navy); }.edu-section-title { margin:0; font-size:clamp(2.4rem,4.5vw,4.2rem); line-height:1; letter-spacing:-.06em; }.edu-section-copy { max-width:470px; margin:1.5rem 0 1.8rem; color:#718195; line-height:1.75; }.edu-section-navy .edu-section-copy { color:rgba(255,255,255,.65); }.edu-text-link { color:#0b9f96; text-decoration:none; font-weight:700; }.edu-text-link i { margin-left:.35rem; transition:margin .2s; }.edu-text-link:hover i { margin-left:.7rem; }.edu-check-list { display:grid; gap:.8rem; color:rgba(255,255,255,.85); font-size:.9rem; }.edu-check-list i { margin-right:.5rem; color:var(--landing-teal); }
.edu-feature-image { min-height:390px; position:relative; overflow:hidden; border-radius:24px; }.edu-feature-image-billing { display:grid; place-items:center; background:url('https://images.unsplash.com/photo-1556761175-b413da4baf72?auto=format&fit=crop&w=1200&q=85') center/cover; }.edu-feature-image-billing::before { content:""; position:absolute; inset:0; background:rgba(228,244,246,.78); }.edu-mini-dashboard { position:relative; width:min(390px,80%); padding:1.5rem; border:1px solid rgba(255,255,255,.8); border-radius:18px; background:rgba(255,255,255,.93); box-shadow:0 20px 40px rgba(18,52,78,.18); }.edu-mini-heading { display:flex; justify-content:space-between; align-items:end; color:#687b8c; font-size:.75rem; }.edu-mini-heading b { color:var(--landing-ink); font-size:1.25rem; }.edu-mini-bars { height:165px; display:flex; align-items:end; gap:.7rem; padding:1.5rem 0 1rem; border-bottom:1px solid #e8eff1; }.edu-mini-bars i,.edu-report-chart i { display:block; flex:1; border-radius:7px 7px 2px 2px; background:linear-gradient(180deg,#17cfbd,#83eadd); }.edu-mini-legend { display:flex; gap:1rem; margin-top:1rem; color:#748494; font-size:.7rem; }.edu-mini-legend i { display:inline-block; width:7px; height:7px; margin-right:.3rem; border-radius:50%; background:#17cfbd; }.edu-mini-legend span:last-child i { background:#dce8ea; }.edu-feature-image-parent { background:url('https://images.unsplash.com/photo-1556157382-97eda2d62296?auto=format&fit=crop&w=1100&q=85') center/cover; }.edu-feature-image-parent::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,38,64,.42),transparent); }.edu-phone-card { position:absolute; z-index:1; top:45px; right:15%; width:230px; min-height:300px; padding:2.2rem 1.3rem 1.3rem; border-radius:25px; color:#fff; background:linear-gradient(155deg,#174b6c,#0d2949); box-shadow:20px 25px 45px rgba(0,0,0,.28); }.edu-phone-notch { position:absolute; top:10px; left:50%; width:70px; height:7px; transform:translateX(-50%); border-radius:10px; background:#071b30; }.edu-phone-card small { display:block; margin-bottom:2.5rem; color:var(--landing-teal); font-weight:700; }.edu-phone-card b,.edu-phone-card strong,.edu-phone-card span { display:block; }.edu-phone-card b { font-size:.82rem; color:rgba(255,255,255,.65); }.edu-phone-card strong { margin:.5rem 0; font-size:1.65rem; }.edu-phone-card span { color:rgba(255,255,255,.55); font-size:.68rem; }.edu-phone-card button { width:100%; margin-top:2.5rem; padding:.65rem; border:0; border-radius:9px; color:#0f3b4b; background:var(--landing-teal); font-size:.75rem; font-weight:700; }
.edu-report-panel { padding:2rem; border:1px solid #dfebee; border-radius:24px; background:#fff; box-shadow:0 15px 45px rgba(17,52,75,.08); }.edu-report-top,.edu-report-period,.edu-report-labels { display:flex; justify-content:space-between; align-items:center; }.edu-report-top { font-weight:700; }.edu-report-period { gap:.5rem; color:#788998; font-size:.75rem; font-weight:500; }.edu-report-total { margin-top:2.5rem; }.edu-report-total small,.edu-report-total strong,.edu-report-total span { display:block; }.edu-report-total small { color:#788998; font-size:.78rem; }.edu-report-total strong { margin:.3rem 0; color:var(--landing-ink); font-size:2rem; }.edu-report-total span { color:#0eaa98; font-size:.75rem; }.edu-report-chart { height:180px; display:flex; align-items:end; gap:.7rem; padding:1rem 0 .5rem; border-bottom:1px solid #edf2f3; }.edu-report-chart i { background:linear-gradient(180deg,#0fb8a9,#b3f2e8); }.edu-report-labels { margin-top:.7rem; color:#95a4af; font-size:.65rem; }
.edu-landing-cta { padding:2rem 0 6rem; background:#f8fbfc; }.edu-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:4rem 5rem; border-radius:25px; color:#fff; background:var(--landing-navy); overflow:hidden; position:relative; }.edu-cta-inner::after { content:""; position:absolute; width:420px; height:420px; right:-140px; top:-190px; border:1px solid rgba(39,215,193,.35); border-radius:50%; box-shadow:0 0 0 50px rgba(39,215,193,.06),0 0 0 100px rgba(39,215,193,.04); }.edu-cta-inner > * { position:relative; z-index:1; }.edu-cta-inner h2 { margin:0; font-size:clamp(2rem,4vw,3.5rem); line-height:1.05; letter-spacing:-.06em; }.edu-landing-footer { color:#a9bac5; background:#0b263f; }.edu-footer-top { display:flex; align-items:center; gap:2rem; padding:2.5rem 0; border-bottom:1px solid rgba(255,255,255,.1); }.edu-footer-top .edu-landing-brand { color:#fff; }.edu-footer-top p { margin:0; font-size:.85rem; }.edu-footer-links { display:flex; gap:1.5rem; margin-left:auto; }.edu-footer-links a { color:#d2dfe4; text-decoration:none; font-size:.8rem; }.edu-footer-bottom { display:flex; justify-content:space-between; padding:1.2rem 0; font-size:.72rem; }
@media (max-width: 991.98px) {
  .edu-sidebar { display:none; }
  .edu-content { padding:1rem; }
  .edu-landing-links { display:none; }.edu-landing-nav-inner { height:72px; }.edu-landing-hero { min-height:900px; }.edu-landing-hero-content { padding-top:125px; }.edu-hero-visual { min-height:390px; margin-top:1rem; }.edu-hero-photo { right:12%; }.edu-payment-float-top { left:0; }.edu-landing-section { padding:5rem 0; }.edu-cta-inner { padding:3rem 2rem; }
}
@media (max-width: 575.98px) {
  .edu-landing-nav-inner { padding-left:1.25rem; padding-right:1.25rem; }.edu-landing-login { display:none; }.edu-landing-nav-cta { padding:.65rem .85rem; font-size:.75rem; }.edu-landing-hero h1 { font-size:3.5rem; }.edu-landing-lead { font-size:.95rem; }.edu-hero-visual { min-height:330px; }.edu-hero-photo { width:255px; height:330px; right:9%; }.edu-hero-orbit-one { width:320px; height:320px; right:0; }.edu-hero-orbit-two { width:390px; height:390px; right:-12%; }.edu-payment-float { min-width:205px; padding:.65rem .7rem; font-size:.65rem; }.edu-payment-float-top { top:25px; left:-.5rem; }.edu-payment-float-bottom { right:-.5rem; bottom:10px; }.edu-hero-scroll { display:none; }.edu-feature-strip { padding:3rem 0; }.edu-strip-item { padding:0; }.edu-strip-item h2 { font-size:1rem; }.edu-section-title { font-size:2.8rem; }.edu-feature-image { min-height:310px; }.edu-phone-card { right:9%; }.edu-report-panel { padding:1.2rem; }.edu-report-total { margin-top:1.8rem; }.edu-report-chart { gap:.35rem; }.edu-cta-inner { display:block; padding:2.5rem 1.5rem; }.edu-cta-inner .edu-landing-primary { margin-top:1.5rem; }.edu-footer-top { display:block; }.edu-footer-top p { margin:1rem 0; }.edu-footer-links { margin:1.25rem 0 0; flex-wrap:wrap; }.edu-footer-bottom { display:block; }.edu-footer-bottom span { display:block; margin-top:.4rem; }
}


/* Compat aliases used by partials */
.edu-sidebar.d-none.d-lg-flex, .edu-sidebar.d-lg-flex { display:flex; flex-direction:column; }
.edu-sidebar-brand { display:flex; align-items:center; gap:.75rem; margin-bottom:1.25rem; color:#fff; }
.edu-sidebar-brand .brand-mark {
  width:42px; height:36px; object-fit:contain; display:block;
}
.edu-auth-logo { width:138px; height:auto; display:block; }
.edu-sidebar-brand .brand-text strong { display:block; color:#fff; }
.edu-sidebar-brand .brand-text small { color:#94a3b8; }
.edu-nav-link {
  color:var(--edu-sidebar-text); text-decoration:none; border-radius:10px;
  padding:.65rem .85rem; display:flex; align-items:center; gap:.65rem; margin-bottom:.15rem;
}
.edu-nav-link:hover, .edu-nav-link.active { background:rgba(37,99,235,.18); color:#fff; }
.edu-user-chip { display:flex; align-items:center; gap:.5rem; }
.edu-user-logout { display:inline-flex; align-items:center; gap:.3rem; color:#667085; text-decoration:none; border-left:1px solid #edf0f7; padding-left:.55rem; font-size:.72rem; font-weight:650; }
.edu-user-logout:hover { color:var(--edu-primary-600); }
.edu-user-chip .avatar {
  width:32px; height:32px; border-radius:999px; background:var(--edu-primary-50); color:var(--edu-primary);
  display:grid; place-items:center; font-weight:700; font-size:.85rem;
}
.edu-auth-body {
  min-height:100vh; display:grid; place-items:center; padding:1.5rem;
  background:radial-gradient(circle at top left, #d9fff5, transparent 40%), linear-gradient(180deg,#f8fbfc,#e8f5f4);
}
.edu-auth-card h1 { font-size:1.35rem; font-weight:700; }
.edu-auth-card .lead { color:var(--edu-muted); font-size:.95rem; }
.edu-landing-card {
  background:rgba(15,23,42,.78); color:#fff; border-radius:24px; padding:2rem; text-align:left;
  box-shadow:0 20px 50px rgba(15,23,42,.25);
}
.edu-landing-hero .btn-outline-light { border-color:rgba(255,255,255,.55); color:#fff; }

/* Reference-inspired dashboard skin */
:root {
  --edu-primary: #0eaaa0;
  --edu-primary-600: #078c87;
  --edu-primary-50: #e5fbf8;
  --edu-sidebar: #ffffff;
  --edu-sidebar-text: #667085;
  --edu-radius: 16px;
  --edu-shadow: 0 8px 28px rgba(72, 62, 144, .07);
}
.edu-body { background:#f7f8fc; }
.edu-sidebar { width:212px; background:#fff; border-right:1px solid #edf0f7; padding:1rem .65rem; }
.edu-sidebar-brand .brand-mark { background:var(--edu-primary-50); color:var(--edu-primary); }
.edu-sidebar-brand .brand-text strong { color:#22263a; font-size:.9rem; }
.edu-sidebar-brand .brand-text small { color:#9aa1b5; font-size:.58rem; }
.edu-nav-link { font-size:.7rem; font-weight:650; margin:.18rem 0; }
.edu-nav-link:hover, .edu-nav-link.active { background:#0eaaa0; color:#fff; box-shadow:0 7px 15px rgba(14,170,160,.2); }
.edu-topbar { min-height:62px; background:rgba(255,255,255,.9); border-bottom:1px solid #edf0f7; padding:.7rem 1.25rem; }
.edu-content { padding:1rem 1.15rem 2rem; max-width:1440px; width:100%; margin:0 auto; }
.edu-eyebrow { color:#9aa1b5; font-size:.58rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.edu-topbar-context .fw-bold { font-size:.85rem; }
.edu-theme-button { width:32px; height:32px; padding:0; border:1px solid #edf0f7; border-radius:50%; color:#7f8799; }
.edu-user-chip { padding:.3rem .45rem; border:1px solid #edf0f7; border-radius:11px; background:#fff; }
.edu-user-copy strong, .edu-user-copy small { display:block; line-height:1.15; }
.edu-user-copy strong { font-size:.68rem; }
.edu-user-copy small { color:#9aa1b5; font-size:.56rem; margin-top:.14rem; }
.edu-user-chip .avatar { background:#e5fbf8; color:var(--edu-primary); }
.edu-logout { border-color:#edf0f7; color:#7f8799; }
.edu-stat { min-height:88px; border-color:#edf0f7; box-shadow:0 5px 18px rgba(72,62,144,.045); }
.edu-stat:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(72,62,144,.1); }
.stat-label, .edu-stat .label { color:#8b91a5; font-size:.72rem; font-weight:600; }
.stat-value, .edu-stat .value { color:#20243a; font-size:1.15rem; font-weight:750; margin-top:.18rem; }
.stat-hint, .edu-stat .hint { color:#a4a9b8; font-size:.68rem; margin-top:.25rem; }
.stat-icon { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:#e5fbf8; color:var(--edu-primary); }
.edu-welcome { min-height:164px; position:relative; overflow:hidden; display:flex; align-items:center; padding:1.35rem 1.45rem; border-radius:20px; color:#fff; background:linear-gradient(110deg,#102f4d 0%,#15516a 55%,#0eaaa0 100%); box-shadow:0 14px 30px rgba(16,47,77,.19); }
.edu-welcome-copy { position:relative; z-index:1; max-width:680px; }
.edu-welcome .edu-eyebrow { color:rgba(255,255,255,.72); }
.edu-welcome h1 { margin:.3rem 0 .25rem; font-size:1.55rem; font-weight:800; letter-spacing:-.02em; }
.edu-welcome p { max-width:620px; margin:0 0 .85rem; color:rgba(255,255,255,.78); font-size:.78rem; }
.edu-welcome-actions { display:flex; gap:.45rem; flex-wrap:wrap; }
.edu-welcome-actions .btn { border:0; color:#078c87; font-size:.7rem; font-weight:700; box-shadow:0 4px 10px rgba(16,47,77,.12); }
.edu-welcome-orbit { position:absolute; width:190px; height:190px; right:-38px; top:-92px; border-radius:50%; background:rgba(255,255,255,.12); box-shadow:-90px 128px 0 -36px rgba(255,255,255,.1); }
.edu-panel-subtitle { color:#9ba1b3; font-size:.7rem; margin:0 0 .8rem; }
.edu-quick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.edu-quick-grid a { min-height:57px; display:flex; align-items:center; gap:.65rem; padding:.55rem .65rem; border:1px solid #edf0f7; border-radius:12px; text-decoration:none; color:var(--edu-ink); background:#fff; }
.edu-quick-grid a:hover { border-color:#b8e9e4; background:#f5fdfc; }
.edu-quick-grid a > i { width:30px; height:30px; border-radius:10px; display:grid; place-items:center; color:var(--edu-primary); background:#e5fbf8; flex:0 0 auto; }
.edu-quick-grid strong, .edu-quick-grid small { display:block; }
.edu-quick-grid strong { font-size:.72rem; }
.edu-quick-grid small { color:#9aa1b5; font-size:.62rem; margin-top:.12rem; }
@media (max-width:575.98px) {
  .edu-topbar { padding:.65rem .8rem; }
  .edu-content { padding:.8rem; }
  .edu-welcome { min-height:180px; padding:1.1rem; }
  .edu-welcome h1 { font-size:1.25rem; }
  .edu-quick-grid { grid-template-columns:1fr; }
}
.edu-mobile-sidebar { --bs-offcanvas-width: min(86vw, 320px); background:#fff; color:#20243a; }
.edu-mobile-sidebar-header { min-height:68px; border-bottom:1px solid #edf0f7; padding:1rem 1.1rem; }
.edu-mobile-sidebar-header .offcanvas-title { color:#20243a; font-size:1rem; font-weight:800; }
.edu-mobile-sidebar-content { min-height:calc(100vh - 68px); background:#fff; }
.edu-mobile-sidebar-content .edu-sidebar-brand { color:#20243a; margin-bottom:1.35rem; }
.edu-mobile-sidebar-content .edu-sidebar-brand .brand-text strong { color:#20243a; font-size:.95rem; }
.edu-mobile-sidebar-content .edu-sidebar-brand .brand-text small { color:#8b91a5; font-size:.65rem; }
.edu-mobile-sidebar-content .edu-nav-link { color:#667085; font-size:.84rem; font-weight:650; padding:.78rem .8rem; margin:.25rem 0; }
.edu-mobile-sidebar-content .edu-nav-link i { width:1.2rem; text-align:center; font-size:.9rem; }
.edu-mobile-sidebar-content .edu-nav-link:hover, .edu-mobile-sidebar-content .edu-nav-link.active { color:#fff; background:#0eaaa0; }
.edu-mobile-sidebar-content .text-secondary { color:#8b91a5 !important; font-size:.75rem; }


/* Auth wide card (register sekolah) */
.edu-auth-card-wide { width:min(520px,100%); }
.edu-registry-box {
  border:1px solid #cdeeea; background:#f2fcfa; border-radius:12px; padding:.85rem 1rem;
}

/* Parent mobile-first home */
.edu-role-parent .edu-content { padding-bottom:5.5rem; }
.edu-role-parent .edu-sidebar { /* desktop still ok */ }
@media (max-width: 991.98px) {
  .edu-role-parent .edu-topbar { border-bottom:0; background:transparent; position:sticky; }
  .edu-role-parent .edu-content { padding:.75rem .85rem 5.75rem; }
}
.edu-parent-home { max-width:560px; margin:0 auto; }
.edu-parent-hero {
  border-radius:22px; padding:1.15rem 1.15rem 1rem; color:#fff; margin-bottom:1rem;
  background:linear-gradient(145deg,#102f4d 0%, #15516a 48%, #0eaaa0 100%);
  box-shadow:0 16px 34px rgba(16,47,77,.22);
}
.edu-parent-hero-top { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.edu-parent-hero h1 { margin:.2rem 0 .15rem; font-size:1.35rem; font-weight:800; letter-spacing:-.02em; }
.edu-parent-hero p { margin:0; color:rgba(255,255,255,.82); font-size:.84rem; }
.edu-eyebrow.light { color:rgba(255,255,255,.75); }
.edu-parent-avatar {
  width:44px; height:44px; border-radius:14px; display:grid; place-items:center;
  background:rgba(255,255,255,.2); font-weight:800; flex:0 0 auto;
}
.edu-parent-cta {
  margin-top:.95rem; display:flex; align-items:center; justify-content:space-between;
  background:#fff; color:#078c87; text-decoration:none; border-radius:14px; padding:.72rem .9rem;
  font-weight:700; font-size:.88rem; box-shadow:0 8px 18px rgba(16,47,77,.12);
}
.edu-parent-cta span { display:inline-flex; align-items:center; gap:.4rem; }
.edu-parent-stats {
  display:grid; grid-template-columns:1fr; gap:.7rem; margin-bottom:1rem;
}
@media (min-width: 420px) {
  .edu-parent-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.edu-info-card {
  display:block; text-decoration:none; color:inherit; border-radius:18px; padding:1rem;
  border:1px solid #eceff7; background:#fff; box-shadow:0 8px 22px rgba(72,62,144,.06);
  min-height:112px;
}
.edu-info-card-icon {
  width:38px; height:38px; border-radius:12px; display:grid; place-items:center; margin-bottom:.55rem; font-size:1.05rem;
}
.edu-info-card-label { color:#8b91a5; font-size:.78rem; font-weight:650; }
.edu-info-card-value { font-size:1.28rem; font-weight:800; color:#1f2437; margin-top:.15rem; letter-spacing:-.02em; }
.edu-info-card-hint { color:#9aa1b5; font-size:.72rem; margin-top:.25rem; }
.edu-info-card.tone-violet .edu-info-card-icon { background:#e5fbf8; color:#078c87; }
.edu-info-card.tone-mint .edu-info-card-icon { background:#e8faf3; color:#0f9f6e; }
.edu-info-card.tone-amber .edu-info-card-icon { background:#fff6e8; color:#d97706; }
.edu-info-card.tone-sky .edu-info-card-icon { background:#eaf5ff; color:#0284c7; }
.edu-parent-section { margin-bottom:1rem; }
.edu-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.55rem; }
.edu-section-head h2 { margin:0; font-size:.95rem; font-weight:800; }
.edu-action-stack { display:flex; flex-direction:column; gap:.55rem; }
.edu-action-row {
  display:flex; align-items:center; gap:.75rem; text-decoration:none; color:inherit;
  background:#fff; border:1px solid #eceff7; border-radius:16px; padding:.8rem .85rem;
  box-shadow:0 6px 16px rgba(72,62,144,.04);
}
.edu-action-row .ico {
  width:40px; height:40px; border-radius:12px; display:grid; place-items:center; flex:0 0 auto;
}
.edu-action-row .ico.mint { background:#e8faf3; color:#0f9f6e; }
.edu-action-row .ico.violet { background:#e5fbf8; color:#078c87; }
.edu-action-row .ico.sky { background:#eaf5ff; color:#0284c7; }
.edu-action-row .copy { flex:1; min-width:0; }
.edu-action-row .copy strong { display:block; font-size:.88rem; }
.edu-action-row .copy small { display:block; color:#9aa1b5; font-size:.72rem; margin-top:.12rem; }
.edu-action-row .chev { color:#b0b6c6; }
.edu-parent-note {
  display:flex; gap:.55rem; align-items:flex-start; border-radius:14px; padding:.8rem .9rem;
  background:#fff8eb; border:1px solid #fde6b0; color:#8a5a10; font-size:.78rem; margin-bottom:.5rem;
}
.edu-parent-bottom {
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  display:grid; grid-template-columns:repeat(5,1fr); gap:.15rem;
  padding:.45rem .4rem calc(.45rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border-top:1px solid #eceff7; box-shadow:0 -8px 24px rgba(15,23,42,.06);
}
.edu-parent-bottom a {
  text-decoration:none; color:#8b91a5; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.15rem; font-size:.62rem; font-weight:650; padding:.25rem .1rem; border-radius:12px;
}
.edu-parent-bottom a i { font-size:1.1rem; }
.edu-parent-bottom a.active { color:#078c87; }
.edu-parent-bottom a.pay {
  color:#fff; background:#0eaaa0; border-radius:16px; margin-top:-.55rem; box-shadow:0 8px 16px rgba(14,170,160,.28);
  padding:.45rem .2rem .35rem;
}
.edu-parent-bottom a.pay.active { color:#fff; background:#078c87; }

/* Parent list pages on mobile: more readable cards */
.edu-role-parent .edu-page-header h1 { font-size:1.2rem; }
.edu-role-parent .edu-table { font-size:.85rem; }
@media (max-width: 991.98px) {
  .edu-role-parent .edu-table-wrap table thead { display:none; }
  .edu-role-parent .edu-table-wrap table, .edu-role-parent .edu-table-wrap tbody, .edu-role-parent .edu-table-wrap tr, .edu-role-parent .edu-table-wrap td {
    display:block; width:100%;
  }
  .edu-role-parent .edu-table-wrap tr {
    background:#fff; border:1px solid #eceff7; border-radius:14px; padding:.65rem .75rem; margin-bottom:.65rem;
    box-shadow:0 6px 14px rgba(72,62,144,.04);
  }
  .edu-role-parent .edu-table-wrap td {
    border:0; padding:.2rem 0; display:flex; justify-content:space-between; gap:1rem;
  }
}

/* Align admin + sekolah dashboard density */
.edu-app-shell:not(.edu-role-parent) .edu-welcome h1 { font-size:1.45rem; }
.edu-app-shell:not(.edu-role-parent) .edu-nav-link { font-size:.78rem; }
.edu-app-shell:not(.edu-role-parent) .stat-value, .edu-app-shell:not(.edu-role-parent) .edu-stat .value { font-size:1.22rem; }

.edu-float-icon-blue { color:#078c87; background:#e5fbf8; }


/* App version badge (Constants.php APP_VERSION_*) */
.edu-app-version {
  display:inline-block;
  color:#7f8b98;
  font-size:.72rem;
  font-weight:650;
  letter-spacing:.02em;
}
.edu-app-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-shrink:0;
  padding:.7rem 1.25rem;
  color:#8b95a5;
  font-size:.75rem;
  border-top:1px solid #edf0f7;
  background:#fff;
}
.edu-auth-card .edu-app-version { color:#8b95a5; }
.edu-role-parent .edu-app-footer { padding-bottom: calc(1.1rem + 4.5rem); }
@media (max-width: 575.98px) {
  .edu-app-footer { padding:.65rem .85rem; font-size:.7rem; }
  .edu-user-chip { gap:.4rem; }
  .edu-user-logout { padding-left:.4rem; }
}

/* Account profile */
.edu-user-profile {
  display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; color:inherit; min-width:0;
}
.edu-user-profile:hover { color:var(--edu-primary-600); }
.edu-user-chip .avatar {
  overflow:hidden; position:relative;
}
.edu-user-chip .avatar.has-photo { padding:0; background:#edf0f7; }
.edu-user-chip .avatar img {
  width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit;
}
.edu-profile-avatar-row {
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
}
.edu-profile-avatar-preview {
  width:84px; height:84px; border-radius:22px; overflow:hidden; flex:0 0 auto;
  display:grid; place-items:center; background:#e5fbf8; color:var(--edu-primary);
  font-size:1.6rem; font-weight:800; border:1px solid #cdeeea;
}
.edu-profile-avatar-preview img {
  width:100%; height:100%; object-fit:cover; display:block;
}
