/* SteadHaven TEST — Wave Glass framework layer.
   Scoped entirely to the wg- views (gate / student hub / parent dashboard).
   Palette + motion from the design style library (Style A — Wave Glass). */

:root{
  --wg-abyss:#050D1F; --wg-panel:#0B1B3A; --wg-glass:#12294D;
  --wg-cyan:#38E1FF; --wg-violet:#8B7CFF; --wg-mint:#3CF2C8;
  --wg-ice:#EAF6FF; --wg-slate:#8FA8C8;
  --wg-line:rgba(56,225,255,.16); --wg-line-soft:rgba(143,168,200,.14);
  --wg-ease:cubic-bezier(.22,1,.36,1);
}

/* ---------- shared bits ---------- */
#wgGate, #wgHub, #wgParent, #wgPortalLock{
  position:relative; z-index:2; min-height:100dvh;
  color:var(--wg-ice);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(139,124,255,.16), transparent 60%),
    radial-gradient(900px 480px at 8% 0%, rgba(56,225,255,.12), transparent 55%),
    linear-gradient(180deg,#071228 0%, var(--wg-abyss) 55%, #04091A 100%);
}
#wgGate h1, #wgHub h1, #wgParent h1, #wgPortalLock h1,
#wgGate h2, #wgHub h2, #wgParent h2{
  font-family:"Space Grotesk","Inter",-apple-system,sans-serif; margin:0;
}
.wg-waveband{display:block; width:100%; height:64px;}
.wg-wave-drift{animation:wgDrift 9s linear infinite;}
@keyframes wgDrift{from{transform:translateX(0);}to{transform:translateX(-600px);}}
@keyframes wgRise{from{opacity:0; transform:translateY(12px);}to{opacity:1; transform:translateY(0);}}
.wg-enter{animation:wgRise .6s var(--wg-ease) both;}
.wg-rise{animation:wgRise .6s var(--wg-ease) both;}
.wg-grid .wg-rise:nth-child(2){animation-delay:.07s;}
.wg-col-side .wg-rise:nth-child(2){animation-delay:.08s;}
.wg-col-side .wg-rise:nth-child(3){animation-delay:.16s;}

.wg-card{
  background:linear-gradient(160deg, rgba(18,41,77,.66), rgba(11,27,58,.85));
  border:1px solid var(--wg-line); border-radius:18px;
  padding:18px 18px 16px; margin-bottom:16px;
  box-shadow:0 0 0 1px rgba(5,13,31,.35), 0 10px 34px rgba(2,6,18,.45), inset 0 0 22px rgba(56,225,255,.04);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:transform .3s var(--wg-ease), border-color .3s var(--wg-ease), box-shadow .3s var(--wg-ease);
}
.wg-card:hover{transform:translateY(-3px); border-color:rgba(56,225,255,.38); box-shadow:0 0 0 1px rgba(5,13,31,.35), 0 16px 40px rgba(2,6,18,.5), inset 0 0 26px rgba(56,225,255,.07);}
.wg-card-head{display:flex; align-items:center; gap:10px; margin-bottom:12px;}
.wg-card-head h2{font-size:17px; font-weight:600; letter-spacing:.2px; flex:1;}
.wg-card-ico{
  width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:9px; font-size:15px; color:var(--wg-cyan);
  background:rgba(56,225,255,.08); border:1px solid var(--wg-line-soft);
  box-shadow:0 0 12px rgba(56,225,255,.12);
}
.wg-chip{
  font-size:11px; font-weight:600; letter-spacing:.6px; text-transform:uppercase;
  color:var(--wg-mint); background:rgba(60,242,200,.09); border:1px solid rgba(60,242,200,.25);
  padding:4px 10px; border-radius:999px; white-space:nowrap;
}
.wg-note{font-size:12.5px; line-height:1.55; color:var(--wg-slate); margin-top:10px;}
.wg-empty{
  border:1.5px dashed rgba(143,168,200,.28); border-radius:12px;
  padding:14px; font-size:13.5px; line-height:1.55; color:var(--wg-slate);
  background:rgba(5,13,31,.25);
}
.wg-bignum{font-family:"Space Grotesk",sans-serif; font-size:40px; font-weight:700; color:var(--wg-ice); margin:2px 0 10px;}
.wg-bignum-sub{font-size:17px; color:var(--wg-slate); font-weight:500;}

