/* ═══════════════════════════════════════════════
   ENGLISH VISION — SHARED STYLES (editorial palette)
   ═══════════════════════════════════════════════ */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Editorial palette — matching landing page */
  --ink:#1A1814;
  --ink-soft:#3D3530;
  --ink-light:#6B6058;
  --ink-faint:#A39689;
  --paper:#F8F4ED;
  --paper-warm:#F2EBE0;
  --paper-cream:#EDE4D3;
  
  /* Default accent (override per grade) */
  --primary:#C8541A;
  --primary-light:#D87038;
  --primary-soft:#E89A7A;
  --primary-pale:#FAD0AD;
  --primary-ghost:#FFE8D6;
  --accent:#C8541A;
  --accent-light:#FFE8D6;
  --highlight:#D4A04A;
  --highlight-glow:#F4D89B;
  --success:#5C7A3F;
  --success-bg:#D9E3CC;
  --success-soft:#7E9F60;
  --danger:#A32D2D;
  --danger-bg:#FCEBEB;
  
  /* Text aliases for compat with lesson-render.js */
  --text-dark:#1A1814;
  --text-mid:#3D3530;
  --text-soft:#6B6058;
  --border:rgba(26,24,20,0.12);
  --border-light:rgba(26,24,20,0.08);
  --bg:#fff;
  --bg-soft:#F8F4ED;
  
  --radius:12px;
  --radius-lg:18px;
  --shadow:0 4px 16px -8px rgba(26,24,20,0.15);
  --shadow-lg:0 12px 32px -12px rgba(26,24,20,0.22);
  
  --font-fa:'Estedad','Vazirmatn',Tahoma,sans-serif;
  --font-en:'Playfair Display',Georgia,serif;
  --font-display:'Playfair Display',Georgia,serif;
}

body{
  font-family:var(--font-fa);
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.7;
  background-image:
    radial-gradient(at 20% 10%, rgba(212,160,74,0.05) 0%, transparent 50%),
    radial-gradient(at 80% 30%, rgba(31,58,95,0.04) 0%, transparent 50%);
}

a{text-decoration:none;color:inherit}

/* ─── TOP NAVIGATION ─── */
.top-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(248,244,237,0.92);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--border-light);
}
.top-nav-inner{
  max-width:1280px;margin:0 auto;
  padding:.85rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.top-nav-brand{
  display:flex;align-items:center;gap:.65rem;
  font-family:var(--font-display);font-weight:700;
  font-size:1.15rem;color:var(--ink);direction:ltr;
  flex-shrink:0;
}
.top-nav-brand .brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;
  background:var(--ink);color:var(--paper);
  border-radius:6px;font-weight:900;font-size:.9rem;
  transform:rotate(-3deg);
  box-shadow:2px 2px 0 var(--primary);
  flex-shrink:0;
}
.top-nav-brand .brand-en{
  font-family:var(--font-display);font-weight:600;
  font-size:.85rem;color:var(--ink-light);direction:ltr;
}
.top-nav-links{display:flex;gap:.3rem;align-items:center}
.top-nav-link{
  padding:.5rem .9rem;color:var(--ink-soft);font-size:.85rem;
  border-radius:8px;transition:all .15s;cursor:pointer;
  border:none;background:transparent;font-family:var(--font-fa);
  white-space:nowrap;font-weight:500;
}
.top-nav-link:hover{background:var(--paper-cream);color:var(--primary)}
.top-nav-link.active{background:var(--primary);color:var(--paper);font-weight:600}
.top-nav-actions{display:flex;align-items:center;gap:.5rem}
.top-nav-action{
  padding:.45rem .85rem;background:var(--paper-cream);
  border:1px solid var(--border-light);
  border-radius:99px;font-size:.78rem;color:var(--ink-soft);cursor:pointer;
  font-family:var(--font-fa);transition:all .2s;
  display:flex;align-items:center;gap:.35rem;white-space:nowrap;
}
.top-nav-action:hover{border-color:var(--primary);color:var(--primary)}

/* Mobile menu toggle */
.nav-menu-toggle{
  display:none;
  background:transparent;border:1px solid var(--border-light);
  width:38px;height:38px;border-radius:8px;cursor:pointer;
  align-items:center;justify-content:center;
  color:var(--ink);transition:all .2s;margin-inline-start:auto;flex-shrink:0;
}
.nav-menu-toggle:hover{border-color:var(--primary);color:var(--primary)}
.nav-menu-toggle svg{width:18px;height:18px}

