:root{
  /* National Gifted Olympiad-inspired palette: deep indigo, warm gold, burgundy and teal. */
  --ib-primary:#30285f;
  --ib-primary-dark:#211b47;
  --ib-primary-soft:#f0eef8;
  --ib-primary-border:#d8d4e8;
  --ib-ink:#242036;
  --ib-muted:#706a7f;
  --ib-bg:#f7f6fb;
  --ib-card:#ffffff;
  --ib-line:#e7e3ef;
  --ib-danger:#a83345;
  --ib-warning:#c58d28;
  --ib-info:#24788c;
  --ib-purple:#6b4b91;
  --ib-gold:#d9a23b;
  --ib-burgundy:#9f323c;
  --ib-teal:#168b83;
}

html,body{
  background:
    radial-gradient(circle at 8% 6%,rgba(217,162,59,.08),transparent 22rem),
    radial-gradient(circle at 92% 92%,rgba(48,40,95,.06),transparent 26rem),
    var(--ib-bg);
}

.card-surface{
  box-shadow:0 12px 34px rgba(48,40,95,.055);
}

.hero-panel{
  background:
    radial-gradient(circle at 82% 14%,rgba(217,162,59,.26),transparent 17rem),
    radial-gradient(circle at 12% 88%,rgba(22,139,131,.18),transparent 20rem),
    linear-gradient(138deg,#211b47 0%,#30285f 48%,#713248 100%);
}

.hero-panel:before{
  background:rgba(217,162,59,.17);
}

.hero-panel:after{
  background:rgba(255,255,255,.09);
  box-shadow:-72px 112px 0 rgba(22,139,131,.12);
}

.auth-event-emblem-wrap{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(420px,78%);
  min-height:126px;
  margin:32px 0 24px;
  padding:16px 22px;
  border-radius:24px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 18px 42px rgba(20,15,48,.18);
}

.auth-event-emblem{
  display:block;
  max-width:100%;
  max-height:136px;
  width:auto;
  height:auto;
  object-fit:contain;
}

.hero-kicker{
  color:#f2d18d;
  opacity:1;
}

.hero-title{
  color:#fff;
  text-shadow:0 4px 18px rgba(16,12,40,.18);
}

.hero-subtitle{
  color:rgba(255,255,255,.92);
}

.auth-badge,.page-kicker{
  color:var(--ib-burgundy);
}

.form-control:focus,.form-select:focus{
  box-shadow:0 0 0 .2rem rgba(48,40,95,.14);
  border-color:var(--ib-primary);
}

.btn-primary{
  background:var(--ib-primary);
  border-color:var(--ib-primary);
}

.btn-primary:hover,.btn-primary:focus{
  background:var(--ib-primary-dark);
  border-color:var(--ib-primary-dark);
}

.btn-outline-primary{
  color:var(--ib-primary);
  border-color:var(--ib-primary-border);
}

.btn-outline-primary:hover{
  background:var(--ib-primary-soft);
  color:var(--ib-primary-dark);
  border-color:var(--ib-primary-border);
}

.brand-box{
  background:
    radial-gradient(circle at 12% 10%,rgba(217,162,59,.24),transparent 8rem),
    linear-gradient(140deg,#211b47,#30285f 62%,#713248);
}

.nav-link-shell.active{
  background:var(--ib-primary);
  color:#fff;
  box-shadow:0 8px 18px rgba(48,40,95,.18);
}

.nav-link-shell:hover{
  background:#f3f1f8;
  color:var(--ib-primary-dark);
}

.stat-card:before{
  background:var(--accent,var(--ib-gold));
}

.phase-no{
  background:var(--ib-primary-soft);
  color:var(--ib-primary-dark);
}

.login-tabs a.active{
  background:var(--ib-primary-soft);
  color:var(--ib-primary-dark);
}

.timeline-item:before{
  background:var(--ib-gold);
  box-shadow:0 0 0 1px #e8ca8e;
}

.badge-general{
  background:#f0eef8;
  color:#4d427d;
}

.badge-private{
  background:#fff5df;
  color:#9a6412;
}

.role-internal_supervisor a[href*="new_project=1"]{
  display:none!important;
}

@media(max-width:720px){
  .auth-event-emblem-wrap{
    width:min(360px,92%);
    margin:24px 0 18px;
    min-height:105px;
    padding:13px 16px;
  }
  .auth-event-emblem{max-height:108px}
}