/* ---------- gate ---------- */
#wgGate{display:flex; align-items:center; justify-content:center; padding:28px 16px 44px;}
.wg-gate-wrap{width:100%; max-width:860px; text-align:center;}
.wg-wordmark{
  font-family:"Space Grotesk",sans-serif; font-size:30px; font-weight:700; letter-spacing:7px; color:var(--wg-ice);
  text-shadow:0 0 24px rgba(56,225,255,.35);
}
.wg-tagline{margin-top:5px; font-size:12px; letter-spacing:3.5px; text-transform:uppercase; color:var(--wg-cyan);}
.wg-gate-wrap .wg-waveband{height:74px; margin:10px 0 4px;}
.wg-gate-title{font-size:34px; font-weight:700; margin-top:8px;}
.wg-gate-sub{color:var(--wg-slate); font-size:15px; line-height:1.6; max-width:520px; margin:10px auto 0;}
.wg-doors{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:30px; text-align:left;}
.wg-door{
  appearance:none; cursor:pointer; text-align:left; color:var(--wg-ice);
  background:linear-gradient(160deg, rgba(18,41,77,.66), rgba(11,27,58,.88));
  border:1px solid var(--wg-line); border-radius:20px; padding:24px 22px;
  display:flex; flex-direction:column; gap:6px;
  box-shadow:0 12px 36px rgba(2,6,18,.5), inset 0 0 24px rgba(56,225,255,.04);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:transform .3s var(--wg-ease), border-color .3s var(--wg-ease), box-shadow .3s var(--wg-ease);
  font-family:inherit;
}
.wg-door:hover{transform:translateY(-4px); border-color:rgba(56,225,255,.5); box-shadow:0 18px 44px rgba(2,6,18,.55), 0 0 26px rgba(56,225,255,.14), inset 0 0 26px rgba(56,225,255,.07);}
.wg-door-ico{font-size:30px; margin-bottom:4px;}
.wg-door-name{font-family:"Space Grotesk",sans-serif; font-size:23px; font-weight:700;}
.wg-door-who{font-size:13.5px; color:var(--wg-slate); line-height:1.5;}
.wg-door-go{margin-top:10px; font-size:13px; font-weight:600; color:var(--wg-cyan);}
.wg-gate-note{margin-top:24px; font-size:11px; letter-spacing:1.6px; color:var(--wg-slate); opacity:.85;}
.wg-backlink{
  position:absolute; top:16px; left:16px; z-index:5; appearance:none; cursor:pointer;
  background:rgba(11,27,58,.7); color:var(--wg-cyan); border:1px solid var(--wg-line);
  border-radius:999px; padding:8px 14px; font-size:13px; font-weight:600; font-family:inherit;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.wg-backlink:hover{border-color:rgba(56,225,255,.5);}

/* ---------- parent portal lock ---------- */
.wg-lock-wrap{display:grid; place-items:center; min-height:100dvh; padding:64px 18px 34px;}
.wg-lock-card{
  width:100%; max-width:400px; text-align:center;
  display:flex; flex-direction:column; align-items:center;
  background:linear-gradient(160deg, rgba(18,41,77,.66), rgba(11,27,58,.85));
  border:1px solid var(--wg-line); border-radius:22px;
  padding:30px 26px 24px;
  box-shadow:0 0 0 1px rgba(5,13,31,.35), 0 18px 48px rgba(2,6,18,.55), inset 0 0 26px rgba(56,225,255,.05);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.wg-lock-ico{font-size:34px; margin-bottom:6px;}
.wg-lock-title{font-size:27px; font-weight:700;}
.wg-lock-sub{font-size:13.5px; line-height:1.55; color:var(--wg-slate); margin:8px 0 18px;}
.wg-lock-card .pin-dots{margin-bottom:2px;}
.wg-lock-card .pinpad{margin-top:8px;}
.wg-lock-note{font-size:11.5px; line-height:1.5; color:var(--wg-slate); opacity:.85; margin-top:4px;}

/* ---------- parent portal: nav label + ParentConnect frame ---------- */
.wg-nav-label{
  font-size:10.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  color:var(--wg-slate); opacity:.75; padding:12px 12px 2px;
}
.wg-connect-card:hover{transform:none;}
.wg-connect-wrap{border:1px solid var(--wg-line-soft); border-radius:14px; overflow:hidden; background:#04060e;}
#wgConnectFrame{display:block; width:100%; height:min(76dvh, 920px); min-height:520px; border:0;}

/* ---------- shell (hub + parent) ---------- */
.wg-shell{display:grid; grid-template-columns:236px 1fr; min-height:100dvh;}
.wg-rail{
  border-right:1px solid var(--wg-line-soft); padding:20px 14px;
  background:linear-gradient(180deg, rgba(18,41,77,.4), rgba(5,13,31,.25));
  display:flex; flex-direction:column; gap:18px;
}
.wg-rail-brand{padding:2px 8px 14px; border-bottom:1px solid var(--wg-line-soft);}
.wg-rail-mark{font-family:"Space Grotesk",sans-serif; font-weight:700; letter-spacing:3.5px; font-size:16px; color:var(--wg-ice); text-shadow:0 0 16px rgba(56,225,255,.3);}
.wg-rail-sub{font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--wg-cyan); margin-top:4px;}
.wg-nav{display:flex; flex-direction:column; gap:5px;}
.wg-nav-item{
  appearance:none; background:transparent; border:1px solid transparent; cursor:pointer;
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:11px 12px; border-radius:12px; color:var(--wg-slate);
  font-size:14.5px; font-weight:600; font-family:inherit; text-decoration:none;
  transition:all .3s var(--wg-ease);
}
.wg-nav-item:hover{color:var(--wg-ice); background:rgba(56,225,255,.06);}
.wg-nav-item.on{
  color:var(--wg-ice); background:linear-gradient(120deg, rgba(56,225,255,.16), rgba(139,124,255,.13));
  border-color:var(--wg-line); box-shadow:0 0 16px rgba(56,225,255,.12);
}
.wg-nav-ico{width:20px; text-align:center; font-size:15px; color:var(--wg-cyan);}
.wg-rail-foot{margin-top:auto; display:flex; flex-direction:column; gap:8px;}
.wg-sync{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--wg-slate); padding:0 12px;}
.wg-sync-dot{width:8px; height:8px; border-radius:50%; background:var(--wg-mint); box-shadow:0 0 10px var(--wg-mint); animation:wgPulse 2.6s ease-in-out infinite;}
@keyframes wgPulse{0%,100%{opacity:1;}50%{opacity:.45;}}
.wg-main{padding:22px 26px 40px; min-width:0;}
.wg-band{position:relative; margin-bottom:20px; padding:6px 2px 0;}
.wg-band-wave{position:relative; display:block; width:100%; height:46px; opacity:.9; margin-bottom:4px;}
.wg-band-txt{position:relative; padding-bottom:16px;}
.wg-band-txt h1{font-size:29px; font-weight:700;}
.wg-band-txt p{color:var(--wg-slate); font-size:14px; line-height:1.55; margin:6px 0 0; max-width:640px;}
.wg-band-chip{
  position:absolute; top:8px; right:2px; display:flex; align-items:center; gap:8px;
  font-size:13.5px; font-weight:600; color:var(--wg-ice);
  background:rgba(18,41,77,.6); border:1px solid var(--wg-line); border-radius:999px; padding:6px 13px 6px 7px;
}
.wg-avatar-dot{
  width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--wg-cyan), var(--wg-violet)); color:#04101F; font-weight:800; font-size:13px;
}
.wg-panel{display:none;}
.wg-panel.on{display:block;}
.wg-grid{display:grid; gap:16px;}
.wg-grid-today{grid-template-columns:minmax(0,1fr) 330px; align-items:start;}
.wg-grid-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); align-items:start;}
.wg-col-main, .wg-col-side{min-width:0;}