/* ─── HERO HEADER (page-header) ─── */
.page-header{
  padding:3rem 2rem 2.5rem;
  position:relative;overflow:hidden;
}
.page-header::before{
  content:'';position:absolute;
  top:-80px;left:-80px;
  width:380px;height:380px;
  background:radial-gradient(circle, var(--primary-ghost) 0%,transparent 70%);
  filter:blur(50px);opacity:.7;pointer-events:none;
}
.page-header::after{
  content:'';position:absolute;
  bottom:-50px;right:-50px;
  width:280px;height:280px;
  background:radial-gradient(circle, var(--highlight-glow) 0%,transparent 70%);
  filter:blur(40px);opacity:.5;pointer-events:none;
}
.page-header-inner{
  max-width:1280px;margin:0 auto;
  position:relative;z-index:1;
}

.breadcrumb{
  display:flex;align-items:center;gap:.5rem;
  font-size:.85rem;color:var(--ink-light);
  margin-bottom:1.25rem;flex-wrap:wrap;
}
.breadcrumb .sep{opacity:.4}
.breadcrumb a{
  color:var(--ink-light);cursor:pointer;
  transition:color .2s;
}
.breadcrumb a:hover{color:var(--primary)}
.breadcrumb .current{color:var(--ink);font-weight:600}

.page-tag{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--paper-cream);
  padding:.4rem 1rem;border-radius:99px;
  font-size:.78rem;color:var(--ink-soft);font-weight:500;
  margin-bottom:1rem;
  border:1px solid var(--border-light);
}
.page-tag::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--primary);
}

.page-title-en{
  font-family:var(--font-display);
  font-size:2.4rem;font-weight:700;
  color:var(--primary);
  direction:ltr;text-align:right;
  letter-spacing:-0.02em;line-height:1.15;
  margin-bottom:.3rem;
}
.page-title-fa{
  font-family:var(--font-fa);font-weight:700;
  font-size:1.4rem;color:var(--ink);
  margin-bottom:.85rem;
}

.page-meta{
  display:flex;gap:1rem;flex-wrap:wrap;
  font-size:.82rem;color:var(--ink-light);
  margin-top:1rem;
}
.page-meta-item{display:flex;align-items:center;gap:.4rem}
.page-meta-item svg{width:14px;height:14px}

/* ─── SECTION CARDS ─── */
.section-card{
  background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  border:1px solid var(--border-light);
  overflow:hidden;margin-bottom:1.5rem;
}
.section-card-head{
  padding:1.25rem 1.5rem;
  border-bottom:1px solid var(--border-light);
}
.section-card-head h2{
  font-family:var(--font-display);font-size:1.3rem;font-weight:700;
  color:var(--ink);direction:ltr;text-align:left;
}
.section-card-head .head-fa{
  font-size:.88rem;color:var(--ink-light);
  font-weight:500;margin-top:.2rem;
}
.section-card-body{padding:1.5rem}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  padding:.7rem 1.25rem;border:none;border-radius:8px;cursor:pointer;
  font-family:var(--font-fa);font-size:.85rem;font-weight:500;
  transition:all .2s;
}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{
  background:var(--primary);
  transform:translateY(-1px);
  box-shadow:var(--shadow);
}
.btn-outline{
  background:#fff;border:1px solid var(--border);color:var(--ink-soft);
}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}

/* ─── TOAST ─── */
.toast{
  position:fixed;bottom:5rem;left:50%;transform:translateX(-50%);
  background:var(--success);color:#fff;
  padding:.7rem 1.4rem;border-radius:99px;
  z-index:400;font-size:.85rem;
  display:none;box-shadow:var(--shadow-lg);
}
.toast.show{display:block;animation:fadeIn .25s}
@keyframes fadeIn{
  from{opacity:0;transform:translateX(-50%) translateY(8px)}
  to{opacity:1;transform:translateX(-50%) translateY(0)}
}

/* ─── RESPONSIVE ─── */
@media (max-width:900px){
  .page-header{padding:2rem 1.25rem 2rem}
  .page-title-en{font-size:1.85rem}
}

