:root{
  /* ---- Color tokens — Color Hunt "e3f2fd·90caf9·2196f3·0d47a1" blue palette ---- */
  --primary-50:#e3f2fd;   /* palest tint — soft surfaces, hover washes   */
  --primary-200:#90caf9;  /* light — chips, secondary accents            */
  --primary-500:#2196f3;  /* main brand — CTAs, links, active states     */
  --primary-900:#0d47a1;  /* deep — headings, header/hub gradients       */
  --primary-950:#0a3a82;  /* derived deeper shade, gradient depth only   */

  --navy:var(--primary-900); --navy-light:var(--primary-500); --navy-dark:var(--primary-950);
  --teal:var(--primary-500); --teal-soft:var(--primary-50);
  --gold:var(--primary-500); --gold-soft:var(--primary-50);
  --coral:#e0546f; --violet:#6f57b8;

  --bg:#f5f9ff;
  --bg-accent:radial-gradient(1000px 520px at 8% -8%,rgba(33,150,243,.10),transparent 55%),
               radial-gradient(760px 420px at 100% -4%,rgba(144,202,249,.16),transparent 52%),
               radial-gradient(620px 420px at 50% 118%,rgba(13,71,161,.06),transparent 52%);
  --surface:#ffffff;
  --surface-2:#f4f9ff;
  --surface-sunken:#e9f3fd;
  --border:#d7e7f7;
  --border-strong:#b7d6f2;

  --text:#0f2338;
  --text-muted:#5c7591;
  --text-faint:#8aa0b8;
  --on-dark:#f3f9ff;
  --on-dark-muted:#c7e0f7;

  --danger:#d43f52; --danger-soft:#fbeaec;
  --warn:#c98006;   --warn-soft:#fdf1de;
  --ok:#0f8f5f;     --ok-soft:#e7f7ef;
  --info:#2464a3;   --info-soft:#e9f2fb;

  /* ---- Type ---- */
  --font: 'Vazirmatn', Tahoma, 'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
  --font-display: 'Vazirmatn', Tahoma, 'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
  --text-2xs:.6875rem;  /* 11px  */
  --text-xs:.75rem;     /* 12px  */
  --text-sm:.8125rem;   /* 13px  */
  --text-md:.9375rem;   /* 15px  */
  --text-lg:1.0625rem;  /* 17px  */
  --text-xl:1.25rem;    /* 20px  */
  --text-2xl:1.5rem;    /* 24px  */
  --leading-tight:1.3;
  --leading:1.6;
  --leading-loose:1.85;

  /* ---- Space scale ---- */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem;

  /* ---- Shape ---- */
  --radius-xs:6px; --radius-sm:9px; --radius-md:12px; --radius-lg:16px; --radius-pill:999px;

  /* ---- Elevation ---- */
  --shadow-sm:0 1px 2px rgba(13,71,161,.07),0 1px 1px rgba(13,71,161,.05);
  --shadow-md:0 6px 20px rgba(13,71,161,.11);
  --shadow-lg:0 14px 38px rgba(13,71,161,.16);

  /* ---- Motion ---- */
  --dur-fast:120ms; --dur-base:200ms; --dur-slow:360ms;
  --ease:cubic-bezier(.4,0,.2,1);

  --container:1180px;
  --sidebar-w:250px;
  --focus-ring:0 0 0 3px rgba(33,150,243,.35);

  /* Back-compat aliases referenced by inline styles generated in JS */
  --muted:var(--text-muted);
  --line:var(--border);
  --radius:var(--radius-md);
}

/* ============ Reset & base ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:hidden;max-width:100%}
body{
  margin:0;font-family:var(--font);direction:rtl;color:var(--text);
  background:var(--bg-accent),var(--bg) fixed;
  min-height:100vh;font-size:var(--text-sm);line-height:var(--leading);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;max-width:100%;
}
h1,h2,h3,h4,h5{margin:0;font-weight:700;line-height:var(--leading-tight);color:var(--navy);font-family:var(--font-display);letter-spacing:-.01em}
p{margin:0 0 var(--space-2)}
img,svg{max-width:100%}
:focus{outline:none}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;box-shadow:var(--focus-ring)}
a{color:var(--info)}
::selection{background:rgba(15,148,136,.25)}

/* Skip link */
.skip-link{
  position:absolute;right:var(--space-3);top:-48px;background:var(--navy);color:#fff;
  padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:1000;
  transition:top var(--dur-base) var(--ease);font-size:var(--text-sm);
}
.skip-link:focus{top:var(--space-3)}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ============ Header ============ */
header{
  background:linear-gradient(120deg,var(--navy-dark) 0%,var(--navy) 45%,var(--teal) 165%);
  color:var(--on-dark);padding:14px 22px;display:flex;justify-content:space-between;
  align-items:center;gap:var(--space-3);box-shadow:var(--shadow-md);
  border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:40;flex-wrap:wrap;
}
header .brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}
.brand-logo{height:88px;width:auto;flex-shrink:0;display:block;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
@media (max-width:640px){.brand-logo{height:68px}}
.auth-logo{height:128px;width:auto;margin:0 auto 8px;display:block;filter:drop-shadow(0 3px 8px rgba(0,0,0,.25))}
.menu-toggle{
  display:none;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  color:#fff;border-radius:var(--radius-sm);width:38px;height:38px;flex-shrink:0;
  align-items:center;justify-content:center;cursor:pointer;font-size:18px;
}
.menu-toggle:hover{background:rgba(255,255,255,.2)}
header h1{font-size:var(--text-lg);font-weight:700;letter-spacing:-.2px;color:#fff}
header .sub{font-size:var(--text-xs);color:var(--on-dark-muted);margin-top:4px;font-weight:400;line-height:var(--leading);max-width:520px}
header .header-actions{display:flex;gap:var(--space-2);flex-shrink:0}

.header-actions-min{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hdr-ico-btn{
  width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.1);color:#fff;cursor:pointer;font-size:15px;
  display:inline-flex;align-items:center;justify-content:center;padding:0;
  transition:transform 180ms ease, background 180ms ease;
}
.hdr-ico-btn:hover{background:rgba(255,255,255,.2);transform:scale(1.06)}
.hdr-ico-gold{background:rgba(33,150,243,.35);border-color:rgba(144,202,249,.5)}


/* ============ Layout / drawer ============ */
.layout{display:flex;min-height:calc(100vh - 66px);position:relative}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(11,33,54,.45);z-index:44}
.sidebar{
  width:var(--sidebar-w);flex-shrink:0;background:var(--surface);
  border-left:1px solid var(--border);padding:var(--space-3);overflow-y:auto;
}
.sidebar h2{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--text-faint);margin:var(--space-2) var(--space-1) var(--space-1)}
.main{flex:1;padding:var(--space-5) var(--space-6);overflow-y:auto;max-width:var(--container);min-width:0}