/* block / course rows */
.wg-row{
  display:flex; align-items:center; gap:13px; padding:12px 4px;
  border-bottom:1px solid var(--wg-line-soft);
}
.wg-row:last-child{border-bottom:none;}
.wg-row-time{font-size:13px; font-weight:700; color:var(--wg-cyan); min-width:74px; font-variant-numeric:tabular-nums;}
.wg-row-body{flex:1; min-width:0;}
.wg-row-name{font-size:15px; font-weight:600; color:var(--wg-ice);}
.wg-row-sub{font-size:12.5px; color:var(--wg-slate); margin-top:2px; line-height:1.45;}
.wg-tag{
  font-size:10.5px; font-weight:700; letter-spacing:.7px; text-transform:uppercase;
  padding:4px 9px; border-radius:999px; white-space:nowrap;
  color:var(--wg-violet); background:rgba(139,124,255,.12); border:1px solid rgba(139,124,255,.3);
}
.wg-tag.mint{color:var(--wg-mint); background:rgba(60,242,200,.09); border-color:rgba(60,242,200,.28);}
.wg-tag.cyan{color:var(--wg-cyan); background:rgba(56,225,255,.09); border-color:rgba(56,225,255,.28);}
.wg-tag.dim{color:var(--wg-slate); background:rgba(143,168,200,.08); border-color:var(--wg-line-soft);}

