/* ═══════════════════════════════════════════════════════════════
   TAMAKKIN DASHBOARDS v3
   Scope: Login + Parent Dashboard + Teacher Dashboard ONLY
   Mobile-first · RTL · WCAG 2.1 AA · تمكَّن Identity
   ═══════════════════════════════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  --dv3-green:       #0F7B5F;
  --dv3-green-h:     #0A6048;
  --dv3-green-soft:  #E8F6EF;
  --dv3-green-weak:  #F2FAF6;
  --dv3-green-bd:    rgba(15,123,95,.18);
  --dv3-amber:       #A86210;
  --dv3-amber-soft:  #FDF3E0;
  --dv3-amber-weak:  #FEF9F0;
  --dv3-amber-bd:    rgba(168,98,16,.18);
  --dv3-blue:        #1A5FA5;
  --dv3-bg:          #F3F7F5;
  --dv3-card:        #FFFFFF;
  --dv3-border:      rgba(15,53,42,.09);
  --dv3-text:        #18231E;
  --dv3-muted:       #5A675F;
  --dv3-heading:     #0E211A;
  --dv3-nav:         60px;
  --dv3-max:         1160px;
  --dv3-gap:         14px;
  --dv3-r:           16px;
  --dv3-r-sm:        10px;
  --dv3-sh-sm:       0 2px 10px rgba(15,23,42,.05);
  --dv3-sh-md:       0 6px 24px rgba(15,23,42,.08);
  --dv3-sh-lg:       0 20px 60px rgba(15,23,42,.12);
}
.dark {
  --dv3-bg:    #071611;
  --dv3-card:  #0E1F1A;
  --dv3-border:rgba(255,255,255,.08);
  --dv3-text:  #D8E8E0;
  --dv3-muted: #7EA090;
  --dv3-heading:#EAF4EE;
  --dv3-green-soft: rgba(15,123,95,.15);
  --dv3-green-weak: rgba(15,123,95,.08);
  --dv3-amber-soft: rgba(168,98,16,.15);
  --dv3-amber-weak: rgba(168,98,16,.08);
}
*, *::before, *::after { box-sizing: border-box; }

/* ═══════════════════════════════════════
   LOGIN PAGE
   ═══════════════════════════════════════ */
.dv3-login-body {
  min-height: 100svh;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(ellipse at 15% 0%, rgba(15,123,95,.12) 0%, transparent 52%),
    radial-gradient(ellipse at 85% 100%, rgba(26,95,165,.07) 0%, transparent 48%),
    #EFF5F2;
  padding: 20px;
}
.dark.dv3-login-body { background: #071611; }

.dv3-shell {
  width: min(1060px, 100%);
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--dv3-sh-lg);
  border: 1px solid var(--dv3-green-bd);
  min-height: 580px;
}

/* Brand panel */
.dv3-side {
  background: linear-gradient(145deg, #0F7B5F 0%, #0A6048 65%, #074D3A 100%);
  padding: 44px 40px;
  display: flex; flex-direction: column; justify-content: space-between;
  position: relative; overflow: hidden;
}
.dv3-side::before {
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.09) 0%, transparent 50%),
    radial-gradient(circle at 10% 75%, rgba(255,255,255,.06) 0%, transparent 42%);
  pointer-events:none;
}
.dv3-side>*{position:relative;z-index:1;}

.dv3-brand { display:flex; align-items:center; gap:14px; }
.dv3-brand img { width:50px; height:50px; border-radius:13px; background:rgba(255,255,255,.15); padding:5px; }
.dv3-brand-name { font-size:22px; font-weight:900; color:#fff; line-height:1; }
.dv3-brand-sub  { font-size:12px; color:rgba(255,255,255,.75); font-weight:600; margin-top:2px; }

.dv3-copy { margin-top: 36px; }
.dv3-eyebrow {
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.26);
  border-radius:100px; padding:5px 14px; font-size:12px; font-weight:700;
  color:rgba(255,255,255,.95); margin-bottom:18px;
}
.dv3-copy h1 {
  font-size:clamp(26px,3.2vw,40px); font-weight:900; color:#fff;
  line-height:1.1; margin:0 0 14px; letter-spacing:-.5px;
}
.dv3-copy p { color:rgba(255,255,255,.8); font-size:15px; line-height:1.7; margin:0; max-width:320px; }

