/* ═══════════════════════════════════════════════════════════
   classbook.css — ظاهرِ دفترِ کلاسیِ دیجیتال

   ⚠️ یک برگه برای همه‌ی بخش‌ها. اگر هر بخش استایلِ خودش را
   بنویسد، پانزده ظاهرِ ناهماهنگ درمی‌آید.

   دو اصل که همه‌جا رعایت شده:
   • انگشت پیش از موش: هر چیزِ زدنی دستِ‌کم ۴۴ پیکسل است، چون
     معلم بیشترِ وقت‌ها روی گوشی کار می‌کند.
   • روی گوشی فرم‌ها تک‌ستونه می‌شوند؛ هیچ‌چیز افقی اسکرول نمی‌شود
     مگر جدول‌ها، آن هم داخلِ ظرفِ خودشان.
   ═══════════════════════════════════════════════════════════ */

.cb-wrap{
  --cb-ink:#16211f;
  --cb-ink2:#4a5c57;
  --cb-mut:#7b8b86;
  --cb-line:#e0eae7;
  --cb-bg:#f6f9f8;
  --cb-card:#fff;
  --cb-teal:#0f766e;
  --cb-teal-s:#e6f3f0;
  --cb-warm:#c2410c;
  --cb-shadow:0 1px 2px rgba(16,40,35,.05),0 8px 24px rgba(16,40,35,.06);
}

/* ── هابِ اصلی ─────────────────────────────────────────── */
.cb-hero{
  background:linear-gradient(135deg,#0f766e,#14a08f 55%,#2bb6a3);
  border-radius:20px;padding:22px 22px 20px;color:#fff;margin-bottom:18px;
  box-shadow:0 10px 30px rgba(15,118,110,.24);position:relative;overflow:hidden;
}
.cb-hero::after{
  content:'';position:absolute;inset-block-start:-40px;inset-inline-start:-30px;
  width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.09);
}
.cb-hero h2{margin:0 0 6px;font-size:1.4rem;font-weight:900;position:relative}
.cb-hero p{margin:0;opacity:.92;font-size:.92rem;line-height:1.9;position:relative;max-width:34rem}
.cb-hero .cb-hero-s{
  display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;position:relative;
}
.cb-hero .cb-hero-s span{
  background:rgba(255,255,255,.18);border-radius:99px;padding:4px 12px;
  font-size:.76rem;font-weight:700;
}

/* ⚠️ بازطراحی شد. نسخه‌ی اول کاشی‌های بزرگِ عمودی داشت و روی
   گوشی نصفِ صفحه را یک کاشی می‌گرفت — باید کلی اسکرول می‌کردی
   تا همه را ببینی. حالا کاشی‌ها *افقی* و کوتاه‌اند: آیکون کنارِ
   متن، نه بالایش. همه‌ی ۱۷ تا تقریباً در یک صفحه جا می‌شوند. */