@media (max-width:768px){
  .top-nav-inner{padding:.7rem 1rem;gap:.65rem}
  .top-nav-brand{font-size:1.05rem;gap:.45rem}
  .top-nav-brand .brand-mark{width:30px;height:30px;font-size:.82rem}
  .top-nav-brand .brand-en{display:none}
  
  .top-nav-actions{display:none}
  .nav-menu-toggle{display:flex}
  
  .top-nav-links{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    background:#fff;
    border-bottom:1px solid var(--border-light);
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    padding:.5rem;flex-direction:column;gap:.2rem;
    z-index:49;
  }
  .top-nav-links.open{display:flex}
  .top-nav-link{
    padding:.7rem 1rem;font-size:.9rem;
    border-radius:6px;text-align:right;
    border:1px solid var(--border-light);
  }
  
  .page-header{padding:1.75rem 1rem 1.75rem}
  .page-title-en{font-size:1.5rem;text-align:right}
  .page-title-fa{font-size:1.1rem}
  .breadcrumb{font-size:.78rem;gap:.35rem;margin-bottom:.85rem}
  .page-tag{font-size:.72rem;padding:.3rem .85rem;margin-bottom:.7rem}
  .page-meta{gap:.85rem;font-size:.75rem;margin-top:.85rem}
}

@media (max-width:420px){
  .top-nav-inner{padding:.6rem .85rem}
  .top-nav-brand{font-size:.95rem}
  .page-header{padding:1.5rem .9rem 1.5rem}
  .page-title-en{font-size:1.3rem}
  .page-title-fa{font-size:1rem}
}

/* Body — flat, no gradients */

/* Navbar */

/* Override all gradient backgrounds in dark mode */

/* Hero shapes & decorations */

/* Cards in dark mode - solid bg */

/* Sticky notes in dark mode - subtler, less pastel */

/* Buttons */

/* Chat bubbles */

/* Features (dark section gets even darker) */

/* ─── Body ─── */

/* ─── Navbar / Top nav ─── */

/* ─── KILL ALL GRADIENTS in dark mode ─── */

/* All gradient backgrounds → flat surface */

/* Sidebar progress fills — keep solid color */

/* ─── White backgrounds → surface ─── */

/* Toggle pills, buttons */

/* Sidebar items */

/* Hero shapes pure-color buttons in light mode */

/* Cards with hover state */

/* Sticky notes — keep colored but dimmer */

/* Primary CTA */

/* Chat bubbles */

/* In-content phrase highlights */

/* Word popup */

/* Features dark section gets deeper */

/* ─── Theme toggle button ─── */


/* ─── Audio Bar (lazy-load player) ─── */
.audio-bar{display:flex;align-items:center;gap:.85rem;padding:.7rem 1rem;background:#fff;border:1px solid var(--border-light);border-radius:100px;margin-bottom:1.25rem;box-shadow:0 2px 8px rgba(0,0,0,0.04)}
.audio-bar-empty,.audio-bar-error{opacity:.55}
.audio-bar-empty .audio-play,.audio-bar-error .audio-play{background:var(--ink-faint);cursor:not-allowed}
.audio-bar-error .time{color:var(--ink-light);font-size:.7rem}
.audio-bar .audio-play{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.audio-bar .audio-play:hover:not(:disabled){background:var(--primary-light);transform:scale(1.05)}
.audio-bar .progress{flex:1;height:4px;background:var(--border-light);border-radius:99px;overflow:hidden;cursor:pointer}
.audio-bar .progress-fill{height:100%;width:0%;background:var(--primary);border-radius:99px;transition:width .1s linear}
.audio-bar .time{font-size:.75rem;color:var(--ink-light);font-family:var(--font-en);min-width:80px;text-align:left;direction:ltr}

/* ─── Image Box (lazy-load images) ─── */
.img-box{display:block;margin:1.25rem auto;border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-warm);border:1px solid var(--border-light);box-shadow:var(--shadow);max-width:100%;position:relative}
.img-box.img-loading{min-height:120px;background:linear-gradient(110deg,var(--paper-warm) 8%,var(--paper-cream) 18%,var(--paper-warm) 33%);background-size:200% 100%;animation:img-shimmer 1.4s linear infinite}
.img-box.img-error{padding:1rem;text-align:center;color:var(--ink-faint);font-size:.85rem;font-family:var(--font-fa)}
.img-box img{display:block;width:100%;height:auto;object-fit:contain}
@keyframes img-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Image sizes — adapt to context */
.img-box.img-sm{max-width:280px}      /* small icons, single objects */
.img-box.img-md{max-width:420px}      /* most images, default */
.img-box.img-lg{max-width:560px}      /* wide scenes, multi-people */
.img-box.img-square{max-width:300px;aspect-ratio:1/1}
.img-box.img-square img{width:100%;height:100%;object-fit:cover}

/* Image caption */
.img-box .img-caption{padding:.5rem .85rem;font-size:.8rem;color:var(--ink-soft);text-align:center;background:var(--paper-warm);font-family:var(--font-fa);border-top:1px solid var(--border-light)}
.img-box .img-caption.en{font-family:var(--font-en);direction:ltr}

/* Image grid — for multi-image layouts (vocab, practice scenes) */
.img-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.85rem;margin:1.25rem 0}
.img-grid .img-box{margin:0}
.img-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.img-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.img-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:600px){
  .img-grid.cols-3,.img-grid.cols-4{grid-template-columns:repeat(2,1fr)}
}