/* ============ Buttons ============ */
.btn{
  background:var(--navy);color:#fff;border:1px solid transparent;padding:8px 15px;
  border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font);font-weight:600;
  cursor:pointer;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);
  line-height:1.4;
}
.btn:hover{background:var(--navy-light)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.gold{background:linear-gradient(120deg,var(--gold),#f0bd6b);color:#3a2400;font-weight:700}
.btn.gold:hover{filter:brightness(1.05)}
.btn.outline{background:transparent;color:var(--navy);border-color:var(--border-strong)}
.btn.outline:hover{background:var(--surface-2);border-color:var(--navy)}
.btn.danger{background:var(--danger)}
.btn.danger:hover{background:#b8323f}
.btn.ok-btn{background:var(--ok)}
.btn.ok-btn:hover{background:#0b7550}
.btn.sm{padding:4px 10px;font-size:var(--text-2xs)}

/* ============ Sidebar student list ============ */
.student-item{
  padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:4px;
  font-size:var(--text-xs);display:flex;justify-content:space-between;align-items:center;
  border:1px solid transparent;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);
}
.student-item:hover{filter:brightness(.98)}
.student-item .meta{font-size:var(--text-2xs);opacity:.8}
.student-item.active .meta{opacity:.9}
.dim-stats{font-size:var(--text-2xs);color:var(--text-muted)}

.student-item.st-green{background:#e6f4ea;border-color:#a8d5b5;color:#173e26}
.student-item.st-green:hover{background:#d8eedf}
.student-item.st-green.active{background:#256b3c;border-color:#256b3c;color:#fff}
.student-item.st-blue{background:#e7f1f8;border-color:#a9c5db;color:#173250}
.student-item.st-blue:hover{background:#d9e9f3}
.student-item.st-blue.active{background:#255f86;border-color:#255f86;color:#fff}
.student-item.st-purple{background:#f1eef8;border-color:#c9bfd9;color:#332a4a}
.student-item.st-purple:hover{background:#e8e3f3}
.student-item.st-purple.active{background:#5b4c82;border-color:#5b4c82;color:#fff}
.student-item.st-orange{background:#f8efe4;border-color:#e0c49a;color:#4a3512}
.student-item.st-orange:hover{background:#f3e5d4}
.student-item.st-orange.active{background:#966a2b;border-color:#966a2b;color:#fff}
.student-item.st-red{background:#f7eaea;border-color:#e0b4b4;color:#4a1e1e}
.student-item.st-red:hover{background:#f0dede}
.student-item.st-red.active{background:#8f3535;border-color:#8f3535;color:#fff}

/* ============ Cards / sections ============ */
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:16px 18px;margin-bottom:var(--space-4);box-shadow:var(--shadow-sm);
}
.card h2{font-size:var(--text-md);color:var(--navy);margin:0 0 var(--space-3);
  border-bottom:2px solid var(--gold);padding-bottom:var(--space-2)}
.card h3{font-size:var(--text-sm);color:var(--navy-light);margin:var(--space-3) 0 var(--space-2)}
.small-note{font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-1);line-height:var(--leading)}
.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:var(--text-sm)}

/* ============ Tabs ============ */
.tabs{display:flex;gap:2px;margin-bottom:var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap}
.tab{
  padding:9px 14px;cursor:pointer;font-size:var(--text-xs);color:var(--text-muted);
  border-bottom:3px solid transparent;font-weight:600;transition:color var(--dur-fast) var(--ease);
  border-radius:var(--radius-xs) var(--radius-xs) 0 0;
}
.tab:hover{color:var(--navy);background:var(--surface-2)}
.tab.active{color:var(--teal);border-bottom-color:var(--teal)}

/* ============ Coach hub ============ */
.coach-hub-wrap{margin:0 0 var(--space-4);position:relative}
.coach-hub{
  display:flex;align-items:center;gap:var(--space-4);padding:16px 20px;border-radius:var(--radius-lg);
  cursor:pointer;border:1.5px solid rgba(144,202,249,.4);
  background:radial-gradient(ellipse 80% 120% at 10% 50%,rgba(144,202,249,.18),transparent 55%),
             radial-gradient(ellipse 60% 100% at 90% 40%,rgba(33,150,243,.16),transparent 50%),
             linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 55%,var(--primary-500) 130%);
  color:#fff;box-shadow:var(--shadow-md),0 0 0 1px rgba(255,255,255,.06) inset;
  transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease);
  position:relative;overflow:hidden;
}
.coach-hub::before{content:"🧠";position:absolute;font-size:72px;opacity:.08;left:-8px;top:-12px;transform:rotate(-15deg);pointer-events:none}
.coach-hub::after{content:"🧠";position:absolute;font-size:48px;opacity:.07;right:12px;bottom:-10px;transform:rotate(20deg);pointer-events:none}
.coach-hub:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 24px rgba(144,202,249,.3)}
.coach-hub.active{border-color:var(--primary-200);box-shadow:0 10px 36px rgba(33,150,243,.3),0 0 0 2px rgba(144,202,249,.45)}
.coach-hub-icon{
  width:52px;height:52px;border-radius:var(--radius-md);
  background:linear-gradient(145deg,rgba(144,202,249,.95),rgba(33,150,243,.9));
  display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;
  box-shadow:0 4px 14px rgba(33,150,243,.4);animation:coachPulse 3.2s ease-in-out infinite;
}
@media (prefers-reduced-motion:reduce){.coach-hub-icon{animation:none}}
@keyframes coachPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.coach-hub-body{flex:1;min-width:0;position:relative;z-index:1}
.coach-hub-title{font-weight:800;font-size:var(--text-lg);letter-spacing:-.2px;display:flex;align-items:center;gap:var(--space-2)}
.coach-hub-title span.brain-mini{font-size:var(--text-sm);opacity:.9}
.coach-hub-sub{font-size:var(--text-xs);opacity:.85;margin-top:3px;line-height:var(--leading-tight)}
.coach-hub-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}
.coach-hub-chip{font-size:var(--text-2xs);padding:2px 9px;border-radius:var(--radius-pill);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.94)}
.coach-hub-arrow{font-size:22px;opacity:.75;position:relative;z-index:1;transition:transform var(--dur-fast) var(--ease)}
.coach-hub:hover .coach-hub-arrow{transform:translateX(-4px);opacity:1}
.coach-hub.active .coach-hub-arrow{color:var(--gold);opacity:1}

/* ============ Tables ============ */
table{
  width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-xs);
  border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--surface);box-shadow:var(--shadow-sm);
}
th{background:var(--primary-900);color:#fff;padding:11px 10px;text-align:center;font-weight:600;border:none;font-family:var(--font-display)}
td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:center}
tr:last-child td{border-bottom:none}
tr:nth-child(even) td{background:var(--surface-2)}
tr:hover td{background:var(--teal-soft)}
td.subj-label,th.subj-label{text-align:right;font-weight:700}

.table-wrap{overflow-x:auto;border-radius:var(--radius-md);margin:var(--space-2) 0}
table.data-table{font-size:var(--text-xs)}

input.grid-input,select.grid-select{
  width:72px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-xs);
  text-align:center;font-size:var(--text-xs);font-family:inherit;background:#fff;
}
select.grid-select{width:80px}
select.form-select,input.form-select{
  padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:var(--text-sm);font-family:inherit;background:#fff;width:100%;
  transition:border-color var(--dur-fast) var(--ease);
}
select.form-select:hover,input.form-select:hover{border-color:var(--border-strong)}
input.grid-input:focus-visible,select.grid-select:focus-visible,
select.form-select:focus-visible,input.form-select:focus-visible{
  border-color:var(--teal);
}

/* ============ Forms ============ */
.exam-builder{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:var(--space-4)}
.exam-builder .row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin-bottom:var(--space-2)}
.exam-builder .field{min-width:140px;flex:1}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-2)}
.field label{font-size:var(--text-2xs);color:var(--text-muted);font-weight:600}
.field input,.field select{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:inherit;width:100%;background:#fff}
.field input:focus-visible,.field select:focus-visible{border-color:var(--teal)}
.field.checkbox{flex-direction:row;align-items:center;gap:var(--space-2)}
.field.checkbox input[type="checkbox"]{width:16px;height:16px;min-width:16px;flex-shrink:0;padding:0;border:1px solid var(--border);background:#fff;accent-color:var(--teal);margin:0}
.field.checkbox label{flex:1}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2) var(--space-3)}
@media(max-width:900px){.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}}
.daterange{display:flex;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4);flex-wrap:wrap}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
@media(max-width:700px){.grid-2{grid-template-columns:1fr}}

/* ============ Findings ============ */
.finding{
  border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 13px;margin-bottom:var(--space-2);
  font-size:var(--text-xs);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);
  flex-wrap:wrap;background:var(--surface);
}
.finding .txt b{color:var(--navy)}
.finding .txt .sig{font-size:var(--text-2xs);color:var(--text-muted);display:block;margin-top:2px}
.finding .actions{display:flex;gap:var(--space-1);flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.finding.positive{border-color:var(--ok);background:var(--ok-soft)}
.finding.confirmed{opacity:.65}
.finding.rejected{opacity:.45;text-decoration:line-through}
.finding.meta-finding{border-color:var(--violet);background:#f5f3ff}

.finding-card{
  border:1px solid var(--border);border-right:4px solid var(--border-strong);border-radius:var(--radius-md);
  padding:12px 14px;background:var(--surface);box-shadow:var(--shadow-sm);
}
.finding-title{font-weight:700;color:var(--navy);font-size:var(--text-sm);margin-bottom:4px}
.finding-card.sev-1,.finding-card.sev1{border-right-color:#94a3b8}
.finding-card.sev-2,.finding-card.sev2{border-right-color:#64748b}
.finding-card.sev-3,.finding-card.sev3{border-right-color:var(--warn)}
.finding-card.sev-4,.finding-card.sev4{border-right-color:var(--danger)}
.finding-card.sev-5,.finding-card.sev5{border-right-color:#7f1d1d}

.finding-detail{
  margin-top:var(--space-3);padding:14px 16px;background:linear-gradient(180deg,#f7fbff,#ffffff);
  border:1px solid var(--border-strong);border-radius:var(--radius-md);
  font-size:var(--text-xs);color:var(--text);display:none;width:100%;
  box-shadow:0 4px 16px rgba(13,71,161,.06);
}
.finding-detail.open{display:block}
.finding-detail .evidence-box{margin-bottom:8px}
.finding-detail table{width:100%}
.finding-detail table{font-size:var(--text-2xs);margin-top:var(--space-1)}
.finding-detail th{background:var(--navy-light)}

.msg{font-size:var(--text-xs);padding:10px 13px;border-radius:var(--radius-sm);margin-bottom:var(--space-3);line-height:var(--leading)}
.msg.info{background:var(--info-soft);color:var(--navy-light)}
.msg.warn{background:var(--warn-soft);color:#8a5a03}
.msg.lock{background:var(--danger-soft);color:var(--danger)}

/* Severity / status badges */
.sev{display:inline-block;font-size:var(--text-2xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-xs);margin-left:6px;color:#fff;vertical-align:middle}
.sev1{background:#94a3b8}.sev2{background:#64748b}.sev3{background:var(--warn)}.sev4{background:var(--danger)}.sev5{background:#7f1d1d}
.week-int{display:inline-block;font-size:var(--text-2xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-xs);margin-right:6px;background:#eef2ff;color:#3730a3;vertical-align:middle}
.ver-badge{font-size:var(--text-2xs);background:var(--gold);color:#3a2400;padding:2px 8px;border-radius:var(--radius-pill);font-weight:700;margin-right:6px}
.profile-chip{display:inline-block;font-size:var(--text-2xs);background:var(--surface-sunken);color:var(--navy);border:1px solid var(--border);border-radius:var(--radius-pill);padding:3px 10px;margin-left:4px}
.tag-prev{background:#e8eef5;color:#3a5a7a;padding:2px 7px;border-radius:var(--radius-xs);font-size:var(--text-2xs)}
.tag-last{background:#ffe8e8;color:#a03030;padding:2px 7px;border-radius:var(--radius-xs);font-size:var(--text-2xs)}

/* ============ Stat boxes / charts ============ */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2);margin:var(--space-3) 0}
.stat-box{background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-lg);padding:12px 10px;text-align:center;transition:background var(--dur-fast) var(--ease)}
.stat-box:hover{background:var(--primary-50)}
.stat-box .num{font-size:1.15rem;font-weight:700;color:var(--navy)}
.stat-box .lbl{font-size:var(--text-2xs);color:var(--text-muted)}

.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;margin:var(--space-3) 0}
.chart-legend{display:flex;gap:var(--space-3);font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-1);flex-wrap:wrap}
.chart-legend span{display:flex;align-items:center;gap:4px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin:var(--space-3) 0 var(--space-4);box-shadow:var(--shadow-sm)}
.chart-panel .chart-title{font-size:var(--text-xs);font-weight:700;color:var(--navy);margin:0 0 var(--space-2)}
.chart-panel svg{display:block;width:100%;height:auto}
.chart-axis{font-size:9px;fill:var(--text-muted)}
.chart-grid{stroke:#e8eef3;stroke-width:1}
.charts-stack{display:flex;flex-direction:column;gap:var(--space-1)}
.subj-chart-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}
@media (min-width:900px){.subj-chart-grid{grid-template-columns:1fr 1fr}}
.sev-timeline-wrap{overflow-x:auto}
.exam-annot-note{font-size:11px;fill:var(--text-muted)}

/* ---- Modern interactive charts (v6 upgrade) ---- */
.chart-panel{position:relative;transition:box-shadow .2s ease,border-color .2s ease}
.chart-panel:hover{box-shadow:0 8px 28px rgba(13,71,161,.12);border-color:var(--primary-200)}
.chart-panel svg{overflow:visible}
.kc-chart-point{cursor:pointer;transition:r .15s ease,filter .15s ease;outline:none;transform-box:fill-box;transform-origin:center}
.kc-chart-point:hover,.kc-chart-point.kc-active{filter:drop-shadow(0 0 5px rgba(33,150,243,.55))}
.kc-chart-area{opacity:.22;pointer-events:none}
.kc-chart-line{stroke-linecap:round;stroke-linejoin:round}
.kc-tooltip{
  position:fixed;z-index:99999;pointer-events:none;
  background:linear-gradient(165deg,#0d47a1 0%,#1565c0 100%);
  color:#f3f9ff;font-family:var(--font);font-size:12.5px;font-weight:600;
  padding:8px 12px;border-radius:10px;
  box-shadow:0 8px 28px rgba(13,71,161,.35),0 0 0 1px rgba(255,255,255,.12);
  max-width:240px;line-height:1.45;direction:rtl;text-align:right;
  opacity:0;transform:translateY(6px) scale(.96);
  transition:opacity .12s ease,transform .12s ease;
  white-space:pre-line;
}
.kc-tooltip.kc-show{opacity:1;transform:translateY(0) scale(1)}
.kc-tooltip .kc-tt-val{font-size:15px;font-weight:800;display:block;margin-bottom:2px;letter-spacing:-.01em}
.kc-tooltip .kc-tt-desc{font-size:11px;font-weight:500;opacity:.88}
.kc-tooltip::after{
  content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#0d47a1;
}

/* ============ Add / edit panel ============ */
.add-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;margin-bottom:var(--space-4);box-shadow:var(--shadow-md)}
.add-panel h3{margin:0 0 var(--space-3);font-size:var(--text-md);color:var(--navy);border-bottom:2px solid var(--gold);padding-bottom:var(--space-2)}
.add-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
@media(max-width:700px){.add-grid{grid-template-columns:1fr}}
.add-grid .field.full{grid-column:1 / -1}
.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-2);margin-top:var(--space-2)}
.skill-grid .field label{font-size:var(--text-2xs)}
.add-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap}

.skill-align-card{border:1px solid #c5e0d5;background:#f7fbf9;border-radius:var(--radius-md);padding:11px 13px;margin-bottom:var(--space-2)}
.skill-align-card .sk-name{font-weight:700;color:var(--navy);font-size:var(--text-sm)}
.skill-align-card .sk-level{font-size:var(--text-2xs);color:var(--text-muted)}
.skill-align-card .sk-text{font-size:var(--text-xs);margin-top:var(--space-1);line-height:var(--leading)}
.skill-align-card .sk-link{font-size:var(--text-2xs);color:#0d6b52;margin-top:4px}

.dna-tone{margin-top:var(--space-3);padding:11px 13px;background:linear-gradient(120deg,#f5f3ff,#eef7f5);border:1px solid #c4b5fd;border-radius:var(--radius-md)}
.dna-tone-label{font-size:var(--text-xs);font-weight:700;color:#5b21b6;margin-bottom:var(--space-1)}
.dna-tone-text{font-size:var(--text-sm);line-height:var(--leading-loose);color:var(--text)}

/* ---- Student-friendly composite (angle5) ---- */
.stu-comp-hero{
  background:linear-gradient(135deg,#0d47a1 0%,#1976d2 55%,#42a5f5 100%);
  color:#f3f9ff;border-radius:16px;padding:18px 18px 16px;margin-bottom:14px;
  box-shadow:0 10px 28px rgba(13,71,161,.22);
}
.stu-comp-hero h2{margin:0 0 6px;font-size:1.15rem;color:#fff;font-weight:800}
.stu-comp-hero p{margin:0;font-size:13px;opacity:.92;line-height:1.65;color:#e3f2fd}
.stu-comp-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.stu-comp-stat{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
  border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;color:#fff;
}
.stu-focus-card{
  background:#fff;border:1px solid #d7e7f7;border-radius:14px;padding:14px 14px 12px;
  margin:0 0 12px;box-shadow:0 4px 16px rgba(13,71,161,.07);
  border-right:4px solid #2196f3;
}
.stu-focus-card.sev-hi{border-right-color:#ef4444;background:linear-gradient(90deg,#fff7f7,#fff)}
.stu-focus-card.sev-mid{border-right-color:#f59e0b}
.stu-focus-card.sev-ok{border-right-color:#22c55e;background:linear-gradient(90deg,#f0fdf4,#fff)}
.stu-focus-tag{
  display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;
  margin-bottom:8px;background:#e3f2fd;color:#0d47a1;
}
.stu-focus-card.sev-hi .stu-focus-tag{background:#fee2e2;color:#b91c1c}
.stu-focus-card.sev-mid .stu-focus-tag{background:#fef3c7;color:#b45309}
.stu-focus-card.sev-ok .stu-focus-tag{background:#dcfce7;color:#166534}
.stu-focus-title{font-size:15px;font-weight:800;color:#0f2338;margin:0 0 8px;line-height:1.45}
.stu-focus-row{margin:0 0 6px;font-size:13px;line-height:1.65;color:#334155}
.stu-focus-row b{color:#0d47a1}
.stu-focus-action{
  margin-top:10px;padding:10px 12px;border-radius:10px;
  background:linear-gradient(120deg,#e3f2fd,#f0f9ff);border:1px solid #90caf9;
  font-size:13px;font-weight:700;color:#0d47a1;line-height:1.55;
}
.stu-section-title{
  font-size:14px;font-weight:800;color:#0d47a1;margin:18px 0 8px;
  display:flex;align-items:center;gap:8px;
}
.stu-section-title span{font-size:18px}
.stu-empty-ok{
  background:#f0fdf4;border:1px solid #86efac;border-radius:12px;padding:14px;
  color:#166534;font-weight:700;font-size:13px;line-height:1.6;
}
.stu-more-wrap{margin-top:10px}
.stu-more-wrap summary{
  cursor:pointer;font-weight:700;font-size:13px;color:#0d47a1;
  padding:10px 12px;background:#e3f2fd;border-radius:10px;border:1px solid #90caf9;
  list-style:none;user-select:none;
}
.stu-more-wrap summary::-webkit-details-marker{display:none}
.stu-more-wrap[open] summary{margin-bottom:10px;border-radius:10px 10px 0 0}
.stu-mini-note{font-size:12px;color:#5c7591;margin:4px 0 10px;line-height:1.55}
body.role-student .finding .actions .ok-btn,
body.role-student .finding .actions .danger{display:none}
body.role-student .dna-tone-label{font-size:12px}
body.role-student .dna-tone-text{font-size:14px;font-weight:600}
.muted-tone{background:var(--surface-2);border-color:var(--border);color:var(--text-muted);font-size:var(--text-xs)}

.evidence-box{margin-top:var(--space-1)}
.ev-table{font-size:var(--text-xs)}
.cmp-note{background:var(--teal-soft);border-right:3px solid var(--teal);padding:9px 11px;margin:var(--space-2) 0;border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--text-sm);line-height:var(--leading)}

/* ============ Score compare / sparkline ============ */
.score-compare{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:var(--space-3) 0}
.score-pill{background:var(--info-soft);border:1px solid #c5d8f0;border-radius:var(--radius-md);padding:9px 13px;min-width:110px;text-align:center}
.score-pill.sc-down{background:var(--danger-soft);border-color:#f0b4b4}
.score-pill.sc-up{background:var(--ok-soft);border-color:#a8e0c0}
.score-pill .sc-label{display:block;font-size:var(--text-2xs);color:var(--text-muted)}
.score-pill .sc-date{display:block;font-size:var(--text-xs);margin:2px 0}
.score-pill .sc-val{display:block;font-size:1.25rem;font-weight:700;color:var(--navy)}
.score-arrow{font-size:22px;color:var(--text-muted)}
.score-pct{font-weight:700;font-size:var(--text-md);color:var(--navy)}

.row-down td{background:#fff5f5 !important}
.row-up td{background:#f0faf4 !important}
.row-prev td{background:var(--surface-2) !important}

.spark-wrap{margin-top:var(--space-3)}
.spark{display:flex;align-items:flex-end;gap:4px;height:56px;padding:4px 0}
.spark-bar{width:22px;background:#a8c5e0;border-radius:4px 4px 0 0;position:relative;min-height:4px;transition:height var(--dur-base) var(--ease)}
.spark-bar span{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--text-muted)}
.spark-bar.spark-down{background:var(--danger)}
.spark-bar.spark-up{background:var(--ok)}
.spark-bar.spark-prev{background:var(--violet)}
.spark-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}
.spark-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 13px}
.spark-card .sk-title{font-size:var(--text-xs);font-weight:700;color:var(--navy);margin-bottom:4px}
.spark-card .sk-meta{font-size:var(--text-2xs);color:var(--text-muted)}
.spark-badge{font-size:var(--text-2xs);font-weight:700;padding:1px 7px;border-radius:var(--radius-pill);margin-right:4px;vertical-align:middle}
.spark-badge.practice{background:#ede9fe;color:#6d28d9;border:1px solid #c4b5fd}
.spark-badge.test{background:#d1fae5;color:#047857;border:1px solid #6ee7b7}

/* ============ Matrix / heat tables ============ */
.matrix-wrap,.heat-table-wrap{overflow-x:auto;border-radius:var(--radius-md)}
.matrix-table{border-collapse:collapse;font-size:var(--text-2xs);width:100%;color:var(--text)}
.matrix-table th,.matrix-table td{border:1px solid var(--border-strong);padding:5px 6px;text-align:center;color:var(--text)}
.matrix-table th{background:var(--surface-2);position:sticky;top:0;font-weight:700}
.matrix-table th.row-h{text-align:right;white-space:nowrap;background:var(--surface);font-weight:700}
.matrix-table td{background:var(--surface)}
.matrix-cell{width:24px;height:24px;border-radius:10px;margin:auto;border:1px solid var(--border-strong);box-sizing:border-box;transition:transform var(--dur-fast) var(--ease)}
.matrix-cell.on:hover,.matrix-cell.weak:hover{transform:scale(1.12)}
.matrix-cell.on{background:#fecaca;border:2px solid var(--danger);color:#8f2530;font-weight:800;font-size:var(--text-xs);line-height:20px;text-align:center}
.matrix-cell.weak{background:#fef3c7;border:1.5px solid var(--warn)}
.matrix-cell.off{background:var(--surface-sunken);border:1px solid var(--border-strong)}
.matrix-cell.na-cell{background:#fafafa;border:1px dashed var(--border)}

.heat-table{border-collapse:collapse;font-size:var(--text-2xs);width:100%}
.heat-table th,.heat-table td{border:1px solid var(--border-strong);padding:4px;text-align:center;min-width:28px}
.heat-table thead th{background:var(--navy-dark);color:var(--on-dark);font-weight:700}
.heat-table th{background:#e2e8f0;font-weight:600;color:var(--text)}
.heat-table th.week-lab{text-align:right;white-space:nowrap;background:var(--navy-dark);color:var(--on-dark);min-width:90px;font-weight:700}
.heat-table tbody th.week-lab{background:#1e3a5f;color:var(--on-dark)}
.heat-cell{width:100%;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--text);font-weight:600}

.week-sev-row{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0 var(--space-3)}
.week-sev-card{flex:1;min-width:120px;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px;background:var(--surface)}
.week-sev-card .ws-title{font-size:var(--text-2xs);color:var(--text-muted)}
.week-sev-card .ws-sev{font-size:1.35rem;font-weight:800}

/* ============ Bullet / donut charts ============ */
.radar-wrap{max-width:420px;margin:0 auto}
.bullet-row{display:grid;grid-template-columns:100px 1fr 70px;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);font-size:var(--text-xs)}
.bullet-track{position:relative;height:16px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}
.bullet-plan{position:absolute;top:0;bottom:0;background:#94a3b8;opacity:.45;border-radius:var(--radius-pill)}
.bullet-actual{position:absolute;top:2px;bottom:2px;background:var(--navy);border-radius:var(--radius-xs)}
.bullet-actual.under{background:var(--danger)}
.bullet-actual.ok{background:var(--ok)}

.donut-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 13px}
.donut-wrap{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
.donut-legend{flex:1;min-width:120px;font-size:var(--text-2xs)}
.donut-leg{margin:3px 0;display:flex;align-items:center;gap:6px}
.donut-sw{width:10px;height:10px;border-radius:2px;display:inline-block;flex-shrink:0}
.donut-leg .muted{color:var(--text-muted);font-size:var(--text-2xs)}
.donut-center{font-size:1rem;font-weight:700;fill:var(--navy)}
.donut-center-sub{font-size:9px;fill:var(--text-muted)}

.cmp-bars{margin-top:var(--space-1)}
.cmp-bar-row{display:grid;grid-template-columns:70px 1fr 58px;gap:6px;align-items:center;margin:4px 0;font-size:var(--text-2xs)}
.cmp-bar-lab{text-align:right;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-bar-track{height:8px;background:var(--surface-sunken);border-radius:4px;overflow:hidden}
.cmp-bar-fill{height:100%;background:var(--navy);border-radius:4px}
.cmp-bar-val{font-size:var(--text-2xs);color:var(--text-muted);text-align:left}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-2)}
@media(max-width:800px){.compare-grid{grid-template-columns:1fr}}
.compare-metric-bar{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}
.compare-metric-bar button.active{background:var(--navy);color:#fff}

/* ============ Progress / navigation aids ============ */
.wp-progress-track{height:6px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}
.wp-progress-fill{height:100%;background:linear-gradient(90deg,var(--teal),#0c6b62);border-radius:var(--radius-pill);transition:width var(--dur-slow) var(--ease)}
.wp-nav-bar{position:sticky;bottom:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border);z-index:5}
.wp-steps{display:flex;gap:var(--space-2);flex-wrap:wrap}

.weak-ch-list{display:flex;flex-direction:column;gap:var(--space-2)}
.weak-ch-card{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:9px 11px;background:var(--surface);border:1px solid #fecaca;border-radius:var(--radius-sm)}
.exam-ch-row input,.exam-ch-row select{font-size:var(--text-xs)}
.companion-mode-toggles{display:flex;gap:var(--space-3);justify-content:center;margin-bottom:var(--space-4);flex-wrap:wrap}

/* ============ Angle-5 timeline ============ */
.angle5-toc{display:flex;flex-wrap:wrap;gap:6px;margin:var(--space-2) 0 var(--space-3)}
.angle5-toc-chip{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;padding:4px 11px;border-radius:var(--radius-pill);font-size:var(--text-2xs)}
.angle5-toc-chip b{margin-right:4px}
.angle5-section{margin-top:var(--space-3)}
.angle5-sub{margin-top:var(--space-2)}
.angle5-badge{display:inline-block;font-size:var(--text-2xs);font-weight:700;padding:2px 9px;border-radius:var(--radius-xs);margin-bottom:var(--space-2)}
.angle5-badge.cur{background:#dcfce7;color:#166534;border:1px solid #86efac}
.angle5-hist{margin-top:var(--space-3);border:1px dashed #c4b5fd;border-radius:var(--radius-sm);padding:9px 11px;background:#faf5ff}
.angle5-hist summary{cursor:pointer;color:#5b21b6;font-weight:700;font-size:var(--text-xs);user-select:none}
.angle5-hist summary:focus-visible{outline:2px solid #5b21b6;outline-offset:2px}
.angle5-hist[open] summary{margin-bottom:var(--space-2)}

/* ============ Modal ============ */
#dateConflictOverlay{display:none;position:fixed;inset:0;background:rgba(11,33,54,.5);z-index:9999;align-items:center;justify-content:center;padding:var(--space-4)}
.conflict-modal{background:var(--surface);border-radius:var(--radius-lg);padding:24px 22px;max-width:420px;width:100%;box-shadow:var(--shadow-lg);direction:rtl;text-align:right}

.tog-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border:1px solid #c5d8f0;border-radius:var(--radius-pill);background:#f5f9fc;font-size:var(--text-sm);cursor:pointer;user-select:none;transition:background var(--dur-fast) var(--ease)}
.tog-chip.on{background:linear-gradient(120deg,#e8f7f2,#eef4ff);border-color:var(--teal);font-weight:600}
.tog-chip input{accent-color:var(--teal)}

.ea-subject-card{border:1px solid #d5e6f5;border-radius:var(--radius-lg);padding:14px 16px;background:#fbfdff}
.ea-subject-card h4{color:var(--navy)}
.ea-subject-card h5{color:#3a5a7a;font-size:var(--text-sm);margin-bottom:4px}

/* ============ Weekly plan iframe ============ */
.weekly-wrap{display:flex;flex-direction:column;gap:var(--space-3);min-height:70vh}
.weekly-bar{
  display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;
}
.weekly-bar .wb-title,.wb-title{font-weight:700;color:var(--text);font-size:var(--text-md)}
.weekly-bar .wb-meta,.wb-meta{font-size:var(--text-xs);color:var(--text-muted)}
.weekly-frame-box{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);min-height:70vh}
.weekly-frame-box iframe{width:100%;min-height:75vh;border:0;background:#f7f8fa;display:block}

.viz-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin:var(--space-3) 0}
@media (min-width:900px){.viz-grid.two{grid-template-columns:1fr 1fr}}

/* ============ Responsive ============ */
@media (max-width:900px){
  .menu-toggle{display:flex}
  .sidebar{
    position:fixed;inset-inline-start:0;top:0;bottom:0;z-index:45;max-width:82vw;
    box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease);
  }
  html[dir="rtl"] .sidebar{transform:translateX(100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-backdrop.show{display:block}
  .main{padding:var(--space-4)}
  .add-grid,.form-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  header{padding:12px 14px}
  header h1{font-size:var(--text-md)}
  header .sub{display:none}
  .main{padding:var(--space-3)}
  .coach-hub{flex-wrap:wrap}
}

/* ============ Reduced motion ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* ============ Print (weekly plan popup keeps its own inline styles) ============ */
@media print{
  header,.sidebar,.menu-toggle,.tabs,.add-actions{display:none !important}
  .main{max-width:none;padding:0}
}


/* ---- V4.1 chapter-sync + blue exam analysis tables ---- */
.exam-analysis-section table,
.ea-subject-card table,
.exam-history-blue table,
table.exam-blue {
  border-color: #90caf9 !important;
}
.exam-analysis-section table th,
.ea-subject-card table th,
.exam-history-blue table th,
table.exam-blue th {
  background: linear-gradient(120deg, #0d47a1, #1976d2) !important;
  color: #fff !important;
}
.exam-analysis-section table tr:nth-child(even) td,
.ea-subject-card table tr:nth-child(even) td,
.exam-history-blue table tr:nth-child(even) td,
table.exam-blue tr:nth-child(even) td {
  background: #e3f2fd !important;
}
.exam-analysis-section table tr:hover td,
.ea-subject-card table tr:hover td,
.exam-history-blue table tr:hover td,
table.exam-blue tr:hover td {
  background: #bbdefb !important;
}
.chapter-trend-card {
  border: 1px solid #90caf9;
  border-right: 4px solid #1976d2;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
  background: #f5faff;
}
.chapter-trend-card .ct-title { font-weight: 700; color: #0d47a1; margin-bottom: 4px; }
.chapter-trend-card .ct-meta { font-size: 12px; color: #5c7591; }
.chapter-trend-up { color: #0f8f5f; font-weight: 700; }
.chapter-trend-down { color: #d43f52; font-weight: 700; }
.chapter-trend-flat { color: #5c7591; font-weight: 700; }


/* ========== V4.1.4 Unified UI ========== */
.ui-hero{padding:0;overflow:hidden;border:1px solid var(--border-strong);box-shadow:0 8px 28px rgba(13,71,161,.10);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}
.ui-hero-head{background:linear-gradient(120deg,var(--primary-950) 0%,var(--primary-900) 45%,var(--primary-500) 130%);color:#fff;padding:16px 18px;position:relative}
.ui-hero-head .ui-hero-emoji{position:absolute;left:12px;top:6px;font-size:42px;opacity:.12;pointer-events:none}
.ui-hero-title{font-weight:800;font-size:1.05rem;letter-spacing:-.01em}
.ui-hero-sub{font-size:12px;opacity:.9;margin-top:5px;line-height:1.65}
.ui-hero-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ui-chip{font-size:11px;padding:3px 10px;border-radius:999px;font-weight:600;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);color:#fff}
.ui-hero-body{padding:16px 18px 18px;background:linear-gradient(180deg,#f7fbff 0%,#ffffff 45%)}
.ui-section-card{padding:0;overflow:hidden;border:1px solid var(--border);box-shadow:0 4px 18px rgba(13,71,161,.07);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}
.ui-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:14px 16px;background:linear-gradient(90deg,#e3f2fd,#f5f9ff);border-bottom:1px solid var(--border)}
.ui-section-head .ui-ico{width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,#2196f3,#0d47a1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 3px 10px rgba(33,150,243,.35);flex-shrink:0}
.ui-section-title{font-weight:800;color:var(--primary-900);font-size:15px}
.ui-section-body{padding:14px 16px 16px}
.card{border-radius:var(--radius-lg);box-shadow:0 4px 16px rgba(13,71,161,.06)}
.field label{font-size:11px;font-weight:700;color:#5c7591}
.form-select,select.form-select,input.form-select,.field input,.field select,.inp{border-radius:10px !important;border-color:#b7d6f2 !important}
.btn{border-radius:10px;font-weight:700}
.btn.gold{box-shadow:0 4px 14px rgba(33,150,243,.28);color:#fff !important;background:linear-gradient(120deg,#0d47a1,#2196f3) !important}
.btn.outline{border-color:#90caf9;color:#0d47a1}
.exam-builder{padding:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 8px 28px rgba(13,71,161,.08)}
.wp-progress-track{height:6px;border-radius:99px;background:#e3f2fd;overflow:hidden}
.wp-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#0d47a1,#2196f3,#90caf9)}
.wp-nav-bar{background:linear-gradient(180deg,#f7fbff,#fff);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}
.finding{border-radius:12px;box-shadow:0 2px 10px rgba(13,71,161,.05)}
.finding:hover{box-shadow:0 6px 18px rgba(13,71,161,.1);border-color:#90caf9}
.tab.active{background:linear-gradient(180deg,#e3f2fd,#fff);border:1px solid #b7d6f2;border-bottom-color:#fff;color:var(--primary-900);font-weight:800}
.student-item{border-radius:10px}
.stat-box{border-radius:12px;border:1px solid #d7e7f7;background:linear-gradient(180deg,#f7fbff,#fff)}
.empty-state{background:linear-gradient(180deg,#f7fbff,#fff);border:1px dashed #b7d6f2;border-radius:16px}
.mp-plan-card{border:1px solid #d7e7f7;border-radius:14px;padding:14px 16px;background:linear-gradient(135deg,#fff,#f7fbff);box-shadow:0 3px 12px rgba(13,71,161,.06);margin-bottom:10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.mp-plan-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(13,71,161,.12)}
table.exam-blue th{background:linear-gradient(120deg,#0d47a1,#1565c0)}
.msg.info{border-radius:10px;border-color:#90caf9;background:#e3f2fd}
.coach-hub{border-radius:18px}


.profile-chip{font-size:11px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);color:#fff;margin-left:4px;display:inline-block}
.angle5-section{padding:0!important;overflow:hidden;border-radius:var(--radius-lg)!important;border:1px solid var(--border)!important;box-shadow:0 4px 16px rgba(13,71,161,.06)}
.angle5-section > h3{margin:0!important;padding:14px 16px;background:linear-gradient(90deg,#e3f2fd,#f5f9ff);border-bottom:1px solid var(--border);font-size:15px;color:var(--primary-900)}
.angle5-sub{padding:12px 14px}
.angle5-toc{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.angle5-toc-chip{font-size:11px;font-weight:700;padding:5px 12px;border-radius:999px;background:#e3f2fd;border:1px solid #90caf9;color:#0d47a1}
.skill-align-card{border:1px solid #c5e0d5;border-radius:12px;padding:10px 12px;margin-bottom:8px;background:#f7fbf9}
.sidebar{box-shadow:-4px 0 20px rgba(13,71,161,.04)}
.add-panel{max-width:720px}

/* ===== Auth + roles V5.4 ===== */
#authGate{position:fixed;inset:0;z-index:10000;background:radial-gradient(1000px 520px at 8% -8%,rgba(33,150,243,.12),transparent 55%),radial-gradient(760px 420px at 100% -4%,rgba(144,202,249,.18),transparent 52%),#f5f9ff;overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px;direction:rtl;font-family:var(--font)}
.auth-shell{width:100%;max-width:440px;margin:auto}
.auth-shell.auth-shell-wide{max-width:640px}
/* لینک کوچک و کم‌رنگ ورود پنل مدیریت — عمداً توی چشم نیست، فقط گوشه‌ی صفحه‌ی ورود */
.auth-admin-corner-link{
  position:absolute;bottom:14px;left:14px;
  font-size:11.5px;color:#9db3c9;text-decoration:none;
  opacity:.55;letter-spacing:.2px;
  padding:4px 6px;border-radius:6px;
  transition:opacity 160ms,color 160ms,background 160ms;
}
.auth-admin-corner-link:hover,.auth-admin-corner-link:focus-visible{opacity:1;color:#5c7591;background:rgba(13,71,161,.06)}
@media (max-width:600px){
  .auth-admin-corner-link{bottom:8px;left:8px;font-size:11px}
}
.auth-shell-wide .add-grid{margin-bottom:4px}
.auth-shell-wide .add-grid .field{margin-bottom:0}
/* موبایل: هدف لمسی بزرگ‌تر + جلوگیری از زوم ناخواسته روی input */
@media (max-width:600px){
  .auth-card{margin:12px;padding:16px}
  .auth-shell .btn,.auth-shell button.btn{min-height:48px;font-size:16px}
  .auth-shell .form-select, .auth-shell input.form-select{min-height:48px;font-size:16px}
  .btn{min-height:44px}
  #appRoot{padding-bottom:env(safe-area-inset-bottom,0)}
}
html{-webkit-text-size-adjust:100%}
button,a,.btn{-webkit-tap-highlight-color:transparent}
.auth-card{background:#fff;border:1px solid #d7e7f7;border-radius:18px;box-shadow:0 14px 38px rgba(13,71,161,.14);overflow:hidden}
.auth-head{background:linear-gradient(120deg,#0a3a82 0%,#0d47a1 45%,#2196f3 130%);color:#fff;padding:22px 22px 18px;text-align:center}
.auth-head h1{color:#fff;font-size:1.15rem;margin:0 0 6px}
.auth-head p{margin:0;opacity:.9;font-size:12px;line-height:1.6}
.auth-body{padding:20px 22px 22px}
.auth-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.auth-role-btn{border:1.5px solid #b7d6f2;background:#f7fbff;border-radius:14px;padding:16px 12px;cursor:pointer;text-align:center;transition:.15s ease;font-family:inherit}
.auth-role-btn:hover{border-color:#2196f3;transform:translateY(-2px);box-shadow:0 8px 20px rgba(33,150,243,.15)}
.auth-role-btn .ico{font-size:28px;display:block;margin-bottom:6px}
.auth-role-btn .ttl{font-weight:800;color:#0d47a1;font-size:14px}
.auth-role-btn .sub{font-size:11px;color:#5c7591;margin-top:4px}
.auth-back{background:none;border:none;color:#2464a3;cursor:pointer;font-size:12px;font-family:inherit;margin-bottom:10px}
.auth-msg{font-size:12px;padding:10px 12px;border-radius:10px;margin:10px 0;display:none}
.auth-msg.show{display:block}
.auth-msg.err{background:#fbeaec;color:#d43f52}
.auth-msg.ok{background:#e7f7ef;color:#0f8f5f}
.auth-msg.info{background:#e3f2fd;color:#0d47a1}
.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
.auth-links button{background:none;border:none;color:#2464a3;cursor:pointer;font-size:12px;font-family:inherit;text-decoration:underline}
.captcha-row{display:flex;gap:8px;align-items:end}
.captcha-box{background:#e3f2fd;border:1px dashed #90caf9;border-radius:10px;padding:8px 12px;font-weight:800;letter-spacing:.12em;color:#0d47a1;min-width:88px;text-align:center;user-select:none;cursor:pointer}
body.role-student .sidebar,body.role-student .sidebar-backdrop,body.role-student .menu-toggle{display:none !important}
body.role-student .layout{display:block}
body.role-student .main{max-width:960px;margin:0 auto}
body.role-student .header-actions .btn-consultant-only{display:none !important}
body:not(.role-student) .header-actions .btn-student-data{display:none !important}
body.role-parent .header-actions .btn-student-data{display:none !important}
body.role-student .header-actions .hdr-more-wrap{display:none !important}
body:not(.role-student) .header-actions .hdr-notif-wrap{display:none !important}
body:not(.role-student) .header-actions .hdr-points-wrap{display:none !important}
body.role-managed .coach-hub-wrap{display:none !important}
body.role-admin .coach-hub-wrap,body.role-admin /* main nav tabs replaced by hubs; analysis angles use angle-hub */
body.role-admin .sidebar h2,body.role-admin #studentList{opacity:.85}
#appRoot.hidden-app{display:none !important}
.user-chip{font-size:11px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);color:#fff}







.data-hub-ico{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  background:linear-gradient(145deg,rgba(33,150,243,.12),rgba(13,71,161,.08));
  color:var(--navy);
  transition:transform 220ms cubic-bezier(.34,1.3,.64,1), background 200ms ease, color 200ms ease, box-shadow 220ms ease;
}
.data-hub-ico .dh-svg{width:22px;height:22px;display:block}
.data-hub-box:hover .data-hub-ico{
  transform:scale(1.12) rotate(-4deg);
  background:linear-gradient(145deg,rgba(33,150,243,.22),rgba(13,71,161,.14));
  box-shadow:0 4px 14px rgba(33,150,243,.2);
}
.data-hub-box.active .data-hub-ico{
  transform:scale(1.1);
  background:linear-gradient(145deg,#2196f3,#0d47a1);
  color:#fff;
  box-shadow:0 0 16px rgba(33,150,243,.45);
}
html.dark .data-hub-ico{
  background:linear-gradient(145deg,rgba(118,146,255,.18),rgba(27,44,193,.2));
  color:#abd2fa;
}
html.dark .data-hub-box:hover .data-hub-ico{
  background:linear-gradient(145deg,rgba(118,146,255,.28),rgba(27,44,193,.3));
  box-shadow:0 4px 14px rgba(118,146,255,.25);
}
html.dark .data-hub-box.active .data-hub-ico{
  background:linear-gradient(145deg,#7692ff,#1b2cc1);
  color:#e8f0ff;
  box-shadow:0 0 18px rgba(118,146,255,.5);
}



.angle-hub-wrap{margin:12px 0 14px}
.angle-hub-wrap .data-hub-title{font-size:14px}



.wp-overflow-table th{
  background:#1565c0 !important;color:#fff !important;
  padding:10px 12px !important;border:1px solid #1976d2 !important;
  text-align:center !important;font-weight:700;
}
.wp-overflow-table td{
  padding:9px 12px !important;border:1px solid #e2e8f0 !important;
  text-align:center !important;background:#fff;
}
.wp-overflow-table tr:nth-child(even) td{background:#f8fafc}
html.dark .wp-overflow-table th{background:#1b2cc1 !important;border-color:#7692ff !important}
html.dark .wp-overflow-table td{background:var(--surface);border-color:var(--border) !important;color:var(--text)}
html.dark .wp-overflow-table tr:nth-child(even) td{background:var(--surface-2)}

/* Luxury weekly plan document */
.wp-plan-shell{padding:0 !important;overflow:hidden}
.wp-plan-shell-head{
  padding:14px 18px;
  background:linear-gradient(120deg,rgba(13,71,161,.08),rgba(33,150,243,.06));
  border-bottom:1px solid var(--border);
}
.wp-plan-shell-title{font-weight:800;color:var(--navy);font-size:15px}
.wp-plan-shell-sub{font-size:11.5px;color:var(--text-muted);margin-top:2px}
.wp-plan-doc{padding:14px 16px 18px;display:flex;flex-direction:column;gap:12px}
.wp-day-card{
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  transition:transform 200ms ease, box-shadow 200ms ease;
}
.wp-day-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.wp-day-head{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;
  background:linear-gradient(90deg,var(--navy,#0d47a1),var(--primary-500,#2196f3));
  color:#fff;
}
.wp-day-title{font-weight:800;font-size:13.5px}
.wp-day-body{padding:12px 14px 14px}
.wp-section-title{
  font-size:14.5px;font-weight:800;color:var(--navy);
  margin:4px 0 8px;padding-bottom:6px;border-bottom:2px solid rgba(33,150,243,.35);
}
.wp-subhead{font-size:12.5px;font-weight:700;color:var(--primary-500,#1565c0);margin:8px 0 4px}
.wp-line{font-size:13px;margin:2px 0;line-height:1.85;color:var(--text)}
.wp-item{
  display:flex;gap:8px;align-items:flex-start;
  font-size:13px;margin:4px 0;padding:7px 10px;
  background:var(--surface-2,#f7fbff);border-radius:10px;border:1px solid var(--border);
}
.wp-bullet{width:7px;height:7px;margin-top:7px;border-radius:50%;background:var(--primary-500,#2196f3);flex-shrink:0}
.wp-kv{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;margin:4px 0;padding:7px 10px;background:var(--surface-2);border-radius:10px}
.wp-k{font-weight:700;color:var(--navy)}
.wp-v{color:var(--text)}
.wp-alert{background:var(--warn-soft,#fff7ed);color:#9a3412;border:1px solid #fed7aa;padding:8px 12px;border-radius:10px;font-size:12.5px;margin:6px 0}
.wp-gap{height:4px}
html.dark .wp-plan-shell-head{background:linear-gradient(120deg,rgba(27,44,193,.25),rgba(9,21,64,.4))}
html.dark .wp-day-head{background:linear-gradient(90deg,#091540,#1b2cc1)}
html.dark .wp-item,html.dark .wp-kv{background:var(--surface-2);border-color:var(--border)}
html.dark .wp-section-title{border-bottom-color:rgba(118,146,255,.4)}

/* Dual hub layout: coaching + data entry as peer hubs */
.dual-hub-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 0 14px;
}
@media (max-width:820px){
  .dual-hub-row{grid-template-columns:1fr}
}
.dual-hub-item{min-width:0}
.data-hub-banner{
  display:flex;align-items:center;gap:var(--space-4);padding:16px 20px;border-radius:var(--radius-lg);
  cursor:pointer;border:1.5px solid rgba(144,202,249,.4);
  background:radial-gradient(ellipse 80% 120% at 10% 50%,rgba(144,202,249,.14),transparent 55%),
             linear-gradient(135deg,#0a3a82 0%,#0d47a1 50%,#1976d2 130%);
  color:#fff;box-shadow:var(--shadow-md),0 0 0 1px rgba(255,255,255,.06) inset;
  transition:transform 220ms cubic-bezier(.34,1.3,.64,1), box-shadow 220ms ease, border-color 200ms ease;
  position:relative;overflow:hidden;
  min-height:100%;
}
.data-hub-banner:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(33,150,243,.28)}
.data-hub-banner.active{
  border-color:#90caf9;
  box-shadow:0 0 0 2px rgba(144,202,249,.55),0 0 22px rgba(33,150,243,.4),0 10px 28px rgba(13,71,161,.2);
}
.data-hub-main-ico{
  background:linear-gradient(145deg,rgba(144,202,249,.95),rgba(33,150,243,.9)) !important;
  color:#0d47a1 !important;
}
.data-hub-main-ico .dh-svg{width:26px;height:26px}
.data-hub-wrap.is-closed{display:none !important}
.data-hub-wrap.is-open{
  display:block;
  animation:authCardIn 360ms cubic-bezier(.34,1.2,.64,1) both;
}
html.dark .data-hub-banner{
  background:radial-gradient(ellipse 80% 120% at 10% 50%,rgba(118,146,255,.18),transparent 55%),
             linear-gradient(135deg,#070f2c 0%,#091540 45%,#1b2cc1 130%);
  border-color:rgba(118,146,255,.35);
}
html.dark .data-hub-banner.active{
  border-color:#7692ff;
  box-shadow:0 0 0 2px rgba(118,146,255,.6),0 0 24px rgba(118,146,255,.45),0 10px 28px rgba(0,0,0,.35);
}
html.dark .data-hub-main-ico{
  background:linear-gradient(145deg,#abd2fa,#7692ff) !important;
  color:#091540 !important;
}
.coach-hub.active{
  border-color:var(--primary-200,#90caf9);
  box-shadow:0 0 0 2px rgba(144,202,249,.5),0 0 22px rgba(33,150,243,.35),0 10px 28px rgba(13,71,161,.18);
}
html.dark .coach-hub.active{
  border-color:#7692ff;
  box-shadow:0 0 0 2px rgba(118,146,255,.55),0 0 22px rgba(118,146,255,.4);
}

/* ===== Data hub boxes (like coaching hub) ===== */
.data-hub-wrap{margin:0 0 var(--space-4);position:relative}
.data-hub-title{
  font-size:var(--text-md);font-weight:800;color:var(--navy);margin:0 0 12px;
  padding-bottom:8px;border-bottom:2px solid var(--border);
}
.data-hub-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
@media (max-width:900px){
  .data-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:520px){
  .data-hub-grid{grid-template-columns:1fr;}
}
.data-hub-box{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;text-align:center;
  padding:16px 12px;min-height:112px;
  border-radius:16px;
  border:1.5px solid var(--border);
  background:var(--surface);
  cursor:pointer;
  box-shadow:var(--shadow-sm);
  transition:transform 220ms cubic-bezier(.34,1.3,.64,1), box-shadow 220ms ease, border-color 200ms ease, background-color 200ms ease;
}
.data-hub-box:hover{
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 10px 28px rgba(33,150,243,.16);
  border-color:rgba(33,150,243,.55);
}
.data-hub-box:active{transform:translateY(0) scale(0.98)}
.data-hub-box.active{
  border-color:#2196f3;
  background:linear-gradient(160deg,rgba(227,242,253,.95),rgba(144,202,249,.2));
  box-shadow:
    0 0 0 2px rgba(33,150,243,.55),
    0 0 18px rgba(33,150,243,.45),
    0 0 36px rgba(33,150,243,.22),
    0 8px 24px rgba(13,71,161,.12);
}
.data-hub-ico{font-size:28px;line-height:1;transition:transform 220ms cubic-bezier(.34,1.3,.64,1)}
.data-hub-box:hover .data-hub-ico,
.data-hub-box.active .data-hub-ico{transform:scale(1.12)}
.data-hub-ttl{font-weight:800;font-size:13px;color:var(--navy)}
.data-hub-sub{font-size:11px;color:var(--text-muted);line-height:1.4}

/* ===== باکس ویژه «خودمو محک بزنم» — ردیف آخر، وسط، سیبل ===== */
.data-hub-grid-selfcheck-row{
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  align-items:center;
  margin-top:6px;
  padding-top:10px;
}
.data-hub-box-selfcheck{
  position:relative;
  overflow:visible;
  width:min(340px,92%);
  min-height:118px;
  padding:18px 28px 16px;
  border-radius:999px;
  border:2px solid transparent;
  background:
    radial-gradient(circle at 18% 30%,rgba(255,255,255,.22),transparent 45%),
    linear-gradient(135deg,#0a3a82 0%,#0d47a1 40%,#1565c0 70%,#2196f3 100%);
  color:#fff;
  box-shadow:
    0 0 0 3px rgba(33,150,243,.18),
    0 10px 28px rgba(13,71,161,.28),
    0 0 32px rgba(33,150,243,.22);
  cursor:pointer;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:right;
  transition:transform 240ms cubic-bezier(.34,1.3,.64,1), box-shadow 240ms ease, filter 200ms ease;
}
.data-hub-box-selfcheck::before{
  content:"";
  position:absolute;
  inset:-3px;
  border-radius:999px;
  background:conic-gradient(from 180deg,#90caf9,#2196f3,#0d47a1,#90caf9);
  z-index:-1;
  opacity:.55;
  animation:selfcheckRing 6s linear infinite;
}
@keyframes selfcheckRing{
  to{transform:rotate(360deg)}
}
.data-hub-box-selfcheck:hover{
  transform:translateY(-4px) scale(1.03);
  box-shadow:
    0 0 0 4px rgba(144,202,249,.35),
    0 16px 40px rgba(33,150,243,.4),
    0 0 48px rgba(33,150,243,.3);
  filter:brightness(1.05);
}
.data-hub-box-selfcheck.active{
  box-shadow:
    0 0 0 4px rgba(144,202,249,.55),
    0 0 28px rgba(33,150,243,.55),
    0 12px 32px rgba(13,71,161,.35);
}
.data-hub-box-selfcheck .dh-target{
  width:52px;height:52px;flex-shrink:0;
  border-radius:50%;
  background:rgba(255,255,255,.18);
  border:2px solid rgba(255,255,255,.45);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.18), inset 0 0 12px rgba(255,255,255,.12);
  animation:targetPulse 2.4s ease-in-out infinite;
}
@keyframes targetPulse{
  0%,100%{transform:scale(1);box-shadow:0 4px 14px rgba(0,0,0,.18),0 0 0 0 rgba(144,202,249,.4)}
  50%{transform:scale(1.08);box-shadow:0 4px 14px rgba(0,0,0,.18),0 0 0 10px rgba(144,202,249,0)}
}
.data-hub-box-selfcheck .dh-target svg{width:30px;height:30px;display:block}
.data-hub-box-selfcheck .data-hub-ttl{
  color:#fff !important;
  font-size:15px;
  font-weight:800;
  letter-spacing:-.01em;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}
.data-hub-box-selfcheck .data-hub-sub{
  color:rgba(255,255,255,.88) !important;
  font-size:12px;
  margin-top:2px;
}
.data-hub-box-selfcheck .sc-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
@media (prefers-reduced-motion:reduce){
  .data-hub-box-selfcheck::before{animation:none}
  .data-hub-box-selfcheck .dh-target{animation:none}
}
html.dark .data-hub-box-selfcheck{
  background:
    radial-gradient(circle at 18% 30%,rgba(171,210,250,.15),transparent 45%),
    linear-gradient(135deg,#070f2c 0%,#091540 40%,#1b2cc1 75%,#7692ff 100%);
  box-shadow:
    0 0 0 3px rgba(118,146,255,.22),
    0 10px 28px rgba(0,0,0,.4),
    0 0 32px rgba(118,146,255,.25);
}
html.dark .data-hub-box-selfcheck::before{
  background:conic-gradient(from 180deg,#abd2fa,#7692ff,#1b2cc1,#abd2fa);
}
html.dark .data-hub-box-selfcheck:hover{
  box-shadow:
    0 0 0 4px rgba(118,146,255,.4),
    0 16px 40px rgba(118,146,255,.35),
    0 0 48px rgba(27,44,193,.4);
}
@media (max-width:520px){
  .data-hub-box-selfcheck{
    width:100%;
    border-radius:20px;
    padding:16px 18px;
    gap:12px;
  }
  .data-hub-box-selfcheck::before{border-radius:22px}
}

/* hide legacy tab strip if any remains */
/* .tabs no longer force-hidden; angles use boxes */

html.dark .data-hub-title{color:#c5d8ff;border-bottom-color:var(--border)}
html.dark .data-hub-box{
  background:var(--surface);
  border-color:var(--border);
}
html.dark .data-hub-box:hover{
  border-color:rgba(118,146,255,.65);
  box-shadow:0 10px 28px rgba(118,146,255,.2);
}
html.dark .data-hub-box.active{
  border-color:#7692ff;
  background:linear-gradient(160deg,rgba(27,44,193,.35),rgba(9,21,64,.9));
  box-shadow:
    0 0 0 2px rgba(118,146,255,.65),
    0 0 20px rgba(118,146,255,.5),
    0 0 40px rgba(27,44,193,.35),
    0 8px 24px rgba(0,0,0,.35);
}
html.dark .data-hub-ttl{color:#abd2fa}
html.dark .data-hub-sub{color:#9bb4e8}

@media (max-width:600px){
  .data-hub-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .data-hub-box{min-height:100px;padding:12px 8px}
}

/* ===== UI polish v4: mouse glow + auth motion + ColorHunt dark blue ===== */
/* Palette dark: #091540 · #1b2cc1 · #7692ff · #abd2fa */
/* Desktop-first tables: full width, large, horizontal scroll only when needed */
.table-wrap, .matrix-wrap, .heat-table-wrap, .sev-timeline-wrap,
.exam-table-wrap, [class*="table-wrap"] {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.main table, .card table, #wpPlanBody table, .wp-plan-doc table {
  width: 100%;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  font-size: 14px;
  margin: 0;
}
.main table th, .card table th, #wpPlanBody table th, .wp-plan-doc table th {
  padding: 12px 14px;
  font-size: 13px;
  white-space: nowrap;
  text-align: center;
}
.main table td, .card table td, #wpPlanBody table td, .wp-plan-doc table td {
  padding: 10px 12px;
  font-size: 13.5px;
  text-align: center;
  vertical-align: middle;
}
td.subj-label, th.subj-label { text-align: right; white-space: nowrap; }
@media (min-width: 1024px) {
  .main table, .card table, #wpPlanBody table { font-size: 14.5px; }
  .main table th, .card table th { padding: 14px 16px; font-size: 13.5px; }
  .main table td, .card table td { padding: 12px 14px; font-size: 14px; }
}
.wp-overflow-table-wrap {
  overflow-x: auto;
  margin: 12px 0;
  border-radius: 12px;
  border: 1px solid var(--border);
}
.wp-overflow-table-wrap table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: 13.5px;
}

/* Mouse ambient glow (light) */
body {
  --mx: 50%;
  --my: 30%;
  background:
    radial-gradient(520px 380px at var(--mx) var(--my), rgba(33,150,243,.16), transparent 55%),
    var(--bg-accent), var(--bg) !important;
  /* بدون این خط، «fixed» فقط روی آخرین لایهٔ background (رنگ ساده) اعمال می‌شد
     و لایهٔ گرادیانِ دنبال‌کنندهٔ موس (لایهٔ اول) با attachment پیش‌فرض «scroll»
     رندر می‌شد؛ یعنی موقعیتش نسبت به کل ارتفاع صفحه (نه ویوپورت) حساب می‌شد و
     در صفحات بلند (بعد از ورود) اصلاً زیر موس نمی‌ایستاد. با اعلام جداگانهٔ
     background-attachment روی همهٔ لایه‌ها (شامل گرادیان موس) fixed اعمال می‌شود. */
  background-attachment: fixed !important;
  transition: background-color 300ms ease;
}
#authGate {
  --mx: 50%;
  --my: 40%;
  background:
    radial-gradient(480px 360px at var(--mx) var(--my), rgba(33,150,243,.22), transparent 58%),
    radial-gradient(1000px 520px at 8% -8%, rgba(33,150,243,.10), transparent 55%),
    radial-gradient(760px 420px at 100% -4%, rgba(144,202,249,.14), transparent 52%),
    #f5f9ff !important;
}

/* Soft motion */
.card, .btn, .tab, .student-item, .coach-hub, .coach-hub-chip,
.coach-hub-icon, .coach-hub-arrow, .menu-toggle, #themeToggle,
.angle5-toc-chip, .skill-align-card,
.auth-card, .auth-role-btn, .auth-head, .captcha-box {
  transition:
    transform 240ms cubic-bezier(.34,1.3,.64,1),
    box-shadow 240ms cubic-bezier(.4,0,.2,1),
    background-color 200ms ease,
    border-color 200ms ease,
    filter 200ms ease,
    opacity 180ms ease;
  will-change: transform;
}
.card { position: relative; overflow: hidden; }
.card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 14px 36px rgba(13,71,161,.14);
}
.btn { position: relative; overflow: hidden; }
.btn:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 8px 18px rgba(13,71,161,.18);
}
.btn:active { transform: translateY(1px) scale(0.98); }
.tab:hover { transform: translateY(-1px); }
.student-item:hover {
  transform: translateX(-4px) scale(1.02);
  box-shadow: 0 4px 14px rgba(13,71,161,.1);
}
.coach-hub:hover {
  transform: translateY(-5px) scale(1.015);
  box-shadow: 0 16px 40px rgba(33,150,243,.28);
}
.coach-hub:hover .coach-hub-icon {
  transform: scale(1.12) rotate(-6deg);
  animation: iconBounce 700ms cubic-bezier(.34,1.4,.64,1);
}
.coach-hub:hover .coach-hub-arrow { transform: translateX(-8px) scale(1.15); }
.coach-hub-icon { animation: coachPulse 3.2s ease-in-out infinite; }
@keyframes iconBounce {
  0% { transform: scale(1) rotate(0); }
  40% { transform: scale(1.18) rotate(-8deg); }
  70% { transform: scale(1.08) rotate(4deg); }
  100% { transform: scale(1.12) rotate(-6deg); }
}
@keyframes coachPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 0 transparent); }
  50% { transform: scale(1.06); filter: drop-shadow(0 0 10px rgba(118,146,255,.55)); }
}
.menu-toggle:hover, #themeToggle:hover {
  transform: scale(1.12) rotate(8deg);
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.menu-toggle:active, #themeToggle:active { transform: scale(0.92) rotate(-4deg); }
.angle5-toc-chip:hover, .coach-hub-chip:hover {
  transform: translateY(-2px) scale(1.06);
  box-shadow: 0 4px 12px rgba(13,71,161,.12);
}
.skill-align-card:hover {
  transform: translateY(-3px) scale(1.01);
  box-shadow: 0 10px 24px rgba(13,71,161,.12);
}

/* Auth page motion */
.auth-card {
  position: relative;
  overflow: hidden;
  animation: authCardIn 480ms cubic-bezier(.34,1.2,.64,1) both;
}
@keyframes authCardIn {
  from { opacity: 0; transform: translateY(18px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.auth-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(13,71,161,.18);
}
.auth-role-btn { position: relative; overflow: hidden; }
.auth-role-btn:hover {
  transform: translateY(-4px) scale(1.03);
  box-shadow: 0 12px 28px rgba(33,150,243,.2);
  border-color: #2196f3;
}
.auth-role-btn:active { transform: translateY(0) scale(0.98); }
.auth-role-btn:hover .ico {
  transform: scale(1.18) rotate(-8deg);
  display: inline-block;
  animation: iconBounce 650ms cubic-bezier(.34,1.4,.64,1);
}
.auth-role-btn .ico {
  transition: transform 240ms cubic-bezier(.34,1.3,.64,1);
  display: inline-block;
}
.auth-card:hover .auth-head { filter: brightness(1.05); }
.captcha-box {
  transition: transform 200ms cubic-bezier(.34,1.3,.64,1), box-shadow 200ms ease, background-color 200ms ease;
}
.captcha-box:hover {
  transform: scale(1.05) rotate(-2deg);
  box-shadow: 0 6px 16px rgba(33,150,243,.2);
}
.auth-shell .btn:hover { transform: translateY(-2px) scale(1.03); }
.auth-back:hover { transform: translateX(3px); opacity: .85; }

:root {
  --bg: #f7faff;
  --surface: #ffffff;
  --border: #e2eef8;
  --shadow-sm: 0 1px 3px rgba(13,71,161,.06);
  --shadow-md: 0 8px 24px rgba(13,71,161,.09);
}

/* ===== Dark mode: Color Hunt #091540 #1b2cc1 #7692ff #abd2fa ===== */
html.dark {
  color-scheme: dark;
  --bg: #091540;
  --bg-accent:
    radial-gradient(900px 480px at 12% -8%, rgba(27,44,193,.28), transparent 55%),
    radial-gradient(700px 400px at 100% 0%, rgba(118,146,255,.14), transparent 50%);
  --surface: #0d1a4a;
  --surface-2: #12205c;
  --surface-sunken: #070f2c;
  --border: #1e2f6e;
  --border-strong: #2a3f8f;
  --text: #e8f0ff;
  --text-muted: #9bb4e8;
  --text-faint: #6e88c4;
  --navy: #abd2fa;
  --navy-light: #7692ff;
  --navy-dark: #1b2cc1;
  --teal: #7692ff;
  --teal-soft: rgba(118,146,255,.14);
  --primary-50: #12205c;
  --primary-200: #1b2cc1;
  --primary-500: #7692ff;
  --primary-900: #abd2fa;
  --primary-950: #091540;
  --on-dark: #e8f0ff;
  --on-dark-muted: #9bb4e8;
  --danger-soft: #3a1c2a;
  --warn-soft: #2a2414;
  --ok-soft: #0f2a24;
  --info-soft: #12205c;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.35);
  --shadow-md: 0 8px 24px rgba(0,0,0,.45);
}
html.dark body {
  background:
    radial-gradient(480px 340px at var(--mx) var(--my), rgba(118,146,255,.20), transparent 58%),
    var(--bg-accent), var(--bg) !important;
  background-attachment: fixed !important;
  color: var(--text);
}
html.dark #authGate {
  background:
    radial-gradient(460px 340px at var(--mx) var(--my), rgba(118,146,255,.22), transparent 58%),
    radial-gradient(900px 480px at 8% -8%, rgba(27,44,193,.25), transparent 55%),
    #091540 !important;
}
html.dark header {
  background: linear-gradient(120deg, #070f2c 0%, #091540 40%, #1b2cc1 130%);
  border-bottom-color: #7692ff;
  color: var(--on-dark);
}
html.dark header h1 { color: #e8f0ff; }
html.dark .sidebar { background: var(--surface); border-color: var(--border); }
html.dark .card { background: var(--surface); border-color: var(--border); }
html.dark .card:hover { box-shadow: 0 14px 36px rgba(0,0,0,.45); }
html.dark table { background: var(--surface); border-color: var(--border); }
html.dark th {
  background: linear-gradient(120deg, #091540, #1b2cc1);
  color: #e8f0ff;
}
html.dark td { border-bottom-color: var(--border); color: var(--text); }
html.dark tr:nth-child(even) td { background: #0a1638; }
html.dark tr:hover td { background: #12205c; }
html.dark .tab { color: var(--text-muted); }
html.dark .tab.active { color: #abd2fa; border-bottom-color: #7692ff; }
html.dark .btn {
  background: linear-gradient(120deg, #1b2cc1, #7692ff);
  color: #e8f0ff;
  border-color: transparent;
}
html.dark .btn:hover {
  filter: brightness(1.1);
  box-shadow: 0 8px 18px rgba(118,146,255,.3);
}
html.dark .btn.outline {
  background: transparent;
  color: #abd2fa;
  border-color: #2a3f8f;
}
html.dark .btn.outline:hover { background: #12205c; }
html.dark .btn.gold {
  background: linear-gradient(120deg, #1b2cc1, #7692ff);
  color: #e8f0ff;
}
html.dark input, html.dark select,
html.dark input.grid-input, html.dark select.grid-select,
html.dark select.form-select, html.dark input.form-select {
  background: #070f2c; color: var(--text); border-color: var(--border);
}
html.dark .exam-builder { background: var(--surface-2); border-color: var(--border); }
html.dark .small-note, html.dark .empty-state { color: var(--text-muted); }
html.dark h1, html.dark h2, html.dark h3, html.dark h4 { color: #c5d8ff; }
html.dark .coach-hub {
  background:
    radial-gradient(ellipse 80% 120% at 10% 50%, rgba(118,146,255,.22), transparent 55%),
    linear-gradient(135deg, #070f2c 0%, #091540 45%, #1b2cc1 130%);
  border-color: rgba(118,146,255,.35);
}
html.dark .coach-hub-icon {
  background: linear-gradient(145deg, #abd2fa, #7692ff);
  color: #091540;
  box-shadow: 0 4px 14px rgba(118,146,255,.45);
}
html.dark .auth-admin-corner-link { color: var(--text-muted); }
html.dark .auth-admin-corner-link:hover, html.dark .auth-admin-corner-link:focus-visible { color: var(--on-dark); background: rgba(118,146,255,.14); }
html.dark .auth-card {
  background: #0d1a4a;
  border-color: #1e2f6e;
  box-shadow: 0 14px 38px rgba(0,0,0,.45);
}
html.dark .auth-head {
  background: linear-gradient(120deg, #070f2c 0%, #091540 40%, #1b2cc1 130%);
  color: #e8f0ff;
}
html.dark .auth-role-btn {
  background: #12205c;
  border-color: #2a3f8f;
}
html.dark .auth-role-btn:hover {
  border-color: #7692ff;
  box-shadow: 0 12px 28px rgba(118,146,255,.22);
}
html.dark .auth-role-btn .ttl { color: #abd2fa; }
html.dark .auth-role-btn .sub { color: #9bb4e8; }
html.dark .captcha-box {
  background: #12205c;
  border-color: #7692ff;
  color: #abd2fa;
}
html.dark .auth-back, html.dark .auth-links button { color: #7692ff; }
html.dark .auth-msg.info { background: #12205c; color: #abd2fa; }
html.dark .student-item.st-blue { background: #12205c; border-color: #2a3f6e; color: #c5d8ff; }
html.dark .student-item.st-blue.active { background: #1b2cc1; border-color: #1b2cc1; color: #e8f0ff; }
html.dark .student-item.st-green.active { background: #1b2cc1; color: #e8f0ff; }

#themeToggle {
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22);
  color: #fff; border-radius: 999px; width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 16px; flex-shrink: 0;
}
#themeToggle:hover { background: rgba(255,255,255,.22); }
html.dark #themeToggle {
  background: rgba(118,146,255,.18);
  border-color: rgba(118,146,255,.4);
  color: #abd2fa;
}

.kc-ripple {
  position: absolute; border-radius: 50%; pointer-events: none;
  transform: scale(0); opacity: .35;
  background: radial-gradient(circle, rgba(33,150,243,.45) 0%, transparent 70%);
  animation: kcRipple 550ms ease-out forwards;
}
html.dark .kc-ripple {
  background: radial-gradient(circle, rgba(118,146,255,.45) 0%, transparent 70%);
}
@keyframes kcRipple {
  to { transform: scale(2.6); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .card, .btn, .tab, .student-item, .coach-hub, .coach-hub-icon,
  .menu-toggle, #themeToggle, .angle5-toc-chip, .skill-align-card,
  .auth-card, .auth-role-btn {
    transition: none !important; animation: none !important;
  }
  .card:hover, .btn:hover, .student-item:hover, .coach-hub:hover, .auth-role-btn:hover {
    transform: none !important;
  }
}/* ===== پنل اولیا (Parent Panel) ===== */
body.role-parent .sidebar,body.role-parent .sidebar-backdrop,body.role-parent .menu-toggle{display:none !important}
body.role-parent .layout{display:block}
body.role-parent .main{max-width:1100px;margin:0 auto}
body.role-parent .header-actions .btn-consultant-only{display:none !important}
body.role-parent .coach-hub-wrap,body.role-parent .dual-hub-row{display:none !important}
.parent-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.parent-toc-chip{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;background:#e3f2fd;border:1px solid #90caf9;color:#0d47a1;text-decoration:none}
.parent-toc-chip:hover{background:#bbdefb}
.parent-box{background:#fff;border:1px solid #d7e7f7;border-radius:16px;margin-bottom:16px;overflow:hidden;box-shadow:0 4px 16px rgba(13,71,161,.07)}
.parent-box-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(90deg,#e3f2fd,#f5f9ff);border-bottom:1px solid #d7e7f7}
.parent-box-num{width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,#2196f3,#0d47a1);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.parent-box-title{font-weight:800;color:#0d47a1;font-size:15px}
.parent-box-sub{font-size:12px;color:#5c7591;margin-top:2px}
.parent-box-body{padding:14px 16px 16px}
.parent-box-body h3{margin-top:14px}
html.dark .parent-box{background:var(--surface);border-color:var(--border)}
html.dark .parent-box-head{background:linear-gradient(90deg,#12205c,#0d1a4a);border-bottom-color:var(--border)}
html.dark .parent-toc-chip{background:#12205c;border-color:#2a3f8f;color:#abd2fa}
.parent-dash{direction:rtl}
.parent-dash .parent-hero{
  background:linear-gradient(120deg,#0a3a82 0%,#0d47a1 50%,#2196f3 130%);
  color:#fff;border-radius:16px;padding:18px 20px;margin-bottom:16px;
  box-shadow:0 8px 28px rgba(13,71,161,.16);
}
.parent-dash .parent-hero h2{color:#fff;margin:0 0 6px;font-size:1.15rem}
.parent-dash .parent-hero p{margin:0;opacity:.92;font-size:13px;line-height:1.7}
.parent-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:14px 0}
.parent-stat{
  background:#fff;border:1px solid #d7e7f7;border-radius:14px;padding:14px 12px;text-align:center;
  box-shadow:0 3px 12px rgba(13,71,161,.06);
}
.parent-stat .n{font-size:1.35rem;font-weight:800;color:#0d47a1}
.parent-stat .l{font-size:12px;color:#5c7591;margin-top:4px;line-height:1.5}
.parent-note{
  background:#f0f7ff;border:1px solid #b7d6f2;border-right:4px solid #2196f3;
  border-radius:12px;padding:12px 14px;margin:10px 0;font-size:13.5px;line-height:1.85;color:#0f2338;
}
.parent-note.warn{background:#fff7ed;border-color:#fed7aa;border-right-color:#c98006}
.parent-note.ok{background:#e7f7ef;border-color:#a8e0c0;border-right-color:#0f8f5f}
.parent-note.bad{background:#fbeaec;border-color:#f0b4b4;border-right-color:#d43f52}
#pwChangeOverlay{
  display:none;position:fixed;inset:0;z-index:10050;background:rgba(11,33,54,.55);
  align-items:center;justify-content:center;padding:20px;
}
#pwChangeOverlay.open{display:flex}
.pw-modal{
  background:#fff;border-radius:16px;max-width:400px;width:100%;padding:22px 20px;
  box-shadow:0 16px 40px rgba(13,71,161,.2);direction:rtl;text-align:right;
}
.pw-modal h3{margin:0 0 12px;color:#0d47a1}
.retest-overlay{
  display:none;position:fixed;inset:0;z-index:10060;background:rgba(11,33,54,.6);
  align-items:center;justify-content:center;padding:16px;
}
.retest-overlay.open{display:flex}
.retest-modal{
  background:#fff;border-radius:18px;max-width:560px;width:100%;padding:26px 24px;
  box-shadow:0 20px 50px rgba(13,71,161,.25);direction:rtl;text-align:right;max-height:90vh;overflow-y:auto;
}
.retest-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.retest-title{font-weight:800;font-size:16px;color:#0d47a1}
.retest-progress-track{height:8px;border-radius:6px;background:#e3f2fd;overflow:hidden;margin-bottom:10px}
.retest-progress-fill{height:100%;background:linear-gradient(90deg,#2196f3,#0d47a1);border-radius:6px;transition:width .3s ease}
.retest-qnum{font-size:12px;color:#5c7591;margin-bottom:8px;font-family:monospace}
.retest-qtext{font-size:17px;font-weight:600;line-height:1.8;margin-bottom:20px}
.retest-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.retest-opt{
  padding:13px 16px;border-radius:12px;border:1.5px solid #d7e7f7;background:#fff;
  font-size:14.5px;text-align:right;transition:all .12s ease;
}
.retest-opt:hover{border-color:#2196f3;background:#f0f7ff}
.retest-opt.selected{border-color:#2196f3;background:#2196f3;color:#fff;font-weight:700}
.retest-nav{display:flex;gap:10px}
.retest-nav .btn-secondary,.retest-nav .btn{flex:1}
.retest-result{text-align:center;padding:6px 0}
html.dark .retest-modal{background:#0d1a4a;color:#e8f0ff}
html.dark .retest-opt{background:#12205c;border-color:#2a3f8f;color:#e8f0ff}
html.dark .retest-progress-track{background:#12205c}
html.dark .parent-stat{background:var(--surface);border-color:var(--border)}
html.dark .parent-stat .n{color:#abd2fa}
html.dark .parent-note{background:#12205c;border-color:#2a3f8f;color:#e8f0ff}
html.dark .pw-modal{background:#0d1a4a;color:#e8f0ff}

/* =====================================================================
   ============  KonkoorCoach v10 — LUXURY 3D REDESIGN  ================
   Full visual upgrade layer. Purely additive/override — no class names,
   markup or JS hooks are touched, so every existing feature keeps
   working exactly as before; only how it LOOKS changes.
   ===================================================================== */

:root{
  /* ---- True metallic gold accent (was aliased to blue before — fixed) ---- */
  --gold:#c9a13b;
  --gold-light:#f3d98a;
  --gold-dark:#8a691f;
  --gold-soft:#fbf1d8;
  --gold-grad:linear-gradient(135deg,#f3d98a 0%,#c9a13b 45%,#8a691f 100%);
  --navy-grad:linear-gradient(135deg,#081226 0%,#0d2a5e 45%,#155cb8 100%);

  /* ---- Richer, layered "3D" elevation system ---- */
  --shadow-xs:0 1px 2px rgba(8,20,45,.06),0 1px 1px rgba(8,20,45,.05);
  --shadow-sm:0 1px 2px rgba(8,20,45,.06),0 6px 16px -6px rgba(8,20,45,.12);
  --shadow-md:0 2px 6px rgba(8,20,45,.08),0 14px 34px -10px rgba(8,20,45,.20);
  --shadow-lg:0 6px 16px rgba(8,20,45,.10),0 28px 60px -16px rgba(8,20,45,.28);
  --shadow-xl:0 10px 24px rgba(8,20,45,.14),0 44px 90px -20px rgba(8,20,45,.34);
  --shadow-gold:0 10px 26px -8px rgba(201,161,59,.55);
  --shadow-inset-top:inset 0 1px 0 rgba(255,255,255,.75);
  --shadow-inset-edge:inset 0 0 0 1px rgba(255,255,255,.4);

  /* ---- Glass surfaces ---- */
  --glass-bg:rgba(255,255,255,.68);
  --glass-bg-strong:rgba(255,255,255,.86);
  --glass-border:rgba(255,255,255,.55);
  --glass-blur:saturate(180%) blur(18px);

  /* ---- Generous, premium radii ---- */
  --radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;

  --ease-3d:cubic-bezier(.19,1,.22,1);
}

/* ---- Luxury ambient background: deep navy vignette + gold haze mesh ---- */
body{
  background:
    radial-gradient(1200px 640px at 10% -10%,rgba(21,92,184,.14),transparent 55%),
    radial-gradient(900px 520px at 108% -6%,rgba(201,161,59,.13),transparent 52%),
    radial-gradient(760px 480px at 50% 120%,rgba(8,18,38,.07),transparent 55%),
    linear-gradient(180deg,#eef4fb 0%,#f4f8fd 40%,#eef4fb 100%) fixed;
}
*{scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary-500),var(--gold));border-radius:99px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:var(--gold-grad);background-clip:padding-box}
::selection{background:rgba(201,161,59,.28)}

/* ---- Header: deep glass 3D bar with gold light-line ---- */
header{
  background:var(--navy-grad);
  border-bottom:none;
  box-shadow:var(--shadow-xl);
  position:sticky;
}
header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--gold-grad);
  box-shadow:0 0 14px 1px rgba(201,161,59,.65);
}
header{position:sticky}
header .brand,header .header-actions{position:relative;z-index:1}
header::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(600px 200px at 15% 0%,rgba(255,255,255,.10),transparent 60%);
  pointer-events:none;
}
.hdr-ico-btn{box-shadow:var(--shadow-inset-top),0 2px 6px rgba(0,0,0,.18);backdrop-filter:blur(6px)}
.hdr-ico-btn:hover{box-shadow:var(--shadow-inset-top),0 4px 14px rgba(0,0,0,.25)}
.hdr-ico-gold{background:var(--gold-grad);border-color:transparent;color:#3a2a06;box-shadow:var(--shadow-gold),var(--shadow-inset-top)}

/* ---- Buttons: glossy, embossed, premium press ---- */
.btn{
  background:linear-gradient(180deg,var(--primary-500) 0%,var(--navy) 100%);
  border:none;box-shadow:var(--shadow-inset-top),var(--shadow-sm);
  border-radius:var(--radius-sm);letter-spacing:.01em;
}
.btn:hover{background:linear-gradient(180deg,#3ba4f5 0%,var(--primary-500) 100%);box-shadow:var(--shadow-inset-top),var(--shadow-md)}
.btn:active{box-shadow:inset 0 2px 6px rgba(0,0,0,.28)}
.btn.gold{
  background:var(--gold-grad);color:#3a2a06;font-weight:800;
  box-shadow:var(--shadow-inset-top),var(--shadow-gold);text-shadow:0 1px 0 rgba(255,255,255,.35);
}
.btn.gold:hover{filter:brightness(1.06) saturate(1.05);box-shadow:var(--shadow-inset-top),0 14px 32px -8px rgba(201,161,59,.65)}
.btn.outline{
  background:var(--glass-bg);backdrop-filter:var(--glass-blur);border:1.5px solid var(--border-strong);
  color:var(--navy);box-shadow:var(--shadow-xs);
}
.btn.outline:hover{border-color:var(--gold);color:var(--gold-dark);box-shadow:var(--shadow-sm)}
.btn.danger{background:linear-gradient(180deg,#e5606f,var(--danger));box-shadow:var(--shadow-inset-top),var(--shadow-sm)}
.btn.ok-btn{background:linear-gradient(180deg,#17b075,var(--ok));box-shadow:var(--shadow-inset-top),var(--shadow-sm)}

/* ---- Cards / sections: glassmorphic, gold hairline, 3D lift ---- */
.card,.ui-section-card,.add-panel,.finding,.exam-builder{
  background:linear-gradient(180deg,var(--glass-bg-strong),var(--glass-bg));
  backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-inset-top),var(--shadow-md);
  border-radius:var(--radius-lg);
  position:relative;
}
.card::before,.ui-section-card::before,.add-panel::before{
  content:"";position:absolute;top:0;left:14px;right:14px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,161,59,.65),transparent);
}
.card:hover,.ui-section-card:hover,.finding:hover{
  box-shadow:var(--shadow-inset-top),var(--shadow-lg);
  border-color:rgba(201,161,59,.35);
}
.card h2,.add-panel h3{
  border-bottom:none;position:relative;padding-bottom:10px;
}
.card h2::after,.add-panel h3::after{
  content:"";position:absolute;right:0;bottom:0;left:0;height:2px;
  background:var(--gold-grad);border-radius:2px;
}

/* ---- Stat boxes / parent stats / score pills: glossy 3D chips ---- */
.stat-box,.parent-stat,.score-pill{
  background:linear-gradient(160deg,#ffffff 0%,#f3f8ff 100%);
  border:1px solid var(--border);
  box-shadow:var(--shadow-inset-top),var(--shadow-sm);
  border-radius:var(--radius-md);
  transition:transform 220ms var(--ease-3d),box-shadow 220ms var(--ease-3d),border-color 220ms var(--ease-3d);
}
.stat-box:hover,.parent-stat:hover,.score-pill:hover{
  box-shadow:var(--shadow-inset-top),var(--shadow-md);
  border-color:var(--gold);
}
.stat-box .num,.parent-stat .n,.score-pill .sc-val{
  background:linear-gradient(180deg,var(--navy),var(--primary-500));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.score-pill.sc-up{background:linear-gradient(160deg,#f2fbf6,#e3f6ea)}
.score-pill.sc-down{background:linear-gradient(160deg,#fdf3f4,#fbe6e8)}

/* ---- Tabs: floating glass pill row with gold sliding indicator ---- */
.tabs{
  border-bottom:none;background:var(--glass-bg);backdrop-filter:var(--glass-blur);
  border-radius:var(--radius-pill);padding:5px;box-shadow:var(--shadow-inset-top),var(--shadow-xs);
  border:1px solid var(--glass-border);
}
.tab{border-radius:var(--radius-pill);border-bottom:none;position:relative;z-index:1}
.tab.active{color:#fff;font-weight:700}
.tab.active::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--radius-pill);
  background:linear-gradient(120deg,var(--navy),var(--primary-500));
  box-shadow:0 4px 12px rgba(13,71,161,.35);
}
.kc-tab-indicator{display:none} /* superseded by pill fill above */

/* ---- Tables: elevated glass table, gradient gold-trimmed header ---- */
table{
  border:1px solid var(--glass-border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);
}
th{
  background:var(--navy-grad);position:relative;
  box-shadow:inset 0 -2px 0 rgba(201,161,59,.55);
}
tr:nth-child(even) td{background:rgba(227,242,253,.5)}
tr:hover td{background:rgba(201,161,59,.10)}

/* ---- Sidebar / student list: glass chips with color-accent bar ---- */
.sidebar{
  background:var(--glass-bg);backdrop-filter:var(--glass-blur);
  border-left:1px solid var(--glass-border);
}
.student-item{
  position:relative;padding-inline-start:16px;box-shadow:var(--shadow-xs);
  transition:transform 180ms var(--ease-3d),box-shadow 180ms var(--ease-3d);
}
.student-item::before{
  content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:4px;border-radius:4px;
  background:currentColor;opacity:.55;
}
.student-item:hover{transform:translateX(-2px);box-shadow:var(--shadow-sm)}
.student-item.active{box-shadow:var(--shadow-inset-top),var(--shadow-md)}

/* ---- Coach hub: deeper 3D hero with gold trim ---- */
.coach-hub{border-radius:var(--radius-xl);box-shadow:var(--shadow-inset-top),var(--shadow-xl)}
.coach-hub::after{content:"🧠";position:absolute;font-size:48px;opacity:.07;right:12px;bottom:-10px;transform:rotate(20deg);pointer-events:none}
.coach-hub{border:1.5px solid rgba(201,161,59,.35)}
.coach-hub-icon{box-shadow:var(--shadow-gold),var(--shadow-inset-top)}

/* ---- Charts: glass panel + gold-lit tooltip ---- */
.chart-panel,.kc-chart-full{
  background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--shadow-inset-top),var(--shadow-sm);
  border-radius:var(--radius-lg);
}
.chart-panel:hover{box-shadow:var(--shadow-inset-top),var(--shadow-md);border-color:rgba(201,161,59,.4)}
.kc-tooltip{background:var(--navy-grad);box-shadow:var(--shadow-xl),0 0 0 1px rgba(201,161,59,.35)}
.kc-tooltip::after{border-top-color:#0d2a5e}
.kc-range-chip.active{background:var(--navy-grad);box-shadow:var(--shadow-gold)}
.kc-champ-card.rank-1{border-color:var(--gold);box-shadow:var(--shadow-gold)}

/* ---- Forms / inputs: concave glass fields with focus glow ---- */
.field input,.field select,select.form-select,input.form-select,
input.grid-input,select.grid-select{
  background:rgba(255,255,255,.85);
  box-shadow:inset 0 1px 3px rgba(8,20,45,.08);
  border-radius:var(--radius-sm);
}
.field input:focus-visible,.field select:focus-visible,
select.form-select:focus-visible,input.form-select:focus-visible{
  box-shadow:inset 0 1px 3px rgba(8,20,45,.08),0 0 0 3px rgba(201,161,59,.28);
  border-color:var(--gold);
}

/* ---- Modals: premium glass sheet with gold-lit shadow ---- */
.retest-modal,.kc-fs-modal,.pw-modal,.conflict-modal{
  border-radius:var(--radius-xl) !important;
  box-shadow:var(--shadow-inset-top),0 30px 80px -12px rgba(8,20,45,.5),0 0 0 1px rgba(201,161,59,.2) !important;
}
.retest-opt.selected{background:var(--navy-grad) !important;box-shadow:var(--shadow-inset-top),var(--shadow-md)}

/* ---- Badges / small pills ---- */
.ver-badge,.kc-champ-group-badge,.stu-focus-tag,.coach-hub-chip{
  box-shadow:var(--shadow-xs);
}
.ver-badge{background:var(--gold-grad);box-shadow:var(--shadow-gold)}

/* ---- Depth on hover for any element already carrying kc-reveal cards ---- */
.card:hover,.ui-section-card:hover,.chart-panel:hover{transform:translateY(-4px) scale(1.003)}

@media (max-width:720px){
  .card,.ui-section-card,.add-panel{border-radius:var(--radius-md)}
  header::after{height:2px}
  table:not(.wp-overflow-table){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
}

@media (prefers-reduced-motion:reduce){
  .card:hover,.ui-section-card:hover,.chart-panel:hover{transform:none}
}

/* =====================================================================
   ============  KonkoorCoach v11 — icons, glass header, menu  =========
   ===================================================================== */

/* ---- Minimal SVG icon system: consistent weight/size everywhere ---- */
.icon-svg{
  display:inline-block;vertical-align:-3px;flex-shrink:0;
  stroke:currentColor;transition:transform 160ms var(--ease-3d),opacity 160ms;
}
.icon-inline{vertical-align:-2px;opacity:.85;margin-inline-start:2px}
.menu-toggle .icon-svg,.hdr-ico-btn .icon-svg,.hdr-more-item .icon-svg{stroke:currentColor}
.hdr-ico-btn:hover .icon-svg{transform:scale(1.08)}

/* ---- Header: true glass, floating, refined ---- */
header{
  background:
    linear-gradient(120deg,rgba(8,18,38,.92) 0%,rgba(13,42,94,.90) 45%,rgba(21,92,184,.85) 165%);
  backdrop-filter:saturate(180%) blur(22px);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
header.kc-scrolled{
  background:
    linear-gradient(120deg,rgba(8,18,38,.82) 0%,rgba(13,42,94,.80) 45%,rgba(21,92,184,.74) 165%);
}
.menu-toggle{backdrop-filter:blur(6px);box-shadow:var(--shadow-inset-top)}
.menu-toggle:hover{box-shadow:var(--shadow-inset-top),0 4px 12px rgba(0,0,0,.2)}

/* ---- Header "more" dropdown menu ---- */
.hdr-more-wrap{position:relative}
.hdr-notif-wrap{position:relative}
.hdr-points-wrap{position:relative}
.hdr-points-btn{color:#c9a13b}
.hdr-points-badge{
  position:absolute;top:-3px;left:-3px;min-width:16px;height:16px;padding:0 3px;border-radius:9px;
  background:#e0546f;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 2px #fff;
}
html.dark .hdr-points-badge{box-shadow:0 0 0 2px #0d1a4a}
.hdr-more-menu{
  position:absolute;top:calc(100% + 10px);left:0;min-width:210px;
  background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--radius-md);
  box-shadow:var(--shadow-inset-top),var(--shadow-xl);
  padding:6px;display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;transform:translateY(-6px) scale(.97);
  transform-origin:top left;
  transition:opacity 160ms var(--ease-3d),transform 160ms var(--ease-3d),visibility 160ms;
  z-index:60;
}
.hdr-more-menu.kc-open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.hdr-more-item{
  display:flex;align-items:center;gap:9px;width:100%;
  background:none;border:none;color:var(--text);text-align:right;
  padding:9px 10px;border-radius:var(--radius-xs);font-family:inherit;
  font-size:var(--text-xs);font-weight:600;cursor:pointer;
  transition:background 140ms,color 140ms;
}
.hdr-more-item:hover{background:rgba(33,150,243,.10);color:var(--navy)}
.hdr-more-item.hdr-more-gold:hover{background:rgba(201,161,59,.14);color:var(--gold-dark)}
.hdr-more-item .icon-svg{opacity:.75}
@media (max-width:520px){
  .hdr-more-menu{left:auto;right:0;transform-origin:top right}
}

/* ---- شاپ.html: صفحه‌ی مستقل فروشگاه — فقط محتوای فروشگاه دیده شود، بدون کارت هویت/کاشی‌های داشبورد ----
   توجه: سلکتور «.ui-hero-head» عمداً با «> » محدود شده چون خودِ محتوای فروشگاه (renderStoreTab)
   هم از همین کلاس برای عنوان «فروشگاه» استفاده می‌کند — نباید آن نسخه‌ی تودرتو مخفی شود. */
.shop-page-topbar{max-width:1180px;margin:0 auto;padding:10px var(--space-4) 0}
body.page-shop #mainPanel > .ui-hero > .ui-hero-head,
body.page-shop .dual-hub-row,
body.page-shop .data-hub-wrap{display:none !important}
body.page-shop .ui-hero-body{padding-top:18px}
@media (max-width:900px){
  .shop-page-topbar{padding-inline:14px}
}


/* KC: clearer "selected" indicator for data-hub-box tiles (client request 2026-09-23) */
.data-hub-box.active:not(.data-hub-box-champions){
  border-width:2.5px;
}
.data-hub-box.active:not(.data-hub-box-champions)::after{
  content:"\2713";
  position:absolute;
  top:8px;
  inset-inline-end:8px;
  width:22px;
  height:22px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:900;
  line-height:1;
  color:#fff;
  background:linear-gradient(145deg,var(--primary-500),var(--navy));
  box-shadow:0 2px 8px rgba(33,150,243,.5);
  z-index:2;
}
html.dark .data-hub-box.active:not(.data-hub-box-champions)::after{
  background:linear-gradient(145deg,#7692ff,#1b2cc1);
  box-shadow:0 2px 8px rgba(118,146,255,.5);
}

/* KC: clearer definition for coach-hub-chip tags (client request 2026-09-23, round 3 - fix dark mode contrast) */
.coach-hub-chip{
  background:#ffffff;
  border:1.5px solid rgba(255,255,255,.95);
  color:#0d47a1;
  font-weight:800;
  box-shadow:0 2px 6px rgba(0,0,0,.22);
}
html.dark .coach-hub-chip{
  color:#0d47a1;
}

/* ---- coaching hub pricing / payment (kc-) ---- */
.kc-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
@media (max-width:900px){ .kc-plan-grid{grid-template-columns:1fr} }
.kc-plan-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.kc-plan-card.featured{border-color:var(--gold);box-shadow:0 8px 24px rgba(201,161,59,.25)}
.kc-plan-badge{position:absolute;top:-11px;inset-inline-start:16px;background:linear-gradient(120deg,var(--gold),#f0bd6b);color:#3a2400;font-size:11px;font-weight:800;padding:3px 12px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.kc-plan-title{font-size:17px;font-weight:800;color:var(--navy)}
.kc-plan-feats{list-style:none;padding:0;margin:6px 0 14px;display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.kc-billing-toggle{display:flex;gap:6px;margin-bottom:10px}
.kc-billing-pill{flex:1;padding:6px 4px;border:1px solid var(--border);background:transparent;border-radius:var(--radius-sm);font-size:11.5px;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}
.kc-billing-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.kc-plan-price{text-align:center;margin-top:auto}
.kc-plan-price-main{font-size:20px;font-weight:800;color:#0d47a1}
html.dark .kc-plan-price-main{color:#9fc9f5}
.kc-copy-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border)}
.kc-copy-row:last-of-type{border-bottom:none}