/* rings */
.wg-ringwrap{position:relative; width:148px; height:148px; margin:6px auto 12px;}
.wg-ring{width:148px; height:148px; transform:rotate(-90deg);}
.wg-ring circle{fill:none; stroke-width:9; stroke-linecap:round;}
.wg-ring-bg{stroke:rgba(56,225,255,.13);}
.wg-ring-fg{stroke:var(--wg-cyan); stroke-dasharray:326.7; stroke-dashoffset:326.7; filter:drop-shadow(0 0 7px rgba(56,225,255,.65)); transition:stroke-dashoffset 1.2s var(--wg-ease);}
.wg-ring-c{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;}
.wg-ring-num{font-family:"Space Grotesk",sans-serif; font-size:31px; font-weight:700; color:var(--wg-ice);}
.wg-ring-lbl{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--wg-slate);}
.wg-ring-card{text-align:center;}
.wg-ring-card .wg-card-head{text-align:left;}

/* exam mini slots */
.wg-exam-slots{display:flex; flex-direction:column; gap:7px;}
.wg-exam-slot{
  display:flex; justify-content:space-between; align-items:center;
  border:1px solid var(--wg-line-soft); border-radius:10px; padding:8px 11px;
  font-size:13px; color:var(--wg-slate); background:rgba(5,13,31,.25);
}
.wg-exam-slot b{color:var(--wg-ice); font-weight:600;}
.wg-exam-slot span{font-size:11.5px;}

/* week strip */
.wg-week{display:grid; grid-template-columns:repeat(5,1fr) 1.15fr; gap:10px;}
.wg-day{
  border:1px solid var(--wg-line-soft); border-radius:14px; padding:13px 12px;
  background:rgba(5,13,31,.28); min-height:128px;
  transition:transform .3s var(--wg-ease), border-color .3s var(--wg-ease);
}
.wg-day:hover{transform:translateY(-3px); border-color:rgba(56,225,255,.35);}
.wg-day.today{border-color:rgba(56,225,255,.55); box-shadow:0 0 18px rgba(56,225,255,.14);}
.wg-day-name{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--wg-slate);}
.wg-day-subject{font-family:"Space Grotesk",sans-serif; font-size:15.5px; font-weight:600; margin:7px 0 5px; color:var(--wg-ice);}
.wg-day-echo{font-size:12px; line-height:1.5; color:var(--wg-mint);}
.wg-day-echo.dim{color:var(--wg-slate);}
.wg-day.exam{border-color:rgba(139,124,255,.4); background:linear-gradient(160deg, rgba(139,124,255,.13), rgba(5,13,31,.3));}

/* parent table + progress tracks */
.wg-table{width:100%; border-collapse:collapse; font-size:13.5px; margin-bottom:12px;}
.wg-table th{
  text-align:left; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--wg-slate);
  padding:8px 8px; border-bottom:1px solid var(--wg-line);
}
.wg-table td{padding:10px 8px; border-bottom:1px solid var(--wg-line-soft); color:var(--wg-ice);}
.wg-table td.dim{color:var(--wg-slate);}
.wg-track{height:8px; border-radius:99px; background:rgba(56,225,255,.1); overflow:hidden; margin-top:8px;}
.wg-track-fill{height:100%; width:0; border-radius:99px; background:linear-gradient(90deg, var(--wg-cyan), var(--wg-violet)); transition:width 1.2s var(--wg-ease);}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .wg-grid-today{grid-template-columns:1fr;}
  .wg-week{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .wg-shell{grid-template-columns:1fr;}
  .wg-rail{flex-direction:column; border-right:none; border-bottom:1px solid var(--wg-line-soft); padding:14px;}
  .wg-nav{flex-direction:row; flex-wrap:wrap;}
  .wg-nav-item{width:auto;}
  .wg-rail-foot{margin-top:0; flex-direction:row; align-items:center; flex-wrap:wrap;}
  .wg-main{padding:16px 14px 34px;}
  .wg-doors{grid-template-columns:1fr;}
  .wg-band-chip{position:static; margin-top:12px; width:max-content;}
  .wg-gate-title{font-size:27px;}
}