/* Image label card (image + word + meaning - for photo dict, vocab) */
.img-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.img-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.img-card .img-card-image{width:100%;aspect-ratio:4/3;background:var(--paper-warm);overflow:hidden;position:relative}
.img-card .img-card-image img{width:100%;height:100%;object-fit:cover}
.img-card .img-card-body{padding:.75rem .85rem}
.img-card .img-card-word{font-family:var(--font-en);font-weight:600;font-size:1.05rem;color:var(--ink);direction:ltr;text-align:left;display:flex;align-items:center;gap:.4rem}
.img-card .img-card-ipa{font-family:var(--font-en);font-size:.78rem;color:var(--ink-light);direction:ltr;text-align:left;margin-top:.15rem}
.img-card .img-card-fa{font-family:var(--font-fa);font-size:.9rem;color:var(--ink-soft);margin-top:.35rem;text-align:right}

/* ─── TTS Button (Text-to-Speech) ─── */
.tts-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--paper-warm);border:1px solid var(--border-light);color:var(--primary);cursor:pointer;transition:all .15s;vertical-align:middle;padding:0;flex-shrink:0}
.tts-btn:hover{background:var(--primary);color:#fff;transform:scale(1.08)}
.tts-btn:active{transform:scale(0.95)}
.tts-btn.tts-speaking{background:var(--primary);color:#fff;animation:tts-pulse 1s ease-in-out infinite}
.tts-btn.tts-sm{width:22px;height:22px}
.tts-btn.tts-sm svg{width:11px;height:11px}
.tts-btn svg{width:14px;height:14px}
@keyframes tts-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}

/* When TTS button is inline next to text */
.tts-inline{display:inline-flex;align-items:center;gap:.5rem;direction:ltr}
.tts-inline .tts-text{flex:1}

/* ─── Photo Dictionary ─── */
.photo-dict-section{margin-top:2rem}
.photo-dict-section h3{font-family:var(--font-display);font-size:1.4rem;color:var(--ink);margin-bottom:1rem;direction:ltr;text-align:left}
.photo-dict-section .photo-dict-fa{font-family:var(--font-fa);font-size:.95rem;color:var(--ink-light);margin-bottom:1.25rem}
.photo-dict-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}
@media (max-width:600px){.photo-dict-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}}

