/* ═══════════════════════════════════════════════════════════
   insight.css — نمایشِ تحلیلِ کلاس

   ⚠️ رنگ‌ها عمداً فقط چهار تا هستند (فوری/این‌هفته/اطلاع/خوب).
   بیشتر از این، معلم باید رنگ‌ها را «یاد بگیرد» — و یاد نمی‌گیرد.
   ═══════════════════════════════════════════════════════════ */

/*  پلِ نام‌ها  ⚠️⚠️ بدونِ این، نصفِ این فایل بی‌اثر است.

    این فایل (و ماژول‌های تکلیف/گروه/ارزشیابی که بعداً رویش نوشته
    شدند) با نام‌های --sd-* نوشته شده‌اند، ولی توکن‌های واقعیِ سایت
    در css/style.css نام‌های دیگری دارند: --p و --card و --border و…
    یعنی همه‌ی var(--sd-…)ها به هیچ resolve می‌شدند.

    چرا دیده نمی‌شد: متغیرِ تعریف‌نشده کلِ آن اعلان را بی‌اعتبار
    می‌کند و مرورگر به مقدارِ ارث‌بری برمی‌گردد. پس کادرها «تقریباً»
    درست بودند و فقط جاهایی لو می‌رفت که رنگ حیاتی بود — مثلِ
    دکمه‌ی سبزِ «ذخیره» که متنِ سفید روی پس‌زمینه‌ی شفاف داشت و
    اصلاً دیده نمی‌شد.

    راهِ حل: نام‌ها را به توکن‌های واقعی گره می‌زنیم. چون توکن‌های
    واقعی با تمِ روشن/تیره عوض می‌شوند، این‌ها هم خودبه‌خود درست
    می‌مانند.  ⚠️ نام‌ها را اینجا تعریف کن، نه در هر فایل. */
:root{
  --sd-brand:    var(--p);
  --sd-brand-2:  var(--p2);
  --sd-card:     var(--card);
  --sd-bg:       var(--bg);
  --sd-soft:     var(--bg3);
  --sd-line:     var(--border);
  --sd-line-2:   var(--border2);
  --sd-ink:      var(--text);
  --sd-ink-soft: var(--text2);
}

.ins-card{ --iu:#EF4444; --iw:#F5A524; --ii:#2E9BE6; --ig:#17B67C; }
#sec-insight{ --iu:#EF4444; --iw:#F5A524; --ii:#2E9BE6; --ig:#17B67C; }

/* ── حالتِ انتظار ─────────────────────────────────────────── */
.ins-wait{
  display:flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1.6rem 1rem; font-size:.84rem; opacity:.7;
}
.ins-spin{
  width:16px; height:16px; flex:none; border-radius:50%;
  border:2px solid currentColor; border-top-color:transparent;
  animation:insSpin .8s linear infinite;
}
@keyframes insSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .ins-spin{ animation-duration:2.4s; } }