.dv3-trust { display:flex; flex-direction:column; gap:10px; margin-top:28px; }
.dv3-trust li {
  list-style:none; display:flex; align-items:center; gap:10px;
  color:rgba(255,255,255,.9); font-size:14px; font-weight:700;
}
.dv3-trust li::before {
  content:'✓'; display:flex; width:22px; height:22px; border-radius:50%;
  background:rgba(255,255,255,.2); align-items:center; justify-content:center;
  font-size:11px; font-weight:900; flex-shrink:0;
}

/* Auth card */
.dv3-card {
  background: var(--dv3-card);
  padding: 48px 44px;
  display: flex; flex-direction: column; justify-content: center;
}
.dark .dv3-card { background: #0E1F1A; }

.dv3-card-top {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:32px;
}
.dv3-home-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px; background:var(--dv3-green-weak);
  border:1.5px solid var(--dv3-green-bd); border-radius:100px;
  font-size:13px; font-weight:800; color:var(--dv3-green);
  text-decoration:none; transition:background .15s;
  font-family:'Tajawal',system-ui,sans-serif;
}
.dv3-home-btn:hover { background:var(--dv3-green-soft); }
.dark .dv3-home-btn { background:rgba(15,123,95,.15); color:#4ade80; border-color:rgba(15,123,95,.3); }

.dv3-theme-btn {
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--dv3-border); background:var(--dv3-green-weak);
  cursor:pointer; font-size:17px;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s;
}
.dark .dv3-theme-btn { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12); }

/* Mobile brand (login) */
.dv3-mobile-brand {
  display:none; align-items:center; gap:12px; margin-bottom:20px;
}
.dv3-mobile-brand img { width:40px; height:40px; border-radius:11px; }
.dv3-mobile-brand-name { font-size:18px; font-weight:900; color:var(--dv3-green); line-height:1; }
.dv3-mobile-brand-sub  { font-size:11px; color:var(--dv3-muted); font-weight:600; }