.cb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:9px}
.cb-tile{
  background:var(--cb-card);border:1px solid var(--cb-line);border-radius:13px;
  padding:11px 12px;cursor:pointer;text-align:start;
  box-shadow:0 1px 2px rgba(16,40,35,.04);
  transition:transform .14s cubic-bezier(.2,.9,.3,1.1),box-shadow .14s,border-color .14s;
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  column-gap:10px;row-gap:1px;align-items:center;
  font:inherit;color:inherit;width:100%;position:relative;overflow:hidden;
}
/* نوارِ رنگیِ باریک در لبه — نشانه‌ی دسته، نه تزئین */
.cb-tile::before{
  content:'';position:absolute;inset-block:0;inset-inline-start:0;width:3px;
  background:var(--tc,#0f766e);
}
.cb-tile:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(16,40,35,.11);
  border-color:color-mix(in srgb,var(--tc,#0f766e) 45%,var(--cb-line));
}
.cb-tile:focus-visible{outline:2.5px solid var(--cb-teal);outline-offset:2px}
.cb-tile-i{
  grid-row:1/3;font-size:1.25rem;line-height:1;
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--tc,#0f766e) 11%,transparent);
}
.cb-tile-t{font-weight:800;font-size:.9rem;color:var(--cb-ink);line-height:1.5}
.cb-tile-d{font-size:.745rem;color:var(--cb-mut);line-height:1.55}
.cb-tile-n{
  position:absolute;inset-block-start:8px;inset-inline-end:9px;
  background:color-mix(in srgb,var(--tc,#0f766e) 13%,transparent);
  color:var(--tc,#0f766e);border-radius:7px;padding:1px 7px;
  font-size:.68rem;font-weight:800;
}

.cb-group-t{
  margin:22px 0 10px;font-size:.86rem;font-weight:800;color:var(--cb-mut);
  display:flex;align-items:center;gap:9px;letter-spacing:.2px;
}
.cb-group-t::after{content:'';flex:1;height:1px;background:var(--cb-line)}

/* ── پوسته‌ی هر بخش ─────────────────────────────────────── */
.cb-sec{animation:cbIn .22s ease-out}
@keyframes cbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cb-sec{animation:none}.cb-tile{transition:none}}

.cb-head{
  display:flex;align-items:center;gap:11px;margin-bottom:16px;
  padding-bottom:13px;border-bottom:2px solid var(--cb-line);
}
.cb-back{
  flex:none;width:40px;height:40px;border-radius:12px;border:1px solid var(--cb-line);
  background:var(--cb-card);color:var(--cb-teal);font-size:19px;cursor:pointer;
  display:grid;place-items:center;transition:background .16s;
}
.cb-back:hover{background:var(--cb-teal-s)}
.cb-head-t{flex:1;min-width:0}
.cb-head-t h2{margin:0;font-size:1.18rem;font-weight:900;color:var(--cb-ink)}
.cb-head-t p{margin:2px 0 0;font-size:.8rem;color:var(--cb-mut);line-height:1.7}
.cb-print{
  flex:none;border:0;border-radius:12px;background:var(--cb-teal);color:#fff;
  padding:11px 16px;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer;
  transition:filter .16s;white-space:nowrap;
}
.cb-print:hover{filter:brightness(1.08)}

/* ── فرم‌ها ─────────────────────────────────────────────── */
.cb-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:13px}
.cb-f{display:flex;flex-direction:column;gap:6px}
.cb-f-wide{grid-column:1/-1}
.cb-lb{font-size:.8rem;font-weight:700;color:var(--cb-ink2)}
.cb-f input,.cb-f textarea,.cb-f select{
  width:100%;border:1.5px solid var(--cb-line);border-radius:12px;
  padding:11px 13px;font:inherit;font-size:.92rem;color:var(--cb-ink);
  background:var(--cb-card);transition:border-color .16s,box-shadow .16s;
  min-height:44px;                        /* اندازه‌ی انگشت */
}
.cb-f textarea{resize:vertical;line-height:1.95}
.cb-f input:focus,.cb-f textarea:focus,.cb-f select:focus{
  outline:0;border-color:var(--cb-teal);box-shadow:0 0 0 3px rgba(15,118,110,.13);
}

/* ── دکمه‌ها ────────────────────────────────────────────── */
.cb-acts{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 0}
.cb-btn{
  border:1.5px solid var(--cb-line);background:var(--cb-card);color:var(--cb-ink);
  border-radius:12px;padding:11px 17px;font:inherit;font-size:.88rem;font-weight:800;
  cursor:pointer;min-height:44px;transition:background .16s,border-color .16s,transform .12s;
}
.cb-btn:hover{background:var(--cb-bg);border-color:var(--cb-mut)}
.cb-btn:active{transform:scale(.97)}
.cb-btn-go{background:var(--cb-teal);border-color:var(--cb-teal);color:#fff}
.cb-btn-go:hover{filter:brightness(1.08);background:var(--cb-teal)}
.cb-btn-warm{background:#fff7ed;border-color:#fed7aa;color:var(--cb-warm)}
.cb-btn-del{background:#fef2f2;border-color:#fecaca;color:#b91c1c}

/* ── امتیازِ ۱ تا ۴ ─────────────────────────────────────── */
.cb-rate{
  display:flex;align-items:center;gap:10px;padding:9px 0;
  border-bottom:1px dashed var(--cb-line);
}
.cb-rate:last-child{border-bottom:0}
.cb-rate-lb{flex:1;font-size:.88rem;font-weight:700;color:var(--cb-ink2)}
.cb-rate-b{display:flex;gap:6px;flex:none}
.cb-dot{
  width:38px;height:38px;border-radius:11px;border:1.5px solid var(--cb-line);
  background:var(--cb-card);color:var(--cb-mut);font:inherit;font-size:.92rem;
  font-weight:800;cursor:pointer;transition:all .15s;
}
.cb-dot:hover{border-color:var(--cb-teal);color:var(--cb-teal)}
.cb-dot.on{background:var(--cb-teal);border-color:var(--cb-teal);color:#fff;transform:scale(1.06)}

/* ── رکوردها (جلسه، واقعه…) ─────────────────────────────── */
.cb-recs{display:flex;flex-direction:column;gap:11px;margin-top:14px}
.cb-rec{
  background:var(--cb-card);border:1px solid var(--cb-line);border-radius:14px;
  padding:13px 15px;box-shadow:var(--cb-shadow);
  border-inline-start:3px solid var(--cb-teal);
}
.cb-rec header{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.cb-rec header b{flex:1;font-size:.95rem;font-weight:800;color:var(--cb-ink)}
.cb-rec time{font-size:.76rem;color:var(--cb-mut);font-weight:700;white-space:nowrap}
.cb-del{
  flex:none;border:0;background:#fef2f2;color:#b91c1c;width:30px;height:30px;
  border-radius:9px;cursor:pointer;font-size:13px;
}
.cb-rec p{margin:0;font-size:.88rem;color:var(--cb-ink2);line-height:2;white-space:pre-wrap}
.cb-rec img{margin-top:9px;max-width:100%;border-radius:10px;display:block}
.cb-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cb-tags span{
  background:var(--cb-teal-s);color:var(--cb-teal);border-radius:8px;
  padding:2px 9px;font-size:.74rem;font-weight:700;
}

/* ── حالتِ خالی ─────────────────────────────────────────── */
.cb-empty{
  text-align:center;padding:38px 18px;color:var(--cb-mut);
  display:flex;flex-direction:column;align-items:center;gap:7px;
}
.cb-empty-i{font-size:2.4rem;opacity:.72}
.cb-empty b{font-size:1rem;color:var(--cb-ink2);font-weight:800}
.cb-empty span{font-size:.84rem;line-height:1.9;max-width:26rem}
.cb-empty .cb-btn{margin-top:8px}

/* ── جدول‌های داخلِ صفحه ─────────────────────────────────── */
.cb-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 12px;
  border:1px solid var(--cb-line);border-radius:13px;background:var(--cb-card)}
.cb-tbl{width:100%;border-collapse:collapse;min-width:520px;font-size:.86rem}
.cb-tbl th,.cb-tbl td{padding:9px 11px;text-align:start;border-bottom:1px solid var(--cb-line)}
.cb-tbl th{background:var(--cb-teal-s);color:#0b4f49;font-weight:800;font-size:.8rem;
  position:sticky;top:0;z-index:1}
.cb-tbl tr:last-child td{border-bottom:0}
.cb-tbl input,.cb-tbl select,.cb-tbl textarea{
  width:100%;border:1px solid transparent;border-radius:8px;padding:7px 8px;
  font:inherit;font-size:.85rem;background:transparent;min-height:38px;
}
.cb-tbl input:focus,.cb-tbl select:focus,.cb-tbl textarea:focus{
  outline:0;border-color:var(--cb-teal);background:#fff;
}

/* ── قوانینِ کلاس ───────────────────────────────────────── */
.cb-themes{display:flex;flex-wrap:wrap;gap:9px}
.cb-theme{
  border:2px solid;border-radius:13px;padding:10px 15px;font:inherit;font-size:.85rem;
  font-weight:800;cursor:pointer;display:flex;align-items:center;gap:7px;min-height:44px;
  transition:transform .14s,box-shadow .14s;
}
.cb-theme span{font-size:1.1rem}
.cb-theme:hover{transform:translateY(-2px)}
.cb-theme.on{box-shadow:0 0 0 3px rgba(15,118,110,.3);transform:translateY(-2px)}

.cb-rules{display:flex;flex-direction:column;gap:9px}
.cb-rule{
  display:flex;align-items:flex-start;gap:9px;background:var(--cb-card);
  border:1px solid var(--cb-line);border-radius:13px;padding:10px 12px;
  box-shadow:var(--cb-shadow);
}
.cb-rule-n{
  flex:none;width:28px;height:28px;border-radius:50%;background:var(--cb-teal);
  color:#fff;font-weight:900;font-size:.82rem;display:grid;place-items:center;margin-top:4px;
}
.cb-rule-ico{
  flex:none;width:52px;border:1px solid var(--cb-line);border-radius:9px;
  padding:6px 4px;font-size:1.05rem;text-align:center;background:var(--cb-bg);
  min-height:38px;cursor:pointer;
}
.cb-rule-txt{
  flex:1;min-width:0;border:1px solid transparent;border-radius:9px;padding:7px 9px;
  font:inherit;font-size:.9rem;line-height:1.9;background:transparent;resize:vertical;
  min-height:44px;color:var(--cb-ink);display:block;
}
/* میکروفونِ داخلِ ردیفِ قانون کوچک‌تر، تا ردیف بلند نشود */
.cb-rule .cbv-mic{width:30px;height:30px;font-size:13px;bottom:6px}
.cb-rule .cb-rule-txt{padding-inline-end:40px!important}
.cb-rule-txt:focus{outline:0;border-color:var(--cb-teal);background:var(--cb-bg)}
/* ⚠️ دکمه‌ها کنارِ هم، نه زیرِ هم: سه دکمه‌ی روی‌هم ارتفاعِ ردیف
   را به ۱۰۰ پیکسل می‌رساند و فهرست بی‌خود دراز می‌شود. */
.cb-rule-b{flex:none;display:flex;flex-direction:row;gap:4px;align-items:center;align-self:center}
.cb-rule-b button{
  width:30px;height:30px;border:1px solid var(--cb-line);background:var(--cb-card);
  border-radius:8px;cursor:pointer;font-size:10px;color:var(--cb-mut);padding:0;
}
.cb-rule-b button:hover:not(:disabled){border-color:var(--cb-teal);color:var(--cb-teal)}
.cb-rule-b button:disabled{opacity:.3;cursor:default}
.cb-rule-b .cb-del{height:30px;width:30px;font-size:12px}
@media(max-width:520px){
  /* روی گوشیِ باریک، جابه‌جایی کمتر لازم است — فقط حذف بماند */
  .cb-rule-b button:not(.cb-del){display:none}
}

/* ── برنامه‌ی هفتگی ─────────────────────────────────────── */
.cb-wk-edit{border:0;background:transparent;padding-bottom:4px}
.cb-wk-edit .wk{border-collapse:separate;border-spacing:5px;min-width:600px;table-layout:fixed}
.cb-wk-edit .wk th{
  background:var(--a);color:#fff;border:0;border-radius:9px;padding:9px 5px;
  font-size:.8rem;font-weight:800;text-align:center;position:static;
}
.cb-wk-edit .wk .wk-corner{background:var(--h);font-size:1.15rem;width:15%}
.cb-wk-edit .wk .wk-day{background:var(--h);font-size:.82rem}
.cb-wk-edit .wk td{
  background:var(--b);border:2px solid var(--c);border-radius:9px;padding:0;
  /* نوارِ رنگیِ درس، سمتِ شروعِ خانه */
  box-shadow:inset 4px 0 0 0 var(--sc,transparent);
}
.cb-wk-edit .wk td input{
  width:100%;border:0;background:transparent;text-align:center;
  padding:11px 6px;font:inherit;font-size:.84rem;font-weight:700;
  color:var(--h);min-height:46px;
}
.cb-wk-edit .wk td input::placeholder{color:var(--c);font-weight:400}
.cb-wk-edit .wk td input:focus{outline:0;background:#fff;border-radius:7px}

/* ── برنامه‌ی تدریس (روزها) ─────────────────────────────── */
.cb-day{
  background:var(--cb-card);border:1px solid var(--cb-line);border-radius:16px;
  padding:13px;margin-top:13px;box-shadow:var(--cb-shadow);
}
.cb-day-h{display:flex;align-items:center;gap:8px;margin-bottom:11px;flex-wrap:wrap}
.cb-day-h select,.cb-day-h input{
  border:1.5px solid var(--cb-line);border-radius:10px;padding:8px 11px;
  font:inherit;font-size:.86rem;min-height:40px;background:var(--cb-bg);color:var(--cb-ink);
}
.cb-day-h select{font-weight:800;color:var(--cb-teal)}
.cb-day-sp{flex:1}
.cb-day-h .cb-btn{padding:8px 12px;min-height:40px}
.cb-tp th.cb-tp-b{
  background:var(--cb-teal);color:#fff;font-size:.76rem;text-align:center;
  position:static;white-space:nowrap;
}
.cb-tp td{padding:4px 5px;vertical-align:middle}
.cb-tp textarea{resize:vertical;line-height:1.7;min-height:38px}
/* میکروفونِ داخلِ خانه‌های جدول کوچک، وگرنه ستون را پهن می‌کند */
.cb-tp .cbv-mic{width:26px;height:26px;font-size:11px;bottom:5px;inset-inline-end:4px}
.cb-tp .cbv-wrap>textarea{padding-inline-end:32px!important}

/* ── گروه‌ها ────────────────────────────────────────────── */
.cb-grp{
  background:var(--cb-card);border:2px solid var(--c);border-radius:16px;
  padding:14px;margin-top:14px;box-shadow:var(--cb-shadow);
}
.cb-grp-h{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.cb-grp-emo{
  flex:none;width:44px;height:44px;border-radius:12px;border:2px solid var(--c);
  background:var(--b);font-size:1.35rem;cursor:pointer;line-height:1;
  transition:transform .15s;
}
.cb-grp-emo:hover{transform:rotate(-8deg) scale(1.06)}
.cb-grp-n{
  flex:1;min-width:0;border:1.5px solid transparent;border-radius:11px;padding:9px 12px;
  font:inherit;font-size:1.02rem;font-weight:900;color:var(--a);background:var(--b);
  min-height:44px;
}
.cb-grp-n:focus{outline:0;border-color:var(--a);background:var(--cb-card)}
.cb-grp-h .cb-btn{padding:9px 12px;min-height:44px}

.cb-grp-ev{margin-top:14px;border-top:2px dashed var(--c);padding-top:12px}
.cb-grp-evh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.cb-grp-evh b{flex:1;font-size:.92rem;color:var(--a)}
.cb-grp-evh .cb-btn{padding:8px 13px;min-height:40px;font-size:.82rem}

.cb-ev{
  background:var(--b);border:1px solid var(--c);border-radius:13px;
  padding:11px 12px;margin-bottom:10px;
}
.cb-ev-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.cb-ev-h input{
  border:1.5px solid var(--cb-line);border-radius:10px;padding:8px 11px;
  font:inherit;font-size:.85rem;min-height:40px;background:var(--cb-card);color:var(--cb-ink);
}
.cb-ev-t{flex:1;min-width:120px}
.cb-ev-sum{
  flex:none;background:var(--a);color:#fff;border-radius:10px;padding:7px 13px;
  font-size:1rem;font-weight:900;
}
.cb-ev-sum i{font-style:normal;font-size:.72rem;opacity:.8}
.cb-ev-c{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 22px}

@media(max-width:640px){
  .cb-ev-c{grid-template-columns:1fr}
  .cb-grp-evh .cb-btn{width:100%}
}

/* ── ثبتِ سریع (جلسه / واقعه) ───────────────────────────── */
.cb-new{
  background:var(--cb-card);border:2px solid var(--cb-teal-s);border-radius:16px;
  padding:14px;box-shadow:var(--cb-shadow);
}
.cb-new-r{display:flex;gap:9px;margin-bottom:9px;flex-wrap:wrap}
.cb-new-r>*{
  border:1.5px solid var(--cb-line);border-radius:11px;padding:11px 13px;
  font:inherit;font-size:.92rem;min-height:44px;background:var(--cb-bg);color:var(--cb-ink);
}
#cb-rec-title{flex:1;min-width:150px}
#cb-rec-date{flex:none;width:180px;cursor:pointer}
.cb-new>.cbv-wrap>textarea,.cb-new textarea{
  width:100%;border:1.5px solid var(--cb-line);border-radius:11px;padding:11px 13px;
  font:inherit;font-size:.92rem;line-height:1.95;background:var(--cb-bg);
  color:var(--cb-ink);resize:vertical;min-height:82px;
}
.cb-new textarea:focus,.cb-new-r>*:focus{
  outline:0;border-color:var(--cb-teal);background:var(--cb-card);
}
.cb-tagpick{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.cb-tagpick button{
  border:1.5px solid var(--cb-line);background:var(--cb-card);color:var(--cb-mut);
  border-radius:99px;padding:6px 13px;font:inherit;font-size:.79rem;font-weight:700;
  cursor:pointer;min-height:34px;transition:all .15s;
}
.cb-tagpick button:hover{border-color:var(--cb-teal);color:var(--cb-teal)}
.cb-tagpick button.on{background:var(--cb-teal);border-color:var(--cb-teal);color:#fff}
#cb-rec-photo{max-width:180px;border-radius:11px;margin-top:11px;display:block}
.cb-new-b{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.cb-new-b label.cb-btn{display:inline-flex;align-items:center;cursor:pointer}

@media(max-width:560px){
  #cb-rec-date{width:100%}
  .cb-new-b .cb-btn{flex:1;text-align:center}
}

/* ── طرحِ درس (آکاردئون) ────────────────────────────────── */
.cb-acc{
  background:var(--cb-card);border:1px solid var(--cb-line);border-radius:14px;
  margin-top:11px;box-shadow:var(--cb-shadow);overflow:hidden;
}
.cb-acc-h{
  display:flex;align-items:center;gap:10px;padding:14px 15px;cursor:pointer;
  transition:background .15s;min-height:56px;
}
.cb-acc-h:hover{background:var(--cb-bg)}
.cb-acc-h b{flex:1;font-size:.95rem;font-weight:800;color:var(--cb-ink)}
.cb-acc-h time{font-size:.78rem;color:var(--cb-mut);white-space:nowrap}
.cb-acc-x{
  flex:none;color:var(--cb-teal);font-size:1.1rem;transition:transform .2s;
  width:26px;text-align:center;
}
.cb-acc.open .cb-acc-x{transform:rotate(180deg)}
.cb-acc-b{display:none;padding:0 15px 15px;border-top:1px solid var(--cb-line)}
.cb-acc.open .cb-acc-b{display:block;padding-top:14px}

/* ── طرحِ سالانه (ماه‌ها) ───────────────────────────────── */
.cb-mon{
  background:var(--cb-card);border:1px solid var(--cb-line);border-radius:14px;
  padding:12px;margin-top:11px;box-shadow:var(--cb-shadow);
}
.cb-mon-h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.cb-mon-h b{
  flex:none;background:var(--cb-teal);color:#fff;border-radius:10px;
  padding:6px 14px;font-size:.88rem;font-weight:800;
}
.cb-mon-h span{flex:1;font-size:.78rem;color:var(--cb-mut)}
.cb-mon-h .cb-btn{padding:8px 13px;min-height:40px;font-size:.82rem}

/* پیش‌نمایشِ پوستر */
.cb-prev{
  position:fixed;inset:0;z-index:9990;background:rgba(8,20,17,.72);
  display:flex;align-items:center;justify-content:center;padding:16px;
  backdrop-filter:blur(4px);
}
.cb-prev-box{
  background:#fff;border-radius:18px;padding:16px;max-width:min(520px,100%);
  max-height:88vh;overflow:auto;position:relative;display:flex;flex-direction:column;gap:12px;
}
.cb-prev-x{
  position:absolute;inset-inline-end:12px;inset-block-start:12px;z-index:2;
  border:0;background:#f1f4f9;width:32px;height:32px;border-radius:50%;
  cursor:pointer;font-size:15px;color:#5a6675;
}
.cb-prev-in{border:1px solid #e5eeeb;border-radius:12px;overflow:hidden}

/* ── گوشی ───────────────────────────────────────────────── */
@media(max-width:640px){
  /* روی گوشی دو ستون، کاشی‌های کوتاه — تا همه در یک نگاه باشند */
  .cb-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .cb-tile{padding:9px 10px;column-gap:8px;border-radius:12px}
  .cb-tile-i{width:32px;height:32px;font-size:1.05rem;border-radius:9px}
  .cb-tile-t{font-size:.8rem;line-height:1.45}
  .cb-tile-d{font-size:.67rem;line-height:1.45}
  .cb-tile-n{font-size:.62rem;padding:1px 5px;inset-block-start:6px;inset-inline-end:7px}
  .cb-group-t{margin:16px 0 7px;font-size:.79rem}
  .cb-hero{padding:15px 14px;border-radius:14px}
  .cb-hero h2{font-size:1.08rem;margin-bottom:4px}
  .cb-hero p{font-size:.81rem;line-height:1.8}
  .cb-hero .cb-hero-s{margin-top:10px;gap:6px}
  .cb-hero .cb-hero-s span{font-size:.68rem;padding:3px 9px}
  .cb-form{grid-template-columns:1fr}     /* تک‌ستونه — هیچ فشردگی */
  .cb-head-t h2{font-size:1.05rem}
  .cb-print{padding:10px 12px;font-size:.8rem}
  .cb-rate{flex-direction:column;align-items:stretch;gap:7px}
  .cb-rate-b{justify-content:space-between}
  .cb-dot{flex:1;height:42px}
}

/* ── حالتِ تیره ─────────────────────────────────────────── */
@media (prefers-color-scheme:dark){
  .cb-wrap:not([data-theme="light"]){
    --cb-ink:#e8f1ee;--cb-ink2:#b6c8c2;--cb-mut:#819992;
    --cb-line:#26352f;--cb-bg:#0d1513;--cb-card:#15201d;
    --cb-teal:#3cc0af;--cb-teal-s:#16302c;
    --cb-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28);
  }
}

/* ── برنامه‌ی تدریس: نوارهای باریکِ تاشو ─────────────────────
   ⚠️ خواسته شد که «همه بسته باشند و فقط با کلیک باز شوند».
   قبلاً همه‌ی روزها باز بودند و صفحه بی‌نهایت دراز می‌شد. */
.cb-day{padding:0;overflow:hidden}
.cb-day-bar{
  width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;
  border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;
  text-align:start;min-height:52px;transition:background .15s;
}
.cb-day-bar:hover{background:var(--cb-bg)}
.cb-day-d{
  flex:none;background:var(--cb-teal);color:#fff;border-radius:9px;
  padding:4px 12px;font-size:.82rem;font-weight:800;
}
.cb-day-t{flex:1;font-size:.85rem;color:var(--cb-ink2);font-weight:700}
.cb-day-c{
  flex:none;background:var(--cb-teal-s);color:var(--cb-teal);border-radius:8px;
  padding:2px 9px;font-size:.72rem;font-weight:800;
}
.cb-day-x{flex:none;color:var(--cb-mut);font-size:1.05rem;transition:transform .2s;width:22px;text-align:center}
.cb-day.open .cb-day-x{transform:rotate(180deg)}
.cb-day-in{display:none;padding:0 13px 13px;border-block-start:1px solid var(--cb-line)}
.cb-day.open .cb-day-in{display:block;padding-top:12px}
@media(max-width:560px){
  .cb-day-t{font-size:.78rem}
  .cb-day-d{padding:3px 9px;font-size:.75rem}
  .cb-day-c{display:none}
}

/* ── چیپ‌های درس (برنامه‌ی هفتگی) ───────────────────────────
   ⚠️ خواسته شد که «با زدن رو اسم درس‌ها اضافه بشه» — تایپِ نامِ
   درس برای ۲۵ خانه‌ی جدول روی گوشی عملاً غیرممکن است. */
.cb-chips{display:flex;flex-wrap:wrap;gap:6px}
.cb-chips button{
  border:1.5px solid var(--cb-line);background:var(--cb-card);
  border-radius:99px;padding:7px 13px;font:inherit;font-size:.79rem;font-weight:700;
  cursor:pointer;min-height:36px;color:var(--sc,var(--cb-ink));
  border-color:color-mix(in srgb,var(--sc,var(--cb-line)) 35%,transparent);
  transition:all .14s;
}
.cb-chips button:hover{background:color-mix(in srgb,var(--sc,#0f766e) 10%,transparent)}
.cb-chips button.clear{color:var(--cb-mut);border-color:var(--cb-line)}
/* وقتی خانه‌ای انتخاب شده، چیپ‌ها برجسته می‌شوند */
.cb-chips.armed button{box-shadow:0 2px 8px rgba(16,40,35,.1)}
.cb-chips:not(.armed){opacity:.72}
/* خانه‌ی انتخاب‌شده‌ی جدول */
.cb-wk-edit .wk td.pick{
  outline:3px solid var(--cb-teal);outline-offset:-3px;
}

/* ═══ برنامه‌ی تدریسِ خودکار (هفته‌به‌هفته) — مهر ۱۴۰۵ ═══════════ */
.tp-nav{ display:flex; align-items:center; gap:8px; margin:2px 0 10px }
.tp-nav b{ flex:1 1 auto; text-align:center; font-size:.95rem; font-weight:800 }
.tp-nav button{
  min-height:42px; padding:0 14px; border-radius:12px; cursor:pointer; font:inherit;
  font-weight:700; font-size:.82rem; border:1px solid var(--border,rgba(15,23,42,.14));
  background:var(--card,#fff); color:var(--text,#334155);
}
.tp-nav .tp-now{ background:#EEF0FF; border-color:#7C6BFF; color:#4B3FD0 }
.tp-hint{ font-size:.76rem; line-height:1.9; color:var(--text2,#64748b); margin:0 2px 12px }
.tp-link{ border:0; background:none; padding:0; cursor:pointer; font:inherit; color:#2563eb; font-weight:700; text-decoration:underline }

.tp-week{ display:flex; flex-direction:column; gap:12px }
.tp-day{
  padding:12px; border-radius:16px; background:var(--card,#fff);
  border:1px solid var(--border,rgba(15,23,42,.09));
}
.tp-day.now{ border:2px solid #7C6BFF; box-shadow:0 8px 22px rgba(124,107,255,.14) }
.tp-day.off{ opacity:.75; background:var(--bg3,#f8fafc) }
.tp-dh{ display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap }
.tp-dh b{ font-size:.98rem; font-weight:800 }
.tp-dh > span{ font-size:.8rem; color:var(--text2,#64748b) }
.tp-today{
  font-style:normal; font-size:.66rem; font-weight:800; color:#fff; padding:2px 9px;
  border-radius:99px; background:linear-gradient(135deg,#4E8BFF,#7C6BFF);
}
.tp-off{ margin-inline-start:auto; display:inline-flex; align-items:center; gap:5px; font-size:.76rem; color:var(--text2,#64748b); cursor:pointer }
.tp-offp{ margin:4px 2px 0; font-size:.78rem; color:var(--text2,#94a3b8) }

.tp-bell{
  position:relative; padding:10px 12px 10px 10px; margin-top:8px; border-radius:13px;
  background:var(--bg3,#f8fafc); border-inline-start:4px solid var(--sc,#64748b);
}
.tp-bh{ display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.tp-bn{ font-size:.7rem; color:var(--text2,#94a3b8); min-width:52px }
.tp-sub{ font-size:.9rem; font-weight:800; color:var(--sc,#334155) }
.tp-badges{ display:inline-flex; gap:5px; align-items:center; margin-inline-start:auto }
.tp-u, .tp-s{
  font-size:.7rem; font-weight:800; padding:2px 9px; border-radius:99px;
  background:#fff; border:1px solid var(--border,rgba(15,23,42,.1)); color:var(--text,#334155);
}
.tp-u{ color:var(--sc,#334155); border-color:var(--sc,#e2e8f0) }
.tp-u.rv{ color:#b45309; border-color:#fcd34d; background:#fffbeb }
.tp-ed{ font-style:normal; font-size:.78rem; color:#7C6BFF }
.tp-topic{
  width:100%; margin-top:8px; min-height:40px; border-radius:11px; padding:0 11px; font:inherit; font-size:.84rem;
  border:1px solid var(--border,rgba(15,23,42,.12)); background:var(--card,#fff); color:inherit; box-sizing:border-box;
}
.tp-more{
  margin-top:7px; border:0; background:none; cursor:pointer; font:inherit; font-size:.76rem;
  font-weight:700; color:#4B3FD0; padding:4px 2px;
}
.tp-det{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:6px }
.tp-f{ display:flex; flex-direction:column; gap:4px; font-size:.74rem; color:var(--text2,#64748b) }
.tp-f input, .tp-f textarea{
  min-height:40px; border-radius:11px; padding:6px 10px; font:inherit; font-size:.82rem;
  border:1px solid var(--border,rgba(15,23,42,.12)); background:var(--card,#fff); color:inherit; box-sizing:border-box;
}
.tp-f small{ font-size:.66rem; color:var(--text2,#94a3b8) }
.tp-note{
  width:100%; margin-top:10px; min-height:38px; border-radius:11px; padding:8px 11px; font:inherit; font-size:.8rem;
  border:1px dashed var(--border,rgba(15,23,42,.18)); background:transparent; color:inherit; box-sizing:border-box; resize:vertical;
}
@media (max-width:520px){ .tp-det{ grid-template-columns:1fr } }