/* ─── Match / Connect (drag-drop replacement) ─── */
.match-task{margin:1rem 0}
.match-instructions{font-family:var(--font-fa);font-size:.9rem;color:var(--ink-soft);margin-bottom:1rem;padding:.65rem .85rem;background:var(--paper-warm);border-right:3px solid var(--primary);border-radius:6px}
.match-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:.6rem .8rem;align-items:center}
@media (max-width:520px){.match-grid{grid-template-columns:1fr auto 1fr;gap:.5rem .4rem}}
.match-left,.match-right{padding:.6rem .85rem;background:#fff;border:1.5px solid var(--border-light);border-radius:8px;font-family:var(--font-en);direction:ltr;text-align:left;cursor:pointer;transition:all .15s;font-size:.95rem}
.match-left{text-align:right;direction:rtl;font-family:var(--font-fa)}
.match-left:hover,.match-right:hover{border-color:var(--primary);background:var(--primary-ghost)}
.match-left.selected,.match-right.selected{border-color:var(--primary);background:var(--primary-pale);box-shadow:0 0 0 3px var(--primary-ghost)}
.match-left.matched,.match-right.matched{background:var(--success-bg);border-color:var(--success);color:var(--success);cursor:default}
.match-left.wrong,.match-right.wrong{background:var(--danger-bg);border-color:var(--danger);animation:shake .35s}
.match-connector{font-size:1.1rem;color:var(--ink-faint);text-align:center}
.match-left.matched .match-connector,.match-right.matched .match-connector{color:var(--success)}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* ─── Circle/Select (for circling answers like months) ─── */
.circle-task{margin:1rem 0}
.circle-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.circle-chip{padding:.5rem 1rem;background:#fff;border:1.5px solid var(--border-light);border-radius:100px;font-family:var(--font-en);font-size:.9rem;cursor:pointer;transition:all .15s;direction:ltr;user-select:none}
.circle-chip:hover{border-color:var(--primary);transform:translateY(-1px)}
.circle-chip.circled{background:var(--primary-ghost);border:2.5px solid var(--primary);color:var(--primary);font-weight:600;transform:scale(1.04)}
.circle-chip.circled::before{content:'';position:absolute}


/* ─── Practice Statements (intro list-style) ─── */
.practice-statements{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:linear-gradient(135deg,#FFF8E7 0%,#FFF1D6 100%);border:1px solid #F4D89B;border-radius:var(--radius-lg)}
.practice-statement{display:flex;align-items:center;gap:.65rem;padding:.65rem .85rem;background:#fff;border:1px solid var(--border-light);border-radius:8px;transition:transform .15s}
.practice-statement:hover{transform:translateX(-2px);box-shadow:var(--shadow)}
.practice-statement-content{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.practice-statement-en{font-family:var(--font-en);font-size:.95rem;direction:ltr;text-align:left;color:var(--text-dark);line-height:1.5}
.practice-statement-fa{font-family:var(--font-fa);font-size:.8rem;color:var(--text-soft);text-align:right;line-height:1.5;direction:rtl}

/* ─── Sort name-to-bucket (drag-drop replacement) ─── */
.sort-buckets{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:1rem 0}
@media (max-width:520px){.sort-buckets{grid-template-columns:1fr}}
.sort-bucket{background:var(--paper-warm);border:2px dashed var(--border-light);border-radius:var(--radius-lg);padding:1rem;min-height:140px}
.sort-bucket.sort-girl{background:linear-gradient(135deg,#FFF0F5 0%,#FFE8EF 100%);border-color:#F5B5C5}
.sort-bucket.sort-boy{background:linear-gradient(135deg,#F0F5FF 0%,#E8EFFF 100%);border-color:#B5C5F5}
.sort-bucket-head{font-family:var(--font-en);font-size:.95rem;font-weight:600;text-align:center;color:var(--ink);direction:ltr;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,0.08)}
.sort-bucket-list{display:flex;flex-wrap:wrap;gap:.4rem;min-height:50px}
.sort-bucket-list:empty::before{content:'هیچ اسمی اضافه نشده';color:var(--ink-faint);font-family:var(--font-fa);font-size:.78rem;text-align:center;width:100%;display:block;padding:1rem 0}
.sort-name-pool{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);margin-top:.5rem}
.sort-name-pool:empty::before{content:'همه اسم‌ها دسته‌بندی شدن ✓';color:var(--success);font-family:var(--font-fa);font-size:.9rem;text-align:center;width:100%;display:block;padding:.5rem 0}
.sort-name-chip{position:relative;padding:.5rem .9rem;background:#fff;border:1.5px solid var(--border-light);border-radius:100px;font-family:var(--font-en);font-size:.9rem;cursor:pointer;transition:all .15s;direction:ltr}
.sort-name-chip:hover{border-color:var(--primary);transform:translateY(-1px)}
.sort-name-chip.picker-open{z-index:200}
.sort-name-chip.placed-girl{background:#FFE8EF;border-color:#E89DB0;color:#A8546C}
.sort-name-chip.placed-boy{background:#E8EFFF;border-color:#9DAEE8;color:#5468A8}
.sort-picker{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--border-light);border-radius:10px;box-shadow:0 12px 28px -8px rgba(0,0,0,0.28),0 4px 10px -4px rgba(0,0,0,0.18);display:flex;gap:.35rem;padding:.4rem;z-index:200;white-space:nowrap}
.sort-picker::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-bottom-color:#fff;filter:drop-shadow(0 -1px 0 var(--border-light))}
.sort-picker button{padding:.45rem .8rem;background:transparent;border:1px solid var(--border-light);border-radius:6px;cursor:pointer;font-family:var(--font-fa);font-size:.85rem;white-space:nowrap;transition:all .15s}
.sort-picker button:hover{background:var(--primary-ghost);border-color:var(--primary);color:var(--primary)}

/* ─── Sound activity circle block ─── */
.sl-circle-block{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);padding:.85rem 1rem;margin-top:.5rem}

/* RTL/LTR direction fixes */
.tts-inline{direction:ltr}
.practice-side .tts-btn{flex-shrink:0}
.conv-line .tts-btn{margin-left:auto;flex-shrink:0}

/* ─── Table-fill ─── */
.wb-table-fill-wrap{overflow-x:auto;margin:1rem 0}
.wb-table-fill{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border-light)}
.wb-table-fill th{background:var(--paper-warm);padding:.7rem .85rem;font-family:var(--font-en);font-weight:600;text-align:left;direction:ltr;color:var(--ink);font-size:.88rem;border-bottom:1px solid var(--border-light)}
.wb-table-fill td{padding:.5rem .65rem;border-top:1px solid var(--border-light)}
.wb-table-fill .row-num{font-weight:600;color:var(--text-mid);width:40px;text-align:center;background:var(--paper-cream)}
.wb-table-fill input{width:100%;padding:.5rem .65rem;border:1px solid var(--border-light);border-radius:6px;font-family:var(--font-en);direction:ltr;font-size:.9rem;background:transparent}
.wb-table-fill input:focus{outline:none;border-color:var(--primary);background:var(--primary-ghost)}

/* ─── Martyr names ─── */
.martyr-names-list{display:flex;flex-direction:column;gap:.65rem;margin:1rem 0}
.martyr-name-row{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);direction:ltr;font-family:var(--font-en)}
.martyr-prefix,.martyr-suffix{font-weight:600;color:var(--ink);font-size:.95rem}
.martyr-name-row input{flex:1;padding:.45rem .7rem;border:1.5px solid var(--border-light);border-radius:6px;text-align:center;font-family:var(--font-en);font-size:.9rem}
.martyr-name-row input:focus{outline:none;border-color:var(--primary);background:var(--primary-ghost)}
.martyr-name-row input.answer-correct{background:var(--success-bg);border-color:var(--success);color:var(--success)}
.martyr-name-row input.answer-empty{background:var(--paper-warm);border-color:var(--highlight);color:var(--highlight);font-style:italic}

/* ─── Family names grid ─── */
.family-names-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1rem 0}
@media (max-width:600px){.family-names-grid{grid-template-columns:repeat(2,1fr)}}
.family-name-slot{padding:.55rem .7rem;border:1.5px solid var(--border-light);border-radius:8px;background:#fff;font-family:var(--font-en);direction:ltr;text-align:center;font-size:.9rem}
.family-name-slot:focus{outline:none;border-color:var(--primary);background:var(--primary-ghost)}

/* ─── Match-line (interactive connect) ─── */
.match-line-task{margin:1rem 0}
.match-line-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1rem}
@media (max-width:600px){.match-line-cols{grid-template-columns:1fr}}
.match-line-col{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);padding:.85rem}
.match-line-col-head{font-family:var(--font-fa);font-size:.85rem;font-weight:600;color:var(--ink);padding-bottom:.5rem;border-bottom:1px solid var(--border-light);margin-bottom:.6rem;text-align:center}
.match-line-numbers .number-grid,.months-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem}
.months-grid{grid-template-columns:repeat(3,1fr);gap:.4rem}
.ml-item{padding:.5rem .7rem;background:var(--paper-warm);border:1.5px solid var(--border-light);border-radius:6px;cursor:pointer;transition:all .15s;font-family:var(--font-fa);font-size:.85rem;text-align:center;user-select:none}
.ml-item.ml-right.num-cell,.ml-item.ml-right.month-cell{font-family:var(--font-en);direction:ltr}
.ml-item:hover{border-color:var(--primary);background:var(--primary-ghost)}
.ml-item.selected{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ghost)}
.ml-item.connected{background:var(--success-bg);border-color:var(--success);color:var(--success);font-weight:500}
.ml-item.wrong{background:var(--danger-bg);border-color:var(--danger);animation:shake .35s}
.ml-left{display:block;margin-bottom:.4rem;padding:.65rem .85rem;background:#fff;border:1.5px solid var(--border-light);text-align:right}
.match-line-pairs-shown{background:#fff;border:1px dashed var(--border-light);border-radius:var(--radius);padding:.85rem 1rem;margin-top:.85rem}
.ml-shown-head{font-family:var(--font-fa);font-size:.85rem;color:var(--text-mid);margin-bottom:.5rem}
.ml-shown-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.65rem;min-height:30px}
.ml-shown-list:empty::before{content:'هنوز تطابقی ایجاد نکردی';color:var(--ink-faint);font-family:var(--font-fa);font-size:.78rem;text-align:center;display:block}
.ml-shown-pair{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--success-bg);border-radius:6px;font-size:.85rem}
.ml-shown-left{flex:1;font-family:var(--font-fa);text-align:right;color:var(--success)}
.ml-shown-right{font-family:var(--font-en);direction:ltr;color:var(--success);font-weight:500;min-width:80px;text-align:left}
.ml-shown-arrow{color:var(--success)}
.ml-shown-del{margin-right:auto;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid var(--danger);color:var(--danger);cursor:pointer;font-size:.85rem;line-height:1}
.ml-shown-del:hover{background:var(--danger);color:#fff}
.ml-clear-btn{padding:.4rem 1rem;background:transparent;border:1px solid var(--border-light);border-radius:6px;font-family:var(--font-fa);font-size:.78rem;color:var(--text-mid);cursor:pointer}
.ml-clear-btn:hover{background:var(--paper-warm);color:var(--ink)}

/* ─── Job image grid for image-job-match ─── */
.job-image-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
@media (max-width:480px){.job-image-grid{grid-template-columns:repeat(2,1fr)}}
.job-image-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.65rem .3rem;text-align:center;min-height:80px}
.job-image-cell .job-icon{font-size:1.8rem}
.job-image-cell .job-fa{font-size:.78rem;font-family:var(--font-fa)}

/* ─── Visual Panel (colors gallery, images gallery, clocks, foods) ─── */
.visual-panel{margin-top:1.5rem;padding:1.25rem 1rem;background:linear-gradient(135deg,#FFF8E7 0%,#FFF1D6 100%);border:1px solid #F4D89B;border-radius:var(--radius-lg)}
.visual-panel-head{text-align:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px dashed rgba(0,0,0,0.1)}
.visual-panel-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--ink);direction:ltr}
.visual-panel-group{margin-bottom:1.25rem}
.visual-panel-group:last-child{margin-bottom:0}
.visual-panel-group-label{font-family:var(--font-en);font-size:.9rem;font-weight:600;color:var(--ink);margin-bottom:.75rem;text-align:center;padding:.35rem 1rem;background:rgba(255,255,255,0.6);border-radius:100px;display:inline-block;width:auto}

/* Colors grid */
.visual-colors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem}
@media (max-width:480px){.visual-colors-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}
.visual-color-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;transition:transform .15s,box-shadow .15s}
.visual-color-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.visual-color-swatch{height:60px;width:100%;border-bottom:1px solid var(--border-light)}
.visual-color-info{padding:.55rem .7rem}

/* Images grid */
.visual-images-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}
@media (max-width:480px){.visual-images-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}
.visual-image-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;transition:transform .15s,box-shadow .15s}
.visual-image-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.visual-image-card .img-box{margin:0;border-radius:0;border:none;border-bottom:1px solid var(--border-light);max-width:100%}
.visual-image-card .img-box.img-square{max-width:100%}
.visual-image-info{padding:.55rem .7rem}