/* ── نشان‌های خلاصه ───────────────────────────────────────── */
.ins-chips{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.8rem; }
.ins-chip{
  font-size:.68rem; font-weight:800; border-radius:999px; padding:.22rem .6rem;
}
.ins-chip.urgent{ background:#FDECEC; color:#B42318; }
.ins-chip.week{   background:#FFF4E5; color:#8A5A00; }
.ins-chip.good{   background:#E7F8F0; color:#0E7A57; }

/* ── یک یافته ─────────────────────────────────────────────── */
.ins-list{ display:flex; flex-direction:column; gap:.5rem; }
.ins-f{
  border:1px solid var(--line,#E6EEF7); border-radius:14px;
  background:var(--card,#fff); overflow:hidden;
}
.ins-f-h{
  display:flex; align-items:flex-start; gap:.6rem; cursor:pointer;
  padding:.7rem .8rem;
}
.ins-f-h:hover{ background:var(--soft,#F7FAFD); }
.ins-dot{
  width:9px; height:9px; border-radius:50%; flex:none; margin-top:.42rem;
  background:var(--ii);
}
.ins-f.urgent .ins-dot{ background:var(--iu); }
.ins-f.week   .ins-dot{ background:var(--iw); }
.ins-f.good   .ins-dot{ background:var(--ig); }
/*  نوارِ رنگیِ کنار — در یک نگاه معلوم می‌کند چه چیزی فوری است */
.ins-f{ border-inline-start:3px solid var(--ii); }
.ins-f.urgent{ border-inline-start-color:var(--iu); }
.ins-f.week{   border-inline-start-color:var(--iw); }
.ins-f.good{   border-inline-start-color:var(--ig); }

.ins-f-t{ flex:1; min-width:0; line-height:1.75; }
.ins-f-t b{ display:block; font-size:.86rem; font-weight:800; }
.ins-f-t span{ display:block; font-size:.74rem; opacity:.7; }
.ins-chev{
  flex:none; font-style:normal; opacity:.45; font-size:.8rem;
  transition:transform .2s; margin-top:.25rem;
}
.ins-f.open .ins-chev{ transform:rotate(180deg); }

.ins-f-body{ display:none; padding:0 .8rem .8rem; }
.ins-f.open .ins-f-body{ display:block; }

.ins-do{
  background:var(--soft,#F5F9FD); border-radius:11px; padding:.6rem .75rem; margin-bottom:.55rem;
}
.ins-do-l{ display:block; font-size:.64rem; font-weight:800; opacity:.55; margin-bottom:.2rem; }
.ins-do p{ margin:0; font-size:.82rem; line-height:1.9; }

.ins-ev{ margin-bottom:.55rem; }
.ins-ev-l{ display:block; font-size:.64rem; font-weight:800; opacity:.55; margin-bottom:.3rem; }
.ins-ev-rows{ display:flex; flex-wrap:wrap; gap:.35rem; }
.ins-ev-rows span{
  font-size:.7rem; font-weight:700; border-radius:9px; padding:.25rem .5rem;
  background:var(--soft,#F2F7FC); border:1px solid var(--line,#E6EEF7);
}
.ins-ev-rows i{ font-style:normal; opacity:.6; font-weight:400; margin-inline-end:.3rem; }

.ins-go{
  cursor:pointer; border:0; border-radius:11px; font:inherit;
  font-size:.76rem; font-weight:800; padding:.5rem .85rem;
  background:#E9F2FE; color:#1D6FBF;
}
.ins-go:hover{ background:#D8E9FC; }

.ins-more{
  width:100%; margin-top:.6rem; cursor:pointer; border:1px dashed var(--line,#E6EEF7);
  background:none; border-radius:12px; padding:.55rem; font:inherit;
  font-size:.76rem; font-weight:700; color:inherit; opacity:.8;
}
.ins-more:hover{ opacity:1; border-style:solid; }

/* ── صفحه‌ی کامل ──────────────────────────────────────────── */
.ins-sum{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr));
  gap:.6rem; margin-bottom:1rem;
}
.ins-sum-n{
  background:var(--card,#fff); border:1px solid var(--line,#E6EEF7);
  border-radius:14px; padding:.8rem .5rem; text-align:center;
}
.ins-sum-n b{ display:block; font-size:1.35rem; font-weight:900; }
.ins-sum-n span{ font-size:.68rem; opacity:.6; }

.ins-tabs{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.9rem; }
.ins-tab{
  cursor:pointer; border:1px solid var(--line,#E6EEF7); background:var(--card,#fff);
  border-radius:999px; padding:.4rem .85rem; font:inherit;
  font-size:.76rem; font-weight:700; color:inherit;
}
.ins-tab.on{ background:#E9F2FE; color:#1D6FBF; border-color:#BEDCFA; }
.ins-tab b{ font-weight:900; }
.ins-refresh{ margin-inline-start:auto; opacity:.75; }
.ins-refresh:disabled{ opacity:.5; cursor:default; }

.ins-list.big .ins-f-t b{ font-size:.92rem; }
.ins-foot{
  margin-top:1.2rem; font-size:.72rem; opacity:.6; text-align:center; line-height:2;
}

@media (max-width:760px){
  .ins-f-t b{ font-size:.82rem; }
  .ins-sum-n b{ font-size:1.15rem; }
}

/*  کارتِ تحلیل تمامِ عرض را می‌گیرد — مهم‌ترین چیزِ داشبورد است
    و در یک ستونِ یک‌سومی خوانده نمی‌شود. */
#sec-teacher-dash .d2-row.ins-row{ grid-template-columns:1fr; }
.ins-card .ins-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:.5rem; }
.ins-card .ins-f.open{ grid-column:1/-1; }
@media (max-width:760px){
  .ins-card .ins-list{ grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════
   👤 پرونده‌ی یک دانش‌آموز
   ═══════════════════════════════════════════════════════════ */
#sec-student-file{ --iu:#EF4444; --iw:#F5A524; --ii:#2E9BE6; --ig:#17B67C; }
.stf{ display:flex; flex-direction:column; gap:1rem; }

.stf-back{
  background:none; border:0; cursor:pointer; font:inherit;
  font-size:.82rem; font-weight:800; color:var(--ink2,#64748B); padding:.4rem 0;
}
.stf-head{ display:flex; align-items:center; gap:.9rem; }
.stf-av{
  width:58px; height:58px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:linear-gradient(135deg,#2E9BE6,#7C5CE0); color:#fff;
  font-size:1.5rem; font-weight:900;
}
.stf-h-t b{ display:block; font-size:1.3rem; font-weight:900; }
.stf-h-t span{ font-size:.76rem; opacity:.65; }

/* اعداد */
.stf-nums{ display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:.6rem; }
.stf-n{
  background:var(--card,#fff); border:1px solid var(--line,#E6EEF7);
  border-radius:15px; padding:.85rem .5rem; text-align:center;
  border-top:3px solid var(--line,#E6EEF7);
}
.stf-n.bad{ border-top-color:var(--iu); }
.stf-n.good{ border-top-color:var(--ig); }
.stf-n b{ display:block; font-size:1.4rem; font-weight:900; line-height:1.2; }
.stf-n span{ display:block; font-size:.72rem; font-weight:700; opacity:.75; }
.stf-n i{ display:block; font-style:normal; font-size:.64rem; opacity:.5; margin-top:.15rem; }

/* بلوک */
.stf-b{ background:var(--card,#fff); border:1px solid var(--line,#E6EEF7); border-radius:18px; overflow:hidden; }
.stf-b-h{
  display:flex; align-items:center; justify-content:space-between;
  padding:.85rem 1rem; font-size:.92rem; font-weight:800;
  border-bottom:1px solid var(--line,#E6EEF7);
}
.stf-b.fold .stf-b-h{ cursor:pointer; border-bottom:0; }
.stf-b.fold .stf-b-b{ display:none; }
.stf-b.fold.open .stf-b-b{ display:block; }
.stf-b.fold.open .stf-b-h{ border-bottom:1px solid var(--line,#E6EEF7); }
.stf-b.fold.open .ins-chev{ transform:rotate(180deg); }
.stf-b-b{ padding:.9rem 1rem 1rem; }

/* حضور */
.stf-strip{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.stf-strip-l{ font-size:.72rem; opacity:.6; }
.stf-seq{ display:flex; gap:.3rem; }
.stf-seq i{ width:26px; height:26px; border-radius:7px; display:block; }
.stf-legend{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:.7rem; font-size:.74rem; }
.stf-legend span{ display:inline-flex; align-items:center; gap:.3rem; }
.stf-legend u{ width:10px; height:10px; border-radius:3px; text-decoration:none; }
.stf-warn{ margin:.8rem 0 0; font-size:.8rem; color:#B42318; font-weight:700; }

/* نمره */
.stf-subs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.8rem; }
.stf-sub{ background:var(--soft,#F7FAFD); border-radius:14px; padding:.75rem .85rem; }
.stf-sub-h{ display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; }
.stf-sub-h b{ font-size:.88rem; font-weight:800; }
.stf-sub-h em{ font-style:normal; font-size:.68rem; opacity:.6; }
.stf-sub-h em.up{ color:#0E7A57; opacity:1; }
.stf-sub-h em.down{ color:#B42318; opacity:1; }
.stf-spark{ width:100%; height:44px; margin:.5rem 0; color:#2E9BE6; display:block; }
.stf-sub-n{ display:flex; gap:.7rem; flex-wrap:wrap; font-size:.7rem; opacity:.75; }
.stf-sub-n b{ font-weight:900; opacity:1; }

/* حافظه */
.stf-mem{ display:flex; flex-direction:column; gap:.45rem; margin-bottom:.8rem; }
.stf-mem-r{
  display:flex; align-items:flex-start; gap:.55rem;
  background:#FFF8E9; border:1px solid #F3E4C4; border-radius:12px; padding:.55rem .7rem;
}
.stf-mem-k{
  flex:none; font-size:.62rem; font-weight:800; border-radius:999px;
  padding:.15rem .5rem; background:#F0DDB4; color:#7A5A12;
}
.stf-mem-r p{ flex:1; margin:0; font-size:.8rem; line-height:1.9; }
.stf-mem-x{ flex:none; border:0; background:none; cursor:pointer; opacity:.4; font-size:.8rem; }
.stf-mem-x:hover{ opacity:1; color:#B42318; }
.stf-add{ display:flex; gap:.5rem; }
.stf-add input{
  flex:1; min-width:0; border:1px solid var(--line,#E6EEF7); background:var(--soft,#F7FAFD);
  border-radius:12px; padding:.6rem .8rem; font:inherit; font-size:.82rem; color:inherit;
}
.stf-add input:focus{ outline:2px solid #BEDCFA; border-color:#BEDCFA; }
.stf-add button{
  flex:none; cursor:pointer; border:0; border-radius:12px; font:inherit;
  font-size:.78rem; font-weight:800; padding:.6rem .9rem;
  background:#E9F2FE; color:#1D6FBF;
}
.stf-hint{ margin:.7rem 0 0; font-size:.7rem; opacity:.6; line-height:1.9; }
.stf-none{ margin:0; font-size:.8rem; opacity:.6; }

/* منابعِ خام */
.stf-srcs{ display:flex; flex-direction:column; gap:.4rem; }
.stf-src{ border:1px solid var(--line,#E6EEF7); border-radius:12px; overflow:hidden; }
.stf-src-h{
  display:flex; align-items:center; gap:.5rem; cursor:pointer;
  padding:.55rem .75rem; font-size:.8rem;
}
.stf-src-h b{ flex:1; font-weight:700; }
.stf-src-h span{ font-size:.68rem; opacity:.55; }
.stf-priv{
  text-decoration:none; font-size:.6rem; font-weight:800;
  background:#FDECEC; color:#B42318; border-radius:999px; padding:.1rem .45rem;
}
.stf-src-b{ display:none; margin:0; padding:.6rem .75rem; background:var(--soft,#F7FAFD);
  font-size:.68rem; line-height:1.7; max-height:260px; overflow:auto; white-space:pre-wrap; }
.stf-src.open .stf-src-b{ display:block; }
.stf-src.open .ins-chev{ transform:rotate(180deg); }

@media (max-width:760px){
  .stf-av{ width:48px; height:48px; font-size:1.2rem; }
  .stf-h-t b{ font-size:1.1rem; }
  .stf-n b{ font-size:1.2rem; }
  .stf-seq i{ width:22px; height:22px; }
}
/*  تازه‌ترین جلسه — قابِ دور تا ترتیبِ زمانی وارونه خوانده نشود */
.stf-seq i.now{ box-shadow:0 0 0 2px var(--card,#fff), 0 0 0 4px currentColor; }

/* ═══════════════════════════════════════════════════════════
   ✉️ پیام به والدین — در انتظارِ تأیید
   ═══════════════════════════════════════════════════════════ */
#sec-approve{ --iu:#EF4444; --iw:#F5A524; --ii:#2E9BE6; --ig:#17B67C; }
.apv-list{ display:flex; flex-direction:column; gap:.8rem; }
.apv{
  background:var(--card,#fff); border:1px solid var(--line,#E6EEF7);
  border-radius:16px; padding:.9rem 1rem;
  border-inline-start:3px solid var(--iw);
}
.apv.ok{ border-inline-start-color:var(--ig); }
.apv.done{ border-inline-start-color:#94A3B8; opacity:.8; }
.apv.bad{ border-inline-start-color:var(--iu); }
.apv.off{ opacity:.55; }

.apv-h{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.6rem; }
.apv-h b{ font-size:.95rem; font-weight:900; }
.apv-h i{ font-style:normal; font-size:.68rem; opacity:.5; margin-inline-start:auto; }
.apv-st{ font-size:.64rem; font-weight:800; border-radius:999px; padding:.18rem .55rem; }
.apv-st.wait{ background:#FFF4E5; color:#8A5A00; }
.apv-st.ok{   background:#E7F8F0; color:#0E7A57; }
.apv-st.done{ background:#EEF2F6; color:#5A6675; }
.apv-st.bad{  background:#FDECEC; color:#B42318; }
.apv-st.off{  background:#F1F3F5; color:#77808A; }

.apv-body{
  width:100%; box-sizing:border-box; display:block;
  border:1px solid var(--line,#E6EEF7); background:var(--soft,#F9FBFD);
  border-radius:12px; padding:.75rem .85rem; margin:0 0 .6rem;
  font:inherit; font-size:.85rem; line-height:2.1; color:inherit;
  white-space:pre-wrap; resize:vertical; min-height:140px;
}
textarea.apv-body:focus{ outline:2px solid #BEDCFA; border-color:#BEDCFA; background:#fff; }
.apv-body.ro{ min-height:0; }

.apv-ev{ font-size:.66rem; opacity:.55; margin-bottom:.5rem; direction:ltr; text-align:right; }
.apv-ev span{ direction:rtl; }
.apv-phone{ font-size:.76rem; margin-bottom:.7rem; }
.apv-phone b{ font-weight:900; }
.apv-nophone{ color:#8A5A00; font-size:.72rem; }

.apv-acts{ display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.apv-b{
  cursor:pointer; border:1px solid var(--line,#E6EEF7); background:var(--card,#fff);
  border-radius:11px; font:inherit; font-size:.76rem; font-weight:800;
  padding:.5rem .85rem; color:inherit;
}
.apv-b:hover{ background:var(--soft,#F2F7FC); }
.apv-b.ok{ background:#E7F8F0; color:#0E7A57; border-color:#BFE8D8; }
/*  ⚠️ دکمه‌ی ارسال عمداً پررنگ‌ترین چیزِ صفحه است — معلم باید
    بداند دارد چه کار می‌کند، نه اینکه اتفاقی بزندش. */
.apv-b.send{ background:#17B67C; color:#fff; border-color:#17B67C; box-shadow:0 3px 10px rgba(23,182,124,.3); }
.apv-b.send:hover{ filter:brightness(1.08); background:#17B67C; }
.apv-b.off{ opacity:.6; }
.apv-b:disabled{ opacity:.5; cursor:default; }
.apv-note{ font-size:.7rem; opacity:.6; }

@media (max-width:760px){
  .apv-body{ font-size:.82rem; min-height:160px; }
  .apv-acts .apv-b{ flex:1; text-align:center; }
}

/* ═══════════════════════════════════════════════════════════
   🌅 روزِ کلاس

   ⚠️ همه‌ی اندازه‌ها برای «گوشی در دست، ایستاده جلوی کلاس»
   انتخاب شده‌اند: دکمه‌ها بزرگ، متن‌ها درشت، فاصله‌ها زیاد.
   ═══════════════════════════════════════════════════════════ */
#sec-day{ --iu:#EF4444; --iw:#F5A524; --ii:#2E9BE6; --ig:#17B67C; }
.day{ display:flex; flex-direction:column; gap:.9rem; }

.day-top{
  display:flex; align-items:center; gap:.7rem;
  background:linear-gradient(135deg,#E3F3FF,#DFF6EA); color:#0E3B4A;
  border-radius:18px; padding:1rem 1.1rem;
}
.day-top-t{ flex:1; }
.day-top-t b{ display:block; font-size:1.4rem; font-weight:900; }
.day-top-t span{ font-size:.78rem; opacity:.75; }
.day-refresh{
  flex:none; width:38px; height:38px; border-radius:50%; cursor:pointer;
  border:0; background:rgba(255,255,255,.7); color:#0E3B4A; font-size:1rem;
}

.day-b{ background:var(--card,#fff); border:1px solid var(--line,#E6EEF7); border-radius:18px; overflow:hidden; }
.day-b.done{ opacity:.85; }
.day-b-h{
  display:flex; align-items:center; gap:.6rem;
  padding:.85rem 1rem; border-bottom:1px solid var(--line,#E6EEF7);
}
.day-b-h b{ flex:1; font-size:.98rem; font-weight:900; }
.day-step{
  flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center;
  background:#E9F2FE; color:#1D6FBF; font-size:.78rem; font-weight:900;
}
.day-b.done .day-step{ background:#E7F8F0; color:#0E7A57; }
.day-tick{ font-style:normal; font-size:.7rem; font-weight:800; color:#0E7A57; }
.day-n{ font-style:normal; font-size:.7rem; opacity:.55; }
.day-b-b{ padding:1rem; }

.day-ask{ margin:0 0 .8rem; font-size:.92rem; font-weight:700; }
.day-ok{ margin:0 0 .6rem; font-size:.85rem; color:#0E7A57; }
.day-hint{ margin:0 0 .8rem; font-size:.76rem; opacity:.6; line-height:1.9; }

/*  دکمه‌ی اصلی — بزرگ، چون معلم ایستاده و گوشی در دست است */
.day-go{
  display:block; width:100%; cursor:pointer; border:0; border-radius:15px;
  font:inherit; font-size:1rem; font-weight:800; padding:1rem;
  background:var(--ig); color:#fff; box-shadow:0 4px 14px rgba(23,182,124,.3);
}
.day-go:hover{ filter:brightness(1.06); }
.day-sm{
  cursor:pointer; border:1px solid var(--line,#E6EEF7); background:none;
  border-radius:11px; font:inherit; font-size:.78rem; font-weight:700;
  padding:.5rem .85rem; color:inherit;
}

/* نکته‌های امروز */
.day-heads{ margin-top:1rem; padding-top:.9rem; border-top:1px dashed var(--line,#E6EEF7); }
.day-heads-l{ display:block; font-size:.7rem; font-weight:800; opacity:.55; margin-bottom:.5rem; }
.day-head{
  display:flex; align-items:center; gap:.6rem; width:100%; cursor:pointer;
  background:#FFF6E9; border:1px solid #F3E4C4; border-radius:13px;
  padding:.65rem .8rem; margin-bottom:.4rem; font:inherit; text-align:start; color:inherit;
}
.day-head-t{ flex:1; font-size:.82rem; font-weight:700; line-height:1.8; }
.day-head-go{ flex:none; font-style:normal; opacity:.4; font-size:1.05rem; }

/* زنگ‌ها */
.day-periods{ display:flex; flex-direction:column; gap:.5rem; }
.day-p{ border:1px solid var(--line,#E6EEF7); border-radius:14px; overflow:hidden; }
.day-p-h{
  display:flex; align-items:center; gap:.7rem; width:100%; cursor:pointer;
  background:none; border:0; padding:.8rem .9rem; font:inherit; color:inherit; text-align:start;
}
.day-p-h:hover{ background:var(--soft,#F7FAFD); }
.day-p-h b{ flex:1; font-size:.92rem; font-weight:800; }
.day-p-n{
  flex:none; width:28px; height:28px; border-radius:9px; display:grid; place-items:center;
  background:var(--soft,#F2F7FC); font-size:.8rem; font-weight:900;
}
.day-p.open .ins-chev{ transform:rotate(180deg); }
.day-p-b{ display:none; padding:0 .9rem .9rem; }
.day-p.open .day-p-b{ display:block; }

.day-tools{ display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:.5rem; }
.day-t{
  display:flex; flex-direction:column; align-items:center; gap:.35rem; cursor:pointer;
  background:var(--soft,#F7FAFD); border:1px solid var(--line,#E6EEF7);
  border-radius:13px; padding:.8rem .4rem; font:inherit; color:inherit; min-height:74px;
  justify-content:center;
}
.day-t:hover{ background:#EEF5FD; border-color:#BEDCFA; }
.day-t i{ font-style:normal; font-size:1.25rem; }
.day-t span{ font-size:.72rem; font-weight:700; text-align:center; line-height:1.5; }

/* پایانِ روز */
.day-checks{ display:flex; flex-direction:column; gap:.5rem; }
.day-c{
  display:flex; align-items:center; gap:.7rem; width:100%; cursor:pointer;
  background:var(--soft,#F7FAFD); border:1px solid var(--line,#E6EEF7);
  border-radius:13px; padding:.8rem .9rem; font:inherit; color:inherit; text-align:start;
}
.day-c:hover{ background:#EEF5FD; }
.day-c.done{ background:#F0FBF6; border-color:#CDEFE0; cursor:default; }
.day-c-b{
  flex:none; width:24px; height:24px; border-radius:8px; display:grid; place-items:center;
  border:2px solid var(--line,#E6EEF7); background:var(--card,#fff);
  font-size:.8rem; font-weight:900; color:#0E7A57;
}
.day-c.done .day-c-b{ background:#17B67C; border-color:#17B67C; color:#fff; }
.day-c-t{ flex:1; font-size:.86rem; font-weight:700; }
.day-c i{ font-style:normal; opacity:.35; font-size:1.1rem; }

@media (max-width:760px){
  .day-top-t b{ font-size:1.2rem; }
  .day-go{ font-size:.94rem; padding:.9rem; }
  .day-tools{ grid-template-columns:repeat(auto-fit,minmax(92px,1fr)); }
}

/* ═══════════════════════════════════════════════════════════
   📒 تکلیف و پروژه
   ═══════════════════════════════════════════════════════════ */
#sec-my-homework, #sec-hw-check{ --ok:#17B67C; --wait:#F5A524; --redo:#EF4444; --none:#94A3B8; }

/* ── سمتِ دانش‌آموز ─────────────────────────────────────── */
.hws-list{ display:flex; flex-direction:column; gap:.8rem; }
.hws{
  background:var(--card,#fff); border:1px solid var(--line,#E6EEF7);
  border-radius:18px; padding:1rem; border-inline-start:4px solid var(--none);
}
.hws.wait{ border-inline-start-color:var(--wait); }
.hws.ok{   border-inline-start-color:var(--ok); }
.hws.redo{ border-inline-start-color:var(--redo); }
.hws-h{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.4rem; }
.hws-h b{ flex:1; font-size:1rem; font-weight:900; }
.hws-st{ font-size:.66rem; font-weight:800; border-radius:999px; padding:.2rem .6rem; }
.hws-st.none{ background:#EEF2F6; color:#5A6675; }
.hws-st.wait{ background:#FFF4E5; color:#8A5A00; }
.hws-st.ok{   background:#E7F8F0; color:#0E7A57; }
.hws-st.redo{ background:#FDECEC; color:#B42318; }
.hws-d{ margin:.2rem 0 .6rem; font-size:.85rem; line-height:2; opacity:.85; }
.hws-meta{ display:flex; gap:.8rem; flex-wrap:wrap; font-size:.74rem; opacity:.65; margin-bottom:.6rem; }
.hws-files{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.5rem; }
.hws-file{
  display:inline-block; text-decoration:none; font-size:.74rem; font-weight:700;
  background:var(--soft,#F2F7FC); border:1px solid var(--line,#E6EEF7);
  border-radius:10px; padding:.35rem .6rem; color:inherit;
}
.hws-note{ margin:.3rem 0 .6rem; font-size:.78rem; opacity:.7; }
.hws-fb{ background:#F0FBF6; border:1px solid #CDEFE0; border-radius:12px; padding:.7rem .85rem; margin-bottom:.7rem; }
.hws-fb p{ margin:.2rem 0 0; font-size:.84rem; line-height:1.9; }
.hws-score{ font-size:1.15rem; font-weight:900; color:#0E7A57; }
/*  دکمه‌ی بچه — بزرگ و بی‌ابهام */
.hws-go{
  display:block; width:100%; cursor:pointer; border:0; border-radius:14px;
  font:inherit; font-size:.95rem; font-weight:800; padding:.85rem;
  background:#E9F2FE; color:#1D6FBF;
}
.hws-go:hover{ background:#D8E9FC; }

.hws-ov{
  position:fixed; inset:0; z-index:9999; display:grid; place-items:center;
  background:rgba(12,20,30,.55); padding:1rem;
}
.hws-box{
  width:min(480px,100%); max-height:88vh; overflow:auto;
  background:var(--card,#fff); border-radius:20px; box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.hws-box-h{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  padding:1rem 1.1rem; border-bottom:1px solid var(--line,#E6EEF7);
}
.hws-box-h b{ font-size:1rem; font-weight:900; }
.hws-x{ background:none; border:0; cursor:pointer; font-size:1.05rem; opacity:.6; }
.hws-box-b{ padding:1rem 1.1rem 1.2rem; }
.hws-l{ display:block; font-size:.78rem; font-weight:800; opacity:.75; margin:.7rem 0 .35rem; }
.hws-box-b input[type=file], .hws-box-b textarea{
  width:100%; box-sizing:border-box; border:1px solid var(--line,#E6EEF7);
  background:var(--soft,#F9FBFD); border-radius:12px; padding:.7rem .8rem;
  font:inherit; font-size:.85rem; color:inherit; resize:vertical;
}
.hws-hint{ margin:.4rem 0 0; font-size:.72rem; opacity:.6; line-height:1.9; }
.hws-msg{ font-size:.78rem; font-weight:700; margin:.6rem 0 0; min-height:1.2em; }
.hws-msg.bad{ color:#B42318; }
.hws-send{
  display:block; width:100%; margin-top:.9rem; cursor:pointer; border:0;
  border-radius:14px; font:inherit; font-size:.95rem; font-weight:800; padding:.9rem;
  background:var(--ok); color:#fff; box-shadow:0 4px 14px rgba(23,182,124,.3);
}
.hws-send:disabled{ opacity:.6; }

/* ── سمتِ معلم ──────────────────────────────────────────── */
.hwt-new{ padding:1.1rem; margin-bottom:1rem; }
.hwt-new-h{ display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; margin-bottom:.9rem; }
.hwt-new-h b{ font-size:.98rem; font-weight:900; }
.hwt-new-h span{ font-size:.72rem; opacity:.6; }

.hwt-list{ display:flex; flex-direction:column; gap:.7rem; }
.hwt{ background:var(--card,#fff); border:1px solid var(--line,#E6EEF7); border-radius:16px; overflow:hidden; }
.hwt-h{ display:flex; align-items:center; gap:.7rem; cursor:pointer; padding:.9rem 1rem; }
.hwt-h:hover{ background:var(--soft,#F7FAFD); }
.hwt-h-t{ flex:1; min-width:0; line-height:1.7; }
.hwt-h-t b{ display:block; font-size:.95rem; font-weight:800; }
.hwt-h-t span{ display:block; font-size:.72rem; opacity:.6; }
.hwt-badge{
  flex:none; font-size:.66rem; font-weight:800; border-radius:999px;
  padding:.2rem .6rem; background:#FFF4E5; color:#8A5A00;
}
.hwt.open .ins-chev{ transform:rotate(180deg); }
.hwt-b{ display:none; padding:0 1rem 1rem; }
.hwt.open .hwt-b{ display:block; }
.hwt-del{
  margin-top:.8rem; cursor:pointer; border:0; background:none; font:inherit;
  font-size:.72rem; color:#B42318; opacity:.7; padding:.3rem 0;
}

.hwt-subs{ display:flex; flex-direction:column; gap:.6rem; }
.hwt-s{
  border:1px solid var(--line,#E6EEF7); border-radius:14px; padding:.8rem .9rem;
  border-inline-start:3px solid var(--none);
}
.hwt-s.wait{ border-inline-start-color:var(--wait); }
.hwt-s.ok{   border-inline-start-color:var(--ok); }
.hwt-s.redo{ border-inline-start-color:var(--redo); }
.hwt-s-h{ display:flex; align-items:center; gap:.6rem; margin-bottom:.5rem; }
.hwt-s-h b{ flex:1; font-size:.88rem; font-weight:800; }
.hwt-none{ margin:0 0 .5rem; font-size:.78rem; opacity:.55; }
.hwt-remind{
  cursor:pointer; border:1px solid var(--line,#E6EEF7); background:none;
  border-radius:10px; font:inherit; font-size:.72rem; font-weight:700;
  padding:.4rem .7rem; color:inherit;
}
.hwt-files{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.5rem; }
.hwt-img{ display:block; width:84px; height:84px; border-radius:11px; overflow:hidden; }
.hwt-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hwt-note{ margin:.2rem 0 .6rem; font-size:.8rem; opacity:.8; line-height:1.9; }

.hwt-grade{ display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; margin-bottom:.55rem; }
.hwt-score{
  width:84px; flex:none; border:1px solid var(--line,#E6EEF7); background:var(--soft,#F9FBFD);
  border-radius:11px; padding:.5rem .6rem; font:inherit; font-size:.9rem;
  font-weight:800; text-align:center; color:inherit;
}
.hwt-of{ font-size:.72rem; opacity:.55; flex:none; }
.hwt-fb{
  flex:1; min-width:150px; border:1px solid var(--line,#E6EEF7); background:var(--soft,#F9FBFD);
  border-radius:11px; padding:.5rem .7rem; font:inherit; font-size:.8rem; color:inherit;
}
.hwt-acts{ display:flex; gap:.4rem; flex-wrap:wrap; }
.hwt-done{ margin:.5rem 0 0; font-size:.72rem; color:#0E7A57; font-weight:700; }

@media (max-width:760px){
  .hwt-grade{ gap:.35rem; }
  .hwt-fb{ min-width:110px; }
  .hwt-acts .apv-b{ flex:1; text-align:center; }
}

/* ═══════════════════════════════════════════════════════════
   🧩 گروه‌بندیِ کلاس
   ═══════════════════════════════════════════════════════════ */
.grp-new{display:block;width:100%;padding:.9rem;margin-bottom:1rem;border:2px dashed var(--sd-line);
  border-radius:14px;background:transparent;color:var(--sd-ink);font:inherit;font-weight:700;cursor:pointer}
.grp-new:hover{border-color:var(--sd-brand);color:var(--sd-brand)}

.grp-list{display:grid;gap:.85rem}
.grp{border:1px solid var(--sd-line);border-radius:16px;background:var(--sd-card);
  padding:.9rem 1rem;border-right:5px solid var(--g,#2E9BE6)}
.grp-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.6rem}
.grp-h b{font-size:1.05rem}
.grp-n{font-size:.82rem;color:var(--sd-ink-soft);background:var(--sd-soft);
  padding:.15rem .55rem;border-radius:99px}

.grp-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.grp-chip{font-size:.85rem;padding:.2rem .6rem;border-radius:99px;
  background:var(--sd-soft);color:var(--sd-ink)}
.grp-empty{font-size:.85rem;color:var(--sd-ink-soft)}

.grp-acts{display:flex;gap:.45rem;margin-top:.8rem;flex-wrap:wrap}
/*  ⚠️ روی گوشی سه دکمه کنارِ هم جا می‌شوند ولی متنشان می‌شکست و
    دکمه سه‌طبقه می‌شد (۹۳ پیکسل ارتفاع). کوتاه و بی‌شکست. */
.grp-acts button{flex:1;min-width:0;padding:.55rem .3rem;border:1px solid var(--sd-line);
  border-radius:10px;background:var(--sd-card);color:var(--sd-ink);font:inherit;
  font-size:.86rem;white-space:nowrap;cursor:pointer}
.grp-acts button:hover{background:var(--sd-soft)}
.grp-acts .grp-del{flex:0 0 auto;min-width:3rem;color:#EF4444}

/*  ⚠️ بی‌گروه‌ها باید به چشم بیایند، وگرنه معلم جا می‌اندازدشان */
.grp-rest{margin-top:1rem;padding:.8rem 1rem;border-radius:14px;
  background:rgba(245,165,36,.08);border:1px solid rgba(245,165,36,.3)}
.grp-rest b{display:block;margin-bottom:.5rem;font-size:.9rem;color:#B45309}

/*  انتخابِ رنگ */
.grp-colors{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.4rem}
.grp-col{width:2rem;height:2rem;border-radius:50%;border:3px solid transparent;cursor:pointer}
.grp-col.on{border-color:var(--sd-ink);transform:scale(1.1)}

/*  انتخابِ اعضا */
.grp-pick{display:flex;flex-wrap:wrap;gap:.4rem;max-height:14rem;overflow:auto;
  padding:.2rem;margin-bottom:.4rem}
.grp-p{padding:.4rem .7rem;border:1px solid var(--sd-line);border-radius:99px;
  background:var(--sd-card);color:var(--sd-ink);font:inherit;font-size:.9rem;cursor:pointer;
  display:flex;align-items:center;gap:.35rem}
.grp-p.on{background:var(--sd-brand);border-color:var(--sd-brand);color:#fff}
.grp-p i{font-style:normal;font-size:.72rem;opacity:.7}

/*  📒 تاریخچه‌ی تکلیف در پرونده‌ی دانش‌آموز */
.stf-hws{display:grid;gap:.6rem}
.stf-hw{border:1px solid var(--sd-line);border-radius:12px;padding:.65rem .8rem;
  background:var(--sd-card);border-right:4px solid var(--sd-line)}
.stf-hw.ok{border-right-color:#17B67C}
.stf-hw.wait{border-right-color:#F5A524}
.stf-hw.redo{border-right-color:#EF4444}
.stf-hw.none{border-right-color:var(--sd-line);opacity:.75}
.stf-hw-h{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.stf-hw-st{font-size:.76rem;padding:.1rem .5rem;border-radius:99px;background:var(--sd-soft)}
.stf-hw-st.ok{background:rgba(23,182,124,.14);color:#0F7A53}
.stf-hw-st.wait{background:rgba(245,165,36,.16);color:#B45309}
.stf-hw-st.redo{background:rgba(239,68,68,.12);color:#B91C1C}
.stf-hw-m{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem;
  font-size:.8rem;color:var(--sd-ink-soft)}
.stf-hw-sc{font-weight:700;color:var(--sd-ink)}
.stf-hw-f{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.stf-hw-f a{font-size:.8rem;padding:.15rem .5rem;border-radius:8px;
  background:var(--sd-soft);color:var(--sd-brand);text-decoration:none}
.stf-hw-n,.stf-hw-t{margin:.4rem 0 0;font-size:.85rem}
.stf-hw-n{color:var(--sd-ink-soft)}
.stf-hw-t{color:var(--sd-ink);border-right:2px solid var(--sd-brand);padding-right:.5rem}

.stf-msg{margin-right:auto;padding:.45rem .8rem;border:1px solid var(--sd-line);
  border-radius:99px;background:var(--sd-card);color:var(--sd-ink);font:inherit;cursor:pointer}
.stf-msg:hover{background:var(--sd-soft);border-color:var(--sd-brand);color:var(--sd-brand)}

/* ═══════════════════════════════════════════════════════════
   📝 ارزشیابیِ توصیفی
   ═══════════════════════════════════════════════════════════ */
.ev-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}
.ev-term{display:flex;gap:.3rem;background:var(--sd-soft);padding:.2rem;border-radius:99px}
.ev-t{padding:.4rem .9rem;border:0;border-radius:99px;background:transparent;
  color:var(--sd-ink-soft);font:inherit;font-size:.88rem;cursor:pointer;white-space:nowrap}
.ev-t.on{background:var(--sd-card);color:var(--sd-ink);font-weight:700;
  box-shadow:0 1px 3px rgba(0,0,0,.08)}
.ev-prog{font-size:.88rem;color:var(--sd-ink-soft)}
.ev-prog b{color:var(--sd-brand);font-size:1.05rem}
.ev-print{margin-right:auto;padding:.45rem .9rem;border:1px solid var(--sd-line);
  border-radius:10px;background:var(--sd-card);color:var(--sd-ink);font:inherit;cursor:pointer}
.ev-print:hover{border-color:var(--sd-brand);color:var(--sd-brand)}

/*  نوارِ بچه‌ها — تیک یعنی کارنامه‌اش ذخیره شده */
.ev-chips{display:flex;gap:.35rem;overflow-x:auto;padding:.2rem .1rem .6rem;
  scrollbar-width:thin}
.ev-chip{flex:0 0 auto;padding:.35rem .7rem;border:1px solid var(--sd-line);
  border-radius:99px;background:var(--sd-card);color:var(--sd-ink-soft);
  font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}
.ev-chip.done{color:#0F7A53;border-color:rgba(23,182,124,.4);background:rgba(23,182,124,.07)}
.ev-chip.on{background:var(--sd-brand);border-color:var(--sd-brand);color:#fff;font-weight:700}

.ev-stu{border:1px solid var(--sd-line);border-radius:16px;background:var(--sd-card);padding:1rem}
.ev-stu-h{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;
  padding-bottom:.8rem;border-bottom:1px solid var(--sd-line)}
.ev-av{width:2.6rem;height:2.6rem;border-radius:50%;background:var(--sd-brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}
.ev-stu-h b{display:block;font-size:1.05rem}
.ev-stu-h span{font-size:.8rem;color:var(--sd-ink-soft)}
.ev-ok{margin-right:auto;font-size:.78rem;color:#0F7A53;background:rgba(23,182,124,.12);
  padding:.15rem .55rem;border-radius:99px;text-decoration:none}
.ev-none{color:var(--sd-ink-soft);font-size:.9rem;line-height:1.9}

.ev-subj{padding:.8rem 0;border-bottom:1px dashed var(--sd-line)}
.ev-subj:last-child{border-bottom:0;padding-bottom:0}
.ev-subj-h{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.ev-subj-h b{font-size:.98rem}
.ev-lv{margin-right:auto;padding:.3rem .5rem;border:1px solid var(--sd-line);
  border-radius:8px;background:var(--sd-card);color:var(--sd-ink);font:inherit;font-size:.85rem}
/*  ⚠️ دادهٔ کم باید به چشم بیاید */
.ev-subj.thin{background:rgba(245,165,36,.05);border-radius:10px;padding:.8rem;margin:.4rem 0}
.ev-warn{margin:0 0 .5rem;font-size:.82rem;color:#B45309}

.ev-txt{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--sd-line);
  border-radius:10px;background:var(--sd-bg,var(--sd-card));color:var(--sd-ink);
  font:inherit;font-size:.9rem;line-height:2;resize:vertical}
.ev-txt:focus{outline:0;border-color:var(--sd-brand)}
.ev-acts{display:flex;align-items:center;gap:.6rem;margin-top:.4rem}
.ev-reset{padding:.25rem .6rem;border:1px solid var(--sd-line);border-radius:8px;
  background:transparent;color:var(--sd-ink-soft);font:inherit;font-size:.78rem;cursor:pointer}
.ev-reset:hover{color:var(--sd-brand);border-color:var(--sd-brand)}
/*  ⚠️ دو عدد کنارِ هم در متنِ راست‌به‌چپ جابه‌جا می‌شوند.
    هر کدام span خودش را دارد و فاصله با gap می‌آید، نه با «·». */
.ev-ev{margin-right:auto;font-size:.78rem;color:var(--sd-ink-soft);
  display:inline-flex;gap:.6rem}
.ev-meta{display:flex;gap:.6rem}

/*  ⚠️ دکمه‌ی اصلی بزرگ — گوشی در دست، آخرِ وقتِ مدرسه */
.ev-foot{display:flex;gap:.5rem;margin-top:1rem;position:sticky;bottom:0;
  padding:.7rem 0;background:linear-gradient(transparent,var(--sd-bg,#fff) 30%)}
.ev-save{flex:1;padding:1rem;border:0;border-radius:14px;background:var(--sd-brand);
  color:#fff;font:inherit;font-weight:700;font-size:1rem;cursor:pointer}
.ev-save:disabled{opacity:.6}
.ev-skip{padding:1rem .9rem;border:1px solid var(--sd-line);border-radius:14px;
  background:var(--sd-card);color:var(--sd-ink-soft);font:inherit;font-size:.88rem;cursor:pointer}

/* ═══════════════════════════════════════════════════════════
   🤖 دستیارِ گفت‌وگویی
   ═══════════════════════════════════════════════════════════ */
.ai-note{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  font-size:.82rem;color:var(--sd-ink-soft);background:var(--sd-soft);
  padding:.5rem .8rem;border-radius:12px;margin-bottom:.7rem;line-height:1.9}
.ai-dot{width:.55rem;height:.55rem;border-radius:50%;background:#9aa;flex:none}
.ai-dot.on{background:#17B67C;box-shadow:0 0 0 3px rgba(23,182,124,.18)}

.ai-log{min-height:9rem;max-height:52vh;overflow-y:auto;display:flex;
  flex-direction:column;gap:.55rem;padding:.2rem}
.ai-t{display:flex;flex-direction:column;max-width:88%}
.ai-t.me{align-self:flex-start;align-items:flex-start}
.ai-t.it{align-self:flex-end;align-items:flex-end}
.ai-b{padding:.6rem .85rem;border-radius:16px;font-size:.92rem;line-height:2;
  white-space:pre-wrap;word-break:break-word}
.ai-t.me .ai-b{background:var(--sd-brand);color:#fff;border-bottom-right-radius:5px}
.ai-t.it .ai-b{background:var(--sd-soft);color:var(--sd-ink);border-bottom-left-radius:5px}
.ai-src{font-size:.7rem;color:var(--sd-ink-soft);margin-top:.15rem}
.ai-think{letter-spacing:.2rem;animation:aiBlink 1s ease-in-out infinite}
@keyframes aiBlink{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ai-think{animation-duration:3s}}

.ai-chips{display:flex;gap:.35rem;overflow-x:auto;padding:.6rem .1rem;scrollbar-width:thin}
.ai-chip{flex:0 0 auto;padding:.35rem .7rem;border:1px solid var(--sd-line);
  border-radius:99px;background:var(--sd-card);color:var(--sd-ink-soft);
  font:inherit;font-size:.82rem;cursor:pointer;white-space:nowrap}
.ai-chip:hover{border-color:var(--sd-brand);color:var(--sd-brand)}

.ai-bar{display:flex;gap:.4rem;align-items:center;position:sticky;bottom:0;
  padding:.6rem 0;background:linear-gradient(transparent,var(--sd-bg,#fff) 35%)}
.ai-in,#ai-in{flex:1;min-width:0;padding:.75rem .9rem;border:1px solid var(--sd-line);
  border-radius:99px;background:var(--sd-card);color:var(--sd-ink);font:inherit;font-size:.92rem}
#ai-in:focus{outline:0;border-color:var(--sd-brand)}
/*  ⚠️ دکمه‌ی میکروفون بزرگ — گوشی در دست، وسطِ کلاس */
.ai-mic,.ai-send{flex:none;width:2.9rem;height:2.9rem;border-radius:50%;border:0;
  font-size:1.15rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ai-mic{background:var(--sd-soft);color:var(--sd-ink)}
.ai-mic.on{background:#EF4444;color:#fff;animation:aiPulse 1.1s ease-in-out infinite}
@keyframes aiPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.45)}50%{box-shadow:0 0 0 .55rem rgba(239,68,68,0)}}
@media (prefers-reduced-motion:reduce){.ai-mic.on{animation:none}}
.ai-send{background:var(--sd-brand);color:#fff}

/* ═══════════════════════════════════════════════════════════
   📊 عددهای کلاس
   ⚠️ بعد از یافته‌هاست — یافته فوری است، عدد مرجع.
   ═══════════════════════════════════════════════════════════ */
.ist{margin-top:1.2rem;border:1px solid var(--sd-line);border-radius:16px;
  background:var(--sd-card);overflow:hidden}
.ist-h{padding:.7rem 1rem;background:var(--sd-soft);font-weight:700;font-size:.95rem}
.ist-b{padding:.9rem 1rem;border-top:1px solid var(--sd-line)}
.ist-b>b{display:block;font-size:.9rem;margin-bottom:.15rem}
.ist-note{display:block;font-size:.76rem;color:var(--sd-ink-soft);margin-bottom:.6rem}

.ist-row{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;font-size:.86rem}
.ist-name{flex:0 0 5.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ist-bar{flex:1;min-width:0;height:.6rem;border-radius:99px;background:var(--sd-soft);overflow:hidden}
.ist-bar i{display:block;height:100%;border-radius:99px}
.ist-bar i.ok{background:#17B67C}
.ist-bar i.mid{background:#F5A524}
.ist-bar i.bad{background:#EF4444}
.ist-val{flex:0 0 2.2rem;text-align:left;font-weight:700}
/*  ⚠️ تعدادِ داده کنارِ هر عدد — «۱۸ از دو نمره» با «۱۸ از بیست» یکی نیست */
.ist-n{flex:0 0 1.8rem;text-align:left;font-size:.72rem;color:var(--sd-ink-soft)}

.ist-big{font-size:1.5rem;font-weight:700;color:var(--sd-brand);line-height:1.4}
.ist-big span{display:block;font-size:.8rem;font-weight:400;color:var(--sd-ink-soft)}
.ist-behind{margin-top:.6rem;font-size:.82rem;line-height:2}
.ist-behind b{color:#B45309;margin-left:.3rem}
.ist-behind span{display:inline-block;background:rgba(245,165,36,.12);
  padding:.1rem .5rem;border-radius:99px;margin:0 .15rem}

/* ── پیوستِ معلم روی تکلیف (مهر ۱۴۰۵) ────────────────────
   ⚠️ بچه باید *اول* کاربرگ را بگیرد و بعد کارش را بفرستد، پس این
   جعبه پیش از فایل‌های خودش و با رنگِ متفاوت می‌آید.            */
.hws-tfiles, .hwt-files.own{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin:10px 0; padding:10px 12px; border-radius:14px;
  background:rgba(78,139,255,.08); border:1px solid rgba(78,139,255,.22);
}
.hws-tfiles > b, .hwt-files.own > b{ font-size:.78rem; color:#2B66D9; font-weight:800 }
.hws-tfiles .hws-file, .hwt-files.own .hwt-file{
  display:inline-flex; align-items:center; gap:6px; min-height:36px;
  padding:0 12px; border-radius:99px; text-decoration:none;
  background:var(--card,#fff); border:1px solid rgba(78,139,255,.3);
  color:#2B66D9; font-size:.78rem; font-weight:700;
}
.hwt-fhint{ display:block; margin-top:5px; font-size:.7rem; color:var(--text2,#94a3b8); line-height:1.7 }

/* ── تکلیف‌های قدیمی داخلِ بخشِ تازه ─────────────────────── */
.hws-legacy{ margin-top:22px }
.hws-legacy-h{
  font-size:.8rem; font-weight:800; color:var(--text2,#94a3b8);
  padding:0 2px 8px; border-bottom:1px dashed var(--border,rgba(15,23,42,.14)); margin-bottom:12px;
}
.hws-old{
  padding:12px 14px; border-radius:14px; margin-bottom:10px;
  background:var(--bg3,#f5f7fb); border:1px solid var(--border,rgba(15,23,42,.08));
}
.hws-old b{ display:block; font-size:.88rem }
.hws-old p{ margin:5px 0 0; font-size:.8rem; line-height:1.8; color:var(--text2,#64748b) }
.hws-old img{ display:block; max-width:100%; border-radius:10px; margin-top:8px }
.hws-old small{ display:block; margin-top:7px; font-size:.7rem; color:var(--text2,#94a3b8) }