/* Role tabs */
.dv3-tabs {
  display:grid; grid-template-columns:1fr 1fr; gap:5px;
  background:var(--dv3-green-weak); border:1.5px solid var(--dv3-green-bd);
  border-radius:var(--dv3-r); padding:5px; margin-bottom:26px;
}
.dv3-tab {
  text-align:center; border-radius:11px; padding:11px 8px;
  font-size:14px; font-weight:800; color:var(--dv3-muted);
  text-decoration:none; transition:all .18s ease;
}
.dv3-tab.active {
  background:var(--dv3-green); color:#fff;
  box-shadow:0 4px 14px rgba(15,123,95,.24);
}
.dark .dv3-tabs { background:rgba(15,123,95,.07); border-color:rgba(15,123,95,.2); }
.dark .dv3-tab { color:#8FA89D; }

.dv3-role-badge {
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 14px; background:var(--dv3-green-soft);
  border:1px solid var(--dv3-green-bd); border-radius:100px;
  color:var(--dv3-green); font-size:12.5px; font-weight:800; margin-bottom:12px;
}
.dark .dv3-role-badge { background:rgba(15,123,95,.15); color:#4ade80; }

.dv3-card h2 {
  font-size:clamp(22px,3.5vw,34px); font-weight:900; color:var(--dv3-heading);
  margin:0 0 6px; letter-spacing:-.5px; line-height:1.2;
}
.dark .dv3-card h2 { color:#EAF4EE; }
.dv3-desc { color:var(--dv3-muted); font-size:15px; line-height:1.65; margin:0 0 22px; }

/* Fields */
.dv3-field { margin-bottom:14px; }
.dv3-field label {
  display:block; margin-bottom:6px; font-size:13.5px;
  font-weight:800; color:var(--dv3-heading);
}
.dark .dv3-field label { color:#d0e4da; }
.dv3-input-wrap { position:relative; }
.dv3-input-wrap span {
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  color:var(--dv3-muted); font-size:16px; pointer-events:none;
}
.dv3-input-wrap input {
  width:100%; height:50px;
  border:1.5px solid var(--dv3-border); border-radius:var(--dv3-r-sm);
  background:var(--dv3-green-weak); color:var(--dv3-text);
  padding:0 44px 0 16px; font-size:16px;
  font-family:'Tajawal',system-ui,sans-serif;
  transition:border-color .15s, box-shadow .15s;
}
.dv3-input-wrap input:focus {
  outline:none; border-color:var(--dv3-green);
  box-shadow:0 0 0 3px rgba(15,123,95,.12);
}
.dark .dv3-input-wrap input {
  background:rgba(15,123,95,.08); border-color:rgba(255,255,255,.1); color:#E4EDE8;
}

.dv3-login-btn {
  width:100%; height:52px; background:linear-gradient(135deg,var(--dv3-green) 0%,#0A6048 100%);
  color:#fff; border:none; border-radius:var(--dv3-r-sm);
  font-size:16px; font-weight:900; cursor:pointer;
  box-shadow:0 6px 20px rgba(15,123,95,.28);
  font-family:'Tajawal',system-ui,sans-serif;
  transition:transform .15s, box-shadow .15s; margin-top:4px;
}
.dv3-login-btn:hover { transform:translateY(-1px); box-shadow:0 10px 28px rgba(15,123,95,.36); }
.dv3-login-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

.dv3-msg {
  display:none; color:#B91C1C;
  background:#FEE2E2; border:1px solid rgba(185,28,28,.2);
  border-radius:var(--dv3-r-sm); padding:10px 14px;
  font-size:14px; font-weight:700; margin-bottom:14px;
}
.dark .dv3-msg { background:rgba(185,28,28,.15); }

.dv3-links {
  display:flex; justify-content:space-between; align-items:center;
  gap:10px; flex-wrap:wrap; margin-top:16px;
}
.dv3-links a { color:var(--dv3-green); font-size:14px; font-weight:700; text-decoration:none; }
.dv3-links a:hover { text-decoration:underline; }
.dark .dv3-links a { color:#4ade80; }

.dv3-mini { text-align:center; color:var(--dv3-muted); font-size:13px; margin-top:18px; }

.dv3-teacher-note {
  margin-top:12px; background:var(--dv3-amber-weak);
  border:1px dashed var(--dv3-amber-bd); border-radius:var(--dv3-r-sm);
  padding:12px 16px; font-size:13.5px; color:var(--dv3-amber); line-height:1.6;
}

/* LOGIN RESPONSIVE */
@media (max-width:720px) {
  .dv3-login-body { padding:0; align-items:stretch; }
  .dv3-shell { grid-template-columns:1fr; border-radius:0; box-shadow:none; border:none; min-height:100svh; }
  .dv3-side { display:none; }
  .dv3-card { padding:0; justify-content:flex-start; min-height:100svh; }
  .dv3-card-top {
    position:sticky; top:0; z-index:100; margin:0;
    padding:12px 18px;
    background:rgba(240,247,244,.95); backdrop-filter:blur(12px);
    border-bottom:1px solid var(--dv3-green-bd);
  }
  .dark .dv3-card-top { background:rgba(7,22,17,.95); }
  .dv3-mobile-brand { display:flex; }
  .dv3-card-form { padding:18px 20px 32px; }
  .dv3-card h2 { font-size:22px; }
}
@media (min-width:721px) and (max-width:1020px) {
  .dv3-login-body { padding:14px; }
  .dv3-card { padding:36px 30px; }
  .dv3-side { padding:34px 28px; }
}

/* ═══════════════════════════════════════
   SHARED NAV (Parent + Teacher)
   ═══════════════════════════════════════ */
.dv3-topnav {
  position:fixed; inset-block-start:0; inset-inline:0; z-index:900;
  height:var(--dv3-nav); background:rgba(244,250,246,.95);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--dv3-green-bd);
}
.dark .dv3-topnav { background:rgba(7,22,17,.96); border-color:rgba(15,123,95,.2); }

.dv3-nav-inner {
  max-width:var(--dv3-max); height:var(--dv3-nav); margin:0 auto;
  padding-inline:clamp(14px,3.5vw,28px);
  display:flex; align-items:center; gap:10px;
}

/* Brand */
.dv3-nav-brand {
  display:flex; align-items:center; gap:9px;
  text-decoration:none; flex-shrink:0;
}
.dv3-nav-logo { width:34px; height:34px; }
.dv3-nav-wordmark { display:flex; flex-direction:column; }
.dv3-nav-name { font-size:16px; font-weight:900; color:var(--dv3-green); line-height:1; }
.dv3-nav-sub { font-size:10px; color:var(--dv3-muted); font-weight:600; }

/* Search */
.dv3-nav-search {
  flex:1; max-width:220px;
  display:flex; align-items:center; gap:7px;
  background:var(--dv3-green-weak); border:1px solid var(--dv3-green-bd);
  border-radius:100px; padding:6px 13px; font-size:13px;
  transition:border-color .15s;
}
.dv3-nav-search:focus-within { border-color:var(--dv3-green); box-shadow:0 0 0 2px rgba(15,123,95,.1); }
.dv3-nav-search input {
  background:none; border:none; outline:none; font-size:13px;
  width:100%; color:var(--dv3-text); font-family:'Tajawal',system-ui,sans-serif;
}
.dv3-nav-search input::placeholder { color:var(--dv3-muted); }
.dark .dv3-nav-search { background:rgba(15,123,95,.07); border-color:rgba(15,123,95,.18); }

/* Nav actions */
.dv3-nav-actions {
  display:flex; align-items:center; gap:6px; margin-inline-start:auto;
}
.dv3-nav-btn {
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--dv3-border); background:var(--dv3-green-weak);
  cursor:pointer; font-size:17px;
  display:flex; align-items:center; justify-content:center;
  color:var(--dv3-text); transition:background .15s; position:relative;
}
.dv3-nav-btn:hover { background:var(--dv3-green-soft); border-color:var(--dv3-green-bd); }
.dark .dv3-nav-btn { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.1); color:#D8E8E0; }

.dv3-nav-dot {
  position:absolute; top:5px; left:5px;
  width:8px; height:8px; border-radius:50%;
  background:#EF4444; border:2px solid var(--dv3-card);
}

.dv3-nav-avatar {
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(135deg,var(--dv3-green) 0%,#0A6048 100%);
  color:#fff; font-size:15px; font-weight:900;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex-shrink:0; box-shadow:0 3px 10px rgba(15,123,95,.28);
}
/* teacher amber avatar */
.dv3-nav-avatar.amber {
  background:linear-gradient(135deg,var(--dv3-amber) 0%,#8B5010 100%);
  box-shadow:0 3px 10px rgba(168,98,16,.28);
}

@media (max-width:560px) {
  .dv3-nav-search { display:none; }
  .dv3-nav-sub { display:none; }
  .dv3-nav-btn { width:34px; height:34px; font-size:15px; }
  .dv3-nav-avatar { width:34px; height:34px; font-size:13px; }
  .dv3-nav-logo { width:30px; height:30px; }
}

/* ═══════════════════════════════════════
   PARENT DASHBOARD
   ═══════════════════════════════════════ */
.dv3-pd-main {
  max-width:var(--dv3-max); margin:0 auto;
  padding-top:calc(var(--dv3-nav) + 20px);
  padding-bottom:80px;
  padding-inline:clamp(14px,4vw,28px);
  display:flex; flex-direction:column; gap:var(--dv3-gap);
}

/* Hero */
.dv3-pd-hero {
  background:linear-gradient(135deg,var(--dv3-green) 0%,#0A6048 100%);
  border-radius:var(--dv3-r); padding:24px 26px;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  box-shadow:0 6px 28px rgba(15,123,95,.22);
  position:relative; overflow:hidden;
}
.dv3-pd-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 88% 30%, rgba(255,255,255,.09) 0%, transparent 55%);
  pointer-events:none;
}
.dv3-pd-hero>*{position:relative;z-index:1;}
.dv3-hero-badge {
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(255,255,255,.18); border-radius:100px;
  padding:3px 12px; font-size:12px; font-weight:700;
  color:rgba(255,255,255,.95); margin-bottom:8px;
}
.dv3-hero-title { font-size:clamp(18px,3vw,24px); font-weight:900; color:#fff; margin:0 0 4px; }
.dv3-hero-sub { font-size:13px; color:rgba(255,255,255,.82); font-weight:600; margin:0; }
.dv3-hero-stats { display:flex; align-items:center; gap:18px; flex-shrink:0; }
.dv3-stat { text-align:center; }
.dv3-stat-num { font-size:26px; font-weight:900; color:#fff; line-height:1; }
.dv3-stat-lbl { font-size:11px; color:rgba(255,255,255,.75); margin-top:3px; font-weight:600; }
.dv3-stat-div { width:1px; height:36px; background:rgba(255,255,255,.22); }

/* Children strip */
.dv3-children-strip {
  display:flex; gap:9px; overflow-x:auto; padding-bottom:3px;
  scrollbar-width:thin; scrollbar-color:var(--dv3-green-bd) transparent;
}
.dv3-children-strip::-webkit-scrollbar { height:4px; }
.dv3-children-strip::-webkit-scrollbar-thumb { background:var(--dv3-green-bd); border-radius:2px; }

/* Bento grid */
.dv3-bento {
  display:grid; grid-template-columns:repeat(12,1fr); gap:var(--dv3-gap);
}
.dv3-bc {
  background:var(--dv3-card); border:1px solid var(--dv3-border);
  border-radius:var(--dv3-r); padding:18px 20px;
  box-shadow:var(--dv3-sh-sm); transition:box-shadow .18s;
}
.dv3-bc:hover { box-shadow:var(--dv3-sh-md); }
.dark .dv3-bc { background:#0E1F1A; border-color:rgba(255,255,255,.08); }
.dv3-bc-label {
  font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.6px;
  color:var(--dv3-green); margin-bottom:12px;
}
.dv3-span-4  { grid-column:span 4; }
.dv3-span-6  { grid-column:span 6; }
.dv3-span-8  { grid-column:span 8; }
.dv3-span-12 { grid-column:span 12; }

/* KPI row */
.dv3-kpi-row { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.dv3-kpi {
  text-align:center; background:var(--dv3-green-weak);
  border:1px solid var(--dv3-green-bd); border-radius:var(--dv3-r-sm); padding:13px 8px;
}
.dark .dv3-kpi { background:rgba(15,123,95,.08); }
.dv3-kpi-icon { font-size:21px; margin-bottom:5px; }
.dv3-kpi-num  { font-size:22px; font-weight:900; color:var(--dv3-green); line-height:1; }
.dv3-kpi-lbl  { font-size:11px; color:var(--dv3-muted); margin-top:3px; font-weight:600; }

/* Quick actions */
.dv3-qa-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.dv3-qa {
  display:flex; align-items:center; gap:8px; padding:11px 13px;
  background:var(--dv3-green-weak); border:1.5px solid var(--dv3-green-bd);
  border-radius:var(--dv3-r-sm); font-size:13px; font-weight:800;
  color:var(--dv3-green); text-decoration:none; cursor:pointer;
  font-family:'Tajawal',system-ui,sans-serif;
  transition:background .15s, transform .15s;
}
.dv3-qa:hover { background:var(--dv3-green-soft); transform:translateY(-1px); }
.dark .dv3-qa { background:rgba(15,123,95,.1); border-color:rgba(15,123,95,.22); color:#4ade80; }

/* Progress */
.dv3-progress-wrap { display:flex; gap:14px; align-items:center; }
.dv3-arc-pct { font-size:19px; font-weight:900; color:var(--dv3-green); }

/* CTA card */
.dv3-cta-inner {
  height:100%; padding:22px 18px;
  background:linear-gradient(135deg,var(--dv3-green) 0%,#0A6048 100%);
  display:flex; flex-direction:column; justify-content:center;
  text-align:center; color:#fff;
}
.dv3-cta-btn {
  display:inline-block; padding:9px 18px;
  background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.35);
  border-radius:100px; color:#fff; font-size:13.5px; font-weight:800;
  text-decoration:none; transition:background .15s;
  font-family:'Tajawal',system-ui,sans-serif; margin-top:10px;
}
.dv3-cta-btn:hover { background:rgba(255,255,255,.3); }

/* FAB */
.dv3-fab {
  position:fixed; bottom:88px; left:22px;
  width:52px; height:52px; border-radius:50%;
  background:var(--dv3-green); color:#fff; font-size:26px;
  border:none; cursor:pointer;
  box-shadow:0 6px 22px rgba(15,123,95,.38);
  display:flex; align-items:center; justify-content:center;
  z-index:500; transition:transform .18s, box-shadow .18s;
  font-family:'Tajawal',system-ui,sans-serif;
}
.dv3-fab:hover { transform:scale(1.08); box-shadow:0 10px 30px rgba(15,123,95,.48); }

/* Add Child Modal */
.dv3-modal-bg {
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  backdrop-filter:blur(4px); display:flex; align-items:center;
  justify-content:center; z-index:1000; padding:20px;
}
.dv3-modal {
  background:var(--dv3-card); border-radius:var(--dv3-r);
  padding:26px; width:min(460px,100%); max-height:90svh;
  overflow-y:auto; box-shadow:var(--dv3-sh-lg); position:relative;
}
.dark .dv3-modal { background:#0E1F1A; }
.dv3-modal-title { font-size:17px; font-weight:900; color:var(--dv3-heading); margin-bottom:18px; }
.dark .dv3-modal-title { color:#EAF4EE; }
.dv3-modal-close {
  position:absolute; top:12px; left:12px; width:30px; height:30px;
  border-radius:50%; background:var(--dv3-green-weak); border:none;
  cursor:pointer; font-size:16px; display:flex; align-items:center;
  justify-content:center; color:var(--dv3-green);
}
.dv3-form-field { margin-bottom:14px; }
.dv3-form-field label {
  display:block; margin-bottom:6px; font-size:13px;
  font-weight:700; color:var(--dv3-muted);
}
.dv3-form-field input, .dv3-form-field select {
  width:100%; height:46px; border:1.5px solid var(--dv3-border);
  border-radius:var(--dv3-r-sm); background:var(--dv3-green-weak);
  padding:0 14px; font-size:15px; color:var(--dv3-text);
  font-family:'Tajawal',system-ui,sans-serif; transition:border-color .15s;
}
.dv3-form-field input:focus, .dv3-form-field select:focus {
  outline:none; border-color:var(--dv3-green);
  box-shadow:0 0 0 3px rgba(15,123,95,.1);
}
.dv3-form-submit {
  width:100%; height:48px;
  background:linear-gradient(135deg,var(--dv3-green) 0%,#0A6048 100%);
  color:#fff; border:none; border-radius:var(--dv3-r-sm);
  font-size:15px; font-weight:900; cursor:pointer;
  font-family:'Tajawal',system-ui,sans-serif;
  box-shadow:0 4px 16px rgba(15,123,95,.25);
}
.dv3-form-help { font-size:12px; color:var(--dv3-muted); margin-top:10px; line-height:1.55; text-align:center; }

/* Parent bento responsive */
@media (max-width:900px) {
  .dv3-span-8,.dv3-span-4 { grid-column:span 6; }
}
@media (max-width:640px) {
  .dv3-bento { grid-template-columns:1fr 1fr; gap:10px; }
  .dv3-span-4,.dv3-span-6,.dv3-span-8,.dv3-span-12 { grid-column:span 2; }
  .dv3-pd-hero { flex-direction:column; align-items:flex-start; padding:18px 16px; }
  .dv3-hero-stats { width:100%; justify-content:space-around; padding-top:12px; border-top:1px solid rgba(255,255,255,.18); }
  .dv3-stat-num { font-size:22px; }
  .dv3-pd-main { padding-top:calc(var(--dv3-nav)+14px); padding-bottom:90px; gap:10px; }
}
@media (max-width:380px) {
  .dv3-bento { grid-template-columns:1fr; }
  .dv3-span-4,.dv3-span-6,.dv3-span-8,.dv3-span-12 { grid-column:span 1; }
  .dv3-kpi-row { grid-template-columns:repeat(3,1fr); }
}

/* ═══════════════════════════════════════
   TEACHER DASHBOARD NAV (amber variant)
   ═══════════════════════════════════════ */
.dv3-td-nav {
  border-bottom-color: rgba(168,98,16,.18) !important;
}
.dark .dv3-td-nav { border-color:rgba(168,98,16,.22) !important; }
.dv3-td-search {
  border-color: var(--dv3-amber-bd) !important;
  background: var(--dv3-amber-weak) !important;
}
.dv3-td-search:focus-within {
  border-color: var(--dv3-amber) !important;
  box-shadow: 0 0 0 2px rgba(168,98,16,.1) !important;
}
.dv3-td-search input::placeholder { color:var(--dv3-muted); }

/* ═══════════════════════════════════════
   BACK BUTTONS (sub-pages)
   ═══════════════════════════════════════ */
.dv3-back-bar {
  display:flex; align-items:center; gap:10px; padding:11px 18px;
  background:rgba(240,247,244,.97); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--dv3-green-bd);
  position:sticky; top:0; z-index:600;
  font-family:'Tajawal',system-ui,sans-serif;
}
.dark .dv3-back-bar { background:rgba(7,22,17,.96); border-color:rgba(15,123,95,.2); }
.dv3-back-btn {
  display:inline-flex; align-items:center; gap:6px; padding:8px 16px;
  background:var(--dv3-green-weak); border:1.5px solid var(--dv3-green-bd);
  border-radius:100px; font-size:13px; font-weight:800;
  color:var(--dv3-green); text-decoration:none;
  font-family:'Tajawal',system-ui,sans-serif; transition:background .15s;
}
.dv3-back-btn:hover { background:var(--dv3-green-soft); }
.dark .dv3-back-btn { background:rgba(15,123,95,.12); border-color:rgba(15,123,95,.28); color:#4ade80; }
.dv3-back-bar .dv3-page-title {
  flex:1; font-size:15px; font-weight:800; color:var(--dv3-heading);
}
.dark .dv3-back-bar .dv3-page-title { color:#EAF4EE; }

/* Teacher sub-pages amber back bar */
.dv3-back-bar.amber { border-color:var(--dv3-amber-bd) !important; }
.dark .dv3-back-bar.amber { border-color:rgba(168,98,16,.22) !important; }
.dv3-back-bar.amber .dv3-back-btn { background:var(--dv3-amber-weak); border-color:var(--dv3-amber-bd); color:var(--dv3-amber); }
.dv3-back-bar.amber .dv3-back-btn:hover { background:var(--dv3-amber-soft); }
.dark .dv3-back-bar.amber .dv3-back-btn { background:rgba(168,98,16,.12); color:#F59E0B; }

/* ═══════════════════════════════════════
   AI BUTTON — same as homepage
   ═══════════════════════════════════════ */
.tmk-ai-assistant {
  position:fixed !important;
  right:22px !important; left:auto !important;
  inset-inline-end:22px !important; inset-inline-start:unset !important;
  bottom:24px !important; z-index:2147483000 !important;
  direction:rtl !important; font-family:'Tajawal',system-ui,sans-serif !important;
}
.tmk-ai-toggle {
  display:inline-flex !important; align-items:center !important; gap:9px !important;
  padding:11px 20px 11px 16px !important;
  background:var(--dv3-green) !important; color:#fff !important;
  border:none !important; border-radius:100px !important;
  font-size:14px !important; font-weight:800 !important;
  cursor:pointer !important;
  box-shadow:0 6px 24px rgba(15,123,95,.38) !important;
  font-family:'Tajawal',system-ui,sans-serif !important;
  transition:transform .18s ease, box-shadow .18s ease !important;
  white-space:nowrap !important;
}
.tmk-ai-toggle:hover { transform:translateY(-2px) !important; box-shadow:0 10px 32px rgba(15,123,95,.48) !important; }
.tmk-ai-icon {
  display:inline-flex !important; width:24px !important; height:24px !important;
  border-radius:50% !important; background:rgba(255,255,255,.22) !important;
  align-items:center !important; justify-content:center !important;
  font-size:14px !important; flex-shrink:0 !important;
}
.tmk-ai-panel {
  position:absolute !important; right:0 !important; left:auto !important;
  bottom:54px !important; width:min(356px,calc(100vw - 36px)) !important;
  background:#fff !important; border:1px solid var(--dv3-green-bd) !important;
  border-radius:20px !important; box-shadow:var(--dv3-sh-lg) !important; overflow:hidden !important;
}
.dark .tmk-ai-panel { background:#0E1F1A !important; border-color:rgba(15,123,95,.25) !important; }

/* ═══════════════════════════════════════
   TOAST
   ═══════════════════════════════════════ */
.dv3-toast {
  position:fixed; bottom:94px; left:50%; transform:translateX(-50%);
  background:var(--dv3-heading); color:#fff;
  padding:11px 24px; border-radius:100px;
  font-size:14px; font-weight:700; z-index:9999;
  opacity:0; pointer-events:none; transition:opacity .2s;
  box-shadow:0 6px 24px rgba(0,0,0,.2); white-space:nowrap;
  font-family:'Tajawal',system-ui,sans-serif;
}
.dv3-toast.show { opacity:1; pointer-events:auto; }

/* ═══════════════════════════════════════
   GENERAL SAFETY
   ═══════════════════════════════════════ */
@media (max-width:640px) {
  html, body { overflow-x:hidden !important; max-width:100vw !important; }
}

/* ── TOAST (parent dashboard JS uses class="toast show") ── */
.toast {
  position:fixed; bottom:90px; left:50%; transform:translateX(-50%);
  background:var(--dv3-heading,#0E211A); color:#fff;
  padding:11px 24px; border-radius:100px;
  font-size:14px; font-weight:700; z-index:9999;
  opacity:0; pointer-events:none; transition:opacity .2s;
  box-shadow:0 6px 24px rgba(0,0,0,.2); white-space:nowrap;
  font-family:'Tajawal',system-ui,sans-serif;
}
.toast.show { opacity:1; pointer-events:auto; }

/* ═══════════════════════════════════════
   PARENT DASHBOARD — Missing Classes Fix
   ═══════════════════════════════════════ */

/* Loading state */
.pd-loading {
  color:var(--dv3-muted);
  font-size:13px; font-weight:600;
  padding:18px 0; text-align:center;
}

/* Progress wrap (arc + bars) */
.dv3-progress-wrap {
  display:flex; gap:14px; align-items:center;
}
.dv3-arc-pct {
  font-size:19px; font-weight:900; color:var(--dv3-green);
}
/* IEP Stages row */
.pd-iep-stages {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
  gap:10px;
}
@media (max-width:480px) {
  .pd-iep-stages { grid-template-columns:1fr; }
}

/* gray-800 fallback for parent toast */
:root { --gray-800: #1A1A17; }
.dark { --gray-800: #EEECe4; }

/* Children strip child button */
.pd-child-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 14px; border-radius:12px; cursor:pointer;
  font-size:13px; font-weight:700; white-space:nowrap;
  border:1.5px solid var(--dv3-border);
  background:var(--dv3-card); color:var(--dv3-text);
  font-family:'Tajawal',system-ui,sans-serif;
  transition:border-color .15s, background .15s;
  flex-shrink:0;
}
.pd-child-btn.active {
  border-color:var(--dv3-green);
  background:var(--dv3-green-soft);
  color:var(--dv3-green);
}
.pd-child-btn:hover { border-color:var(--dv3-green); }
.dark .pd-child-btn { background:rgba(255,255,255,.04); color:var(--dv3-text); }
.dark .pd-child-btn.active { background:rgba(15,123,95,.15); color:#4ade80; }

/* Progress bars (rendered by JS) */
.pd-progress-bar-wrap { margin-bottom:7px; }
.pd-progress-bar-label {
  display:flex; justify-content:space-between;
  font-size:11.5px; font-weight:700; color:var(--dv3-muted);
  margin-bottom:3px;
}
.pd-progress-bar-track {
  height:5px; background:var(--dv3-green-soft);
  border-radius:3px; overflow:hidden;
}
.pd-progress-bar-fill {
  height:100%; background:var(--dv3-green);
  border-radius:3px; transition:width .6s ease;
}