/* Item labels */
.visual-item-en{font-family:var(--font-en);font-size:.95rem;font-weight:600;color:var(--ink);direction:ltr;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.visual-item-fa{font-family:var(--font-fa);font-size:.78rem;color:var(--ink-soft);text-align:right;margin-top:.2rem}

/* Clock special styling */
.visual-clock-card .visual-color-swatch{height:90px;display:flex;align-items:center;justify-content:center;background:#fff;font-family:var(--font-en);font-size:1.5rem;font-weight:700;color:var(--ink)}

/* ─── Visual Clocks ─── */
.visual-clocks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.85rem;justify-items:center}
@media (max-width:480px){.visual-clocks-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}}
.visual-clock-card{display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);padding:.65rem;width:100%;max-width:130px}
.clock-svg{width:100%;height:auto;max-width:90px;display:block;margin:0 auto .5rem}
.visual-clock-label{display:flex;align-items:center;gap:.3rem;justify-content:center;font-family:var(--font-en);font-size:.78rem;color:var(--ink);direction:ltr}

/* ─── Conversation Image ─── */
.conv-image-wrap{display:flex;justify-content:center;margin:1rem 0 1.5rem}
.conv-image-wrap .img-box{margin:0;max-width:560px;width:100%}
.conv-image-wrap .img-box img{max-height:340px;object-fit:cover}
@media (max-width:600px){
  .conv-image-wrap .img-box img{max-height:240px}
}

