@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

:root{
  --paper:#F1EEE2;
  --paper-2:#E7E2D2;
  --ink:#26312B;
  --ink-soft:#5B665F;
  --line:#CFC8B2;
  --teal:#1E6F5C;
  --teal-deep:#154D40;
  --ochre:#C98A2C;
  --brick:#B5473A;
  --sage:#4C7A5B;
  --card:#FBFAF5;
--shadow: 0 1px 2px rgba(38,49,43,.05), 0 3px 9px rgba(38,49,43,.07);
--line-subtle: #E6E1D2;
--shadow-card: 0 1px 3px rgba(34,44,38,.04), 0 6px 18px -4px rgba(34,44,38,.06);
--shadow-card-hover: 0 3px 6px rgba(34,44,38,.05), 0 12px 28px -4px rgba(34,44,38,.09);

--btn-transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1), background 180ms ease;

--btn-teal-bg: linear-gradient(180deg, #1E876F 0%, #156956 100%);
--btn-teal-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 2px rgba(17,79,65,0.18), 0 4px 10px -1px rgba(26,122,100,0.32);
--btn-teal-shadow-hover: inset 0 1px 0 rgba(255,255,255,0.28), 0 3px 6px rgba(17,79,65,0.14), 0 8px 18px -2px rgba(26,122,100,0.42);
--btn-teal-shadow-active: inset 0 2px 4px rgba(10,48,39,0.35), 0 1px 2px rgba(0,0,0,0.1);

--btn-ochre-bg: linear-gradient(180deg, #D48E28 0%, #BA7718 100%);
--btn-ochre-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 1px 2px rgba(148,94,18,0.18), 0 4px 10px -1px rgba(199,131,34,0.35);
--btn-ochre-shadow-hover: inset 0 1px 0 rgba(255,255,255,0.3), 0 3px 6px rgba(148,94,18,0.15), 0 8px 18px -2px rgba(199,131,34,0.44);
--btn-ochre-shadow-active: inset 0 2px 4px rgba(90,58,10,0.35), 0 1px 2px rgba(0,0,0,0.1);

--btn-neutral-bg: linear-gradient(180deg, #FFFFFF 0%, #F5F1E6 100%);
--btn-neutral-shadow: inset 0 1px 0 rgba(255,255,255,0.9), 0 1px 2px rgba(0,0,0,0.05), 0 3px 8px -2px rgba(34,44,38,0.1);
--btn-neutral-shadow-hover: inset 0 1px 0 rgba(255,255,255,1), 0 2px 4px rgba(0,0,0,0.06), 0 6px 14px -2px rgba(34,44,38,0.14);
--btn-neutral-shadow-active: inset 0 2px 4px rgba(0,0,0,0.08);
  --card-radius: 16px;
  --card-border: 1px solid var(--line);
  --card-clip: none;
  --bg-decor: radial-gradient(circle at 100% 0%, rgba(30,111,92,.08), transparent 45%), radial-gradient(circle at 0% 100%, rgba(201,138,44,.07), transparent 45%), radial-gradient(rgba(38,49,43,.04) 1px, transparent 1px);
  --bg-size: 100% 100%, 100% 100%, 24px 24px;
  --tape-show: none;
  --hud-show: none;
}

/* ================= سیستم تم‌های اختصاصی (۸ تم) ================= */
[data-theme="sakura"]{
  --paper:#FFF0F4; --paper-2:#FCE2E8; --ink:#3B2027; --ink-soft:#855460; --line:#F7CAD5;
  --teal:#E84E75; --teal-deep:#A81E44; --ochre:#D97F29; --brick:#C23838; --sage:#4E8A63;
  --card:#FFFFFF; --shadow:0 10px 30px rgba(232,78,117,.1);
  --card-radius:28px; --card-border:2px solid #FAD1DC; --card-clip:none;
  --bg-decor: radial-gradient(circle at 15% 15%, rgba(255,182,193,.45), transparent 40%), radial-gradient(circle at 85% 30%, rgba(255,192,203,.35), transparent 45%), radial-gradient(circle at 50% 85%, rgba(254,215,226,.5), transparent 50%), radial-gradient(#F7B2C3 1px, transparent 1px);
  --bg-size:100% 100%,100% 100%,100% 100%,28px 28px;
  --tape-show:none; --hud-show:none;
}
[data-theme="lavender"]{
  --paper:#F4F0FC; --paper-2:#E5DCF8; --ink:#2A1D3D; --ink-soft:#685585; --line:#D3C4F0;
  --teal:#7C4DFF; --teal-deep:#4A1DB8; --ochre:#C47500; --brick:#BA3A4B; --sage:#438A5E;
  --card: rgba(255,255,255,.85); --shadow:0 12px 34px rgba(124,77,255,.12);
  --card-radius:22px; --card-border:1.5px solid rgba(255,255,255,.95); --card-clip:none;
  --bg-decor: radial-gradient(circle at 20% 20%, rgba(167,139,250,.35), transparent 45%), radial-gradient(circle at 80% 70%, rgba(192,132,252,.3), transparent 50%), radial-gradient(circle at 50% 40%, rgba(221,214,254,.4), transparent 60%), radial-gradient(#C4B5FD 1.2px, transparent 1.2px);
  --bg-size:100% 100%,100% 100%,100% 100%,32px 32px;
  --tape-show:none; --hud-show:none;
}
[data-theme="matcha"]{
  --paper:#F3F6F0; --paper-2:#DEE9DA; --ink:#1D291F; --ink-soft:#4E6650; --line:#BFD4BA;
  --teal:#4A8248; --teal-deep:#275226; --ochre:#B87F25; --brick:#B5473A; --sage:#4C7A5B;
  --card:#FCFDFC; --shadow:0 4px 14px rgba(39,82,38,.09);
  --card-radius:4px; --card-border:1.5px dashed #A5C29E; --card-clip:none;
  --bg-decor: linear-gradient(135deg, rgba(74,130,72,.08), transparent 40%), repeating-linear-gradient(0deg, transparent, transparent 27px, rgba(165,194,158,.32) 28px, transparent 29px), repeating-linear-gradient(90deg, transparent, transparent 27px, rgba(165,194,158,.2) 28px, transparent 29px);
  --bg-size:100% 100%,100% 100%,100% 100%;
  --tape-show:block; --hud-show:none;
}
[data-theme="midnight-berry"]{
  --paper:#12080F; --paper-2:#1D0E19; --ink:#FDEBF3; --ink-soft:#BA90A3; --line:#38172C;
  --teal:#FF4071; --teal-deep:#CF1344; --ochre:#F2A346; --brick:#FF4D4D; --sage:#5DB880;
  --card: rgba(28,14,24,.9); --shadow:0 16px 40px rgba(0,0,0,.8), 0 0 1px 1px rgba(255,64,113,.35);
  --card-radius:20px; --card-border:1px solid rgba(255,64,113,.35); --card-clip:none;
  --bg-decor: radial-gradient(circle at 85% 15%, rgba(255,64,113,.22), transparent 45%), radial-gradient(circle at 15% 85%, rgba(186,24,75,.15), transparent 50%), linear-gradient(180deg, #12080F, #1A0B16);
  --bg-size:100% 100%,100% 100%,100% 100%;
  --tape-show:none; --hud-show:none;
}
[data-theme="navy"]{
  --paper:#EBF2F8; --paper-2:#D2E2F1; --ink:#0E1B29; --ink-soft:#3F5973; --line:#A2C1DD;
  --teal:#1768B8; --teal-deep:#0B3D70; --ochre:#C77700; --brick:#BD3526; --sage:#247A64;
  --card:#F7FAFD; --shadow:0 8px 24px rgba(11,61,112,.09);
  --card-radius:12px; --card-border:2px solid #8EAFD0; --card-clip:none;
  --bg-decor: radial-gradient(circle at 95% 10%, rgba(23,104,184,.14), transparent 45%), radial-gradient(circle at 5% 90%, rgba(11,61,112,.08), transparent 45%), repeating-linear-gradient(45deg, transparent, transparent 38px, rgba(162,193,221,.25) 39px, transparent 40px);
  --bg-size:100% 100%,100% 100%,100% 100%;
  --tape-show:none; --hud-show:none;
}
[data-theme="cyber-carbon"]{
  --paper:#070B0E; --paper-2:#0F171C; --ink:#E0F7FA; --ink-soft:#688B9C; --line:#14262E;
  --teal:#00F5D4; --teal-deep:#00A892; --ochre:#FFB703; --brick:#FF3838; --sage:#2ECC71;
  --card:#0C1318; --shadow:0 0 32px rgba(0,245,212,.12);
  --card-radius:0px; --card-border:1px solid rgba(0,245,212,.45);
  --card-clip: polygon(0 14px, 14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
  --bg-decor: linear-gradient(to right, rgba(0,245,212,.06) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,245,212,.06) 1px, transparent 1px), radial-gradient(circle at 50% 15%, rgba(0,245,212,.1), transparent 65%);
  --bg-size:26px 26px,26px 26px,100% 100%;
  --tape-show:none; --hud-show:block;
}
[data-theme="nordic-pine"]{
  --paper:#EBECE4; --paper-2:#D6D8C8; --ink:#1A2319; --ink-soft:#4B5949; --line:#AAB39B;
  --teal:#2F5E45; --teal-deep:#1B3B2B; --ochre:#BF791B; --brick:#A33527; --sage:#4B825F;
  --card:#F5F6F0; --shadow:0 6px 20px rgba(27,59,43,.11);
  --card-radius:12px; --card-border:2px solid #859275; --card-clip:none;
  --bg-decor: radial-gradient(circle at 90% 10%, rgba(47,94,69,.15), transparent 45%), radial-gradient(circle at 10% 85%, rgba(27,59,43,.1), transparent 50%), repeating-linear-gradient(135deg, rgba(133,146,117,.05) 0px, rgba(133,146,117,.05) 2px, transparent 2px, transparent 12px);
  --bg-size:100% 100%,100% 100%,100% 100%;
  --tape-show:none; --hud-show:none;
}
[data-theme="apex-orange"]{
  --paper:#E0E4E8; --paper-2:#C9D0D8; --ink:#0E1318; --ink-soft:#414D5C; --line:#98A6B5;
  --teal:#FF4500; --teal-deep:#C42E00; --ochre:#FFA000; --brick:#D32F2F; --sage:#2E7D32;
  --card:#EDF1F5; --shadow:0 8px 24px rgba(255,69,0,.15);
  --card-radius:14px; --card-border:1.5px solid #98A6B5; --card-clip:none;
  --bg-decor: radial-gradient(black 15%, transparent 16%) 0 0, radial-gradient(black 15%, transparent 16%) 4px 4px, linear-gradient(135deg, rgba(255,69,0,.1), transparent 55%);
  --bg-size:8px 8px,8px 8px,100% 100%;
  --tape-show:none; --hud-show:none;
}

/* چسب واشی ژاپنی (ماچا) */
.washi-tape{
  display: var(--tape-show);
  position: absolute; top: -12px; right: 26px; width: 80px; height: 22px;
  background: rgba(165,194,158,.8);
  border-left: 2px dashed rgba(255,255,255,.65);
  border-right: 2px dashed rgba(255,255,255,.65);
  transform: rotate(-3deg);
  box-shadow: 0 2px 5px rgba(0,0,0,.06);
  pointer-events: none; z-index: 10;
}
/* براکت‌های HUD سایبرپانک (کربن) */
.hud-corner{
  display: var(--hud-show); position: absolute; width: 10px; height: 10px;
  border-color: var(--teal); border-style: solid; pointer-events: none; z-index:10;
}
.hud-tl{top:4px; left:4px; border-width:2px 0 0 2px;}
.hud-tr{top:4px; right:4px; border-width:2px 2px 0 0;}
.hud-bl{bottom:4px; left:4px; border-width:0 0 2px 2px;}
.hud-br{bottom:4px; right:4px; border-width:0 2px 2px 0;}
/* ================= پایان سیستم تم ================= */

*{box-sizing:border-box;}
html,body{margin:0;padding:0; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
body{
  font-family:'Vazirmatn', sans-serif;
  background-color: var(--paper);
  background-image: var(--bg-decor);
  background-size: var(--bg-size);
  color:var(--ink);
  min-height:100vh;
  padding:18px 14px 60px;
  transition: background-color .3s ease, color .3s ease;
}
.wrap{max-width:640px; margin:0 auto;}

/* header */
.header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:14px;
}
.brand{
  display:flex; flex-direction:column; gap:2px;
}
.brand .eyebrow{
  font-size:11px; letter-spacing:.04em; color:var(--teal-deep); font-weight:700;
  text-transform:uppercase;
}
.brand h1{
  margin:0; font-size:20px; font-weight:800; color:var(--ink);
}

.student-header{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:6px 10px; min-height:auto; position:relative;
}
.student-name-title{
  flex:0 1 100%; order:-1; position:static; transform:none;
  margin:0 0 8px; font-size:19px; font-weight:800; color:var(--ink); text-align:center;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.streak-badge{
  display:flex; align-items:center; gap:4px; background:#FFF3D6; color:#8a5a00;
  border:1px solid #F0D48A; border-radius:20px; padding:4px 10px; font-size:12px;
  font-weight:800; flex:none; position:relative; z-index:1;
}
.team-heart-btn{
  border:none; background:none; cursor:pointer; font-size:21px; line-height:1;
  padding:2px 3px; flex:none; position:relative; z-index:1;
  animation: teamHeartbeat 1.15s ease-in-out infinite;
}
@keyframes teamHeartbeat{
  0%, 100%{ transform:scale(1); }
  15%{ transform:scale(1.28); }
  30%{ transform:scale(1); }
  45%{ transform:scale(1.2); }
  60%{ transform:scale(1); }
}
.day-lock-card{
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:10px 14px; margin-bottom:12px; text-align:center;
}
.day-lock-progress{font-size:12.5px; color:var(--ink-soft);}
.day-lock-golden{
  margin-top:6px; font-size:13px; font-weight:800; color:#8a5a00;
  background:#FFF3D6; border:1px solid #F0D48A; border-radius:8px; padding:6px 10px;
}

/* date nav */
.shared-note{
  font-size:11.5px; color:var(--ochre); background:#FBF1DE; border:1px solid #EAD6A6;
  border-radius:10px; padding:7px 10px; margin-bottom:12px; text-align:center;
}
.student-bar{
  display:flex; gap:8px; margin-bottom:12px;
}
.student-bar select{
  flex:1; font-weight:700; color:var(--teal-deep);
}
.student-bar button{
  border:1px solid var(--line); background:var(--card); color:var(--teal-deep);
  border-radius:10px; padding:8px 12px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.new-student-row{
  display:none; gap:8px; margin-bottom:12px;
}
.new-student-row.open{display:flex;}
.new-student-row input{flex:1;}
.new-student-row button{
  border:none; background:var(--teal); color:#fff; border-radius:10px; padding:0 14px; font-weight:700; cursor:pointer;
}

.notes-card{
  background:#FFFDF6; border:1.5px solid var(--ochre); border-radius:16px;
  padding:14px; margin-bottom:16px; box-shadow:var(--shadow);
}
.notes-card h2{font-size:15px; margin:0; color:var(--ochre-deep,#8A5D1D);}
.notes-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;}
.counselor-toggle{
  border:1px solid #EAD6A6; background:#FBF1DE; color:var(--ochre-deep,#8A5D1D);
  border-radius:9px; padding:5px 10px; font-size:11px; font-weight:700; cursor:pointer;
}
.notes-add{display:flex; gap:8px; margin-bottom:10px;}
.notes-add input{flex:1;}
.notes-add button{
  border:none; background:var(--ochre); color:#fff; border-radius:10px; padding:0 14px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.note-item{
  display:flex; align-items:flex-start; gap:9px; padding:8px 2px;
  border-top:1px dashed #EAD6A6;
}
.note-item:first-of-type{border-top:none;}
.note-item input[type=checkbox]{width:17px;height:17px; accent-color:var(--ochre); flex:none; margin-top:2px;}
.note-item .ntxt{flex:1; font-size:13px; line-height:1.6;}
.note-item .ntxt .vocab-note-title{font-weight:700; color:var(--teal-deep); margin-bottom:4px;}
.note-item .ntxt .vocab-note-row{display:block; padding:1px 0; unicode-bidi:isolate;}
.note-item .ndate{font-size:10.5px; color:var(--ink-soft); margin-top:2px;}
.note-item.done .ntxt{text-decoration:line-through; color:var(--ink-soft);}
.note-del{border:none;background:none;color:var(--brick);font-size:13px;cursor:pointer; flex:none;}
.notes-empty{font-size:12.5px; color:var(--ink-soft); text-align:center; padding:6px 0;}

.vocab-admin-card{
  background:#EEF3F1; border:1.5px solid var(--teal); border-radius:16px;
  padding:14px; margin-bottom:16px; box-shadow:var(--shadow);
}
.vocab-admin-card h2{font-size:15px; margin:0 0 10px; color:var(--teal-deep);}
.vocab-admin-card textarea{min-height:90px; font-family:monospace; font-size:12.5px;}
.vocab-admin-list{margin-top:12px; max-height:260px; overflow-y:auto;}
.vocab-row{
  display:flex; align-items:center; gap:8px; padding:6px 4px; font-size:12px;
  border-top:1px dashed var(--paper-2);
}
.vocab-row:first-child{border-top:none;}
.vocab-row .vword{font-weight:700; flex:1;}
.vocab-row .vmeaning{color:var(--ink-soft); flex:1;}
.vocab-row .vstatus{
  font-size:10px; padding:2px 7px; border-radius:999px; white-space:nowrap;
}
.vocab-row .vstatus.new{background:var(--paper-2); color:var(--ink-soft);}
.vocab-row .vstatus.learning{background:#DEEFE9; color:var(--teal-deep);}
.vocab-row .vdel{border:none;background:none;color:var(--brick); font-size:13px; cursor:pointer;}
.vocab-row .vedit{border:none;background:none;color:var(--teal-deep); font-size:13px; cursor:pointer;}

.vocab-quiz-box{
  background:var(--card); border:2px solid var(--teal); border-radius:20px;
  padding:22px 18px; text-align:center; box-shadow:var(--shadow); margin-bottom:16px;
}
.vocab-quiz-box .vq-eyebrow{font-size:11.5px; color:var(--teal-deep); font-weight:700; margin-bottom:6px;}
.vocab-quiz-box .vq-progress{font-size:11px; color:var(--ink-soft); margin-bottom:14px;}
.vocab-quiz-box .vq-subject{
  display:inline-block; background:#DEEFE9; color:var(--teal-deep); font-size:11.5px;
  font-weight:700; padding:3px 12px; border-radius:999px; margin-bottom:14px;
}
.vocab-quiz-box .vq-word{font-size:26px; font-weight:800; color:var(--ink); margin-bottom:6px;}
.vocab-quiz-box .vq-mode{font-size:12px; color:var(--ink-soft); margin-bottom:16px;}
.vocab-quiz-box .vq-meaning-reveal{
  font-size:19px; font-weight:700; color:var(--teal-deep); margin:14px 0;
  background:#DEEFE9; border-radius:12px; padding:12px;
}
.vocab-quiz-box input.vq-input{
  text-align:center; font-size:16px; padding:12px; margin-bottom:12px;
}
.vocab-quiz-box .vq-result{font-size:13.5px; font-weight:700; margin-bottom:12px; min-height:18px;}
.vocab-quiz-box .vq-result.correct{color:var(--sage);}
.vocab-quiz-box .vq-result.wrong{color:var(--brick);}
.vocab-quiz-box .vq-btn{
  width:100%; border:none; background:var(--teal-deep); color:#fff; border-radius:12px;
  padding:12px; font-weight:800; font-size:14px; cursor:pointer; margin-top:4px;
}
.vocab-quiz-box .vq-skip-note{
  font-size:11.5px; color:var(--ink-soft); margin-top:14px; padding-top:12px;
  border-top:1px dashed var(--line);
}
.tab-bar{
  display:flex; gap:8px; margin-bottom:14px;
}
.tab-btn{
  flex:1; border:1.5px solid var(--line); background:var(--card); color:var(--ink-soft);
  border-radius:12px; padding:10px 8px; font-family:'Vazirmatn',sans-serif; font-size:13.5px;
  font-weight:700; cursor:pointer;
}
.tab-btn.active{
  background:var(--teal-deep); border-color:var(--teal-deep); color:#fff;
}
/* advisor analysis tab */
.adv-range-row{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:16px;}
.adv-range-btn{flex:0 0 auto; min-width:76px;}
.adv-range-btn.active{background:var(--teal-deep); border-color:var(--teal-deep); color:#fff;}
.adv-period-label{
  font-size:12px; color:var(--ink-soft); margin:-8px 0 14px; text-align:center;
}
.adv-empty{
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 16px;
  text-align:center; color:var(--ink-soft); font-size:13px; line-height:1.8;
}
.adv-stat-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:16px;
}
.adv-stat-card{
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 12px;
  text-align:center; box-shadow:var(--shadow);
}
.adv-stat-num{font-size:22px; font-weight:800; color:var(--teal-deep); margin-bottom:2px;}
.adv-stat-num.warn{color:var(--brick);}
.adv-stat-label{font-size:11.5px; color:var(--ink-soft); line-height:1.5;}
.adv-section{
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 14px;
  margin-bottom:14px; box-shadow:var(--shadow);
}
.adv-section h3{margin:0 0 10px; font-size:14px; font-weight:800; color:var(--ink);}
.adv-subject-row{
  display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--paper-2);
}
.adv-subject-row:last-child{border-bottom:none;}
.adv-subject-name{flex:1; font-size:13px; font-weight:700; color:var(--ink);}
.adv-subject-bar-wrap{flex:0 0 90px; height:8px; background:var(--paper); border-radius:999px; overflow:hidden;}
.adv-subject-bar{height:100%; border-radius:999px; background:var(--sage);}
.adv-subject-bar.low{background:var(--brick);}
.adv-subject-bar.mid{background:var(--ochre);}
.adv-subject-pct{flex:0 0 auto; font-size:12px; font-weight:700; color:var(--ink-soft); min-width:34px; text-align:left;}
.adv-day-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
.adv-day-cell{
  text-align:center; padding:8px 2px; border-radius:10px; background:var(--paper); font-size:11px;
}
.adv-day-cell .adv-day-name{font-weight:700; color:var(--ink); display:block; margin-bottom:4px; font-size:10.5px;}
.adv-day-cell .adv-day-pct{font-weight:800; font-size:13px;}
.adv-rec-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.adv-rec-item{
  display:flex; gap:8px; align-items:flex-start; font-size:13px; line-height:1.8; color:var(--ink);
  background:var(--paper); border-radius:10px; padding:10px 12px;
}
.adv-rec-icon{flex:0 0 auto; font-size:15px;}
.adv-burned-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.adv-burned-item{
  display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.8; color:var(--ink);
  background:#FBEAE7; border:1px solid #E7C3BC; border-radius:10px; padding:9px 11px;
}
.adv-burned-item.crit{background:#F7DAD5; border-color:#E0A99E;}
.adv-burned-icon{flex:0 0 auto; font-size:14px;}
.adv-burned-meta{color:var(--ink-soft); font-weight:400; font-size:11px;}

/* --- advisor: subject deep-dive --- */
.dd-grid{display:flex; flex-direction:column; gap:10px;}
.dd-card{background:var(--paper); border:1px solid var(--paper-2); border-radius:12px; padding:10px 12px;}
.dd-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; gap:8px;}
.dd-name{font-weight:700; font-size:13.5px; color:var(--ink);}
.dd-pct{font-weight:800; font-size:16px; flex:none;}
.dd-meta{font-size:11.5px; color:var(--ink-soft); margin-bottom:6px;}
.dd-chip{font-size:11.5px; color:var(--ink-soft); background:var(--card); border:1px solid var(--line); border-radius:8px; padding:5px 8px; margin-top:4px;}
.dd-chip.warn{color:#8A4A3F; background:#FBEBEA; border-color:#E7C3BC;}
.dd-variants{background:var(--card); border:1px solid var(--line); border-radius:8px; padding:6px 8px; margin-bottom:6px;}
.dd-variant-row{display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px dashed var(--paper-2); font-size:11.5px;}
.dd-variant-row:last-child{border-bottom:none;}
.dd-variant-name{flex:0 0 auto; font-weight:700; color:var(--ink); min-width:52px;}
.dd-variant-hours{flex:1; color:var(--ink-soft);}
.dd-variant-pct{flex:0 0 auto; font-weight:700; min-width:34px; text-align:left;}
.dd-notes{background:var(--card); border:1px solid var(--line); border-radius:8px; padding:7px 9px; margin-top:6px;}
.dd-notes-title{font-size:11px; font-weight:700; color:var(--teal-deep); margin-bottom:4px;}
.dd-notes-count{font-weight:400; color:var(--ink-soft);}
.dd-notes-list{max-height:160px; overflow-y:auto; -webkit-overflow-scrolling:touch;}
.dd-note-item{display:flex; gap:6px; align-items:baseline; font-size:11.5px; color:var(--ink); padding:2px 0;}
.dd-note-date{flex:none; color:var(--ink-soft); font-size:10.5px;}
.dd-note-text{flex:1; line-height:1.6;}

/* --- advisor: root-cause radar --- */
.radar-group{display:flex; flex-direction:column; gap:8px;}
.radar-group-title{font-size:12px; font-weight:700; color:var(--ink-soft); margin-bottom:6px;}
.radar-row{display:flex; align-items:center; gap:8px;}
.radar-label{flex:0 0 auto; max-width:130px; font-size:12px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.radar-bar-wrap{flex:1; height:8px; background:var(--paper); border-radius:999px; overflow:hidden;}
.radar-bar{height:100%; border-radius:999px;}
.radar-pct{flex:0 0 auto; font-size:12px; font-weight:700; color:var(--ink-soft); min-width:32px; text-align:left;}
.radar-strain-note{
  font-size:11px; color:var(--ink-soft); background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:5px 8px; margin:2px 0 6px;
}
.radar-strain-note.warn{color:#8A4A3F; background:#FBEBEA; border-color:#E7C3BC;}
.radar-strain-note.ok{color:var(--sage); background:#EAF4E9; border-color:#C7DEB5;}
/* --- advisor: bio & mental monitor --- */
.bio-highlight{background:#EAF4E9; border:1px solid var(--sage); color:var(--teal-deep); border-radius:10px; padding:8px 10px; font-size:12.5px; font-weight:700; line-height:1.7;}
.mood-chip{display:inline-block; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:4px 10px; font-size:12px; margin-inline-end:6px; margin-bottom:6px;}

/* --- advisor: daily timeline --- */
.tl-list{display:flex; flex-direction:column; gap:8px;}
.tl-day{background:var(--paper); border:1px solid var(--paper-2); border-radius:12px; padding:9px 12px;}
.tl-day-head{display:flex; justify-content:space-between; align-items:center; gap:8px;}
.tl-day-name{font-weight:700; font-size:12.5px; color:var(--ink);}
.tl-day-meta{font-weight:700; font-size:12px; color:var(--teal-deep);}
.tl-gap{margin-top:6px; font-size:11.5px; color:#8A4A3F; background:#FBEBEA; border:1px solid #E7C3BC; border-radius:8px; padding:5px 8px;}
.tl-gap.ok{color:var(--ink-soft); background:var(--card); border-color:var(--line);}
.tl-gap + .tl-gap{margin-top:5px;}

/* --- advisor: smart recommendation severity accents --- */
.adv-rec-item.red{border-inline-start:3px solid var(--brick);}
.adv-rec-item.yellow{border-inline-start:3px solid var(--ochre);}
.adv-rec-item.green{border-inline-start:3px solid var(--sage);}

.ws-nav{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  margin-bottom:12px;
}
.ws-navbtns{display:flex; gap:6px; justify-content:center; flex-wrap:wrap;}
.ws-btn{
  border:1px solid var(--line); background:var(--card); color:var(--teal-deep);
  border-radius:10px; padding:8px 12px; font-family:'Vazirmatn',sans-serif; font-size:12.5px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.ws-btn-primary{background:var(--teal-deep); border-color:var(--teal-deep); color:#fff;}
.ws-btn-sm{padding:5px 10px; font-size:11.5px; border-radius:8px;}
.ws-btn:disabled{opacity:.55; cursor:default;}
.ws-range{
  font-weight:700; font-size:13.5px; color:var(--ink); background:var(--card);
  padding:7px 14px; border-radius:999px; border:1px solid var(--line); text-align:center;
}
.ws-alert-box{
  font-size:12px; font-weight:700; color:var(--brick); background:#FBEAE7; border:1px solid #E7C3BC;
  border-radius:10px; padding:8px 10px; margin-bottom:12px; text-align:center; width:100%;
  font-family:'Vazirmatn',sans-serif;
}
.ws-alert-box::placeholder{color:#D39A92;}

/* excel-style weekly grid */
.ws-table-wrap{
  overflow-x:auto; overflow-y:hidden; border:1px solid var(--line); border-radius:14px;
  margin-bottom:16px; -webkit-overflow-scrolling:touch; box-shadow:var(--shadow); background:var(--paper);
  padding:6px;
}
.ws-table{border-collapse:separate; border-spacing:5px; width:max-content; min-width:100%;}
.ws-table th, .ws-table td{border:1.5px solid var(--line); border-radius:10px;}
.ws-table thead th{
  background:var(--teal-deep); color:#fff; font-weight:800; font-size:12.5px;
  padding:11px 8px; white-space:nowrap; text-align:center; border-color:var(--teal-deep);
}
.ws-th-day, .ws-day-name-cell{
  position:sticky; right:0; z-index:2;
}
.ws-th-day{background:var(--teal-deep); z-index:3;}
.ws-day-name-cell{
  background:var(--card); min-width:104px; padding:8px 10px; text-align:center; vertical-align:middle;
}
.ws-day-name-cell.today{background:#EAF4E9; border-color:var(--sage);}
.ws-day-name-inner{display:flex; flex-direction:column; align-items:center; gap:3px; position:relative;}
.ws-day-name-inner .ws-dn{font-weight:700; font-size:13.5px; color:var(--ink);}
.ws-day-name-cell.today .ws-dn{color:var(--sage);}
.ws-day-name-inner .ws-dd{font-size:11px; color:var(--ink-soft);}
.ws-badge{font-size:10px; background:#DEEFE9; color:var(--teal-deep); padding:2px 7px; border-radius:999px;}
.ws-note-trigger{
  border:none; background:#FBF1DE; color:var(--ochre); border-radius:999px;
  font-size:11px; padding:2px 8px; cursor:pointer; margin-top:2px; font-family:'Vazirmatn',sans-serif;
}
.ws-note-popover{
  display:none; position:fixed; width:200px; max-width:70vw; background:var(--card); border:1px solid #EAD6A6;
  border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.16); padding:9px 10px; z-index:200; text-align:right;
}
.ws-note-popover.open{display:block;}
.ws-note-popover textarea{
  width:100%; min-height:60px; border:1px solid #EAD6A6; background:#FFFDF6; border-radius:8px;
  font-family:'Vazirmatn',sans-serif; font-size:12.5px; padding:7px 8px; resize:vertical;
  line-height:1.5; color:var(--ink);
}
.ws-note-popover textarea:focus{outline:none; border-color:var(--ochre);}
.ws-note-popover .ws-note-view{font-size:12.5px; line-height:1.5; white-space:pre-wrap; word-break:break-word; color:var(--ink);}
.ws-daytype-toggle{
  border:1px solid var(--line); background:#fff; color:var(--ink-soft); border-radius:999px;
  font-size:10.5px; padding:2px 8px; cursor:pointer; margin-top:2px; font-family:'Vazirmatn',sans-serif;
}
.ws-daytype-toggle.active{border-color:transparent; font-weight:700;}
.ws-day-name-cell.ws-daytype-rest .ws-daytype-toggle.active{background:#EAF4E9; color:var(--sage);}
.ws-day-name-cell.ws-daytype-exam .ws-daytype-toggle.active{background:#FBF1DE; color:var(--ochre);}
.ws-daytype-tag{
  font-size:10.5px; border-radius:999px; padding:2px 8px; margin-top:2px; font-weight:700;
}
.ws-daytype-tag-rest{background:#EAF4E9; color:var(--sage);}
.ws-daytype-tag-exam{background:#FBF1DE; color:var(--ochre);}
.ws-day-name-cell.ws-daytype-rest{background:#F3FAF2;}
.ws-day-name-cell.ws-daytype-exam{background:#FFFBF0;}
.ws-part-cell{width:170px; min-width:170px; height:90px; padding:0; vertical-align:top; position:relative; overflow:hidden;}
.ws-part-cell-inner{
  height:90px; overflow-y:auto; padding:8px; box-sizing:border-box;
  display:flex; align-items:flex-start; justify-content:center;
  scrollbar-width:thin; scrollbar-color:rgba(0,0,0,.18) transparent;
}
.ws-part-cell-inner::-webkit-scrollbar{width:3px; height:3px;}
.ws-part-cell-inner::-webkit-scrollbar-track{background:transparent;}
.ws-part-cell-inner::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18); border-radius:3px;}
.ws-part-cell-inner::-webkit-scrollbar-button{display:none; width:0; height:0;}
.ws-part-cell-inner textarea{
  width:100%; border:none; background:transparent; resize:none; overflow:hidden;
  font-family:'Vazirmatn',sans-serif; font-size:12.5px; line-height:1.5; padding:0; color:var(--ink);
  text-align:center; font-weight:700;
}
.ws-part-cell-inner textarea:focus{outline:none;}
.ws-view-text{font-size:12.5px; line-height:1.5; white-space:pre-wrap; word-break:break-word; color:var(--ink); text-align:center; font-weight:700;}
.ws-view-text.empty{color:var(--ink-soft); text-align:center; font-weight:400;}
.ws-col-1{background:#E4F3EE;}
.ws-col-2{background:#FCEFDD;}
.ws-col-3{background:#E1EEF7;}
.ws-col-4{background:#EAE6F5;}
.ws-col-5{background:#FBE7E7;}
.ws-col-6{background:#FBF6D9;}
.ws-col-7{background:#EFF6E8;}
.ws-part-cell.ws-flagged{border-color:#C1443A;}
.ws-part-cell.ws-flagged .ws-part-cell-inner{background:#FBDCD9;}
.ws-part-cell.ws-flagged .ws-view-text, .ws-part-cell.ws-flagged textarea{color:#7A231C;}
.ws-flag-toggle{
  position:absolute; top:4px; left:4px; width:17px; height:17px; border:none; border-radius:50%;
  background:rgba(255,255,255,.7); cursor:pointer; font-size:9px; line-height:1; padding:0;
  display:flex; align-items:center; justify-content:center; color:var(--ink-soft); z-index:1;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.ws-flag-toggle:hover{background:#fff;}
.ws-part-cell.ws-flagged .ws-flag-toggle{background:#C1443A; color:#fff;}
.ws-flag-dot{cursor:default;}

.ws-summary-card{
  background:#EEF3F1; border:1.5px solid var(--teal); border-radius:16px; padding:14px;
  margin-top:4px; margin-bottom:16px; box-shadow:var(--shadow);
}
.ws-summary-head{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px;}
.ws-summary-title{font-size:14px; font-weight:700; color:var(--teal-deep);}
.ws-summary-card textarea{
  width:100%; border:1px solid var(--line); background:var(--card); border-radius:8px;
  font-family:'Vazirmatn',sans-serif; font-size:13px; padding:8px 10px; resize:none; overflow:hidden;
  line-height:1.7; min-height:38px; color:var(--ink);
}
.ws-summary-card textarea:focus{outline:none; border-color:var(--teal);}
.ws-summary-view{font-size:13px; line-height:1.8; white-space:pre-wrap; word-break:break-word; color:var(--ink);}
.datebar{
  background:var(--teal-deep);
  border:var(--card-border);
  border-radius:var(--card-radius);
  padding:10px 14px;
  display:flex; align-items:center; justify-content:space-between;
  box-shadow:var(--shadow);
  margin-bottom:16px;
  position:relative;
  clip-path:var(--card-clip);
}
.datebar button{
  width:34px;height:34px;border-radius:10px;border:1px solid #E08A2E;
  background:#E8862A; color:#fff; font-size:16px; cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition: var(--btn-transition);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 2px 6px rgba(21,77,64,.25);
  transform: translateY(0);
}
.datebar button:hover{ transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 6px 14px rgba(21,77,64,.32); }
.datebar button:active{ transform: translateY(1px); box-shadow: inset 0 2px 4px rgba(0,0,0,.25); }
.date-main{text-align:center;}
.date-main .jalali{font-weight:700; font-size:15px; color:#fff;}
.date-main .dow{font-size:11px; color:rgba(255,255,255,.85);}
.today-pill{
  font-size:11px; color:var(--teal); background:#DEEFE9; border:1px solid #BFDFD3;
  padding:2px 8px; border-radius:999px; cursor:pointer; margin-inline-start:6px;
}

/* summary strip */
.mood-card{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:12px 14px; box-shadow:var(--shadow); margin-bottom:16px;
  position:relative; clip-path:var(--card-clip);
}
.mood-card h2{font-size:13.5px; margin:0 0 10px; font-weight:700; color:var(--ink-soft);}
.mood-row{display:flex; gap:5px; flex-wrap:nowrap;}
.mood-btn{
  flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; gap:3px;
  border:1.5px solid var(--line); background:var(--paper); border-radius:12px;
  padding:8px 2px; cursor:pointer;
}
.mood-btn .em{font-size:18px;}
.mood-btn .lbl2{font-size:9.5px; color:var(--ink-soft); text-align:center; line-height:1.25;}
.mood-btn.selected{border-color:var(--teal); background:#DEEFE9;}
.mood-btn.selected .lbl2{color:var(--teal-deep); font-weight:700;}

.vocab-entry-card{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:12px 14px; box-shadow:var(--shadow); margin-bottom:16px;
}
.vocab-entry-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
.vocab-entry-head h2{font-size:13.5px; margin:0; font-weight:700; color:var(--ink-soft);}
.vocab-badge{
  background:var(--brick); color:#fff; font-size:11px; font-weight:800;
  border-radius:999px; padding:2px 9px;
}
.vocab-start-btn{
  width:100%; border:none; background:var(--teal-deep); color:#fff; border-radius:12px;
  padding:12px; font-weight:800; font-size:14px; cursor:pointer;
}
.vocab-done-msg{
  text-align:center; font-size:12.5px; color:var(--sage); font-weight:700; padding:6px 0;
}

.vocab-status-card{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:12px 14px; box-shadow:var(--shadow); margin-bottom:16px;
}
.vocab-status-card h2{font-size:13.5px; margin:0 0 10px; font-weight:700; color:var(--ink-soft);}
.vocab-status-row{margin-bottom:12px;}
.vocab-status-row:last-child{margin-bottom:0;}
.vocab-status-row .vs-title{font-size:12.5px; font-weight:700; color:var(--teal-deep); margin-bottom:6px;}
.vs-bar{display:flex; gap:3px;}
.vs-seg{
  flex:1; min-width:0; border-radius:8px; padding:6px 1px 5px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
}
.vs-seg .vs-num{font-size:12.5px; font-weight:800; color:#fff; line-height:1.1;}
.vs-seg .vs-lbl{font-size:8px; color:rgba(255,255,255,.9); line-height:1.1; white-space:nowrap;}
.vs-seg.empty{background:var(--paper-2);}
.vs-seg.empty .vs-num{color:var(--ink-soft);}
.vs-seg.empty .vs-lbl{color:var(--ink-soft); opacity:.75;}
.vocab-status-empty{font-size:12px; color:var(--ink-soft); text-align:center; padding:6px 0;}

.stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:18px;
}
.stat{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:10px 8px; text-align:center; box-shadow:var(--shadow);
  position:relative; clip-path:var(--card-clip); overflow:hidden;
}
.stat .num{font-size:18px; font-weight:800; color:var(--teal-deep);}
.stat .lbl{font-size:10.5px; color:var(--ink-soft); margin-top:2px;}
.stats .stat:nth-child(1){background:#DEEFE9; border-color:#BFDFD3;}
.stats .stat:nth-child(1) .num{color:var(--teal-deep);}
.stats .stat:nth-child(1) .lbl{color:#2F6F62;}
.stats .stat:nth-child(2){background:#FBF1DE; border-color:#EAD6A6;}
.stats .stat:nth-child(2) .num{color:#8A5D1D;}
.stats .stat:nth-child(2) .lbl{color:#9A7434;}
.stats .stat:nth-child(3){background:#EDEBFB; border-color:#D3CDF5;}
.stats .stat:nth-child(3) .num{color:#4C4FE0;}
.stats .stat:nth-child(3) .lbl{color:#6B5FC9;}

/* sessions */
.honest-card{
  background:#FBEBEA; border:1.5px solid #E3A9A2; border-radius:16px;
  margin-bottom:18px; overflow:hidden;
}
.honest-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; padding:13px 14px; cursor:pointer;
  font-size:14px; font-weight:700; color:var(--brick); text-align:right;
}
.honest-toggle small{font-size:11px; font-weight:500; color:#B5675E; margin-inline-start:6px;}
.honest-toggle .chev{font-size:13px; transition:transform .2s;}
.honest-toggle .chev.open{transform:rotate(180deg);}
.honest-body{display:none; padding:0 14px 14px;}
.honest-body.open{display:block;}
.honest-sub{font-size:12px; color:#6B3530; line-height:1.7; margin-bottom:10px; font-weight:500;}
.honest-item{
  display:flex; align-items:flex-start; gap:9px; background:#fff; border:1px solid #EFCFC9;
  border-radius:12px; padding:10px 12px; margin-bottom:8px; cursor:pointer;
}
.honest-item input{width:18px;height:18px; accent-color:var(--brick); flex:none; margin-top:2px;}
.honest-item span{font-size:12.5px; line-height:1.7; color:#3A241F; font-weight:500;}
.honest-item.checked{background:#FBEBEA; border-color:var(--brick);}

.section-title{
  display:flex; align-items:center; justify-content:space-between;
  margin:28px 0 12px;
}
.section-title h2{ letter-spacing:-.01em; }
.review-card{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:14px; box-shadow:var(--shadow); margin-bottom:18px;
  position:relative; clip-path:var(--card-clip);
}
.review-card h2{font-size:15px; margin:0 0 4px;}
.review-sub{font-size:11.5px; color:var(--ink-soft); margin-bottom:10px;}
.review-item{
  display:flex; align-items:center; gap:10px; padding:8px 4px;
  border-top:1px dashed var(--line);
}
.review-item:first-of-type{border-top:none;}
.review-item input[type=checkbox]{width:18px; height:18px; accent-color:var(--teal); flex:none;}
.review-item .rtxt{flex:1; font-size:13px;}
.review-item .rtxt b{color:var(--teal-deep);}
.review-item .stage-pill{
  font-size:10.5px; background:#FBF1DE; color:var(--ochre); border:1px solid #EAD6A6;
  border-radius:999px; padding:2px 8px; flex:none;
}
.review-empty{font-size:12.5px; color:var(--ink-soft); text-align:center; padding:6px 0;}

.reminder-add-row{display:flex; gap:8px; margin-bottom:12px;}
.reminder-add-row input{flex:1;}
.reminder-add-row button{
  border:none; background:var(--teal); color:#fff; border-radius:10px; padding:0 14px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.reminder-item{
  padding:10px 4px; border-top:1px dashed var(--line);
}
.reminder-item:first-child{border-top:none;}
.reminder-item .rtxt{font-size:13px; margin-bottom:8px; line-height:1.6;}
.reminder-btns{display:flex; gap:8px;}
.reminder-btns button{
  flex:1; border:none; border-radius:9px; padding:8px; font-size:12px; font-weight:700; cursor:pointer;
}
.rem-yes{background:#DEEFE9; color:var(--teal-deep);}
.rem-no{background:#F7E3DF; color:var(--brick);}
.reminder-upcoming-title{
  font-size:11px; color:var(--ink-soft); margin:12px 0 4px; padding-top:10px; border-top:1px dashed var(--line);
}
.reminder-upcoming-row{
  display:flex; align-items:center; gap:8px; padding:5px 2px; font-size:11.5px; color:var(--ink-soft);
}
.reminder-upcoming-row .rtxt2{flex:1;}
.reminder-upcoming-row .rdate{font-size:10.5px;}
.reminder-upcoming-row button{border:none;background:none;color:var(--brick); cursor:pointer; font-size:12px;}

.track-pick-row{display:flex; gap:8px; margin-top:8px; margin-bottom:6px;}
.track-pick-btn{
  flex:1; border:1px solid var(--line); background:var(--paper); color:var(--teal-deep);
  border-radius:10px; padding:10px; font-weight:700; font-size:13px; cursor:pointer;
}
.reminder-track-row{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;
}
.reminder-track-row span{
  font-size:11.5px; font-weight:700; color:var(--teal-deep); background:#DEEFE9;
  padding:3px 10px; border-radius:999px;
}
.reminder-track-row button{
  border:none; background:none; color:var(--ink-soft); font-size:11px; cursor:pointer; text-decoration:underline;
}
.reminder-scroll{max-height:280px; overflow-y:auto;}
.reminder-item .rsubject{
  display:inline-block; font-size:10px; background:var(--paper-2); color:var(--ink-soft);
  border-radius:999px; padding:2px 8px; margin-bottom:6px;
}
.reminder-upcoming-toggle{
  width:100%; text-align:center; background:none; border:1px dashed var(--line); border-radius:10px;
  padding:8px 10px; font-size:12px; color:var(--ink-soft); cursor:pointer; margin-top:10px;
}
.reminder-upcoming-body{display:none; margin-top:8px;}
.reminder-upcoming-body.open{display:block;}

.action-item{
  display:flex; align-items:center; gap:10px; padding:8px 4px;
  border-top:1px dashed var(--line);
}
.action-item:first-of-type{border-top:none;}
.action-item input[type=checkbox]{width:18px; height:18px; accent-color:var(--teal); flex:none;}
.action-item .atxt{flex:1; font-size:13px;}
.action-item .atxt b{color:var(--teal-deep);}
.action-item .type-pill{
  font-size:10.5px; border-radius:999px; padding:2px 8px; flex:none;
}
.type-pill.study{background:#DEEFE9; color:var(--teal-deep); border:1px solid #BFDFD3;}
.type-pill.test{background:#F7E3DF; color:var(--brick); border:1px solid #E9C3BC;}

.exam{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:14px; margin-bottom:12px; box-shadow:var(--shadow); position:relative;
  clip-path:var(--card-clip);
}
.exam-top{display:flex; gap:8px; align-items:center; margin-bottom:10px;}
.exam-top select{flex:1;}
.exam-top input[type=number]{width:70px; text-align:center;}
.mistake-save-btn{margin-top:10px;}
.mistake-del{border:none;background:none;color:var(--brick);font-size:14px;cursor:pointer; flex:none;}
.mistake-chip-label{font-size:10.5px; color:var(--ink-soft); font-weight:700; margin-bottom:4px; display:block;}
.mistake-chip-row{display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap;}
.mistake-chip{
  flex:1; min-width:64px; border:1px solid var(--line); background:var(--card); color:var(--ink-soft);
  border-radius:8px; padding:7px 4px; font-family:'Vazirmatn',sans-serif; font-size:11.5px; font-weight:700; cursor:pointer; text-align:center;
}
.mistake-chip.selected.answer-wrong{background:#F7E3DF; border-color:#E9C3BC; color:var(--brick);}
.mistake-chip.selected.answer-blank{background:var(--paper-2); border-color:var(--line); color:var(--ink);}
.mistake-chip.selected.answer-lucky{background:#FBF1DE; border-color:#EAD6A6; color:var(--ochre);}
.mistake-chip.selected.level-easy{background:#EAF3E3; border-color:#C7DEB5; color:var(--sage);}
.mistake-chip.selected.level-medium{background:#FBF1DE; border-color:#EAD6A6; color:var(--ochre);}
.mistake-chip.selected.level-hard{background:#F7E3DF; border-color:#E9C3BC; color:var(--brick);}
.mistake-chip.selected.causecat{background:#DEEFE9; border-color:#BFDFD3; color:var(--teal-deep);}
.mistake-remedy-badge{
  font-size:11.5px; color:var(--teal-deep); background:#DEEFE9; border-radius:8px;
  padding:6px 9px; margin-bottom:6px;
}
.topic-field-head{
  display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:4px; flex-wrap:wrap;
}
.topic-field-head label{margin:0;}
.clone-topic-btn{
  border:none; background:#DEEFE9; color:var(--teal-deep); border-radius:7px;
  padding:3px 8px; font-size:10.5px; font-weight:700; cursor:pointer; flex:none;
}
.topic-quick-row{
  margin-top:7px; display:flex; gap:5px; flex-wrap:wrap; align-items:center;
}
.topic-quick-label{font-size:10.5px; color:var(--ink-soft);}
.quick-pick-topic{
  border:1px solid var(--line); background:#fff; border-radius:7px;
  padding:3px 9px; font-size:11px; font-weight:700; color:var(--ink); cursor:pointer;
}
.sheet-summary{
  background:#DEEFE9; border:1.5px solid #BFDFD3; border-radius:12px;
  padding:12px; margin-top:10px;
}
.sheet-summary-title{font-size:13px; font-weight:800; color:var(--teal-deep); margin-bottom:4px;}
.sheet-summary-msg{font-size:12px; color:var(--ink-soft); line-height:1.6; margin-bottom:8px;}
.sheet-summary .field{margin-bottom:0;}
.sheet-summary .drow{display:flex; justify-content:space-between; padding:4px 0; font-size:12.5px;}
.sheet-summary .drow span{color:var(--ink-soft);}
.sheet-summary .drow b{color:var(--ink); font-weight:700;}
.sheet-hm-inputs{display:flex; align-items:center; gap:6px;}
.sheet-hm-inputs input{width:64px; text-align:center;}
.sheet-self-summary{
  width:100%; resize:vertical; font-family:'Vazirmatn',sans-serif; font-size:12.5px;
  border:1px solid var(--line); border-radius:8px; padding:8px;
}
.sheet-self-summary-readout{margin-top:6px; padding-top:6px; border-top:1px dashed var(--line);}
.sheet-self-summary-readout span{display:block; font-size:10.5px; color:var(--ink-soft); font-weight:700; margin-bottom:3px;}
.sheet-self-summary-readout p{font-size:12.5px; line-height:1.7; white-space:pre-wrap; margin:0;}
/* --- پاسخ‌برگ دیجیتال آزمون --- */
.sheet-toggle-btn{
  flex:none; border:1px solid var(--teal-deep); background:#DEEFE9; color:var(--teal-deep);
  border-radius:8px; padding:6px 10px; font-family:'Vazirmatn',sans-serif; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.bubble-sheet-card{
  background:var(--paper); border:1.5px solid var(--line); border-radius:14px;
  padding:12px; margin-top:10px; margin-bottom:10px;
}
.sheet-top-row{display:flex; gap:8px; margin-bottom:10px; flex-wrap:wrap;}
.sheet-top-row .field{flex:1; min-width:120px;}
.sheet-ranges{margin-bottom:10px;}
.sheet-ranges-label{display:block; font-size:11px; color:var(--ink-soft); margin-bottom:6px;}
.sheet-range-row{display:flex; align-items:center; gap:6px; margin-bottom:6px;}
.sheet-range-row select{flex:1.4; min-width:0;}
.sheet-range-row input[type=number]{flex:1; min-width:0;}
.sheet-range-dash{flex:none; font-size:11px; color:var(--ink-soft);}
.range-del-btn{flex:none; border:none; background:none; color:var(--brick); font-size:14px; cursor:pointer; padding:2px 6px;}
.add-range-btn{
  border:1px dashed var(--line); background:none; color:var(--teal-deep); border-radius:8px;
  padding:6px 10px; font-family:'Vazirmatn',sans-serif; font-size:11.5px; font-weight:700; cursor:pointer; width:100%;
}
.sheet-subject-breakdown{margin-bottom:10px; display:flex; flex-direction:column; gap:5px;}
.sheet-breakdown-row{
  display:flex; align-items:center; gap:6px; background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:6px 10px; font-size:12px;
}
.sheet-breakdown-range{color:var(--ink-soft); font-size:11px; flex:1;}
.sheet-breakdown-pct{
  font-weight:800; 
  color:var(--teal-deep);
  direction: ltr;            /* 👈 این خط اضافه شد */
  display: inline-block;     /* 👈 این خط اضافه شد */
}
.sheet-group-header{
  font-size:11.5px; font-weight:700; color:var(--teal-deep); background:#DEEFE9;
  border-radius:8px; padding:5px 9px; margin:8px 0 4px;
}
.sheet-group-header:first-child{margin-top:0;}
.sheet-legend{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px;}
.sheet-legend-item{
  display:flex; align-items:center; gap:5px; background:#fff; border:1px solid var(--line);
  border-radius:8px; padding:5px 9px; font-size:11px; font-weight:700; color:var(--ink);
}
.sheet-legend-dot{
  width:17px; height:17px; border-radius:5px; display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:800; flex:none;
}
.sheet-legend-dot.ok{background:var(--sage); color:#fff;}
.sheet-legend-dot.bad{background:var(--brick); color:#fff;}
.sheet-legend-dot.simple{background:var(--paper-2); color:var(--ink-soft); border:1px solid var(--line);}
.sheet-legend-dot.lucky{background:var(--ochre); color:#fff;}
.sheet-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));
  gap:6px; max-height:340px; overflow-y:auto; padding:6px;
  background:var(--card); border:1px solid var(--line); border-radius:10px;
}
.sheet-q-row{
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:3px 6px; font-size:11.5px;
}
.sheet-q-num{font-weight:800; color:var(--teal-deep); min-width:20px;}
.sheet-bubbles{display:flex; gap:2px; flex-wrap:nowrap;}
.q-detail-toggle{
  flex:none; border:1px solid var(--line); background:var(--paper-2); color:var(--teal-deep);
  border-radius:7px; padding:3px 8px; font-family:'Vazirmatn',sans-serif; font-size:10.5px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.q-detail-toggle.done{background:#E4F3EC; color:#1E7A52; border-color:#BFE3D0;}
.q-detail-square{
  width:17px; height:17px; border-radius:5px; border:1px solid var(--line);
  background:var(--paper-2); color:var(--teal-deep); font-size:9.5px;
  cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; flex:none;
}
.q-detail-square.done{background:#E4F3EC; color:#1E7A52; border-color:#BFE3D0;}
.sheet-orphan-box{
  background:#FBF1DE; border:1px dashed var(--ochre); border-radius:10px;
  padding:8px 10px; margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; align-items:center;
}
.sheet-orphan-title{width:100%; font-size:11px; color:#8a5a00; line-height:1.6; margin-bottom:2px;}
.q-detail-toggle.orphan{background:#fff;}
.mistake-inline{
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:10px; margin:2px 0 8px;
}
.mistake-inline .field-row{margin-bottom:6px;}
.mistake-inline-actions{display:flex; gap:8px; margin-top:8px;}
.mistake-inline-actions .mistake-save-btn{flex:1; margin-top:0;}
.mistake-inline-actions .mistake-del{
  flex:none; border:1px solid var(--line); background:none; color:var(--brick);
  border-radius:8px; padding:0 12px; font-family:'Vazirmatn',sans-serif; font-size:11px; cursor:pointer;
}
.status-opt{
  width:17px; height:17px; border-radius:5px; border:1px solid var(--line);
  background:#fff; color:var(--ink-soft); font-size:9.5px; font-weight:700;
  cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;
}
.status-opt.active.stat-correct{background:var(--sage); color:#fff; border-color:var(--sage);}
.status-opt.active.stat-wrong{background:var(--brick); color:#fff; border-color:var(--brick);}
.status-opt.active.stat-blank{background:var(--paper-2); color:var(--ink); border-color:var(--line);}
.status-opt.active.stat-lucky{background:var(--ochre); color:#fff; border-color:var(--ochre);}
.grade-sheet-btn{width:100%; margin-top:10px;}
.exam-del{
  border:none;background:none;color:var(--brick);font-size:15px;cursor:pointer; flex:none;
}
.section-title h2{font-size:15px; margin:0; font-weight:700;}
.add-btn{
  border:none; background:var(--teal); color:#fff; font-weight:700; font-size:13px;
  padding:8px 14px; border-radius:10px; cursor:pointer;
}
.section-title{flex-wrap:wrap; gap:6px 10px;}
.section-title h2{white-space:nowrap;}
.add-btn-group{display:flex; gap:6px; flex-wrap:nowrap; flex-shrink:0; margin-inline-start:auto;}
.add-btn-group .add-btn{padding:6px 10px; font-size:11.5px; white-space:nowrap;}
.add-btn-general{background:var(--ochre);}
.track-pill{
  font-size:11px; font-weight:700; background:var(--paper-2); color:var(--teal-deep);
  border-radius:999px; padding:5px 10px; white-space:nowrap; flex:none;
}
.empty{
  border:1.5px dashed var(--line); border-radius:14px; padding:24px 14px;
  text-align:center; color:var(--ink-soft); font-size:13px;
}

.session-summary-wrap{margin-bottom:10px;}
.session-summary{
  display:flex; align-items:center; gap:8px;
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:10px 12px; box-shadow:var(--shadow); clip-path:var(--card-clip);
  transition: var(--btn-transition);
}
.session-summary:hover{ transform:translateY(-1px); }
.session-summary.unread{background:#FBEAE7; border-color:#E7C3BC;}
.session-summary.low-score{background:#FBEAE7; border-color:#E7C3BC;}
.session-summary.low-score .ssub, .session-summary.low-score .sdur{color:var(--brick);}
.session-summary.unread .ssub, .session-summary.unread .sdur{color:var(--brick);}
.session-summary-wrap .session-summary{margin-bottom:0; border-radius:14px 14px 0 0;}
.session-summary-wrap .session-details{border-radius:0 0 14px 14px;}
.session-summary .idx{
  width:24px;height:24px;border-radius:8px;background:var(--paper-2);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;
  color:var(--teal-deep); flex:none;
}
.session-summary .ssub{font-weight:700; color:var(--teal-deep); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.session-summary .sdur{font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
.purpose-pill{
  font-size:10px; background:var(--paper-2); color:var(--ink-soft);
  border-radius:999px; padding:1px 7px; margin-inline-start:4px; white-space:nowrap;
}
.purpose-pill.unread-pill{background:var(--brick); color:#fff; font-weight:700;}
.session-summary .view-session{
  border:1px solid var(--line); background:var(--paper); color:var(--ink-soft);
  border-radius:9px; padding:6px 9px; font-size:11.5px; font-weight:700; cursor:pointer; flex:none;
}
.session-summary .edit-session{
  border:1px solid var(--line); background:var(--paper); color:var(--teal-deep);
  border-radius:9px; padding:6px 10px; font-size:11.5px; font-weight:700; cursor:pointer; flex:none;
}
.session-summary .sdel{border:none;background:none;color:var(--brick); font-size:14px; cursor:pointer; flex:none;}
.session-details{
  background:var(--paper); border:var(--card-border); border-top:none;
  padding:10px 12px; box-shadow:var(--shadow);
}
.session-details .drow{
  display:flex; justify-content:space-between; gap:10px; font-size:12px; padding:4px 0;
  border-bottom:1px dashed var(--paper-2);
}
.session-details .drow:last-child{border-bottom:none;}
.session-details .drow span{color:var(--ink-soft); flex:none;}
.session-details .drow b{color:var(--ink); text-align:left; font-weight:600;}
.save-session-btn{
  width:100%; margin-top:12px; border:none; background:var(--teal); color:#fff;
  border-radius:10px; padding:11px; font-weight:700; font-size:13.5px; cursor:pointer;
}
.save-session-btn.unread{background:var(--brick);}
.unread-check{
  display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none;
  background:#FBEAE7; border:1px solid #E7C3BC; border-radius:10px; padding:9px 11px; margin-bottom:8px;
}
.unread-check input[type=checkbox]{width:18px; height:18px; accent-color:var(--brick); flex:none;}
.unread-check span{font-size:12.5px; font-weight:700; color:var(--brick);}
.session{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:14px; margin-bottom:12px; box-shadow:var(--shadow); position:relative;
  clip-path:var(--card-clip);
}
.session-summary, .session-details, .session{
  border-inline-start-width:4px;
  border-inline-start-color:var(--session-accent, var(--teal));
}
.session-summary .idx, .session-top .idx{
  background:var(--session-accent, var(--paper-2)); color:#fff;
}
.session-summary .ssub{ color:var(--session-accent, var(--teal-deep)); }
.session-summary.unread .idx{ background:var(--brick); }
.session-top{
  display:flex; gap:8px; align-items:center; margin-bottom:10px;
}
.session-top .idx{
  width:24px;height:24px;border-radius:8px;background:var(--paper-2);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;
  color:var(--teal-deep); flex:none;
}
.session-top select{flex:1;}
.session-top input{flex:1.4; min-width:0;}
.topic-field-wrap{
  display:flex; align-items:center; gap:6px; flex:1.4; min-width:0;
}
.topic-field-wrap select, .topic-field-wrap input{
  width:auto; flex:1; min-width:0;
}
.topic-field-wrap .add-reason-btn{
  width:30px; height:30px; font-size:15px; flex:none;
}
.reason-row select, .reason-row input{
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.del{
  border:none;background:none;color:var(--brick);font-size:15px;cursor:pointer;
  width:26px;height:26px;flex:none;
}

.field-row{display:flex; gap:8px; margin-bottom:8px;}
.field{flex:1; display:flex; flex-direction:column; gap:3px;}
.field label{font-size:10.5px; color:var(--ink-soft); font-weight:700;}
input, select, textarea{
  font-family:inherit; font-size:13.5px; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:10px;
  padding:8px 9px; width:100%;
}
textarea{resize:vertical; min-height:44px;}
.testgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:8px;}
.testgrid .field input{text-align:center;}
.duration-badge{
  font-size:11px; color:var(--teal-deep); background:#DEEFE9; border-radius:8px;
  padding:3px 8px; display:inline-block; margin-top:2px;
}
.reason-row{display:flex; gap:6px; align-items:center;}
.reason-row select{flex:1;}
.add-reason-btn{
  flex:none; width:34px; height:34px; border-radius:10px; border:1px dashed var(--teal);
  background:var(--paper); color:var(--teal-deep); font-size:16px; font-weight:700; cursor:pointer;
}
.remove-reason-btn{
  flex:none; width:34px; height:34px; border-radius:10px; border:1px solid var(--line);
  background:var(--paper); color:var(--brick); font-size:13px; cursor:pointer;
}
.learn-row{display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.learn-row input[type=range]{flex:1; accent-color:var(--teal);}
.learn-row input[type=range].level-unset{accent-color:var(--ink-soft); opacity:.55;}
.learn-val{font-size:13px; font-weight:700; color:var(--teal-deep); width:38px; text-align:center;}

.save-bar{
  position:sticky; bottom:10px; margin-top:18px;
}
.save-btn{
  width:100%; border:none; background:var(--teal-deep); color:#fff;
  font-weight:800; font-size:15px; padding:14px; border-radius:var(--card-radius); cursor:pointer;
  box-shadow:0 6px 18px rgba(21,77,64,.28);
  clip-path:var(--card-clip);
}
.save-btn.ws-dirty{background:var(--ochre); box-shadow:0 6px 18px rgba(201,138,44,.32);}
.save-msg{
  text-align:center; font-size:12px; color:var(--teal-deep); margin-top:8px; height:14px;
}
.reminder-gate-hint{
  text-align:center; font-size:11.5px; color:var(--ochre); margin-top:6px; line-height:1.6;
}
.reminder-gate-hint .gate-goto-btn{
  display:block; margin:6px auto 0; border:1px solid #EAD6A6; background:#FBF1DE; color:var(--ochre-deep,#8A5D1D);
  border-radius:9px; padding:7px 14px; font-family:'Vazirmatn',sans-serif; font-size:12px; font-weight:700; cursor:pointer;
}
.add-btn:disabled, .save-btn:disabled, .save-session-btn:disabled{
  opacity:.45; cursor:not-allowed; box-shadow:none; transform:none;
}

.chart-card{
  background:var(--card); border:var(--card-border); border-radius:var(--card-radius);
  padding:16px 14px 10px; box-shadow:var(--shadow); margin-top:26px;
  position:relative; clip-path:var(--card-clip);
}
.chart-card h2{font-size:15px; margin:0 0 12px;}

.range-row{display:flex; flex-direction:column; gap:10px;}
.range-row .field{flex:1;}
.jalali-picker{display:flex; gap:6px;}
.jalali-picker select{flex:1; min-width:0; text-align:center;}
.jalali-picker .jdp-year{flex:1.15;}
.analysis-block{margin-top:16px; padding-top:12px; border-top:1px dashed var(--line);}

.insight-block{margin-top:14px; padding-top:12px; border-top:1px dashed var(--line);}
.insight-subtitle{font-size:11.5px; color:var(--ink-soft); margin:-2px 0 10px;}
.insight-block:first-child{margin-top:0; padding-top:0; border-top:none;}
.insight-block h3{font-size:13px; margin:0 0 6px; color:var(--teal-deep);}
.insight-block p{font-size:12.5px; color:var(--ink); line-height:1.7; margin:0;}
.insight-block .ilist{font-size:12.5px; color:var(--ink); line-height:1.8; margin-top:4px; padding-right:16px;}
.insight-block .ilist-more{margin-top:6px;}
.insight-block .ilist-more summary{
  cursor:pointer; color:var(--teal-deep); font-weight:700; font-size:12px;
  list-style:none;
}
.insight-block .ilist-more summary::-webkit-details-marker{display:none;}
.insight-block .ilist-more summary::before{content:"▾ "; font-size:10px;}
.insight-block .ilist-more[open] summary::before{content:"▴ ";}
.insight-block .ilist-more-body{font-size:12.5px; color:var(--ink); line-height:1.8; margin-top:6px; padding-right:16px;}
.insight-delta{font-weight:700;}
.insight-delta.up{color:var(--sage);}
.insight-delta.down{color:var(--brick);}
.analysis-block h3{font-size:13px; margin:0 0 8px; color:var(--teal-deep);}
.arow{
  display:flex; justify-content:space-between; align-items:center;
  font-size:12.5px; padding:5px 2px; border-bottom:1px solid var(--paper-2);
}
.arow .abar{flex:1; height:7px; background:var(--paper-2); border-radius:4px; margin:0 8px; overflow:hidden;}
.arow .abar-fill{height:100%; background:var(--teal); border-radius:4px;}
.analysis-empty{font-size:12px; color:var(--ink-soft); text-align:center; padding:6px 0;}
.export-row{display:flex; gap:8px; margin-top:16px;}
.export-btn{
  flex:1; border:1px solid var(--line); background:var(--paper); color:var(--teal-deep);
  border-radius:10px; padding:10px; font-weight:700; font-size:13px; cursor:pointer;
}
#printArea{display:none;}
.gate-screen{
  min-height:80vh; display:flex; align-items:center; justify-content:center;
}
.gate-box{
  background:var(--card); border:1px solid var(--line); border-radius:20px;
  padding:32px 24px; width:100%; max-width:320px; text-align:center; box-shadow:var(--shadow);
}
.gate-title{font-size:21px; font-weight:800; color:var(--teal-deep); margin-bottom:18px;}
.gate-input{
  width:100%; text-align:center; font-size:18px; letter-spacing:.1em; font-weight:700;
  padding:12px; margin-bottom:12px;
}
.gate-btn{
  width:100%; border:none; background:var(--teal-deep); color:#fff; border-radius:12px;
  padding:12px; font-weight:800; font-size:14px; cursor:pointer;
}
.gate-error{color:var(--brick); font-size:12.5px; margin-top:10px; min-height:16px;}
.gate-offline-note{
  color:#8a6200; background:#FBF1DE; border:1px solid #EAD6A6; border-radius:10px;
  font-size:12px; line-height:1.7; padding:9px 11px; margin-bottom:14px; text-align:center;
}

.logout-btn{
  border:1px solid var(--line); background:var(--card); color:var(--ink-soft);
  border-radius:9px; padding:7px 12px; font-size:11.5px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.admin-row{
  display:flex; align-items:center; gap:8px; background:var(--card); border:1px solid var(--line);
  border-radius:14px; padding:12px; margin-bottom:10px; box-shadow:var(--shadow); flex-wrap:wrap;
}
.admin-row .aname{font-weight:700; font-size:13.5px; flex:1; min-width:90px;}
.admin-row .acode{
  font-family:monospace; font-size:13px; letter-spacing:.05em; background:var(--paper-2);
  border-radius:8px; padding:4px 10px; color:var(--teal-deep); font-weight:700;
}
.admin-row button{
  border:1px solid var(--line); background:var(--paper); color:var(--ink-soft);
  border-radius:8px; padding:6px 9px; font-size:11px; font-weight:700; cursor:pointer;
}
.admin-row .arow-edit{color:var(--teal-deep);}
.admin-row .arow-del{color:var(--brick);}
.admin-empty{font-size:12.5px; color:var(--ink-soft); text-align:center; padding:10px 0;}
.advisor-bio-card{
  background:var(--card); border:1.5px solid var(--brick); border-radius:14px;
  padding:12px 14px; margin-bottom:14px; box-shadow:var(--shadow);
}
.advisor-bio-title{font-size:12.5px; font-weight:700; color:var(--brick); margin-bottom:8px; line-height:1.6;}
.advisor-bio-save-row{display:flex; align-items:center; gap:10px; margin-top:8px;}
.save-msg-inline{font-size:12px; color:var(--teal-deep); font-weight:700;}

/* ---------------- تیم ما ---------------- */
.field-hint{
  font-size:10.5px; color:var(--ochre); margin-top:2px; line-height:1.5;
}
.team-section{margin-bottom:16px; padding-bottom:16px; border-bottom:1px dashed var(--line);}
.team-section:last-child{border-bottom:none; margin-bottom:0; padding-bottom:0;}
.team-section-title{font-size:13px; font-weight:800; color:var(--teal-deep); margin-bottom:8px;}
.team-bio-card{
  background:var(--paper); border:1px solid var(--paper-2); border-radius:12px;
  padding:10px 12px;
}
.team-bio-card-mine{cursor:pointer;}
.team-bio-card-mine:active{transform:scale(.99);}
.tbio-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px;}
.tbio-alias{font-weight:800; font-size:14px; color:var(--ink);}
.tbio-grade{
  font-size:10.5px; font-weight:700; color:var(--teal-deep); background:#DEEFE9;
  border-radius:999px; padding:2px 9px;
}
.me-tag{
  font-size:10.5px; font-weight:700; color:var(--teal-deep); background:#DEEFE9;
  border-radius:999px; padding:2px 9px; white-space:nowrap;
}
.tbio-edit-hint{margin-inline-start:auto; font-size:11px; color:var(--teal-deep); font-weight:700;}
.roster-details-toggle{
  margin-inline-start:auto; border:1px solid var(--line); background:var(--card); color:var(--teal-deep);
  border-radius:999px; padding:2px 9px; font-family:'Vazirmatn',sans-serif; font-size:10.5px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.roster-details{margin-bottom:6px;}
.tbio-goal{
  display:inline-block; font-size:12px; font-weight:700; color:#8A5D1D; background:#FBF1DE;
  border:1px solid #EAD6A6; border-radius:999px; padding:3px 10px; margin-bottom:6px;
}
.tbio-row{font-size:12px; color:var(--ink); line-height:1.7; margin-bottom:3px;}
.tbio-quote{
  font-size:12px; color:var(--ink-soft); font-style:italic; margin-top:6px;
  padding-top:6px; border-top:1px dashed var(--line);
}
.tbio-updated{font-size:10.5px; color:var(--ink-soft); margin-top:6px;}

.team-hours-chips{display:flex; gap:6px; flex-wrap:wrap; margin-top:10px;}
.hchip{
  display:flex; align-items:center; gap:5px; font-size:11px; font-weight:700;
  border-radius:999px; padding:4px 10px; white-space:nowrap;
}
.hchip b{font-size:12px;}
.hchip-today{background:#DEEFE9; color:var(--teal-deep);}
.hchip-week{background:#FBF1DE; color:#8A5D1D;}
.hchip-month{background:#EDEBFB; color:#4C4FE0;}

.team-save-row{display:flex; align-items:center; gap:10px;}
.team-advisor-card{
  background:#FBEBEA; border:1px solid #E3A9A2; border-radius:12px; padding:10px 12px;
}
.team-advisor-card .team-advisor-tag{
  display:inline-block; font-size:10.5px; font-weight:800; color:#fff; background:var(--brick);
  border-radius:999px; padding:2px 9px; margin-bottom:6px;
}
.team-advisor-card .team-advisor-text{
  font-size:13px; line-height:1.8; color:var(--ink); white-space:pre-line;
}
.team-advisor-toggle{
  width:100%; display:flex; align-items:center; gap:8px; background:none; border:none;
  padding:0; cursor:pointer; text-align:right; font-family:'Vazirmatn',sans-serif;
}
.advisor-toggle-label{flex:1; font-size:12.5px; font-weight:700; color:var(--brick);}
.advisor-toggle-chev{font-size:12px; color:var(--brick); transition:transform .2s;}
.advisor-toggle-chev.open{transform:rotate(180deg);}
.team-advisor-collapsed .team-advisor-text{margin-top:8px;}
.tbio-edit-btn{
  width:100%; margin-top:8px; border:1px solid var(--line); background:var(--card);
  color:var(--teal-deep); border-radius:9px; padding:8px; font-family:'Vazirmatn',sans-serif;
  font-size:12px; font-weight:700; cursor:pointer;
}

.team-pending-note{
  font-size:12.5px; color:var(--ink-soft); text-align:center; line-height:1.8;
  background:var(--paper); border:1px dashed var(--line); border-radius:12px; padding:14px;
}
.team-roster-row{
  display:flex; align-items:flex-start; gap:10px; padding:10px 4px;
  border-top:1px dashed var(--paper-2);
}
.team-roster-row:first-child{border-top:none;}
.team-roster-row.is-me{background:#EEF3F1; border-radius:10px; padding-inline:8px;}
.team-rank{
  flex:none; width:28px; height:28px; border-radius:50%; background:var(--paper-2);
  display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800;
  color:var(--teal-deep);
}
.team-rank.gold{background:#F4D67A;}
.team-rank.silver{background:#D8D8D8;}
.team-rank.bronze{background:#E3B08C;}
.team-roster-info{flex:1; min-width:0;}
.team-loading{font-size:12.5px; color:var(--ink-soft); text-align:center; padding:20px 0;}
.cheer-wrap{margin-top:10px;}
.cheer-toggle-btn{
  border:1px solid #F0D48A; background:#FFF3D6; color:#8a5a00; border-radius:999px;
  padding:5px 12px; font-family:'Vazirmatn',sans-serif; font-size:11.5px; font-weight:700; cursor:pointer;
}
.cheer-picker{
  display:none; flex-direction:column; gap:6px; margin-top:8px;
  background:var(--paper); border:1px dashed var(--line); border-radius:10px; padding:8px;
}
.cheer-msg-btn{
  border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:9px;
  padding:8px 10px; font-family:'Vazirmatn',sans-serif; font-size:12px; line-height:1.6;
  text-align:right; cursor:pointer;
}
.cheer-msg-btn:disabled{opacity:.5; cursor:default;}
.cheer-sent-msg{font-size:12px; color:var(--sage); font-weight:700; margin-top:6px;}
.backup-row{display:flex; gap:8px; margin-top:18px; padding-top:14px; border-top:1px dashed var(--line);}

.sync-status{
  position:fixed; top:10px; left:50%; transform:translateX(-50%) translateY(-140%);
  background:var(--teal-deep); color:#fff; font-size:11.5px; font-weight:700;
  padding:6px 14px; border-radius:999px; box-shadow:0 4px 14px rgba(0,0,0,.2);
  z-index:1000; opacity:0; transition:transform .25s ease, opacity .25s ease;
  pointer-events:none;
}
.sync-status.show{transform:translateX(-50%) translateY(0); opacity:1;}
.sync-status.saving{background:var(--ochre);}
.sync-status.updated{background:var(--sage);}
.sync-status.error{background:var(--brick);}
.sync-status.offline{background:#B8860B;}

.idb-warning-note{
  position:fixed; top:0; left:0; right:0; z-index:1001;
  background:var(--brick); color:#fff; font-size:11.5px; font-weight:700;
  text-align:center; padding:8px 14px; line-height:1.7;
}

/* ---------------- راهنما ---------------- */
.guide-btn{
  border:none; background:none; cursor:pointer; font-size:20px; line-height:1;
  padding:2px 3px; flex:none; position:relative; z-index:1;
}
.guide-suggest-link{
  display:block; width:100%; margin-top:6px; border:1px dashed var(--teal);
  background:#EAF4E9; color:var(--teal-deep); border-radius:9px; padding:8px 10px;
  font-family:'Vazirmatn',sans-serif; font-size:12px; font-weight:700; cursor:pointer; text-align:center;
}
.guide-root-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px;}
.guide-root-card{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  border:1.5px solid var(--line); background:var(--paper); border-radius:14px;
  padding:18px 10px; font-family:'Vazirmatn',sans-serif; font-weight:700; font-size:13px;
  color:var(--ink); cursor:pointer;
}
.guide-root-icon{font-size:26px;}
.guide-root-challenges{grid-column:1 / -1;}
.guide-list{display:flex; flex-direction:column; gap:8px; margin-top:10px;}
.guide-list-item{
  text-align:right; border:1px solid var(--line); background:var(--card); border-radius:10px;
  padding:10px 12px; font-family:'Vazirmatn',sans-serif; font-size:13px; font-weight:700;
  color:var(--teal-deep); cursor:pointer;
}
.guide-list-item.empty{color:var(--ink-soft); font-weight:400;}
.guide-back-btn{
  border:none; background:none; color:var(--teal-deep); font-family:'Vazirmatn',sans-serif;
  font-size:12.5px; font-weight:700; cursor:pointer; padding:0 0 10px; display:block;
}
.guide-detail-title{font-size:15px; font-weight:800; color:var(--ink); margin-bottom:8px;}
.guide-detail-body{font-size:13px; line-height:1.9; color:var(--ink); white-space:pre-line;}
.guide-admin-section{margin-top:14px; padding-top:14px; border-top:1px dashed var(--line);}
.guide-admin-section:first-child{margin-top:0; padding-top:0; border-top:none;}
.guide-admin-subtitle{font-size:12.5px; font-weight:800; color:var(--brick);}
.guide-admin-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:none; border:none; padding:0; cursor:pointer; text-align:right; font-family:'Vazirmatn',sans-serif;
}
.guide-admin-chev{font-size:12px; color:var(--brick); transition:transform .2s; flex:none;}
.guide-admin-chev.open{transform:rotate(180deg);}
.guide-admin-collapse{margin-top:10px;}
.guide-add-challenge-btn{
  border:1px dashed var(--teal); background:#EAF4E9; color:var(--teal-deep); border-radius:9px;
  padding:7px 12px; font-family:'Vazirmatn',sans-serif; font-size:12px; font-weight:700; cursor:pointer; margin-top:8px;
}
.guide-map-row{display:flex; align-items:center; gap:8px; margin-bottom:8px;}
.guide-map-label{flex:1; font-size:12px; color:var(--ink);}
.guide-map-row select{flex:1;}
.guide-challenge-row{
  border:1px solid var(--line); background:var(--paper); border-radius:10px;
  padding:10px; margin-bottom:10px;
}
.guide-challenge-title{margin-bottom:6px; font-weight:700;}
.guide-challenge-body{margin-bottom:6px;}
.guide-challenge-row .guide-challenge-save, .guide-challenge-row .guide-challenge-del{
  border:1px solid var(--line); background:var(--card); border-radius:8px; padding:6px 12px;
  font-family:'Vazirmatn',sans-serif; font-size:11.5px; font-weight:700; cursor:pointer; margin-inline-end:6px;
}
.guide-challenge-row .guide-challenge-save{color:var(--teal-deep);}
.guide-challenge-row .guide-challenge-del{color:var(--brick);}
.guide-challenge-row-collapsed{
  display:flex; align-items:center; gap:8px; border:1px solid var(--line); background:var(--paper);
  border-radius:10px; padding:9px 10px; margin-bottom:10px;
}
.guide-challenge-row-title{flex:1; font-size:12.5px; font-weight:700; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.guide-challenge-row-collapsed .guide-challenge-edit, .guide-challenge-row-collapsed .guide-challenge-del{
  border:1px solid var(--line); background:var(--card); border-radius:8px; padding:5px 10px;
  font-family:'Vazirmatn',sans-serif; font-size:11px; font-weight:700; cursor:pointer; flex:none;
}
.guide-challenge-row-collapsed .guide-challenge-edit{color:var(--teal-deep);}
.guide-challenge-row-collapsed .guide-challenge-del{color:var(--brick);}


.modal-overlay{
  display:none; position:fixed; inset:0; background:rgba(38,49,43,.45);
  align-items:center; justify-content:center; z-index:1002; padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--card); border-radius:16px; padding:18px; width:100%; max-width:340px;
  box-shadow:0 10px 30px rgba(0,0,0,.2); max-height:82vh; overflow-y:auto;
}
.modal-msg{font-size:13.5px; margin-bottom:10px; line-height:1.6; white-space:pre-line;}
.modal-input{width:100%; margin-bottom:12px;}
.modal-btns{display:flex; gap:8px;}
.modal-btn{
  flex:1; border:none; background:var(--teal-deep); color:#fff; border-radius:10px;
  padding:10px; font-weight:700; font-size:13px; cursor:pointer;
}
.modal-btn.ghost{background:var(--paper); color:var(--ink-soft); border:1px solid var(--line);}
.mistake-modal-box{
  max-width:420px; max-height:85vh; padding:0; display:flex; flex-direction:column; overflow:hidden;
}
.mistake-modal-head{
  flex:none; display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid var(--line);
}
.mistake-modal-title{font-size:14px; font-weight:800; color:var(--teal-deep);}
.mistake-modal-close{
  flex:none; border:none; background:var(--paper-2); color:var(--ink-soft); width:28px; height:28px;
  border-radius:8px; font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.mistake-modal-body{flex:1; overflow-y:auto; padding:14px 16px 18px; -webkit-overflow-scrolling:touch;}

/* ---------------- burnout SOS badge (admin panel) ---------------- */
.sos-badge{
  display:inline-flex; align-items:center; gap:4px; background:var(--brick); color:#fff;
  border-radius:8px; padding:3px 8px; font-size:11px; font-weight:800; margin-inline-start:6px;
  animation: sosBlink 1.1s ease-in-out infinite;
}
@keyframes sosBlink{ 0%,100%{opacity:1;} 50%{opacity:0.4;} }

/* ---------------- golden-day celebration ---------------- */
.golden-day-overlay{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:center;
  z-index:9999; pointer-events:none;
}
.golden-day-card{
  background:#fff; border:2px solid var(--ochre); border-radius:18px; padding:22px 28px;
  text-align:center; box-shadow:0 10px 34px rgba(0,0,0,.22);
  animation: goldenPop .45s cubic-bezier(.34,1.56,.64,1);
}
@keyframes goldenPop{
  0%{ transform:scale(.6); opacity:0; }
  60%{ transform:scale(1.08); opacity:1; }
  100%{ transform:scale(1); opacity:1; }
}
.golden-day-emoji{font-size:40px; margin-bottom:6px;}
.golden-day-title{font-size:16px; font-weight:800; color:var(--ochre);}
.golden-day-sub{font-size:12.5px; color:var(--ink-soft); margin-top:4px;}

/* ---------------- Statistics tab redesign ---------------- */
.stat-pill-row{
  display:flex; gap:6px; overflow-x:auto; padding:2px 2px 8px; margin-bottom:4px;
  -webkit-overflow-scrolling:touch;
}
.stat-pill{
  flex:none; border:1.5px solid var(--line); background:#fff; color:var(--ink);
  border-radius:20px; padding:8px 14px; font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.stat-pill.active{background:var(--teal-deep); border-color:var(--teal-deep); color:#fff;}
.stat-period-label{font-size:12px; color:var(--ink-soft); margin-bottom:10px; text-align:center;}

.stat-hero-card{display:flex; gap:0; padding:14px 8px;}
.stat-hero-col{flex:1; text-align:center; padding:6px 8px;}
.stat-hero-col + .stat-hero-col{border-right:1px solid var(--line);}
.stat-hero-label{font-size:12px; color:var(--teal-deep); font-weight:700; margin-bottom:4px;}
.stat-hero-value{font-size:19px; font-weight:800; color:var(--ink);}
.stat-hero-sub{
  display:flex; gap:14px; justify-content:center; margin-top:-6px; margin-bottom:12px;
  font-size:12px; color:var(--ink-soft);
}
.stat-hero-sub b{color:var(--ink); font-weight:800;}

.stat-heatmap-row{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:4px;}
.stat-heatmap-dow{font-size:10px; color:var(--ink-soft); text-align:center; padding-bottom:2px;}
.stat-heatmap-cell{
  aspect-ratio:1; border-radius:6px; display:flex; align-items:center; justify-content:center;
  font-size:10px; color:var(--ink-soft);
}
.hm-0{background:var(--paper-2);}
.hm-1{background:#CFE9DA; color:var(--ink);}
.hm-2{background:#7FC79E; color:#fff;}
.hm-3{background:#2E9E6B; color:#fff;}
.hm-today{box-shadow:inset 0 0 0 2px var(--teal-deep);}
.stat-heatmap-legend{display:flex; gap:10px; justify-content:center; margin-top:8px; font-size:10.5px; color:var(--ink-soft); flex-wrap:wrap;}
.hm-swatch{display:inline-block; width:10px; height:10px; border-radius:3px; margin-inline-end:3px; vertical-align:middle;}

.stat-ratio-bar{display:flex; height:22px; border-radius:8px; overflow:hidden; margin-bottom:10px; background:var(--paper-2);}
.stat-ratio-seg{height:100%;}
.stat-ratio-legend{display:flex; flex-wrap:wrap; gap:8px 14px;}
.stat-ratio-legend-item{display:flex; align-items:center; gap:5px; font-size:11.5px; color:var(--ink);}
.stat-ratio-dot{width:9px; height:9px; border-radius:50%; flex:none;}
.stat-ratio-pct{font-weight:700; color:var(--ink-soft);}

.stat-perday-chart{
  display:flex; align-items:flex-end; gap:8px; height:175px; padding:16px 4px 8px;
  overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch;
  scrollbar-width:thin; scrollbar-color:var(--line) transparent;
}
.stat-perday-chart::-webkit-scrollbar{height:5px;}
.stat-perday-chart::-webkit-scrollbar-thumb{background:var(--line); border-radius:999px;}
.stat-perday-col{
  flex:1 0 36px; min-width:36px; display:flex; flex-direction:column;
  align-items:center; height:100%; justify-content:flex-end; gap:5px;
}
.stat-perday-bar{
  width:24px; max-width:32px; display:flex; flex-direction:column-reverse;
  border-radius:6px 6px 0 0; overflow:hidden; background:var(--paper-2);
}
.stat-perday-seg{width:100%;}
.stat-perday-label{font-size:10.5px; font-weight:700; color:var(--ink-soft); text-align:center; white-space:nowrap;}
.stat-perday-total{font-size:10px; font-weight:800; color:var(--ink); text-align:center; white-space:nowrap;}

.adv-section-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:none; border:none; padding:0; cursor:pointer; text-align:right;
  font-family:'Vazirmatn',sans-serif;
}
.adv-section-toggle h3{margin:0 0 10px;}
.adv-section-chev{font-size:12px; color:var(--ink-soft); transition:transform .2s; flex:none; margin-bottom:10px;}
.adv-section-chev.open{transform:rotate(180deg);}
.adv-section-body{
  padding-top:10px;
}

.chart-card-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:none; border:none; padding:0; cursor:pointer; text-align:right;
  font-family:'Vazirmatn',sans-serif;
}
.chart-card-toggle h2{margin:0;}
.chart-card-chev{font-size:13px; color:var(--ink-soft); transition:transform .2s; flex:none;}
.chart-card-chev.open{transform:rotate(180deg);}

.review-card-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:none; border:none; padding:0; cursor:pointer; text-align:right;
  font-family:'Vazirmatn',sans-serif;
}
.review-card-toggle h2{margin:0 0 4px;}

.test-note-toggle-btn, .weak-note-toggle-btn, .notes-toggle-btn{
  width:auto; padding:0 10px; font-size:11px; white-space:nowrap;
}

.unread-check-inline{
  flex:none; margin-bottom:0; padding:6px 9px; white-space:nowrap;
}
.unread-check-inline span{font-size:11.5px;}

@media print{
  body > *:not(#printArea){display:none !important;}
  #printArea{display:block;}
  body{background:#fff;}
  #printArea h2{font-size:16px; margin-top:18px;}
  #printArea table{width:100%; border-collapse:collapse; margin-bottom:10px;}
  #printArea td, #printArea th{border:1px solid #ccc; padding:5px 8px; font-size:12px; text-align:right;}
}
/* ---------------- admin dashboard redesign ---------------- */
.admin-toolbar{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;
}
.admin-tool-btn{
  flex:1 1 auto; min-width:120px; border:1px solid var(--line); background:var(--card);
  color:var(--teal-deep); border-radius:12px; padding:10px 12px; font-family:'Vazirmatn',sans-serif;
  font-size:12.5px; font-weight:700; cursor:pointer; text-align:center;
}

.admin-dash-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:16px;
}
.admin-dash-box{
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:12px 8px; text-align:center; box-shadow:var(--shadow);
}
.admin-dash-box.good{background:#EAF4E9; border-color:var(--sage);}
.admin-dash-box.warn{background:#FBEAE7; border-color:#E7C3BC;}
.admin-dash-num{font-size:20px; font-weight:800; color:var(--ink);}
.admin-dash-lbl{font-size:10.5px; color:var(--ink-soft); margin-top:2px;}

.student-card{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:12px 14px; margin-bottom:10px; box-shadow:var(--shadow); position:relative;
}
.student-card-top{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.student-card-status-dot{width:10px; height:10px; border-radius:50%; flex:none;}
.student-card-status-dot.dot-good{background:var(--sage);}
.student-card-status-dot.dot-idle{background:#B9B9B9;}
.student-card-status-dot.dot-warn{background:var(--brick);}
.student-card-name{font-weight:800; font-size:14px; color:var(--ink); flex:1; min-width:80px;}
.student-card-demo-tag{
  font-size:10px; font-weight:700; color:var(--ink-soft); background:var(--paper-2);
  border-radius:999px; padding:2px 8px; white-space:nowrap;
}
.student-card-warn-badge{
  font-size:10px; font-weight:800; color:#fff; background:var(--brick);
  border-radius:999px; padding:2px 8px; white-space:nowrap;
}
.student-card-code{
  font-family:monospace; font-size:12px; letter-spacing:.05em; background:var(--paper-2);
  border-radius:8px; padding:3px 9px; color:var(--teal-deep); font-weight:700;
}
.student-card-copy{
  border:1px solid var(--line); background:var(--paper); color:var(--ink-soft);
  border-radius:8px; padding:5px 8px; font-size:11px; font-weight:700; cursor:pointer;
}
.student-card-menu-btn{
  border:none; background:none; color:var(--ink-soft); font-size:18px; cursor:pointer;
  padding:2px 6px; flex:none;
}
.student-card-meta{font-size:12px; color:var(--ink-soft); margin:8px 0 10px;}
.student-card-enter-btn{
  width:100%; border:none; background:var(--teal-deep); color:#fff; border-radius:11px;
  padding:11px; font-weight:800; font-size:13.5px; cursor:pointer;
}
.student-card-menu-popup{
  display:none; position:absolute; top:38px; left:14px; z-index:20; min-width:150px;
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  box-shadow:0 6px 18px rgba(0,0,0,.16); padding:6px; flex-direction:column; gap:4px;
}
.student-card-menu-popup.open{display:flex;}
.student-card-menu-item{
  border:none; background:none; text-align:right; color:var(--ink); font-size:12.5px;
  padding:8px 10px; border-radius:8px; cursor:pointer; font-family:'Vazirmatn',sans-serif;
}
.student-card-menu-item:hover{background:var(--paper);}
.student-card-menu-item.danger{color:var(--brick);}

/* ---------------- ریسپانسیو تبلت/لپ‌تاپ ---------------- */
@media (min-width: 720px){
  .wrap{ max-width: 900px; }
  .dd-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; }
  .adv-day-grid{ grid-template-columns:repeat(7,1fr); }
  .ws-table-wrap{ padding:10px; }
}

@media (min-width: 1100px){
  .wrap{ max-width: 1180px; }
  .dd-grid{ grid-template-columns: repeat(3, 1fr); }
  .stats{ grid-template-columns: repeat(3, minmax(140px, 1fr)); max-width:520px; margin-inline:auto 0; }
}

/* ---------------- داشبورد کلاس (پنل مدیر) ---------------- */
.classdash-modal-box{ max-width:760px; }
.adv-stat-card.warn{ border-color:var(--brick); background:#FBEAE7; }

.cdh-legend{display:flex; gap:14px; margin-bottom:10px; font-size:11px; color:var(--ink-soft);}
.cdh-swatch{display:inline-block; width:10px; height:10px; border-radius:3px; margin-inline-end:4px; vertical-align:middle;}
.cdh-swatch.cdh-active{background:var(--sage);}
.cdh-swatch.cdh-burned{background:var(--brick);}
.cdh-swatch.cdh-none{background:var(--paper-2);}
.cdh-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:10px; padding:6px; background:var(--paper);}
.cdh-row{display:flex; align-items:center; gap:3px; padding:2px 0;}
.cdh-row.cdh-head{font-weight:700; font-size:10px; color:var(--ink-soft);}
.cdh-name{flex:0 0 110px; font-size:11.5px; font-weight:700; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-inline-end:6px;}
.cdh-cell{flex:0 0 22px; height:22px; border-radius:5px; display:flex; align-items:center; justify-content:center;}
.cdh-cell.cdh-daylabel{background:none; font-size:10px; color:var(--ink-soft);}
.cdh-cell.cdh-active{background:var(--sage);}
.cdh-cell.cdh-burned{background:var(--brick);}
.cdh-cell.cdh-none{background:var(--paper-2);}

/* ---------------- بازه‌ی دلخواه (تحلیل مشاور / داشبورد کلاس) ---------------- */
.adv-custom-range-row{
  display:flex; align-items:center; gap:8px; justify-content:center; flex-wrap:wrap;
  margin:-6px 0 14px;
}
.adv-custom-range-dash{font-size:12px; color:var(--ink-soft); flex:none;}

/* اصلاح جهت نمایش درصد و علامت منفی در کل برنامه */
.sheet-breakdown-pct,
.dd-pct,
.dd-variant-pct,
.radar-pct,
#statAcc {
  direction: ltr !important;
  display: inline-block;
  unicode-bidi: isolate;
}

/* ================= داشبورد کلاس — نسخه‌ی جدید (v2 UI) ================= */
.classdash-modal-box.cdb-dark{
  --paper:#0D1315; --paper-2:#151E21; --ink:#EAF2EE; --ink-soft:#94A69D; --line:#223136;
  --teal:#35D096; --teal-deep:#18614E; --ochre:#F0A732; --brick:#E85D4E; --sage:#57C47D;
  --card:#131B1E;
}
.cdb-theme-btn{border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:9px; padding:6px 10px; font-family:'Vazirmatn',sans-serif; font-size:11px; font-weight:700; cursor:pointer; margin-inline-end:6px;}
.cdb-filter-bar{background:var(--card); border-radius:14px; padding:8px 12px; margin-bottom:6px;}
.cdb-sec-title{font-size:14px; font-weight:900; color:var(--ink); margin:18px 0 10px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.cdb-sec-title .meta{font-size:11.5px; font-weight:600; color:var(--ink-soft);}
.cdb-clear-filter{border:1px solid var(--line); background:var(--card); color:var(--brick); border-radius:7px; padding:2px 8px; font-family:'Vazirmatn',sans-serif; font-size:10.5px; cursor:pointer; margin-inline-start:6px;}

.cdb-kpi-strip{display:grid; grid-template-columns:220px 1fr; gap:12px; margin-bottom:8px;}
@media (max-width:820px){ .cdb-kpi-strip{grid-template-columns:1fr;} }
.cdb-gauge-card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:var(--shadow); text-align:center;}
.cdb-gauge-title{font-size:11.5px; font-weight:800; color:var(--ink-soft); margin-bottom:4px;}
.cdb-gauge-num{font-size:28px; font-weight:900; margin-top:-42px;}
.cdb-gauge-tag{font-size:11px; font-weight:800; padding:3px 11px; border-radius:999px; margin-top:4px;}

.cdb-kpi-quad{display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
@media (max-width:680px){ .cdb-kpi-quad{grid-template-columns:repeat(2,1fr);} }
.cdb-kpi-tile{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px; box-shadow:var(--shadow);}
.cdb-kpi-top{display:flex; justify-content:space-between; align-items:center; font-size:11px; color:var(--ink-soft); font-weight:800;}
.cdb-kpi-val{font-size:20px; font-weight:900; margin-top:6px;}
.cdb-kpi-sub{font-size:10.5px; color:var(--ink-soft); margin-top:4px;}
.cdb-kpi-sub.good{color:var(--sage); font-weight:700;}
.cdb-kpi-sub.warn{color:var(--brick); font-weight:700;}
.cdb-dot{width:8px; height:8px; border-radius:50%; position:relative; display:inline-block;}
.cdb-dot.good{background:var(--sage);}
.cdb-dot.warn{background:var(--brick);}
.cdb-dot::after{content:""; position:absolute; inset:0; border-radius:50%; animation:cdbRing 1.8s infinite;}
.cdb-dot.good::after{background:var(--sage);}
.cdb-dot.warn::after{background:var(--brick);}
@keyframes cdbRing{0%{transform:scale(1); opacity:.7;} 100%{transform:scale(2.6); opacity:0;}}

.cdb-alert-strip{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:10px;}
.cdb-alert-card{background:var(--card); border:1px solid var(--line); border-inline-start:4px solid var(--cdb-border, var(--brick)); border-radius:12px; padding:10px 12px; box-shadow:var(--shadow); cursor:pointer;}
.cdb-alert-head{display:flex; justify-content:space-between; align-items:center; gap:6px; margin-bottom:5px;}
.cdb-alert-name{font-weight:900; font-size:12.5px;}
.cdb-alert-type{font-size:10px; font-weight:800; padding:2px 7px; border-radius:6px; white-space:nowrap;}
.cdb-alert-detail{font-size:11.5px; line-height:1.6; color:var(--ink);}
.cdb-alert-action{font-size:10.5px; font-weight:700; color:var(--teal); margin-top:5px; display:inline-block;}

.cdb-col2{display:grid; grid-template-columns:1.2fr 1fr; gap:14px; margin:14px 0;}
@media (max-width:820px){ .cdb-col2{grid-template-columns:1fr;} }
.cdb-card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px; box-shadow:var(--shadow);}
.cdb-note{font-size:10.5px; font-weight:700; margin-top:10px; padding:7px 9px; border-radius:8px;}
.cdb-note.warn{color:var(--brick); background:#FBEAE7;}
.cdb-dark .cdb-note.warn{background:#301715;}

.cdb-quad-grid{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; margin-top:4px;}
.cdb-quad-cell{border-radius:12px; padding:11px; cursor:pointer; transition:transform .15s;}
.cdb-quad-cell:hover{transform:scale(1.02);}
.cdb-quad-cell.active-filter{box-shadow:0 0 0 3px var(--teal) inset;}
.cdb-quad-cell .q-title{font-size:11.5px; font-weight:800;}
.cdb-quad-cell .q-count{font-size:22px; font-weight:900; margin-top:2px;}
.cdb-quad-cell .q-list{font-size:10px; line-height:1.5; opacity:.85; margin-top:4px;}
.cdb-q1{background:#DDF2E8; color:#124E3F;}
.cdb-q2{background:#FCECDA; color:#854E10;}
.cdb-q3{background:#FBF1DE; color:#8A5D1D;}
.cdb-q4{background:#FCE7E4; color:#8C2418;}
.cdb-dark .cdb-q1{background:#133328; color:#62DBAE;}
.cdb-dark .cdb-q2{background:#382A16; color:#F0B554;}
.cdb-dark .cdb-q3{background:#3A3016; color:#F0D584;}
.cdb-dark .cdb-q4{background:#381917; color:#F07669;}

.cdb-subj-row{display:flex; align-items:center; gap:9px; margin-bottom:11px;}
.cdb-subj-row:last-child{margin-bottom:0;}
.cdb-subj-name{flex:0 0 78px; font-size:12px; font-weight:800;}
.cdb-subj-track{flex:1; height:11px; background:var(--paper-2); border-radius:999px; overflow:hidden;}
.cdb-subj-fill{height:100%; border-radius:999px;}
.cdb-subj-score{flex:0 0 42px; font-size:11.5px; font-weight:800; text-align:left;}

.cdb-cohort-card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:12px; box-shadow:var(--shadow); overflow-x:auto; margin-bottom:10px;}
.cdb-table{width:100%; border-collapse:collapse; min-width:680px; font-size:11.5px;}
.cdb-table th{text-align:right; padding:8px 8px; border-bottom:1.5px solid var(--line); font-size:10.5px; color:var(--ink-soft); font-weight:800;}
.cdb-table td{padding:8px 8px; border-bottom:1px solid var(--line); vertical-align:middle;}
.cdb-table tr:last-child td{border-bottom:none;}
.cdb-table tr:hover td{background:var(--paper-2);}
.cdb-rank{width:20px; height:20px; border-radius:6px; background:var(--paper); display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:800; color:var(--ink-soft);}
.cdb-st-name{font-weight:800; font-size:12px;}
.cdb-heat-strip{display:flex; gap:2px;}
.cdb-h-cell{width:12px; height:12px; border-radius:3px;}
.cdb-h-act{background:var(--sage);}
.cdb-h-burn{background:var(--brick);}
.cdb-h-none{background:var(--paper-2);}
.cdb-badge{font-size:10px; font-weight:800; padding:2px 7px; border-radius:6px; white-space:nowrap;}
.cdb-badge.stable{background:#DEEFE9; color:var(--teal-deep);}
.cdb-badge.risk{background:#FCE7E4; color:var(--brick);}
.cdb-badge.review{background:#FCECDA; color:var(--ochre);}

/* درآورِ جانبیِ بازرسیِ دانش‌آموز */
.cdb-drawer-backdrop{position:fixed; inset:0; background:rgba(14,20,22,.45); z-index:2000; display:none;}
.cdb-drawer-backdrop.open{display:block;}
.cdb-drawer{position:fixed; top:0; bottom:0; left:0; width:min(380px,92vw); background:var(--card); z-index:2001; transform:translateX(-100%); transition:transform .3s cubic-bezier(.22,1,.36,1); padding:22px 18px; overflow-y:auto; box-shadow:var(--shadow); border-inline-end:1px solid var(--line);}
.cdb-drawer.open{transform:translateX(0);}
.cdb-drawer-close{position:absolute; top:14px; left:14px; border:none; background:var(--paper-2); width:28px; height:28px; border-radius:8px; cursor:pointer; font-size:13px; color:var(--ink);}
.cdb-drawer-title{font-size:16px; font-weight:900; margin-bottom:2px;}
.cdb-drawer-sub{font-size:11.5px; color:var(--ink-soft); margin-bottom:12px;}
.cdb-drawer-tabs{display:flex; gap:4px; background:var(--paper); padding:3px; border-radius:10px; margin-bottom:12px;}
.cdb-drawer-tab{flex:1; border:none; background:none; padding:6px; border-radius:7px; font-family:'Vazirmatn',sans-serif; font-size:11px; font-weight:700; color:var(--ink-soft); cursor:pointer;}
.cdb-drawer-tab.active{background:var(--card); color:var(--teal-deep); box-shadow:var(--shadow);}
.cdb-drawer-box{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:11px; margin-bottom:10px;}
.cdb-drawer-box-title{font-weight:800; font-size:12px; margin-bottom:7px; color:var(--teal-deep);}
.cdb-drow{display:flex; justify-content:space-between; font-size:11.5px; padding:4px 0; border-bottom:1px dashed var(--line);}
.cdb-drow:last-child{border-bottom:none;}
.cdb-drawer-action{width:100%; border:none; background:var(--teal); color:#fff; padding:11px; border-radius:10px; font-family:'Vazirmatn',sans-serif; font-size:12.5px; font-weight:800; cursor:pointer; margin-top:4px;}

/* ================= دکمه پالت و مودال انتخاب تم ================= */
.theme-palette-btn{
  border:none; background:none; cursor:pointer; font-size:20px; line-height:1;
  padding:2px 3px; flex:none; position:relative; z-index:1;
}
.theme-modal-box{ max-width:420px; }
.theme-group-label{ font-size:11.5px; font-weight:800; color:var(--ink-soft); margin:14px 0 8px; }
.theme-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.theme-opt-card{
  display:flex; align-items:center; gap:8px; border:1.5px solid var(--line); background:var(--paper);
  border-radius:12px; padding:10px 12px; font-family:'Vazirmatn',sans-serif; font-size:12.5px; font-weight:700;
  color:var(--ink); cursor:pointer; text-align:right;
}
.theme-opt-card.active{ border-color:var(--teal-deep); background:#DEEFE9; color:var(--teal-deep); }
.theme-opt-default{ width:100%; margin-bottom:4px; }
.theme-swatch{ width:16px; height:16px; border-radius:50%; flex:none; display:inline-block; }

/* ============== Elevated 2.5D Button System (v2 — رنگی) ============== */
.add-btn, .add-btn-general, .save-btn, .save-session-btn, .modal-btn, .export-btn{
  border:none; border-radius:11px; font-weight:800;
  transition: var(--btn-transition);
  transform: translateY(0);
}

/* سبز — اکشن‌های اصلیِ مثبت: جلسه تخصصی، ذخیره گزارش، ثبت جلسه */
.add-btn:not(.add-btn-general), .save-btn, .save-session-btn:not(.unread){
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
}
.add-btn:not(.add-btn-general):hover, .save-btn:hover, .save-session-btn:not(.unread):hover{
  transform: translateY(-2px);
  box-shadow: var(--btn-teal-shadow-hover);
}
.add-btn:not(.add-btn-general):active, .save-btn:active, .save-session-btn:not(.unread):active{
  transform: translateY(1px);
  box-shadow: var(--btn-teal-shadow-active);
}

/* حالتِ «مطالعه نشد» جلسه — قرمز، هم‌الگوی سیستمِ سبز */
.save-session-btn.unread{
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 2px rgba(120,40,30,0.18), 0 4px 10px -1px rgba(181,71,58,0.32);
}
.save-session-btn.unread:hover{ transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 3px 6px rgba(120,40,30,0.14), 0 8px 18px -2px rgba(181,71,58,0.42); }
.save-session-btn.unread:active{ transform: translateY(1px); box-shadow: inset 0 2px 4px rgba(80,20,15,0.35), 0 1px 2px rgba(0,0,0,0.1); }

/* خردلی — جلسه عمومی، آزمون جدید، امتحان جدید، خروجی‌ها */
.add-btn-general, .export-btn{
  background: var(--btn-ochre-bg);
  box-shadow: var(--btn-ochre-shadow);
  color:#fff;
}
.add-btn-general:hover, .export-btn:hover{
  transform: translateY(-2px);
  box-shadow: var(--btn-ochre-shadow-hover);
}
.add-btn-general:active, .export-btn:active{
  transform: translateY(1px);
  box-shadow: var(--btn-ochre-shadow-active);
}

/* مودال — تایید سبز، انصراف خنثی */
.modal-btn:not(.ghost){
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  color:#fff;
}
.modal-btn:not(.ghost):hover{ transform: translateY(-2px); box-shadow: var(--btn-teal-shadow-hover); }
.modal-btn:not(.ghost):active{ transform: translateY(1px); box-shadow: var(--btn-teal-shadow-active); }
.modal-btn.ghost{
  background: var(--btn-neutral-bg);
  box-shadow: var(--btn-neutral-shadow);
  color: var(--ink-soft);
  border:1px solid var(--line-subtle);
}
.modal-btn.ghost:hover{ transform: translateY(-2px); box-shadow: var(--btn-neutral-shadow-hover); }
.modal-btn.ghost:active{ transform: translateY(1px); box-shadow: var(--btn-neutral-shadow-active); }

/* دکمه‌های کنترلیِ ثانویه — ویرایش/نمایش/پنل ادمین/برنامه هفتگی و... */
.edit-session, .view-session, .logout-btn, .admin-tool-btn, .ws-btn,
.student-card-copy, .gate-goto-btn, .reminder-upcoming-toggle,
.vocab-start-btn, .guide-add-challenge-btn, .cheer-msg-btn, .tbio-edit-btn,
.d-action-btn, .mistake-inline-actions .mistake-save-btn,
.student-card-enter-btn, .track-pick-btn, .gate-btn{
  background: var(--btn-neutral-bg);
  box-shadow: var(--btn-neutral-shadow);
  border:1px solid var(--line-subtle);
  transition: var(--btn-transition);
  transform: translateY(0);
  font-weight:700;
}
.edit-session:hover, .view-session:hover, .logout-btn:hover, .admin-tool-btn:hover,
.ws-btn:hover, .student-card-copy:hover, .vocab-start-btn:hover, .student-card-enter-btn:hover{
  transform: translateY(-2px);
  box-shadow: var(--btn-neutral-shadow-hover);
}
.edit-session:active, .view-session:active, .logout-btn:active, .admin-tool-btn:active,
.ws-btn:active, .student-card-copy:active, .cheer-msg-btn:active, .student-card-enter-btn:active{
  transform: translateY(1px);
  box-shadow: var(--btn-neutral-shadow-active);
}

/* دکمه‌های اصلیِ سبز/خردلی که نقشِ CTA اصلی/تیره دارن، پالتِ خنثی نگیرن */
.student-card-enter-btn, .vocab-start-btn, .d-action-btn, .gate-btn{
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  color:#fff; border:none;
}
.student-card-enter-btn:hover, .vocab-start-btn:hover, .gate-btn:hover{ box-shadow: var(--btn-teal-shadow-hover); }
.student-card-enter-btn:active, .vocab-start-btn:active, .gate-btn:active{ box-shadow: var(--btn-teal-shadow-active); }

/* ============== Colorful v2 — دکمه‌های سبز/خردلیِ گرادیانی ============== */
.add-btn:not(.add-btn-general){
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  border-radius: 11px; font-weight: 800;
  transition: var(--btn-transition);
}
.add-btn:not(.add-btn-general):hover{ box-shadow: var(--btn-teal-shadow-hover); }
.add-btn:not(.add-btn-general):active{ box-shadow: var(--btn-teal-shadow-active); }

.add-btn-general{
  background: var(--btn-ochre-bg);
  box-shadow: var(--btn-ochre-shadow);
  border-radius: 11px; font-weight: 800;
  transition: var(--btn-transition);
}
.add-btn-general:hover{ box-shadow: var(--btn-ochre-shadow-hover); }
.add-btn-general:active{ box-shadow: var(--btn-ochre-shadow-active); }

.save-btn{
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  transition: var(--btn-transition);
}
.save-btn:hover{ box-shadow: var(--btn-teal-shadow-hover); }
.save-btn:active{ box-shadow: var(--btn-teal-shadow-active); }
.save-btn.ws-dirty{
  background: var(--btn-ochre-bg);
  box-shadow: var(--btn-ochre-shadow);
}

.save-session-btn:not(.unread){
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  border-radius: 11px; font-weight: 800;
  transition: var(--btn-transition);
}
.save-session-btn:not(.unread):hover{ box-shadow: var(--btn-teal-shadow-hover); }
.save-session-btn:not(.unread):active{ box-shadow: var(--btn-teal-shadow-active); }

.modal-btn:not(.ghost){
  background: var(--btn-teal-bg);
  box-shadow: var(--btn-teal-shadow);
  border-radius: 11px; font-weight: 800;
  transition: var(--btn-transition);
}
.modal-btn:not(.ghost):hover{ box-shadow: var(--btn-teal-shadow-hover); }
.modal-btn:not(.ghost):active{ box-shadow: var(--btn-teal-shadow-active); }

.export-btn{
  background: var(--btn-ochre-bg);
  box-shadow: var(--btn-ochre-shadow);
  border:none; color:#fff; border-radius: 11px; font-weight: 800;
  transition: var(--btn-transition);
}
.export-btn:hover{ box-shadow: var(--btn-ochre-shadow-hover); }
.export-btn:active{ box-shadow: var(--btn-ochre-shadow-active); }

.datebar button{
  transition: var(--btn-transition);
}
.datebar button:hover{ box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 6px 14px rgba(0,0,0,.22); }

/* ============== هاورِ ظریفِ کارت‌ها (۲.۵ بعدی) ============== */
.session, .exam, .session-summary, .stat, .mood-card, .review-card, .chart-card{
  transition: transform .2s ease, box-shadow .2s ease;
}
.session-summary:hover, .stat:hover{
  transform: translateY(-2px);
}
.mood-btn{
  transition: transform .15s ease, box-shadow .15s ease;
}
.mood-btn:hover{ transform: translateY(-1px); }
.mood-btn.selected{ transform: translateY(1px); }


/* ================= جعبه لایتنر نوردیک ۱۰.۵ (دونات جامع) ================= */
.donut-split{display:flex; align-items:center; gap:12px; margin-top:4px;}
.donut-master{
  flex:0 0 76px; display:flex; flex-direction:column; align-items:center; text-align:center;
  border-inline-end:1px dashed var(--line); padding-inline-end:12px;
}
.donut-master-svg{width:56px; height:56px; position:relative;}
.donut-master-svg svg{transform:rotate(-90deg);}
.donut-master-val{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:13.5px; font-weight:900;}
.donut-master-lbl{font-size:9px; font-weight:800; color:var(--ink-soft); margin-top:4px; white-space:nowrap;}
.donut-rings-row{flex:1; display:grid; grid-template-columns:repeat(5, 1fr); gap:4px;}
.donut-ring-mini{display:flex; flex-direction:column; align-items:center;}
.donut-mini-svg{width:36px; height:36px; position:relative;}
.donut-mini-svg svg{transform:rotate(-90deg);}
.donut-mini-val{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900;}
.donut-mini-lbl{font-size:8.5px; font-weight:700; color:var(--ink-soft); margin-top:3px;}

/* ================= کارنامه ترکیبی بنتو + جامع کنکوری (طرح ۱ و ۲) ================= */
.exam-report-container{display:flex; flex-direction:column; gap:14px; margin-top:6px;}

/* کاشی‌های بنتو در بالای کارنامه */
.ex-bento-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:8px;
}
@media(min-width:580px){ .ex-bento-grid{grid-template-columns:repeat(3, 1fr);} }

.ex-bento-tile{
  background:var(--card); border:1.5px solid var(--line); border-radius:16px;
  padding:12px; box-shadow:var(--shadow); display:flex; flex-direction:column; justify-content:space-between;
  transition:transform .15s ease;
}
.ex-bento-tile:hover{transform:translateY(-2px);}
.ex-bento-title{font-size:11px; font-weight:800; color:var(--ink-soft); margin-bottom:5px;}
.ex-bento-num{font-size:21px; font-weight:900; color:var(--teal-deep); line-height:1.1;}
.ex-bento-foot{font-size:10px; font-weight:700; color:var(--ink-soft); margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

/* کارت قهرمان با دونات وضعیت سوالات */
.exam-report-hero{
  display:grid; grid-template-columns:1fr; gap:12px;
  background:#fff; border:1.5px solid var(--line); border-radius:18px; padding:16px 14px;
  box-shadow:var(--shadow);
}
@media(min-width:540px){ .exam-report-hero{grid-template-columns:1fr 130px;} }

.ex-hero-info{display:flex; flex-direction:column; justify-content:center;}
.ex-hero-title{font-size:14.5px; font-weight:900; color:var(--teal-deep); margin-bottom:4px;}
.ex-hero-meta{font-size:11.5px; color:var(--ink-soft); line-height:1.7;}
.ex-hero-chips{display:flex; gap:6px; margin-top:8px; flex-wrap:wrap;}
.ex-metric-chip{
  background:var(--paper); border:1px solid var(--line); border-radius:9px;
  padding:4px 8px; font-size:11px; font-weight:800; color:var(--ink);
}

.ex-donut-box{display:flex; flex-direction:column; align-items:center; justify-content:center;}
.ex-donut-svg{width:86px; height:86px; position:relative;}
.ex-donut-svg svg{transform:rotate(-90deg);}
.ex-donut-center{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  line-height:1.1; text-align:center;
}
.ex-donut-score{font-size:17px; font-weight:900; color:var(--teal-deep);}
.ex-donut-lbl{font-size:8px; font-weight:700; color:var(--ink-soft); margin-top:2px;}

/* نمودار ستونی مقایسه‌ای دروس */
.exam-bars-card{
  background:#fff; border:1.5px solid var(--line); border-radius:18px; padding:16px 14px;
  box-shadow:var(--shadow);
}
.exam-bars-title{font-size:13px; font-weight:900; color:var(--ink); margin-bottom:14px; display:flex; justify-content:space-between; align-items:center;}
.exam-bars-chart{
  display:flex; align-items:flex-end; gap:8px; height:180px; padding:10px 4px 0;
  border-bottom:1.5px solid var(--paper-2); overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.ex-bar-col{
  flex:1; min-width:52px; max-width:76px; display:flex; flex-direction:column;
  align-items:center; height:100%; justify-content:flex-end; gap:5px;
}
.ex-bar-val{font-size:11px; font-weight:900; color:var(--ink); white-space:nowrap;}
.ex-bar-track{
  width:100%; max-width:32px; background:var(--paper-2); border-radius:6px 6px 0 0;
  overflow:hidden; height:100%; display:flex; flex-direction:column-reverse;
}
.ex-bar-fill{width:100%; border-radius:6px 6px 0 0; transition:height .4s ease;}
.ex-bar-lbl{font-size:10.5px; font-weight:800; color:var(--ink); text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:100%;}
.ex-bar-ratio{font-size:9.5px; font-weight:800; color:var(--teal-deep); background:#DEEFE9; padding:2px 6px; border-radius:6px;}

/* جدول جامع کارنامه */
.exam-table-card{
  background:#fff; border:1.5px solid var(--line); border-radius:18px; padding:14px;
  box-shadow:var(--shadow); overflow-x:auto;
}
.exam-report-table{width:100%; border-collapse:collapse; min-width:500px; font-size:12px; text-align:center;}
.exam-report-table th{background:var(--paper); padding:9px 6px; font-size:11px; font-weight:800; color:var(--ink-soft); border-bottom:1.5px solid var(--line);}
.exam-report-table td{padding:9px 6px; border-bottom:1px solid var(--paper-2); font-weight:700;}
.exam-report-table tr:last-child td{border-bottom:none;}
.ex-badge-eval{font-size:10px; font-weight:800; padding:2px 7px; border-radius:6px; display:inline-block;}
.eval-great{background:#EAF4E9; color:var(--sage);}
.eval-good{background:#DEEFE9; color:var(--teal);}
.eval-mid{background:#FBF1DE; color:#8A5D1D;}
.eval-low{background:#FBEAE7; color:var(--brick);}

/* گراف پیشرفت تحصیلی */
.exam-trend-card{
  background:#fff; border:1.5px solid var(--line); border-radius:18px; padding:16px 14px;
  box-shadow:var(--shadow);
}
.exam-trend-svg-wrap{width:100%; height:120px; margin-top:8px;}

/* ================= استایل‌های رادار میله‌ای چالش‌ها ================= */
.challenge-bar-list{display:flex; flex-direction:column; gap:8px;}
.challenge-bar-row{display:flex; flex-direction:column; gap:4px;}
.challenge-bar-header{display:flex; justify-content:space-between; align-items:center; font-size:11.5px;}
.challenge-bar-name{font-weight:800; color:var(--ink);}
.challenge-bar-count{font-weight:800; color:var(--ink-soft); direction:ltr; unicode-bidi:isolate;}
.challenge-bar-track{
  width:100%; height:8px; background:var(--paper-2); border-radius:999px; overflow:hidden;
}
.challenge-bar-fill{height:100%; border-radius:999px; transition:width .3s ease;}
.challenge-top-alert{
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 10px;
  font-size:11.5px; line-height:1.7; margin-bottom:10px; color:var(--ink);
}