/* Letter TTS button styling */
.letter-card .letter-tts{background:var(--paper-warm);border-color:var(--primary-pale)}
.letter-card .letter-tts:hover{background:var(--primary);color:#fff}

/* ════════════════════════════════════════════════════════════
   STANDARD RTL/LTR DIRECTION — FINAL OVERRIDE
   انگلیسی: چپ‌چین (LTR) — فارسی: راست‌چین (RTL)
   این بلوک باید آخرین بلوک فایل باشه تا بقیه رو override کنه
   ════════════════════════════════════════════════════════════ */

/* ── ENGLISH CONTENT → LTR, left-aligned ── */
.conv-en, .conv-content, .conv-card,
.practice-side, .practice-q, .practice-a,
.practice-statement-en, .practice-statement,
.vocab-word, .vocab-example, .vocab-ipa, .vocab-pos,
.grammar-table, .grammar-table th, .grammar-table td,
.grammar-table-title, .grammar-example-en,
.melody-text, .melody-example-row, .spelling-line, .spelling-sample h4,
.sl-en, .sl-dialogue-line,
.find-it-text, .reading-passage, .rc-passage, .rc-q-text,
.role-card-list, .role-card,
.lrw-table, .lrw-table td, .lrw-table th,
.wb-table th, .wb-table td,
.see-also-table, .see-also-table td, .see-also-table th,
.see-also-title,
.chart-complete-table, .chart-complete-table th, .chart-complete-table td,
.sentence-builder-table, .sentence-builder-table th, .sentence-builder-table td,
.report-chart-table, .report-chart-table th, .report-chart-table td,
.context-line,
.edit-text-passage, .edit-text-explain-list,
.fbi-sentence, .fwi-fill-row, .fwi-sentence,
.msi-text, .sentence-list-ol,
.make-q-prompt, .time-sentence-body,
.melody-table-group-head, .intonation-card-head,
.order-dialogue-row, .order-action-label,
.match-pair-q-row, .match-pair-a-row, .match-3way-a,
.bilingual-en, .example-display-text, .example-answer,
.fill-sentence-text, .form-title, .reading-mcq-question, .rq-question,
.cw-clue-text, .crossword-clues,
.report-paragraph,
.visual-item-en, .visual-table, .visual-table th, .visual-table td {
  direction: ltr !important;
  text-align: left !important;
}

/* English inline word spans & inputs */
.conv-en *, .vocab-example *, .grammar-example-en *,
input.wb-input, input.lrw-input, input.sl-input, textarea.rc-rewrite-area,
.tts-btn, .word {
  direction: ltr;
}

/* ── PERSIAN CONTENT → RTL, right-aligned ── */
.section-head .section-fa, .section-head .section-desc,
.practice-section-head .practice-fa, .practice-fa,
.conv-fa, .practice-statement-fa,
.vocab-fa, .grammar-example-fa, .grammar-explanation, .grammar-tip,
.sl-fa, .sl-activity-fa,
.review-section-fa,
.img-card-fa, .visual-item-fa,
.see-also-fa, .see-also-intro,
.intonation-card-body,
.edit-explain-fa, .context-box-label, .edit-text-label,
.fbi-hint, .fwi-hint, .msi-image-hint, .image-word-hint,
.lesson-fa, .melody-fa,
.placeholder-msg {
  direction: rtl !important;
  text-align: right !important;
}

/* ── SPEAKER LABELS & numbers → LTR (sit on left) ── */
.conv-speaker, .sl-speaker, .role-card-side-label,
.melody-num, .fbi-num, .msi-num, .edit-num, .chart-num,
.sb-num, .order-dialogue-num, .match-pair-letter {
  direction: ltr !important;
  text-align: left !important;
}

/* ── Flex/grid containers preserve LTR order for English rows ── */
.conv-line, .sl-dialogue-line,
.practice-row, .practice-pair, .practice-statement,
.grammar-example-row, .melody-example-row, .spelling-line,
.fbi-row, .fwi-fill-row, .make-q-row, .time-sentence-row,
.order-dialogue-row, .match-pair-q-row {
  direction: ltr;
}

/* ════════════════════════════════════════════════════════════
   AUTO-DIRECTION for headings (unicode-bidi:plaintext)
   جهت خودکار تیترها بر اساس زبان متن — استانداردترین حالت
   ════════════════════════════════════════════════════════════ */
.tab-panel h2, .tab-panel h3, .tab-panel h4, .tab-panel h5,
.section-head h2, .section-head h3, .section-head h4,
.review-section-head h3, .review-section-head h4,
.crossword-card h4, .crossword-clues h5,
.practice-section-head h3,
.spelling-sample h4,
.bf-word, .bf-example {
  unicode-bidi: plaintext;
  text-align: start;
}
