:root {
  --bg: #f5f7fb;
  --surface: rgba(255,255,255,.96);
  --surface-2: #ffffff;
  --text: #15233f;
  --muted: #7b879d;
  --line: #e8edf5;
  --primary: #5656e9;
  --primary-2: #7a6af6;
  --navy: #172b55;
  --navy-2: #102143;
  --success: #25b36a;
  --success-soft: #eaf8f0;
  --danger: #ef5b65;
  --danger-soft: #fff0f1;
  --blue: #3478f6;
  --blue-soft: #edf4ff;
  --amber: #f3a72e;
  --amber-soft: #fff6e8;
  --purple-soft: #f2efff;
  --shadow: 0 12px 34px rgba(26,46,85,.08);
  --radius: 22px;
  --radius-sm: 15px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 0%, rgba(99,102,241,.08), transparent 32%),
    var(--bg);
  color: var(--text);
  font-family: "Vazirmatn", Tahoma, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
/* B Titr فقط از فونت نصب‌شده روی دستگاه خوانده می‌شود؛ هیچ فایل فونتی همراه پروژه توزیع نمی‌شود. */
@font-face {
  font-family: "BTitrLocal";
  src: local("B Titr"), local("BTitr"), local("B Titr Bold");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}
h1, h2, h3, .page-head h1, .card-title h3, .modal-head h3 {
  font-family: "BTitrLocal", "B Titr", "BTitr", "Vazirmatn", Tahoma, sans-serif;
  font-weight: 700;
}

button { cursor: pointer; }

 .app-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr) 250px; direction: ltr; }
.app-shell > .sidebar { grid-column: 2; grid-row: 1; }
.app-shell > .main-content { grid-column: 1; grid-row: 1; }
.sidebar {
  direction: rtl;
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 22px 16px;
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color: white;
  display: flex;
  flex-direction: column;
  z-index: 50;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 8px 10px 26px; }
.brand-mark { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.11); font-size:23px; }
.brand strong { display: block; font-size:18px; }
.brand small { display: block; color: rgba(255,255,255,.68); font-size:12px; margin-top: 3px; }
.nav-list {
  display: grid;
  gap: 7px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-left: 5px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.28) transparent;
}
.nav-list::-webkit-scrollbar { width: 6px; }
.nav-list::-webkit-scrollbar-track { background: transparent; }
.nav-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 999px; }
.nav-list::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.38); }
.nav-item {
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.82);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: right;
  transition: .2s ease;
}
.nav-item span { width: 23px; text-align: center; font-size:19px; }
.nav-item:hover { background: rgba(255,255,255,.08); color: white; transform: translateX(-2px); }
.nav-item.active { background: linear-gradient(100deg, #4c59db, #635fe7); color: white; box-shadow: 0 10px 24px rgba(55,66,188,.26); }
.sidebar-footer { margin-top: 12px; display: grid; gap: 10px; flex: 0 0 auto; }
.role-switcher { padding: 12px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.09); border-radius: 15px; }
.role-switcher label { display:block; font-size:12px; color: rgba(255,255,255,.65); margin-bottom: 7px; }
.role-switcher select { width:100%; border:0; outline:0; color:white; background:#213866; border-radius:10px; padding:8px 10px; }

.main-content { min-width:0; direction: rtl; padding: 18px 20px 28px; }
.topbar {
  min-height: 84px;
  background: var(--surface);
  border: 1px solid rgba(229,235,244,.9);
  box-shadow: 0 8px 25px rgba(18,40,75,.05);
  border-radius: 22px;
  display: grid;
  grid-template-columns: 1fr 1.3fr auto;
  align-items: center;
  gap: 22px;
  padding: 14px 18px;
  position: sticky;
  top: 12px;
  z-index: 30;
  backdrop-filter: blur(15px);
}
.topbar-start { display:flex; align-items:center; gap:10px; }
.profile-mini { display:flex; align-items:center; gap:10px; }
.profile-mini strong, .welcome strong { display:block; font-size:16px; }
.profile-mini small, .welcome small { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.avatar { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; font-weight:800; color:#4152c7; background:linear-gradient(145deg,#eef1ff,#dae1ff); border:3px solid white; box-shadow:0 4px 12px rgba(60,75,150,.12); }
.welcome { text-align:center; }
.top-actions { display:flex; gap:8px; }
.icon-button { width:40px; height:40px; border-radius:12px; border:1px solid var(--line); background:white; display:grid; place-items:center; color:#263957; position:relative; transition:.2s; }
.icon-button:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(24,50,90,.08); }
.badge-dot { position:absolute; top:-6px; left:-6px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; color:white; background:var(--danger); border-radius:999px; font-size:11px; border:2px solid white; }
.menu-button { display:none; }

.view-container { padding-top: 22px; }
.page-head { display:flex; justify-content:space-between; align-items:end; gap:16px; margin-bottom:18px; }
.page-head h1 { font-size:23px; margin:0; }
.page-head p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.page-actions { display:flex; gap:8px; flex-wrap:wrap; }

.dashboard-grid { display:grid; grid-template-columns: 1.05fr repeat(4, minmax(0, 1fr)); gap:16px; }
.card { background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; min-width:0; }
.metric-card { min-height:178px; display:flex; flex-direction:column; justify-content:space-between; }
.metric-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.metric-icon { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-size:21px; }
.metric-icon.success { background:var(--success-soft); color:var(--success); }
.metric-icon.blue { background:var(--blue-soft); color:var(--blue); }
.metric-icon.danger { background:var(--danger-soft); color:var(--danger); }
.metric-icon.amber { background:var(--amber-soft); color:var(--amber); }
.metric-label { font-size:14px; font-weight:700; }
.metric-value { font-size:33px; font-weight:800; letter-spacing:-1px; margin-top:12px; }
.metric-caption { color:var(--muted); font-size:12px; }
.metric-link { border:0; background:transparent; color:var(--blue); padding:0; font-size:12px; text-align:right; }
.metric-link.success { color:var(--success); }
.metric-link.danger { color:var(--danger); }

.level-card { min-height:178px; color:white; background:linear-gradient(145deg,#6861f0 0%,#4043c8 57%,#263fa6 100%); border:0; position:relative; overflow:hidden; }
.level-card::before, .level-card::after { content:""; position:absolute; width:180px; height:180px; border-radius:42%; border:1px solid rgba(255,255,255,.07); transform:rotate(24deg); }
.level-card::before { left:-70px; bottom:-100px; }
.level-card::after { right:-80px; top:-100px; }
.level-inner { position:relative; z-index:2; }
.level-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.level-badge { width:70px; height:70px; display:grid; place-items:center; margin:8px 0; font-size:32px; font-weight:800; background:rgba(255,255,255,.12); border:3px solid rgba(255,255,255,.72); clip-path:polygon(25% 7%,75% 7%,96% 50%,75% 93%,25% 93%,4% 50%); }
.level-label { color:rgba(255,255,255,.78); font-size:12px; }
.level-card h2 { margin:0; font-size:19px; }
.progress { height:10px; background:rgba(255,255,255,.16); border-radius:999px; overflow:hidden; margin:10px 0 7px; }
.progress > span { display:block; height:100%; background:linear-gradient(90deg,#9a88ff,#66a8ff); border-radius:inherit; transition: width .45s ease; }
.progress-meta { display:flex; justify-content:space-between; color:rgba(255,255,255,.88); font-size:11px; }

.dashboard-lower { display:grid; grid-template-columns: 1fr 2fr 1.2fr; gap:16px; margin-top:16px; align-items:stretch; }
.card-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.card-title h3 { margin:0; font-size:16px; }
.card-title small { color:var(--muted); }
.task-list, .feed-list { display:grid; gap:2px; }
.task-row, .feed-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid #f0f3f8; }
.task-row:last-child, .feed-row:last-child { border-bottom:0; }
.task-check { width:22px; height:22px; accent-color:var(--primary); }
.task-row strong, .feed-row strong { display:block; font-size:13px; }
.task-row small, .feed-row small { display:block; color:var(--muted); font-size:11px; margin-top:2px; }
.feed-dot { width:8px; height:8px; border-radius:50%; }
.feed-dot.red { background:var(--danger); }
.feed-dot.blue { background:var(--blue); }
.feed-dot.green { background:var(--success); }

.chart-wrap { width:100%; height:230px; }
.chart-svg { width:100%; height:100%; overflow:visible; }
.chart-grid-line { stroke:#e9edf4; stroke-width:1; }
.chart-line { fill:none; stroke:#6658f4; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.chart-area { fill:url(#chartGradient); }
.chart-point { fill:#6658f4; stroke:white; stroke-width:3; }
.chart-label { fill:#8993a6; font-size:11px; }

.dashboard-bottom { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:16px; margin-top:16px; }
.quick-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.quick-tile { border:0; background:#fafbfe; border-radius:16px; padding:12px 6px; min-height:92px; display:grid; place-items:center; gap:7px; transition:.2s; }
.quick-tile:hover { transform:translateY(-2px); background:#f5f6ff; }
.quick-tile span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:var(--purple-soft); font-size:20px; }
.quick-tile small { font-size:11px; color:#32435e; }
.ranking-mini { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.rank-person { text-align:center; padding:12px 8px; border:1px solid var(--line); border-radius:16px; position:relative; }
.rank-avatar { width:50px; height:50px; border-radius:50%; margin:0 auto 7px; display:grid; place-items:center; background:#eff2ff; font-weight:800; color:#4b59c5; }
.rank-num { position:absolute; top:7px; right:9px; width:23px; height:23px; display:grid; place-items:center; border-radius:8px; background:#f0f2f6; font-size:11px; font-weight:800; }
.rank-person:nth-child(1) .rank-num { background:#ffcf48; }
.rank-person:nth-child(2) .rank-num { background:#dce1ea; }
.rank-person:nth-child(3) .rank-num { background:#d58b57; color:white; }
.rank-person strong { font-size:12px; display:block; }
.rank-person small { color:var(--muted); font-size:11px; }
.motivation-card { background:linear-gradient(145deg,#f8f6ff,#ffffff); position:relative; overflow:hidden; }
.motivation-art { font-size:55px; position:absolute; left:16px; bottom:10px; opacity:.9; }
.motivation-card h3 { margin:10px 0 6px; font-size:16px; }
.motivation-card p { color:#5e6c84; font-size:12px; line-height:1.9; max-width:70%; }

.table-card { overflow:hidden; padding:0; }
.table-tools { padding:16px; display:flex; justify-content:space-between; gap:12px; align-items:center; border-bottom:1px solid var(--line); }
.search-box { min-width:230px; border:1px solid var(--line); border-radius:13px; padding:10px 12px; outline:0; background:#fbfcfe; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th, .data-table td { padding:13px 14px; text-align:right; border-bottom:1px solid #eff2f7; font-size:13px; white-space:nowrap; }
.data-table th { color:#68748a; font-size:12px; background:#fafbfe; }
.data-table tr:hover td { background:#fcfdff; }
.data-table tr:last-child td { border-bottom:0; }
.pill { display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:700; }
.pill.success { background:var(--success-soft); color:#16814b; }
.pill.danger { background:var(--danger-soft); color:#d54852; }
.pill.blue { background:var(--blue-soft); color:#2467d9; }
.pill.amber { background:var(--amber-soft); color:#bb7914; }

.btn { border:0; border-radius:12px; padding:10px 14px; font-weight:700; font-size:12px; transition:.2s; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { background:linear-gradient(100deg,#5656e9,#6e63ee); color:white; box-shadow:0 8px 18px rgba(87,86,233,.18); }
.btn-soft { background:#f0f3fa; color:#344560; }
.btn-success { background:var(--success-soft); color:#16814b; }
.btn-danger { background:var(--danger-soft); color:#d54852; }
.btn-blue { background:var(--blue-soft); color:#2467d9; }

.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.form-group { display:grid; gap:6px; }
.form-group label { font-size:12px; color:#647088; font-weight:700; }
.form-group input, .form-group select, .form-group textarea { width:100%; border:1px solid var(--line); border-radius:12px; padding:10px 12px; outline:0; background:#fbfcfe; color:var(--text); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:#a9a9ff; box-shadow:0 0 0 3px rgba(86,86,233,.08); }
.form-group.full { grid-column:1/-1; }
.form-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:8px; margin-top:6px; }

.stats-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.stat-mini { padding:14px 16px; border-radius:16px; background:white; border:1px solid var(--line); box-shadow:0 6px 20px rgba(26,46,85,.05); }
.stat-mini small { color:var(--muted); font-size:11px; }
.stat-mini strong { display:block; font-size:24px; margin-top:4px; }

.quick-layout { display:grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,.8fr); gap:16px; }
.student-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.student-chip { border:1px solid var(--line); background:white; border-radius:16px; padding:12px; text-align:center; transition:.18s; position:relative; }
.student-chip:hover { transform:translateY(-2px); box-shadow:0 7px 18px rgba(28,48,86,.08); }
.student-chip.selected { border-color:#7b73ef; box-shadow:0 0 0 3px rgba(86,86,233,.08); background:#fbfaff; }
.student-chip .avatar { margin:0 auto 7px; width:42px; height:42px; }
.student-chip strong { display:block; font-size:12px; }
.student-chip small { color:var(--muted); font-size:10px; }
.student-chip .student-xp { margin-top:5px; color:#5556dc; font-weight:800; font-size:11px; }
.quick-panel { position:sticky; top:118px; align-self:start; }
.quick-actions-stack { display:grid; gap:9px; }
.quick-score-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.quick-action-btn { border:1px solid var(--line); background:#fbfcff; border-radius:13px; padding:11px 10px; text-align:right; display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.quick-action-btn:hover { border-color:#cbcaff; }
.quick-action-btn.positive b { color:var(--success); }
.quick-action-btn.negative b { color:var(--danger); }

.leaderboard { display:grid; gap:9px; }
.leader-row { display:grid; grid-template-columns:50px minmax(0,1fr) 120px 80px; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:16px; background:white; }
.leader-pos { width:36px; height:36px; display:grid; place-items:center; border-radius:12px; background:#f0f2f7; font-weight:800; }
.leader-row:nth-child(1) .leader-pos { background:#fff1bd; color:#986d00; }
.leader-row:nth-child(2) .leader-pos { background:#edf0f4; color:#5f6876; }
.leader-row:nth-child(3) .leader-pos { background:#f5dfcf; color:#9a5a2f; }
.leader-name { display:flex; align-items:center; gap:10px; }
.leader-name .avatar { width:38px; height:38px; }
.leader-name strong { display:block; font-size:13px; }
.leader-name small { color:var(--muted); font-size:11px; }
.leader-progress { height:7px; background:#edf0f7; border-radius:999px; overflow:hidden; }
.leader-progress span { display:block; height:100%; background:linear-gradient(90deg,#7568f4,#4b7cf6); border-radius:inherit; }

.modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:18px; background:rgba(13,26,50,.36); backdrop-filter:blur(4px); }
.modal-card { width:min(620px,100%); max-height:86vh; overflow:auto; background:white; border-radius:22px; box-shadow:0 25px 60px rgba(13,28,60,.24); }
.modal-head { display:flex; justify-content:space-between; align-items:center; padding:15px 18px; border-bottom:1px solid var(--line); }
.modal-head h3 { margin:0; font-size:16px; }
.modal-body { padding:18px; }

.toast-host { position:fixed; left:20px; bottom:20px; z-index:200; display:grid; gap:8px; }
.toast { background:#172a50; color:white; border-radius:14px; padding:11px 14px; min-width:240px; box-shadow:0 12px 28px rgba(18,37,72,.24); animation:toastIn .2s ease; font-size:12px; }
.toast.success { background:#16814b; }
.toast.danger { background:#c8434c; }
@keyframes toastIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

.empty-state { text-align:center; padding:40px 18px; color:var(--muted); }
.empty-state .emoji { font-size:43px; }
.mobile-overlay { display:none; }

@media (max-width: 1250px) {
  .dashboard-grid { grid-template-columns:1.2fr repeat(2,1fr); }
  .level-card { grid-row:span 2; }
  .dashboard-lower { grid-template-columns:1fr 1.6fr; }
  .dashboard-lower > :last-child { grid-column:1/-1; }
  .dashboard-bottom { grid-template-columns:1fr 1fr; }
  .motivation-card { grid-column:1/-1; min-height:160px; }
  .student-grid { grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 980px) {
  .app-shell { grid-template-columns:1fr; }
  .app-shell > .sidebar, .app-shell > .main-content { grid-column:auto; grid-row:auto; }
  .sidebar { position:fixed; right:0; transform:translateX(110%); transition:.25s ease; width:260px; box-shadow:-18px 0 50px rgba(13,31,62,.2); }
  .sidebar.open { transform:translateX(0); }
  .mobile-overlay { display:block; position:fixed; inset:0; background:rgba(15,28,50,.25); z-index:40; opacity:0; pointer-events:none; transition:.2s; }
  .mobile-overlay.show { opacity:1; pointer-events:auto; }
  .menu-button { display:grid; }
  .main-content { padding:12px; }
  .topbar { top:8px; grid-template-columns:1fr auto; min-height:72px; }
  .welcome { display:none; }
  .quick-layout { grid-template-columns:1fr; }
  .quick-panel { position:static; }
}

@media (max-width: 760px) {
  .topbar { border-radius:18px; padding:10px 12px; }
  .profile-mini strong { font-size:13px; }
  .profile-mini small { font-size:10px; }
  .avatar { width:40px; height:40px; }
  .dashboard-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
  .level-card { grid-column:1/-1; grid-row:auto; }
  .metric-card { min-height:150px; }
  .metric-value { font-size:27px; }
  .dashboard-lower, .dashboard-bottom { grid-template-columns:1fr; gap:10px; }
  .dashboard-lower > :last-child, .motivation-card { grid-column:auto; }
  .quick-grid { grid-template-columns:repeat(4,1fr); }
  .ranking-mini { gap:6px; }
  .page-head { align-items:start; flex-direction:column; }
  .stats-strip { grid-template-columns:repeat(2,1fr); }
  .table-card { overflow-x:auto; }
  .table-tools { min-width:650px; }
  .data-table { min-width:650px; }
  .form-grid { grid-template-columns:1fr; }
  .form-group.full, .form-actions { grid-column:auto; }
  .student-grid { grid-template-columns:repeat(2,1fr); }
  .leader-row { grid-template-columns:40px minmax(0,1fr) 68px; }
  .leader-row .leader-progress { display:none; }
}

@media (max-width: 470px) {
  .main-content { padding:8px; }
  .topbar { position:sticky; border-radius:15px; }
  .top-actions #seedBtn { display:none; }
  .dashboard-grid { gap:8px; }
  .card { border-radius:17px; padding:14px; }
  .metric-card { min-height:138px; }
  .metric-top { display:block; }
  .metric-icon { width:34px; height:34px; margin-bottom:7px; }
  .metric-label { font-size:12px; }
  .metric-value { font-size:25px; }
  .quick-grid { grid-template-columns:repeat(2,1fr); }
  .ranking-mini { grid-template-columns:1fr; }
  .motivation-card p { max-width:78%; }
  .student-grid { grid-template-columns:1fr 1fr; }
}

/* --- v0.2 Login & role-based panels --- */
.app-hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);background:#f7f9fd;direction:ltr}
.login-visual{direction:rtl;position:relative;overflow:hidden;background:linear-gradient(145deg,#162d59 0%,#203b73 48%,#514fd1 100%);color:#fff;padding:52px 58px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}
.login-visual:before{content:"";position:absolute;inset:auto -120px -180px auto;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 67%)}
.login-brand{display:flex;align-items:center;gap:14px;position:relative;z-index:2}.login-logo,.mini-logo{display:grid;place-items:center;border-radius:16px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.12)}
.login-logo{width:50px;height:50px;font-size:23px}.login-brand strong{display:block;font-size:19px}.login-brand small{display:block;color:rgba(255,255,255,.68);font-size:12px;margin-top:4px}
.login-copy{position:relative;z-index:2;max-width:620px;margin:auto 0}.eyebrow{display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);font-size:12px;color:#e8ebff}.login-copy h1{font-size:43px;line-height:1.45;margin:18px 0 12px;letter-spacing:-1.3px}.login-copy p{color:rgba(255,255,255,.76);line-height:2.1;font-size:15px;max-width:560px}.login-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}.login-feature-grid div{display:flex;gap:9px;align-items:center;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);font-size:13px}.login-feature-grid b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:rgba(79,220,151,.16);color:#7ff0b6}
.login-orbit{position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.orbit-a{width:240px;height:240px;left:-70px;top:16%}.orbit-b{width:380px;height:380px;left:-170px;top:7%}
.login-panel-wrap{direction:rtl;display:grid;place-items:center;padding:34px;background:radial-gradient(circle at 90% 0%,rgba(93,87,239,.08),transparent 33%),#f7f9fd}.login-card{width:min(100%,500px);background:#fff;border:1px solid #e8edf5;border-radius:28px;box-shadow:0 26px 70px rgba(28,48,90,.12);padding:28px}.login-card-head{display:flex;align-items:center;gap:13px;margin-bottom:22px}.mini-logo{width:45px;height:45px;background:linear-gradient(145deg,#eef0ff,#e3e7ff);color:#5656e9;border:0}.login-card h2{margin:0;font-size:22px}.login-card-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.login-roles{display:grid;gap:9px}.login-role{border:1px solid var(--line);background:#fff;padding:12px 13px;border-radius:15px;display:flex;gap:12px;align-items:center;text-align:right;color:var(--text);transition:.18s}.login-role>span{width:38px;height:38px;border-radius:12px;background:#f3f5fb;color:#5b63d7;display:grid;place-items:center;font-size:19px;flex:none}.login-role strong{display:block;font-size:13px}.login-role small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.login-role:hover{transform:translateY(-1px);border-color:#d8def0}.login-role.active{border-color:#6870ed;background:#f7f7ff;box-shadow:0 8px 22px rgba(86,86,233,.09)}.login-role.active>span{background:#595be8;color:#fff}
.login-form{display:grid;gap:13px;margin-top:20px}.login-form label{font-size:12px;font-weight:700;color:#354461}.login-form input{width:100%;margin-top:7px;border:1px solid var(--line);background:#fbfcff;border-radius:13px;padding:12px 13px;outline:none;color:var(--text);transition:.18s}.login-form input:focus{border-color:#7477ee;box-shadow:0 0 0 3px rgba(86,86,233,.08);background:#fff}.password-wrap{position:relative}.password-wrap input{padding-left:47px}.password-wrap button{position:absolute;left:7px;top:14px;width:34px;height:34px;border:0;border-radius:10px;background:#f1f3f9;color:#66738b}.login-submit{border:0;border-radius:14px;background:linear-gradient(100deg,#5158dd,#7062ef);color:#fff;padding:13px 16px;font-weight:700;box-shadow:0 10px 24px rgba(81,88,221,.22);display:flex;align-items:center;justify-content:center;gap:8px}.login-submit:hover{filter:brightness(1.03);transform:translateY(-1px)}.login-error{min-height:18px;color:var(--danger);font-size:11px}.demo-hint{margin-top:14px;padding:10px 12px;border-radius:12px;background:#f8f9fc;color:#7a879e;font-size:11px;text-align:center}.demo-hint b{color:#34425e;direction:ltr;display:inline-block}
.signed-role{padding:12px 13px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);border-radius:14px}.signed-role small{display:block;color:rgba(255,255,255,.55);font-size:11px}.signed-role strong{display:block;margin-top:3px;font-size:13px}.logout-item{width:100%;border:1px solid rgba(255,255,255,.06)}

.staff-overview{display:grid;grid-template-columns:1.15fr repeat(3,1fr);gap:16px}.staff-hero{background:linear-gradient(145deg,#1e376b,#223f7a 55%,#4f53ce);color:white;border:0;position:relative;overflow:hidden}.staff-hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.06);left:-55px;bottom:-80px}.staff-hero h2{margin:7px 0;font-size:26px}.staff-hero p{color:rgba(255,255,255,.72);font-size:12px;line-height:1.9}.staff-hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.btn-light{background:white;color:#283e76;border:0}.management-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:16px}.activity-list{display:grid;gap:10px}.activity-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#f2f4fa}.activity-item strong{display:block;font-size:12px}.activity-item small{color:var(--muted);font-size:10px}.family-hero{display:grid;grid-template-columns:1.4fr .6fr;gap:16px;align-items:stretch}.family-summary{background:linear-gradient(145deg,#655eea,#4f54d4 58%,#2f459e);color:#fff;border:0}.family-summary .family-student{display:flex;align-items:center;gap:13px}.family-summary .avatar{width:58px;height:58px}.family-summary h2{margin:0;font-size:22px}.family-summary p{color:rgba(255,255,255,.72);font-size:12px}.family-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.family-kpis div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:11px}.family-kpis small{display:block;color:rgba(255,255,255,.65);font-size:10px}.family-kpis strong{display:block;font-size:19px;margin-top:3px}.good-news{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#f3fff8,#fff);border-color:#dff4e8}.good-news .news-icon{width:50px;height:50px;border-radius:16px;background:#ddf7e8;display:grid;place-items:center;font-size:24px;margin-bottom:13px}.good-news h3{margin:0 0 7px;font-size:16px}.good-news p{margin:0;color:var(--muted);font-size:12px;line-height:1.9}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.student-panel-note{padding:10px 13px;border-radius:12px;background:#f7f8fc;color:var(--muted);font-size:11px;margin-bottom:12px}
.role-chip{display:inline-flex;align-items:center;gap:6px;background:#eef0ff;color:#555bd4;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:700}.readonly-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.readonly-note:before{content:"🔒"}.notice-stack{display:grid;gap:10px}.notice-card{border:1px solid var(--line);border-radius:15px;padding:12px}.notice-card strong{display:block;font-size:12px}.notice-card p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.8}

@media(max-width:980px){.login-screen{grid-template-columns:1fr}.login-visual{min-height:auto;padding:32px 28px}.login-copy{margin:55px 0 20px}.login-copy h1{font-size:31px}.login-panel-wrap{padding:24px}.staff-overview{grid-template-columns:1fr 1fr}.staff-hero{grid-column:1/-1}.management-grid,.family-hero,.family-grid{grid-template-columns:1fr}}
@media(max-width:600px){.login-visual{padding:24px 20px}.login-copy{margin:38px 0 10px}.login-copy h1{font-size:26px}.login-feature-grid{grid-template-columns:1fr}.login-panel-wrap{padding:14px}.login-card{padding:18px;border-radius:22px}.staff-overview{grid-template-columns:1fr}.family-kpis{grid-template-columns:1fr 1fr 1fr}.login-role{padding:10px}.login-role>span{width:34px;height:34px}}

/* v0.3.0 — پنل دبیر و ثبت در بستر */
.teacher-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(145deg,#1d3769,#284982 58%,#5957d7);color:#fff;border:0;overflow:hidden;position:relative}
.teacher-hero:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.06);left:-70px;bottom:-110px}.teacher-hero>div{position:relative;z-index:1}.teacher-hero h2{font-size:28px;margin:6px 0}.teacher-hero p{margin:0;max-width:720px;color:rgba(255,255,255,.75);font-size:12px;line-height:2}.teacher-hero-stat{min-width:130px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px;text-align:center}.teacher-hero-stat small{display:block;color:rgba(255,255,255,.7);font-size:11px}.teacher-hero-stat strong{display:block;font-size:35px;margin-top:4px}.teacher-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.workspace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.workspace-grid.large{grid-template-columns:repeat(3,minmax(220px,1fr))}.workspace-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:right;color:var(--text);transition:.2s;box-shadow:0 6px 20px rgba(30,50,90,.04)}.workspace-card:hover{transform:translateY(-2px);border-color:#cfd6f3;box-shadow:0 12px 26px rgba(38,58,110,.08)}.workspace-card.active{border-color:#6b6ee8;background:linear-gradient(145deg,#f8f8ff,#fff);box-shadow:0 10px 25px rgba(86,86,233,.1)}.workspace-icon{width:46px;height:46px;border-radius:14px;background:#eff1ff;color:#5559db;display:grid;place-items:center;font-size:21px}.workspace-card span{font-size:11px;color:var(--muted)}.workspace-card h3{margin:2px 0;font-size:17px}.workspace-card p{margin:0;color:var(--muted);font-size:10px}.workspace-card>b{font-size:19px;color:#6974d7}
.teacher-context{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px;margin-bottom:16px;border:1px solid #dfe4f5;background:linear-gradient(145deg,#f8f9ff,#fff);border-radius:16px}.teacher-context>div{display:grid;gap:2px}.context-kicker{font-size:10px;color:#646dd8}.teacher-context strong{font-size:14px}.teacher-context small{font-size:10px;color:var(--muted)}.teacher-context select{min-width:220px;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:#fff;color:var(--text)}
.context-mini{display:grid;gap:4px;background:#f7f8fe;border:1px solid #e5e8f6;border-radius:14px;padding:12px 14px;margin-bottom:14px}.context-mini strong{font-size:14px}.context-mini span,.context-mini small{font-size:11px;color:var(--muted)}
.teacher-profile-line{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:8px 0}.teacher-profile-line strong{display:block;font-size:14px}.teacher-profile-line small{display:block;color:var(--muted);font-size:11px}.compact-class-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.compact-class-list span{padding:7px 10px;border-radius:10px;background:#f3f5fb;color:#53617a;font-size:11px}.quality-list{display:grid;gap:8px;color:#526078;font-size:12px}.quality-list div{padding:9px 11px;border-radius:11px;background:#fafbfe}
.table-sub{display:block;color:var(--muted);font-size:10px;margin-top:3px}.inline-actions{display:flex;gap:6px}.mini-action{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 9px;font-size:11px;color:#46536b}.mini-action.good{background:var(--success-soft);color:var(--success);border-color:#d8f0e3}.mini-action.bad{background:var(--danger-soft);color:var(--danger);border-color:#f6dadd}.quick-att-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.batch-grade-list{display:grid;gap:7px;max-height:55vh;overflow:auto;padding-left:4px}.batch-grade-row{display:grid;grid-template-columns:1fr 110px 65px;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fcfdff}.batch-grade-row span{font-size:12px;font-weight:700}.batch-grade-row input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px}.batch-grade-row small{color:var(--muted);font-size:10px}
@media(max-width:980px){.teacher-metrics,.workspace-grid,.workspace-grid.large{grid-template-columns:1fr 1fr}.teacher-context{align-items:flex-start;flex-direction:column}.teacher-context select{width:100%;min-width:0}}
@media(max-width:600px){.teacher-hero{align-items:flex-start;flex-direction:column}.teacher-hero-stat{width:100%}.teacher-metrics,.workspace-grid,.workspace-grid.large{grid-template-columns:1fr}.batch-grade-row{grid-template-columns:1fr 90px 50px}.inline-actions{flex-wrap:wrap}}

/* v0.4.0 — «امروز من»، تقویم شمسی و تکلیف جلسه بعد */
.student-today-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-top:16px}.today-card{min-height:100%}.today-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.today-headline h3{margin:4px 0 0;font-size:19px}.today-group{margin-top:11px}.today-group-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:#617089;margin-bottom:5px}.today-group-title>span{width:8px;height:8px;border-radius:50%;background:#94a0b5}.today-group-title b{margin-right:auto;border-radius:999px;padding:2px 7px;background:#f1f3f8;color:#738097;font-size:10px}.today-group-title.urgent>span{background:var(--danger)}.today-group-title.today>span{background:var(--blue)}.today-group-title.growth>span{background:var(--success)}.today-list{display:grid;gap:7px}.today-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:14px;background:#fcfdff}.today-item.done{opacity:.58}.today-item.done .today-copy strong{text-decoration:line-through}.today-icon{width:38px;height:38px;border-radius:12px;background:#f1f4fb;display:grid;place-items:center;font-size:18px}.today-copy strong{display:block;font-size:12px}.today-copy small{display:block;color:#66748b;font-size:10.5px;line-height:1.7;margin-top:2px}.today-copy em{display:block;color:#98a2b4;font-size:9.5px;font-style:normal;margin-top:3px}.today-check{width:20px;height:20px;accent-color:var(--primary)}.today-empty{padding:24px 14px;text-align:center;color:var(--muted);font-size:11px;background:#fafbfe;border:1px dashed var(--line);border-radius:14px}.student-lower{grid-template-columns:.8fr 1.2fr}.today-card-full{min-width:0}.planner-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.upcoming-list{display:grid;gap:8px}.upcoming-row{display:grid;grid-template-columns:78px auto 1fr;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.upcoming-row:last-child{border-bottom:0}.upcoming-date{font-size:10px;font-weight:800;color:#5e6a80}.upcoming-row strong{display:block;font-size:11.5px}.upcoming-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.week-schedule{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;overflow:auto;padding-bottom:3px}.week-day{min-width:132px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#fcfdff}.week-day.active{border-color:#7d7ae9;background:linear-gradient(145deg,#f7f7ff,#fff);box-shadow:0 0 0 3px rgba(86,86,233,.06)}.week-day>strong{display:block;font-size:12px;margin-bottom:8px}.week-day>small{font-size:9.5px;color:var(--muted)}.period-chip{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;padding:7px 0;border-top:1px solid #f0f2f7;font-size:10.5px}.period-chip span{color:#7b879a;font-size:9.5px;direction:ltr}.calendar-overview{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px}.calendar-today{background:linear-gradient(145deg,#1c376b,#334f96 62%,#5b58db);color:#fff;border:0}.calendar-today>span{font-size:10px;color:rgba(255,255,255,.68)}.calendar-today h2{margin:8px 0 5px;font-size:25px}.calendar-today p{margin:0;color:rgba(255,255,255,.7);font-size:11px;line-height:1.8}.homework-quick{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;background:linear-gradient(145deg,#f8f8ff,#fff);border-color:#e1e3f7}.homework-quick-copy h3{margin:5px 0;font-size:19px}.homework-quick-copy p{margin:0;color:var(--muted);font-size:11px}.homework-quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-homework-box{margin-top:5px;padding-top:11px;border-top:1px solid var(--line);display:grid;gap:6px}.quick-homework-box>small{color:var(--muted);font-size:9px}.quick-homework-box>strong{font-size:11.5px}.quick-homework-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(max-width:1100px){.student-today-layout,.planner-grid,.calendar-overview{grid-template-columns:1fr}.week-schedule{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:700px){.student-today-layout{grid-template-columns:1fr}.student-lower{grid-template-columns:1fr}.week-schedule{grid-template-columns:repeat(2,minmax(145px,1fr))}.homework-quick{align-items:flex-start;flex-direction:column}.homework-quick-actions{width:100%}.homework-quick-actions .btn{flex:1}.today-headline{align-items:flex-start;flex-direction:column}.quick-homework-actions{grid-template-columns:1fr}.upcoming-row{grid-template-columns:70px auto 1fr}}

/* v0.5 interaction upgrades */
.homework-focus{border:2px solid #cfd5ff;box-shadow:0 18px 44px rgba(86,86,233,.12);background:linear-gradient(135deg,#f4f5ff 0%,#fff 48%,#f7fbff 100%);padding:22px}.end-class-badge{display:inline-flex;align-items:center;gap:7px;background:#202f61;color:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;box-shadow:0 6px 18px rgba(23,43,85,.18)}.homework-hint{display:block;margin-top:8px;color:#6e7b91;font-size:10.5px}.homework-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(135px,1fr));gap:10px;min-width:470px}.homework-choice{border:1px solid #e1e6f0;border-radius:18px;padding:15px 13px;background:#fff;text-align:right;display:grid;grid-template-columns:auto 1fr;gap:3px 9px;align-items:center;box-shadow:0 8px 20px rgba(26,46,85,.05);transition:.18s}.homework-choice:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(26,46,85,.1)}.homework-choice>b{grid-row:1/3;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-size:17px}.homework-choice>span{font-size:12px;font-weight:850}.homework-choice>small{font-size:9px;color:var(--muted)}.homework-choice.none>b{background:var(--success-soft);color:var(--success)}.homework-choice.preset{border-color:#cfdcff}.homework-choice.preset>b{background:var(--blue-soft);color:var(--blue)}.homework-choice.custom{border-color:#ddd6ff}.homework-choice.custom>b{background:var(--purple-soft);color:#6553df}
.grade-filter-bar{display:flex;align-items:end;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:16px;box-shadow:var(--shadow)}.grade-filter-bar label{display:grid;gap:5px;font-size:10px;color:var(--muted);min-width:200px}.grade-filter-bar select,.counselor-filter select{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 11px;color:var(--text)}.filter-result{margin-right:auto;display:grid;gap:2px;text-align:left}.filter-result small{color:var(--muted);font-size:9px}.filter-result strong{font-size:14px}.report-card-strip{display:grid;gap:10px;margin-bottom:16px}.report-card-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(145deg,#f8fbff,#fff)}.report-card-summary h3{margin:4px 0;font-size:18px}.report-card-summary p{margin:0;color:var(--muted);font-size:10px}.internal-report{display:grid;gap:15px}.report-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:16px;background:linear-gradient(145deg,#172b55,#405fa7);color:#fff}.report-head span,.report-head small{display:block;color:rgba(255,255,255,.7);font-size:10px}.report-head h2{margin:5px 0 0}.report-average{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:14px;background:var(--success-soft)}.report-average strong{font-size:19px;color:#168d50}.report-disclaimer{text-align:center;color:var(--muted);font-size:10px;margin:0}
.absence-required{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;border:1px solid #ffd2d6;background:linear-gradient(145deg,#fff5f5,#fff)}.absence-required span{color:#cc3f49;font-size:10px;font-weight:800}.absence-required h3{margin:5px 0;font-size:19px}.absence-required p{margin:0;color:#7d6e70;font-size:10.5px}.absence-required>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.family-message-cell{max-width:260px;font-size:10.5px;line-height:1.8}.family-message-cell small{display:block;color:var(--muted);font-size:9px}.period-picker{min-width:110px!important}
.counselor-filter{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;background:linear-gradient(145deg,#f8f9ff,#fff)}.counselor-filter h3{margin:5px 0;font-size:19px}.counselor-filter p{margin:0;color:var(--muted);font-size:10px}.counselor-filter label{display:grid;gap:5px;color:var(--muted);font-size:10px;min-width:280px}.message-list{display:grid;gap:12px}.message-card{border-right:4px solid #6673e8}.message-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.message-card-head h3{margin:4px 0;font-size:17px}.message-card-head>small{color:var(--muted);font-size:10px}.message-sender{font-size:10px;color:#5c68d8;font-weight:800}.message-card p{margin:8px 0 0;color:#55647b;font-size:11px;line-height:2}.form-group.full{grid-column:1/-1}.form-group textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;color:var(--text);resize:vertical}.notification-button{position:relative}.badge-dot{min-width:17px!important;height:17px!important;border-radius:999px!important;display:grid;place-items:center;font-size:9px!important;padding:0 4px!important}
@media(max-width:900px){.homework-focus{align-items:stretch}.homework-choice-grid{min-width:0;width:100%}.grade-filter-bar{align-items:stretch;flex-direction:column}.grade-filter-bar label{min-width:0;width:100%}.filter-result{margin-right:0;text-align:right}.counselor-filter{align-items:stretch;flex-direction:column}.counselor-filter label{min-width:0}.absence-required{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.homework-choice-grid{grid-template-columns:1fr}.report-card-summary{align-items:flex-start;flex-direction:column}.report-head{align-items:flex-start;flex-direction:column;gap:12px}}
.quick-period-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fbfcff;font-size:10px;color:var(--muted)}.quick-period-row select{border:1px solid #dfe5ef;border-radius:10px;background:#fff;padding:7px 9px;color:var(--text)}.quick-endclass-focus{border:2px solid #d8dcff!important;background:linear-gradient(145deg,#f7f7ff,#fff)!important;border-radius:16px!important;padding:12px!important;box-shadow:0 10px 25px rgba(86,86,233,.09)}.quick-endclass-title{display:grid;gap:4px}.quick-endclass-title span{display:inline-flex;width:max-content;background:#202f61;color:#fff;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900}.quick-endclass-title strong{font-size:11px}.quick-endclass-btn{border:1px solid var(--line);border-radius:12px;padding:9px 7px;background:#fff;display:flex;justify-content:center;align-items:center;gap:5px;font-size:9.5px;font-weight:800}.quick-endclass-btn b{font-size:12px}.quick-endclass-btn.none{color:#168d50;background:#f2fbf6}.quick-endclass-btn.preset{color:#2d67dc;background:#f2f6ff}.quick-endclass-btn.custom{color:#5b4fd1;background:#f7f5ff}

/* --- v0.6 Counselor, level motion, alternating timetable & fast attendance --- */
.level-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;opacity:.7}
.level-particles span{position:absolute;left:var(--x);bottom:-12px;width:var(--size);height:var(--size);border-radius:50%;background:rgba(255,255,255,.72);box-shadow:0 0 10px rgba(255,255,255,.34);animation:levelParticleFloat var(--d) linear infinite;animation-delay:var(--delay)}
@keyframes levelParticleFloat{0%{transform:translate3d(0,18px,0) scale(.65);opacity:0}12%{opacity:.78}50%{transform:translate3d(16px,-95px,0) scale(1)}85%{opacity:.42}100%{transform:translate3d(-10px,-205px,0) scale(.45);opacity:0}}
@media(prefers-reduced-motion:reduce){.level-particles span{animation:none;opacity:.2}}
.levelup-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(13,24,50,.62);backdrop-filter:blur(7px);animation:levelupFade .24s ease both}
.levelup-overlay.closing{animation:levelupOut .24s ease both}
.levelup-card{position:relative;overflow:hidden;width:min(430px,94vw);padding:30px 28px 25px;text-align:center;border-radius:27px;background:linear-gradient(150deg,#fff,#f6f7ff);box-shadow:0 30px 80px rgba(12,23,57,.34);border:1px solid rgba(255,255,255,.8)}
.levelup-kicker{display:inline-flex;padding:5px 11px;border-radius:999px;background:#ececff;color:#5656cf;font-size:10px;font-weight:900;letter-spacing:.2px}
.levelup-medal{position:relative;z-index:2;width:92px;height:92px;margin:18px auto 10px;display:grid;place-items:center;border-radius:30px;background:linear-gradient(145deg,#6963f2,#3349b6);color:#fff;font-size:38px;font-weight:900;box-shadow:0 15px 35px rgba(73,73,201,.25);transform:rotate(-2deg);animation:levelMedalIn .55s cubic-bezier(.2,.9,.25,1.2) both}
.levelup-card h2{margin:8px 0 7px;font-size:25px}.levelup-card p{margin:0 auto 19px;max-width:330px;color:#67748a;font-size:12px;line-height:2}.levelup-sparks{position:absolute;inset:0;pointer-events:none}.levelup-sparks i{--ang:calc(var(--i)*22.5deg);position:absolute;left:50%;top:36%;width:4px;height:4px;border-radius:50%;background:#6a65ef;opacity:0;animation:levelSpark 1.8s ease-out infinite;animation-delay:calc(var(--i)*-.09s)}
@keyframes levelupFade{from{opacity:0}to{opacity:1}}@keyframes levelupOut{to{opacity:0;transform:scale(.985)}}@keyframes levelMedalIn{from{opacity:0;transform:scale(.6) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(-2deg)}}
@keyframes levelSpark{0%{opacity:0;transform:rotate(var(--ang)) translateX(18px) scale(.4)}22%{opacity:.8}70%{opacity:0;transform:rotate(var(--ang)) translateX(145px) scale(1.1)}100%{opacity:0}}

.alternate-slot{border:1px solid #dddfff!important;border-radius:11px;padding:7px 8px!important;margin-top:5px!important;background:linear-gradient(145deg,#f8f8ff,#fff)}
.alternate-slot>div{min-width:0}.alternate-slot strong{display:block;color:#3f49a6;font-size:10.5px}.alternate-slot small{display:block;margin-top:2px;color:#818aa0;font-size:8.8px;line-height:1.5}.alternate-slot:before{content:'A/B';font-size:8px;font-weight:900;color:#fff;background:#6864e8;border-radius:999px;padding:2px 5px;order:-1}

.quick-xp-presets{display:grid;gap:6px}.quick-xp-section-label{margin-top:3px;padding:5px 8px;border-radius:9px;font-size:9px;font-weight:900}.quick-xp-section-label.positive{background:#edf9f2;color:#168d50}.quick-xp-section-label.negative{background:#fff0f1;color:#c6434c;margin-top:7px}
.quick-xp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border-radius:11px;border:1px solid var(--line);background:#fff}.quick-xp-row>span{font-size:10px;font-weight:700;color:#4e5d73}.quick-xp-row>div{display:flex;gap:5px;direction:ltr}.quick-xp-row button{min-width:35px;border:0;border-radius:9px;padding:6px 7px;font-size:10px;font-weight:900;cursor:pointer;transition:.16s}.quick-xp-row.positive button{background:#e8f7ef;color:#12814a}.quick-xp-row.positive button:last-child{background:#d7f1e3}.quick-xp-row.negative button{background:#fff0f1;color:#c9444e}.quick-xp-row.negative button:last-child{background:#ffe0e3}.quick-xp-row button:hover{transform:translateY(-1px);filter:saturate(1.08)}

.batch-att-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;border:1px solid #dfe2ff;background:linear-gradient(145deg,#f7f8ff,#fff)}.batch-att-hero h3{margin:5px 0;font-size:19px}.batch-att-hero p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.9}.batch-save-btn{white-space:nowrap}.batch-att-select{min-width:115px;border:1px solid #dce2ec;border-radius:10px;padding:7px 9px;background:#fff;color:var(--text);font-family:inherit}.batch-att-footer{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:13px 16px;border-top:1px solid var(--line)}.batch-att-footer small{color:var(--muted);font-size:9.5px}.pill.neutral{background:#f2f4f7;color:#7b8595}

.counselor-report{margin-bottom:16px;border-color:#e5e6f6;background:linear-gradient(155deg,#fcfcff,#fff)}.counselor-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.counselor-report-head h2{margin:5px 0;font-size:20px}.counselor-report-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.overall-score{min-width:165px;padding:12px 14px;border-radius:17px;background:#1e3569;color:#fff;display:grid;gap:2px}.overall-score small{color:rgba(255,255,255,.65);font-size:9px}.overall-score strong{font-size:28px;line-height:1.2}.overall-score span{font-size:9px;color:#dfe5ff}.counselor-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.counselor-score{position:relative;padding:14px;border-radius:16px;border:1px solid var(--line);background:#fff;overflow:hidden}.counselor-score:before{content:'';position:absolute;right:0;top:0;bottom:0;width:4px}.counselor-score.educational:before{background:#5679e8}.counselor-score.cultural:before{background:#9a65d8}.counselor-score.behavioral:before{background:#2ba36a}.score-head{display:flex;justify-content:space-between;align-items:center}.score-head span{font-size:10px;color:var(--muted);font-weight:800}.score-head b{font-size:17px}.score-main{font-size:14px;font-weight:900;margin-top:12px}.counselor-score>small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.score-track{height:5px;border-radius:999px;background:#eef1f6;margin-top:11px;overflow:hidden}.score-track span{display:block;height:100%;border-radius:inherit;background:#6671e5}.counselor-score.cultural .score-track span{background:#9a65d8}.counselor-score.behavioral .score-track span{background:#2ba36a}.trend{display:inline-flex;margin-top:8px;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800}.trend.good{background:#e8f7ef;color:#168d50}.trend.bad{background:#fff0f1;color:#c9444e}.trend.neutral{background:#f2f4f7;color:#717d90}.counselor-sections{display:grid;gap:14px}.counselor-activity-section{padding:0;overflow:hidden}.counselor-activity-section .card-title{padding:15px 16px 9px}.counselor-activity-section.educational{border-top:3px solid #6681e8}.counselor-activity-section.cultural{border-top:3px solid #9a65d8}.counselor-activity-section.behavioral{border-top:3px solid #2ba36a}.section-count{padding:3px 8px;border-radius:999px;background:#f2f4f8;color:#6f7b8f;font-size:9px;font-weight:800}.table-scroll{overflow:auto}.activity-type{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900}.activity-type.grade{background:#eaf0ff;color:#4767ca}.activity-type.homework{background:#fff4df;color:#a66d13}.activity-type.xp{background:#eeeaff;color:#6852c9}.activity-type.attendance{background:#e8f7ef;color:#158352}.activity-type.mission{background:#f4eaff;color:#864db7}

@media(max-width:900px){.counselor-score-grid{grid-template-columns:1fr}.counselor-report-head,.batch-att-hero{align-items:stretch;flex-direction:column}.overall-score{min-width:0}.batch-save-btn{width:100%}.batch-att-footer{align-items:stretch;flex-direction:column}.batch-att-footer .btn{width:100%}}


/* v0.7.0 */
.student-photo-avatar{overflow:hidden;padding:0!important}.student-photo-avatar img{width:100%;height:100%;object-fit:cover;display:block}.student-photo-avatar>span{display:grid;place-items:center;width:100%;height:100%}.table-avatar{width:38px!important;height:38px!important;margin:auto}.profile-admin-note{grid-column:1/-1;padding:11px 13px;border-radius:13px;background:#f5f7ff;color:#55627e;font-size:11px;line-height:1.9;border:1px solid #e2e7f5}.profile-photo-editor{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1px dashed #dce2ef;border-radius:16px;background:#fbfcff}.profile-preview-avatar{width:78px;height:78px;border-radius:24px;background:#eef1ff;display:grid;place-items:center;color:#5360cf;font-size:23px;font-weight:800;overflow:hidden}.profile-preview-avatar img{width:100%;height:100%;object-fit:cover}.remove-photo{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}
.field-help{display:block;color:var(--muted);font-size:10px;line-height:1.8;margin-top:5px}.existing-file{margin-top:7px;padding:8px 10px;border-radius:10px;background:#f4f6fb;font-size:10px}.attachment-link{display:block;margin-top:7px;border:0;background:#eef2ff;color:#5260cf;border-radius:9px;padding:6px 8px;font-size:10px;cursor:pointer;text-align:right;max-width:100%}
.confidential-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px}.confidential-info{background:linear-gradient(145deg,#1f376b,#303e82 56%,#594fd2);color:#fff;border:0}.confidential-info .eyebrow.dark{background:rgba(255,255,255,.12);color:#fff}.confidential-info h2{font-size:24px;line-height:1.7;margin:14px 0 7px}.confidential-info p{font-size:11.5px;color:rgba(255,255,255,.72);line-height:2}.privacy-points{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.privacy-points span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.09);font-size:10px}.privacy-chip{padding:8px 11px;border-radius:999px;background:#f0f3ff;color:#5361cf;font-size:10px;font-weight:800}.anonymous-message{border-right-color:#3c4f86}.anonymous-message .message-sender{color:#384a82}.message-preview-sender{display:block;font-size:9.5px;color:#5f6ad7;font-weight:800;margin-bottom:4px}
.interpretable-chart{display:grid;gap:6px}.chart-axis-caption.top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.chart-axis-caption strong{font-size:11px;color:#34425d}.chart-axis-caption span{font-size:9.5px;color:var(--muted);line-height:1.8;max-width:65%}.chart-wrap{height:255px}.chart-axis{stroke:#cfd6e3;stroke-width:1.1}.chart-axis-title{fill:#536078;font-size:11px;font-weight:700}.chart-value{fill:#5864d7;font-size:10px;font-weight:800}.chart-legend{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border-radius:11px;background:#f8f9fc;color:#6d798d;font-size:9.5px;line-height:1.7}.legend-dot{width:8px;height:8px;border-radius:50%;background:#6658f4;display:inline-block;margin-left:5px}
@media(max-width:800px){.confidential-layout{grid-template-columns:1fr}.chart-axis-caption.top{flex-direction:column}.chart-axis-caption span{max-width:none}.chart-wrap{height:230px}}


/* --- v0.8 readability + multi-subject teacher workspace --- */
.teacher-subject-groups{display:grid;gap:16px}.teacher-subject-groups.standalone{margin-top:4px}.teacher-subject-group{border:1px solid #e3e8f3;border-radius:18px;padding:13px;background:linear-gradient(145deg,#fbfcff,#fff)}.teacher-subject-group.subject-1{border-color:#e6ddf7;background:linear-gradient(145deg,#fcf9ff,#fff)}.teacher-subject-group.subject-2{border-color:#dbeee5;background:linear-gradient(145deg,#f9fffb,#fff)}.teacher-subject-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;padding:0 3px}.teacher-subject-head span{display:block;font-size:11px;color:#7b879d}.teacher-subject-head h3{margin:2px 0 0;font-size:19px}.teacher-subject-head b{padding:6px 10px;border-radius:999px;background:#eef1ff;color:#5861d4;font-size:11px}.teacher-allocation-list{display:grid;gap:10px}.teacher-allocation-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.teacher-allocation-row:last-child{border-bottom:0}.teacher-allocation-row strong{display:block;font-size:13px}.teacher-allocation-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
@media(max-width:760px){
  body{font-size:16px;line-height:1.75}.profile-mini strong{font-size:15px}.profile-mini small{font-size:12px}.page-head h1{font-size:25px}.page-head p{font-size:14px;line-height:1.9}.card-title h3{font-size:18px}.card-title small{font-size:13px}.metric-label{font-size:15px}.metric-caption,.metric-link{font-size:13px}.task-row strong,.feed-row strong{font-size:14px}.data-table th,.data-table td{font-size:14px;padding:14px}.data-table th{font-size:13px}.table-sub{font-size:12px}.activity-item strong{font-size:14px}.activity-item small{font-size:12px}.notice-card strong{font-size:14px}.notice-card p{font-size:13px;line-height:1.9}.today-copy strong{font-size:14px}.today-copy small{font-size:12.5px}.today-copy em{font-size:11.5px}.today-group-title{font-size:13px}.today-empty{font-size:13px}.form-group label{font-size:13px}.field-help{font-size:12px}.teacher-context strong{font-size:15px}.teacher-context small,.context-kicker{font-size:12px}.context-mini strong{font-size:15px}.context-mini span,.context-mini small{font-size:12.5px}.workspace-card span{font-size:12px}.workspace-card p{font-size:12px}.workspace-card h3{font-size:18px}.family-summary p{font-size:13px}.family-kpis small{font-size:12px}.good-news p{font-size:13px}.readonly-note{font-size:12px}.student-panel-note{font-size:12px}.login-role strong{font-size:14px}.login-role small{font-size:12px}.teacher-subject-head span,.teacher-subject-head b{font-size:12px}.teacher-allocation-row strong{font-size:14px}.teacher-allocation-row small{font-size:12px}
}
@media(max-width:470px){body{font-size:16.5px}.metric-label{font-size:14px}.metric-caption{font-size:12.5px}.card{padding:15px}.profile-mini strong{font-size:14.5px}.profile-mini small{font-size:11.5px}}


/* v0.9 — identity, deputy hubs, group reports and cultural registrations */
.school-home-identity{display:flex;align-items:center;gap:15px;margin:0 0 18px;padding:16px 20px;border-radius:22px;background:linear-gradient(135deg,#172b55,#274b86);color:white;box-shadow:0 14px 35px rgba(23,43,85,.14)}
.school-home-mark{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:25px;flex:0 0 auto}.school-home-identity span{font-size:13px;color:#cbd7ef}.school-home-identity h2{margin:2px 0 3px;font-size:22px}.school-home-identity p{margin:0;color:#fff;font-size:14px;letter-spacing:.2px}
.deputy-chip{display:inline-flex;padding:8px 13px;border-radius:999px;font-weight:800;font-size:13px}.deputy-chip.academic{background:#e8f0ff;color:#2455b2}.deputy-chip.cultural{background:#f4eefe;color:#7747b5}
.deputy-hero{border-radius:24px;padding:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:white;margin-bottom:17px;overflow:hidden;position:relative}.deputy-hero.academic{background:linear-gradient(135deg,#2455b2,#4f7bdd)}.deputy-hero.cultural{background:linear-gradient(135deg,#7045a8,#a25ec6)}.deputy-hero span{font-size:13px;opacity:.78}.deputy-hero h2{margin:5px 0 8px;font-size:23px}.deputy-hero p{margin:0;opacity:.88;max-width:600px}.deputy-kpis{display:flex;gap:10px;flex-wrap:wrap}.deputy-kpis b{min-width:96px;text-align:center;padding:13px;border-radius:16px;background:rgba(255,255,255,.13);font-size:23px}.deputy-kpis small{display:block;font-size:11px;font-weight:500;opacity:.8;margin-top:4px}
.deputy-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.deputy-tool{border:1px solid var(--border);background:#fff;border-radius:20px;padding:18px;display:flex;align-items:center;gap:14px;text-align:right;cursor:pointer;box-shadow:var(--shadow);transition:.18s}.deputy-tool:hover{transform:translateY(-2px);border-color:#c7d6f5}.deputy-tool>span{width:47px;height:47px;border-radius:14px;background:#eef4ff;color:#2958af;display:grid;place-items:center;font-size:21px}.deputy-tool h3{margin:0 0 5px;font-size:17px}.deputy-tool p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}
.cultural-admin-grid,.cultural-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.cultural-program-card,.cultural-family-card{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:start}.cultural-program-icon{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:#f4effb;font-size:25px}.cultural-program-copy h3,.cultural-family-card h3{margin:8px 0 5px;font-size:17px}.cultural-program-copy p,.cultural-family-card p{margin:0 0 7px;color:var(--muted);line-height:1.9}.cultural-program-actions{grid-column:1/-1;display:flex;gap:8px;margin-top:15px;flex-wrap:wrap}.cultural-note{margin-top:15px;border-style:dashed}.cultural-note p{margin:5px 0 0;color:var(--muted);line-height:1.9}.family-cultural-intro{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.family-cultural-intro h2{margin:3px 0}.family-cultural-intro p{margin:0;color:var(--muted)}.family-cultural-lock{padding:10px 13px;border-radius:13px;background:#f5f6fa;color:#566278;font-size:13px}.cultural-family-card{display:block}.cultural-family-card .cultural-program-icon{margin-bottom:10px}.registration-status{display:grid;gap:3px;margin:11px 0;padding:11px 13px;border-radius:14px;background:#edf9f2;color:#227448}.registration-status span,.registration-status small{font-size:12px}.participant-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:12px 14px;border-radius:14px;background:#f6f8fc}.participant-summary span{color:var(--muted);font-size:13px}
.report-xp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.report-xp-grid>div{padding:14px;border-radius:15px;text-align:center}.report-xp-grid small{display:block;margin-bottom:5px}.report-xp-grid strong{font-size:21px}.xp-positive{background:#ecfaf1;color:#197642}.xp-negative{background:#fff0f0;color:#b43c3c}.xp-net{background:#eef3ff;color:#2b57ac}.report-section-title{margin:19px 0 9px;font-size:16px}.report-grade-table{max-height:330px;overflow:auto;border:1px solid var(--border);border-radius:14px}.mission-student-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:280px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:14px}.mission-student-picker label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px 9px;border-radius:10px;background:#f8f9fc}.mission-student-picker small{color:var(--muted)}
@media(max-width:900px){.deputy-tool-grid{grid-template-columns:1fr 1fr}.cultural-admin-grid,.cultural-family-grid{grid-template-columns:1fr}.deputy-hero{align-items:flex-start;flex-direction:column}.report-xp-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.school-home-identity{padding:14px 15px;border-radius:18px}.school-home-identity h2{font-size:19px}.deputy-tool-grid{grid-template-columns:1fr}.deputy-hero{padding:19px}.deputy-kpis{width:100%}.deputy-kpis b{flex:1;min-width:75px}.report-xp-grid{grid-template-columns:1fr}.mission-student-picker{grid-template-columns:1fr}.family-cultural-intro{align-items:flex-start;flex-direction:column}}

.management-branches{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.management-branch{border:0;border-radius:25px;padding:23px;display:flex;align-items:center;gap:17px;text-align:right;color:white;cursor:pointer;box-shadow:0 15px 38px rgba(31,52,92,.12);transition:.2s}.management-branch:hover{transform:translateY(-2px)}.management-branch.academic{background:linear-gradient(135deg,#214f9f,#5485df)}.management-branch.cultural{background:linear-gradient(135deg,#7343a2,#ad66c7)}.branch-icon{width:62px;height:62px;border-radius:20px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:28px;flex:0 0 auto}.management-branch span{font-size:12px;opacity:.75}.management-branch h2{font-size:23px;margin:4px 0 5px}.management-branch p{margin:0 0 9px;line-height:1.9;opacity:.9}.management-branch b{font-size:13px}.management-summary{margin-top:0}@media(max-width:760px){.management-branches{grid-template-columns:1fr}.management-branch{padding:18px}.management-branch h2{font-size:20px}}

/* v0.10.0 — role clarity, dual ranking and coaching */
#navList .nav-item[data-view="quick"]{background:linear-gradient(135deg,rgba(107,99,255,.18),rgba(74,145,255,.12));border:1px solid rgba(135,132,255,.28);font-weight:850;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
#navList .nav-item[data-view="quick"]>span{background:rgba(255,255,255,.14);border-radius:9px;padding:3px 6px}
#navList .nav-item[data-view="quick"].active{background:linear-gradient(135deg,#6963e7,#526bcf);border-color:transparent;box-shadow:0 8px 22px rgba(66,71,158,.28)}
.family-particle-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#1f3970,#3e5eb1 64%,#655ee0);color:#fff;border:0}
.family-particle-card .level-particles{opacity:.42}
.family-summary-inner{position:relative;z-index:2;width:100%}
.family-particle-card .family-student p,.family-particle-card .family-kpis small{color:rgba(255,255,255,.72)}
.family-particle-card .family-kpis>div{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.14)}
.rank-coach-message{margin-top:14px;padding:13px 14px;border:1px solid #dfe4f7;border-radius:15px;background:linear-gradient(145deg,#f7f9ff,#fff);display:grid;gap:5px;line-height:1.9}
.rank-coach-message>span:first-child{width:max-content;padding:3px 8px;border-radius:999px;background:#e9ecff;color:#5559bc;font-size:11px;font-weight:850}
.rank-coach-message strong{font-size:14px;color:#283754}
.rank-coach-message>span:last-child{font-size:12.5px;color:#65738a}
.dual-ranking-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.leader-progress.subject span{background:linear-gradient(90deg,#2bb673,#7bd5a5)}
.access-note{padding:10px 12px;border-radius:12px;background:#f7f8fc;color:#6e798d;font-size:12px}
@media(max-width:900px){.dual-ranking-grid{grid-template-columns:1fr}}
@media(max-width:600px){.rank-coach-message strong{font-size:14px}.rank-coach-message>span:last-child{font-size:13px}.dual-ranking-grid{gap:12px}}

/* --- v0.13 account management --- */
.account-guide{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;background:linear-gradient(145deg,#f8faff,#fff);border-color:#e2e7f5}.account-guide strong{font-size:15px}.account-guide span{color:var(--muted);font-size:13px;flex:1;min-width:240px}.account-guide small{font-size:11.5px;color:#69758d}.latin-credential{direction:ltr;display:inline-block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;letter-spacing:.2px}.form-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:13px;background:#f6f8fc;border:1px solid #e8ebf3;margin-top:4px}.form-section-title strong{font-family:"B Titr","Vazirmatn",Tahoma,sans-serif;font-size:16px}.form-section-title span{font-size:11.5px;color:var(--muted)}.form-section-title.account{background:#f7f7ff;border-color:#e4e2fb}.form-section-title.family{background:#f6fcf8;border-color:#dcefe3}.password-edit-row{display:grid;grid-template-columns:1fr auto;gap:7px}.password-edit-row .btn{white-space:nowrap}.readonly-photo{display:flex;align-items:center;gap:14px}.readonly-photo>div:last-child{display:grid;gap:3px}.readonly-photo strong{font-size:14px}.readonly-photo small{font-size:11.5px;color:var(--muted)}.teacher-name-cell{display:flex;align-items:center;gap:10px}.teacher-name-cell strong,.teacher-name-cell small{display:block}.teacher-name-cell small{color:var(--muted);font-size:11px;margin-top:2px}.allocation-chip{display:inline-flex;padding:5px 8px;border-radius:9px;background:#f1f4fb;color:#506078;font-size:11px;margin:2px}.allocation-preview{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0}.empty-context{justify-content:flex-start}.empty-context>div{width:100%}
@media(max-width:600px){.account-guide{align-items:flex-start;flex-direction:column}.account-guide span{min-width:0}.form-section-title{align-items:flex-start;flex-direction:column}.password-edit-row{grid-template-columns:1fr}.teacher-name-cell{min-width:170px}.latin-credential{font-size:14px}}


.talash-word{font-family:'B Titr', Vazirmatn, sans-serif; font-weight:900; color:#7a5a00; letter-spacing:.2px; text-shadow:0 1px 0 rgba(255,255,255,.45);}
.wallet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.wallet-kpi{display:grid;gap:6px;background:linear-gradient(155deg,#fff8e8,#ffffff);border:1px solid #f0e0b0}
.wallet-kpi small{font-size:11px;color:#82661a;font-weight:800}.wallet-kpi strong{font-size:24px;line-height:1.2}.wallet-kpi span{font-size:10px;color:#7b6e48;line-height:1.8}
.wallet-explainer{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:14px}
.wallet-pill-group{display:flex;flex-wrap:wrap;gap:8px}.wallet-pill-group span{padding:8px 11px;border-radius:999px;background:#f7f4ea;font-size:11px;font-weight:800;color:#665635}
.wallet-note-box,.report-wallet-note,.wallet-mini-note{padding:10px 12px;border-radius:14px;background:#faf7ef;border:1px solid #eee1b5;color:#6f6032;font-size:12px;line-height:1.9}
.wallet-mini-note{margin-top:10px}.wallet-note-box b,.report-wallet-note b{color:#5d4811}
@media(max-width:900px){.wallet-grid{grid-template-columns:1fr 1fr}.wallet-explainer{flex-direction:column;align-items:flex-start}}
@media(max-width:600px){.wallet-grid{grid-template-columns:1fr}.wallet-kpi strong{font-size:21px}}


/* --- v0.13 buffet + paid cultural programs --- */
.buffet-assign-btn{display:block;margin-top:6px;white-space:nowrap}.buffet-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr);gap:14px;margin-bottom:14px}.buffet-sale-card{border-top:3px solid #d7a932}.buffet-summary{background:linear-gradient(155deg,#fff9e9,#fff);display:flex;flex-direction:column;justify-content:center}.buffet-summary h3{margin:8px 0 2px}.buffet-summary>strong{font-size:26px;color:#7a5a00}.buffet-summary p{font-size:11px;line-height:1.9;color:var(--muted)}
.program-fee{display:inline-flex;margin:8px 0;padding:6px 9px;border-radius:10px;background:#fff7df;color:#72590f;font-size:11px}.program-category{display:block;margin-top:7px;color:#7b879d;font-size:10px;font-weight:800}.cultural-family-card .program-fee{display:flex;justify-content:space-between}.registration-status span{display:block;margin-top:4px}
@media(max-width:800px){.buffet-grid{grid-template-columns:1fr}}


/* v0.14.0 — پاداش خودکار طلاش از نمره */
.grade-talash-rule{margin:10px 0 14px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#fff8df,#fffdf6);border:1px solid #edd996;color:#765812;font-size:12px;font-weight:800;line-height:1.9}
.batch-grade-row small{line-height:1.75}


/* madrese man v1.0 — production identity & installable PWA */
.login-logo img,.mini-logo img,.brand-mark img{width:78%;height:78%;object-fit:contain;display:block}
.login-logo,.mini-logo{background:#fff!important;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden}
.brand-mark{background:#fff!important;overflow:hidden;padding:4px}
.behnam-welcome .behnam-message{font-size:16px;max-width:600px;margin-bottom:12px}
.growth-dimensions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0 8px;font-family:"BTitrLocal","B Titr",Tahoma,sans-serif;font-weight:900;font-size:27px;color:#fff}
.growth-dimensions span{padding:7px 15px;border-radius:14px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14)}
.growth-dimensions i{font-style:normal;color:#e3b84d;opacity:.95}
.school-wish{font-weight:700!important;color:#fff!important;font-size:16px!important;margin-top:10px!important}
.install-app-btn{width:100%;margin-top:13px;border:1px solid #dce2ee;background:#f8f9fd;color:#263c69;border-radius:14px;padding:11px 14px;font-weight:800;transition:.18s}
.install-app-btn:hover{background:#eef2fb;transform:translateY(-1px)}
.production-empty{padding:28px!important;text-align:center}.production-empty h3{font-size:21px;margin:0 0 8px}.production-empty p{max-width:620px;margin:0 auto 16px;line-height:2;color:var(--muted)}
@media(max-width:600px){.growth-dimensions{font-size:21px;gap:8px}.growth-dimensions span{padding:6px 10px}.behnam-welcome .behnam-message,.school-wish{font-size:14px!important}}

.school-logo-mark{background:#fff!important;padding:4px;overflow:hidden}.school-logo-mark img{width:100%;height:100%;object-fit:contain}.production-setup{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px;border-color:#d9e6ff;background:linear-gradient(145deg,#f7faff,#fff)}.production-setup h2{margin:7px 0;font-size:23px}.production-setup p{margin:0;color:var(--muted);font-size:12px;line-height:2;max-width:780px}@media(max-width:700px){.production-setup{align-items:flex-start;flex-direction:column}}

/* هویت فارسی مدرسۀ من */
.app-fa-title, .login-app-name {
  font-family: "BTitrLocal", "B Titr", "BTitr", "Vazirmatn", Tahoma, sans-serif;
  font-weight: 900;
  letter-spacing: 0;
}
.login-brand .app-fa-title {
  font-size:32px;
  line-height: 1.25;
  color: #fff;
}
.login-card-head h2 {
  font-size:26px;
  line-height: 1.55;
}
.login-card-head .login-app-name {
  display: inline-block;
  font-size:30px;
  color: var(--navy);
  margin-inline-start: 4px;
}
.sidebar-app-title { font-size:22px !important; line-height: 1.35; }
@media(max-width:600px){
  .login-brand .app-fa-title{font-size:28px}
  .login-card-head h2{font-size:23px}
  .login-card-head .login-app-name{font-size:27px}
}

/* Virtual classroom — v1.2.0 */
.virtual-provider-warning,.virtual-provider-ok{margin:0 0 14px;padding:14px 16px;border-radius:16px;display:flex;gap:10px;align-items:flex-start;line-height:1.8;font-size:13px}.virtual-provider-warning{background:#fff8e8;border:1px solid #f3d68f;color:#71551b}.virtual-provider-ok{background:#edf9f2;border:1px solid #bfe8d0;color:#245f3d}.virtual-provider-warning strong,.virtual-provider-ok strong{white-space:nowrap}.virtual-live-strip{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:18px;background:#fff3f3;border:1px solid #ffd0d0;margin-bottom:14px}.virtual-live-strip div{display:grid;gap:2px}.virtual-live-strip small{color:#7d6570}.live-dot{width:10px;height:10px;border-radius:50%;background:#e73737;display:inline-block;box-shadow:0 0 0 0 rgba(231,55,55,.4);animation:livePulse 1.6s infinite}@keyframes livePulse{70%{box-shadow:0 0 0 9px rgba(231,55,55,0)}100%{box-shadow:0 0 0 0 rgba(231,55,55,0)}}
.virtual-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.virtual-class-card{position:relative;overflow:hidden}.virtual-class-card.live{border-color:#ffcece;background:linear-gradient(145deg,#fff,#fff8f8)}.virtual-class-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.virtual-class-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#eef1ff;color:#6557ef;font-weight:900}.virtual-class-card.live .virtual-class-icon{background:#ffe7e7;color:#dd3030}.virtual-class-card-top span{font-size:11px;color:var(--muted)}.virtual-class-card-top h3{font-size:16px;margin:4px 0 0}.virtual-class-meta{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0;color:#68748a;font-size:12px}.virtual-class-actions{display:flex;gap:8px;flex-wrap:wrap}.virtual-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.virtual-summary-grid .card{display:grid;gap:6px}.virtual-summary-grid small{color:var(--muted)}.virtual-summary-grid strong{font-size:25px}.virtual-student-live{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;background:linear-gradient(135deg,#5a50e8,#7969ff);color:white;border-radius:22px;padding:20px;margin-bottom:16px;box-shadow:0 14px 34px rgba(90,80,232,.22)}.virtual-student-live-icon{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:23px}.virtual-student-live span{font-size:12px;opacity:.8}.virtual-student-live h2{margin:5px 0;font-size:19px}.virtual-student-live p{margin:0;font-size:12px;opacity:.9}.virtual-student-live .btn{background:white;color:#574bd7}
.virtual-room-overlay{position:fixed;inset:0;background:#0c1220;z-index:4000;display:grid}.virtual-room-shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.virtual-room-shell>header{height:68px;background:#111827;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 18px;gap:14px}.virtual-room-shell>header>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.virtual-room-shell>header strong{font-size:15px}.virtual-room-shell>header small{grid-column:2;color:#a9b4c7;font-size:11px}.virtual-room-header-actions{display:flex;align-items:center;gap:8px}.virtual-room-close{width:38px;height:38px;border:0;border-radius:12px;background:#273247;color:white;font-size:25px;cursor:pointer}.virtual-meeting-host{min-height:0;height:calc(100vh - 68px);background:#101827}.virtual-meeting-host iframe{display:block!important;width:100%!important;height:100%!important;border:0!important}.virtual-loading,.virtual-error{height:100%;display:grid;place-content:center;text-align:center;gap:10px;color:white}.virtual-loading span{width:38px;height:38px;border:3px solid rgba(255,255,255,.25);border-top-color:white;border-radius:50%;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.virtual-loading small,.virtual-error small{color:#9fb0c8}.virtual-error strong{font-size:19px}.virtual-error p{color:#ffc0c0}
@media(max-width:760px){.virtual-class-grid,.virtual-summary-grid{grid-template-columns:1fr}.virtual-student-live{grid-template-columns:auto 1fr}.virtual-student-live .btn{grid-column:1/-1;width:100%}.virtual-room-shell>header{height:62px;padding:0 10px}.virtual-room-shell>header strong{font-size:13px}.virtual-room-shell>header small{font-size:10px}.virtual-meeting-host{height:calc(100vh - 62px)}}

.virtual-error-card{padding:24px;max-width:620px;margin:auto}.virtual-error-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:8px 0}.virtual-error-card .btn-soft{background:#26344a;color:#fff;border-color:#3c4d68}

/* LiveKit virtual classroom — v1.3.0 */
.lk-classroom{background:#0b1220}.lk-connected-pill{padding:6px 10px;border-radius:999px;background:#173728;color:#aaf0c6;font-size:11px}.lk-room-body{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:0;height:calc(100vh - 68px)}.lk-main{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;background:#0b1220}.lk-main-stage{min-height:0;position:relative;overflow:hidden;background:#0a0f1a;display:grid;place-items:center}.lk-stage-video{position:absolute;inset:0;display:grid;place-items:center;background:#05080e}.lk-video{width:100%;height:100%;object-fit:contain;background:#05080e}.lk-media-label{position:absolute;right:16px;bottom:14px;background:rgba(7,12,23,.72);color:#fff;padding:7px 10px;border-radius:10px;font-size:11px}.lk-stage-placeholder{display:grid;place-items:center;text-align:center;gap:8px;color:#dbe7f5}.lk-stage-placeholder span{color:#8292aa;font-size:12px}.lk-stage-avatar{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:#25334a;font-size:31px;font-weight:800}.lk-thumbs{display:flex;gap:8px;overflow-x:auto;padding:8px 12px;background:#0e1728;min-height:0}.lk-thumb{width:150px;height:92px;flex:0 0 auto;border-radius:12px;overflow:hidden;position:relative;background:#192439}.lk-thumb-video{width:100%;height:100%;object-fit:cover}.lk-thumb span{position:absolute;right:6px;bottom:5px;background:rgba(0,0,0,.55);color:#fff;border-radius:7px;padding:3px 6px;font-size:10px}.lk-audio-sink{position:absolute;width:0;height:0;overflow:hidden}.lk-controls{min-height:62px;background:#111c2e;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;flex-wrap:wrap}.lk-control{border:1px solid #31415d;background:#1b2940;color:#e9f0fa;border-radius:12px;padding:10px 13px;cursor:pointer;font-family:inherit;font-size:12px}.lk-control-primary{background:#5147cf;border-color:#7168f0}.lk-control[hidden]{display:none}.lk-control.active{background:#295b47;border-color:#3f8f6c}.lk-control.lk-hand.active{background:#725b1e;border-color:#aa8934}.lk-publish-note{font-size:10px;color:#a5b3c7}.lk-media-status{padding:7px 14px;text-align:center;font-size:11px;line-height:1.8;background:#101827;color:#b9c6d8;border-top:1px solid #1e2a3d}.lk-media-status.success{background:#10271e;color:#a9e5c3}.lk-media-status.warning{background:#2a2413;color:#f1d48a}.lk-media-status.danger{background:#32191d;color:#ffb6bf}.lk-media-status.info{background:#101827;color:#b9c6d8}.lk-sidebar{background:#f8fafc;border-right:1px solid #dce4ee;display:grid;grid-template-rows:minmax(220px,1fr) minmax(220px,1fr);min-height:0;color:#1c2940}.lk-sidebar section{min-height:0;display:grid;grid-template-rows:auto 1fr}.lk-side-title{padding:12px 14px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.lk-side-title strong{font-size:13px}.lk-side-title span{background:#e8edf5;border-radius:999px;padding:3px 8px;font-size:11px}.lk-participants{overflow:auto;padding:8px}.lk-participant{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border-radius:11px}.lk-participant:hover{background:#edf2f8}.lk-participant.speaking{box-shadow:inset 0 0 0 1px #4bc184;background:#edf9f2}.lk-participant-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#dfe7f2;font-weight:800}.lk-participant-info{display:grid;min-width:0}.lk-participant-info strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lk-participant-info small{font-size:9px;color:#708098}.lk-participant-state{display:flex;gap:3px;font-size:11px}.lk-permission-btn{grid-column:2/4;justify-self:start;border:0;border-radius:8px;padding:5px 8px;background:#6658f4;color:#fff;font-family:inherit;font-size:10px;cursor:pointer}.lk-permission-btn.active{background:#c24b4b}.lk-chat{border-top:1px solid #dce4ee}.lk-chat-messages{overflow:auto;padding:10px;display:grid;align-content:start;gap:7px}.lk-chat-msg{background:#fff;border:1px solid #e3e9f1;border-radius:11px;padding:7px 9px;display:grid;gap:2px}.lk-chat-msg strong{font-size:10px;color:#5868d8}.lk-chat-msg span{font-size:11px;line-height:1.7}.lk-chat-empty{color:#8090a7;font-size:11px;text-align:center;padding:25px 5px}.lk-chat-compose{display:grid;grid-template-columns:1fr auto;gap:6px;padding:8px;border-top:1px solid #e2e8f0}.lk-chat-compose input{border:1px solid #d5deea;border-radius:9px;padding:8px 9px;font-family:inherit;min-width:0}.lk-chat-compose button{border:0;border-radius:9px;background:#6658f4;color:#fff;padding:0 10px;font-family:inherit;cursor:pointer}.livekit-config-box{display:grid;gap:7px}.livekit-config-box p{margin:0 0 6px;color:var(--muted);font-size:12px;line-height:1.9}.livekit-config-box code{direction:ltr;text-align:left;background:#f2f5f9;border:1px solid #e0e6ef;padding:7px 9px;border-radius:8px;font-size:11px}.livekit-config-box.configured{border-right:4px solid #46a873;padding-right:10px}
@media(max-width:900px){.lk-room-body{grid-template-columns:1fr;height:calc(100vh - 62px);overflow:auto}.lk-main{min-height:68vh}.lk-sidebar{grid-template-rows:320px 320px;border-right:0;border-top:1px solid #dce4ee}.lk-main-stage{min-height:52vh}}
@media(max-width:560px){.lk-controls{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.lk-control{white-space:nowrap}.lk-thumbs{padding:6px}.lk-thumb{width:116px;height:72px}.virtual-room-header-actions .lk-connected-pill{display:none}}

/* =========================================================
   Madrese Man UI Refresh — v1.4.0
   Persian-first visual system. No bundled font files.
   ========================================================= */
:root{
  --bg:#f3f6fb;
  --surface:rgba(255,255,255,.88);
  --surface-2:#fff;
  --surface-soft:#f8faff;
  --text:#17233c;
  --muted:#718097;
  --line:#e3e9f2;
  --line-strong:#d6dfeb;
  --primary:#5a5bdc;
  --primary-2:#766bf3;
  --primary-soft:#f0f0ff;
  --navy:#15294d;
  --navy-2:#0e1d38;
  --success:#1fa66a;
  --success-soft:#eaf8f1;
  --danger:#e95d67;
  --danger-soft:#fff0f2;
  --blue:#3478f6;
  --blue-soft:#edf4ff;
  --amber:#e99b22;
  --amber-soft:#fff6e7;
  --purple-soft:#f1efff;
  --shadow-xs:0 2px 10px rgba(31,47,75,.04);
  --shadow:0 12px 32px rgba(31,47,75,.075);
  --shadow-lg:0 24px 64px rgba(25,40,70,.13);
  --radius:20px;
  --radius-sm:13px;
  --font-ui:"Vazirmatn","Segoe UI",Tahoma,Arial,sans-serif;
}

html{font-size:17px;background:var(--bg)}
body{
  font-family:var(--font-ui);
  font-size:15px;
  line-height:1.8;
  letter-spacing:0;
  background:
    radial-gradient(700px 420px at 0% -4%,rgba(91,92,220,.10),transparent 62%),
    radial-gradient(620px 340px at 74% 0%,rgba(69,127,246,.055),transparent 66%),
    var(--bg);
}
body,button,input,select,textarea{font-family:var(--font-ui)}
::selection{background:rgba(90,91,220,.16);color:var(--text)}

/* Remove legacy display-font dependency; keep typography consistent everywhere. */
h1,h2,h3,h4,h5,h6,.page-head h1,.card-title h3,.modal-head h3,
.app-fa-title,.sidebar-app-title,.login-app-name{
  font-family:var(--font-ui)!important;
  letter-spacing:-.025em;
}
h1,h2,h3,h4{color:inherit}

/* App frame */
.app-shell{grid-template-columns:minmax(0,1fr) 268px}
.sidebar{
  padding:22px 15px 18px;
  background:
    radial-gradient(360px 250px at 105% -5%,rgba(117,109,243,.25),transparent 60%),
    linear-gradient(180deg,#172d55 0%,#102342 52%,#0d1d37 100%);
  box-shadow:-10px 0 34px rgba(12,29,55,.06);
  border-left:1px solid rgba(255,255,255,.04);
}
.brand{
  gap:12px;
  margin:0 3px 18px;
  padding:10px 10px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.brand-mark{
  width:48px;height:48px;border-radius:15px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.45);
  box-shadow:0 9px 22px rgba(4,16,36,.22);
  overflow:hidden;
}
.brand-mark img{width:100%;height:100%;object-fit:contain;padding:4px}
.brand strong{font-size:19px;font-weight:850;letter-spacing:-.4px}
.brand small{font-size:12px;color:rgba(255,255,255,.62);margin-top:1px}
.nav-list{gap:5px;padding:3px 3px 4px}
.nav-item{
  min-height:46px;
  border-radius:13px;
  padding:10px 12px;
  font-size:13.5px;
  font-weight:580;
  color:rgba(255,255,255,.75);
  position:relative;
  transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.nav-item span{
  width:28px;height:28px;
  display:grid;place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.055);
  font-size:17px;
  transition:.18s ease;
}
.nav-item:hover{background:rgba(255,255,255,.075);transform:none;color:#fff}
.nav-item:hover span{background:rgba(255,255,255,.10)}
.nav-item.active{
  background:linear-gradient(100deg,rgba(101,99,230,.98),rgba(92,101,224,.90));
  color:#fff;
  box-shadow:0 10px 24px rgba(36,42,120,.27),inset 0 1px rgba(255,255,255,.13);
}
.nav-item.active:after{
  content:"";position:absolute;right:-5px;top:11px;bottom:11px;width:3px;
  border-radius:999px;background:#b9c7ff;box-shadow:0 0 12px rgba(185,199,255,.65)
}
.nav-item.active span{background:rgba(255,255,255,.14)}
.sidebar-footer{gap:9px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}
.signed-role,.role-switcher{
  border-radius:13px!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.075)!important;
  padding:11px 12px!important;
}
.signed-role small{display:block;color:rgba(255,255,255,.52);font-size:10.5px}
.signed-role strong{font-size:12.5px}
.logout-item{color:#ffced2!important}

.main-content{padding:18px 24px 34px}
.topbar{
  min-height:76px;
  grid-template-columns:1fr 1.15fr auto;
  border-radius:18px;
  border:1px solid rgba(218,226,238,.86);
  background:rgba(255,255,255,.82);
  box-shadow:0 9px 26px rgba(24,43,76,.055);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  padding:11px 14px;
}
.profile-mini{gap:11px}.profile-mini strong{font-size:14.5px;font-weight:760}.profile-mini small{font-size:11px}
.avatar{
  width:43px;height:43px;
  background:linear-gradient(145deg,#eef1ff,#dfe5ff);
  color:#4d58c5;
  border:2px solid #fff;
  box-shadow:0 4px 14px rgba(55,75,135,.12);
}
.welcome strong{font-size:14.5px;font-weight:760}.welcome small{font-size:11px}
.icon-button{
  width:39px;height:39px;border-radius:11px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  color:#2e405e;
  box-shadow:var(--shadow-xs);
}
.icon-button:hover{border-color:#d3daea;background:#fff;box-shadow:0 7px 18px rgba(30,50,84,.09)}
.badge-dot{font-family:var(--font-ui);font-weight:700}

.view-container{padding-top:26px;max-width:1640px;margin:0 auto;width:100%}
.page-head{align-items:center;margin-bottom:20px}
.page-head h1{font-size:25px;font-weight:850;line-height:1.45;color:#162542}
.page-head p{font-size:12.5px;line-height:1.85;color:var(--muted);margin-top:4px}
.page-actions{gap:9px}
.context-kicker,.eyebrow{font-weight:700;letter-spacing:0}

/* Cards & information hierarchy */
.card{
  border:1px solid rgba(220,228,239,.92);
  border-radius:18px;
  box-shadow:var(--shadow);
  background:rgba(255,255,255,.97);
  padding:19px;
}
.card:not(.level-card):not(.family-particle-card):not(.motivation-card){transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.card:not(.level-card):not(.family-particle-card):not(.motivation-card):hover{border-color:#d8e0ec;box-shadow:0 16px 38px rgba(31,47,75,.09)}
.card-title{margin-bottom:16px}
.card-title h3{font-size:16px;font-weight:800;color:#23314b}
.card-title small{font-size:11.5px}
.metric-card{min-height:168px;padding:18px}
.metric-icon{width:42px;height:42px;border-radius:13px;font-size:20px}
.metric-label{font-size:13px;font-weight:720;color:#34435d}
.metric-value{font-size:32px;font-weight:850;letter-spacing:-1px;color:#17233c}
.metric-caption,.metric-link{font-size:11.5px}
.level-card{
  border-radius:20px;
  background:
    radial-gradient(260px 150px at 10% 0%,rgba(255,255,255,.18),transparent 72%),
    linear-gradient(140deg,#675eea 0%,#4a4dcf 53%,#3147ae 100%);
  box-shadow:0 18px 42px rgba(67,68,187,.24);
}
.level-badge{filter:drop-shadow(0 8px 18px rgba(20,25,85,.20))}
.progress{height:8px}

/* Buttons */
.btn{
  min-height:39px;
  border-radius:11px;
  padding:9px 14px;
  font-size:12.5px;
  font-weight:720;
  border:1px solid transparent;
  letter-spacing:0;
  box-shadow:none;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,background .16s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{
  background:linear-gradient(100deg,#5658dc,#7068ee);
  box-shadow:0 8px 18px rgba(86,88,220,.18);
}
.btn-primary:hover{box-shadow:0 11px 24px rgba(86,88,220,.24)}
.btn-soft{background:#f3f5f9;color:#34445f;border-color:#e5eaf2}
.btn-soft:hover{background:#eef1f6}
.btn-success{border-color:#d7f0e2}.btn-danger{border-color:#f7d9dc}.btn-blue{border-color:#dce8fc}

/* Inputs */
.form-grid{gap:14px}
.form-group{gap:7px}
.form-group label{font-size:12px;font-weight:720;color:#596980}
.form-group input,.form-group select,.form-group textarea,.search-box,
.login-form input,.lk-chat-compose input{
  min-height:43px;
  border-radius:11px;
  border:1px solid #dfe6f0;
  background:#fbfcff;
  padding:10px 12px;
  color:#1e2d47;
  font-size:13px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.form-group textarea{min-height:92px;resize:vertical}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover,.search-box:hover{border-color:#d2dce9}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.search-box:focus,
.login-form input:focus,.lk-chat-compose input:focus{
  border-color:#8c8bea;
  box-shadow:0 0 0 3px rgba(91,92,220,.085);
  background:#fff;
  outline:0;
}
.form-actions{gap:9px}
.field-help,.readonly-note{line-height:1.9}

/* Tables */
.table-card{border-radius:18px;background:#fff}
.table-tools{padding:14px 16px;background:linear-gradient(180deg,#fff,#fcfdff);border-bottom:1px solid var(--line)}
.search-box{min-width:250px}
.data-table{font-variant-numeric:tabular-nums}
.data-table th,.data-table td{padding:13px 15px;font-size:12.5px;border-bottom:1px solid #edf1f6}
.data-table th{
  background:#f8fafd;
  color:#68778e;
  font-size:11.5px;
  font-weight:760;
  letter-spacing:0;
}
.data-table tbody tr{transition:background .13s ease}
.data-table tr:hover td{background:#fafbff}
.pill{font-size:10.8px;padding:5px 9px;font-weight:750}

/* Stats, lists and mini-cards */
.stats-strip{gap:12px}.stat-mini{border-radius:15px;box-shadow:var(--shadow-xs);padding:14px 16px}.stat-mini strong{font-size:23px;font-weight:850}
.task-row,.feed-row{padding:12px 1px}.task-row strong,.feed-row strong{font-size:12.5px}.task-row small,.feed-row small{font-size:10.8px}
.quick-tile{border:1px solid #edf0f6;background:#fafbfe;border-radius:14px;min-height:94px}.quick-tile span{border-radius:12px}.quick-tile small{font-size:11.5px;font-weight:650}
.student-chip{border-radius:15px;padding:13px 10px}.student-chip strong{font-size:12.5px}.student-chip small{font-size:10.5px}.student-chip .student-xp{font-size:11.5px}
.leader-row{border-radius:15px;padding:13px 14px}.leader-name strong{font-size:12.5px}

/* Dashboard-generated specialty surfaces */
.teacher-hero,.deputy-hero,.family-hero,.staff-hero,.school-home-identity,
.family-summary,.today-card,.workspace-card,.management-branch,.deputy-tool,
.cultural-program-card,.cultural-family-card,.message-card,.notice-card,
.wallet-kpi,.counselor-report,.internal-report{
  border-radius:18px!important;
}
.teacher-hero,.deputy-hero,.staff-hero,.family-hero{
  box-shadow:var(--shadow)!important;
  border-color:#e0e7f1!important;
}
.workspace-card,.management-branch,.deputy-tool,.cultural-program-card,.cultural-family-card{
  transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease;
}
.workspace-card:hover,.management-branch:hover,.deputy-tool:hover,.cultural-program-card:hover,.cultural-family-card:hover{
  transform:translateY(-2px);box-shadow:0 13px 28px rgba(31,47,75,.09);border-color:#d6deeb
}
.teacher-context,.context-mini,.role-chip,.deputy-chip,.period-chip,.allocation-chip{
  border-radius:999px!important;
}

/* Modals & feedback */
.modal-backdrop{background:rgba(13,27,51,.40);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.modal-card{border-radius:20px;border:1px solid rgba(255,255,255,.60);box-shadow:var(--shadow-lg)}
.modal-head{padding:15px 18px}.modal-head h3{font-size:16px;font-weight:820}.modal-body{padding:19px}
.toast-host{left:22px;bottom:22px}.toast{border-radius:12px;padding:11px 14px;font-size:12.5px;box-shadow:0 14px 30px rgba(17,33,61,.22)}
.empty-state{padding:46px 20px}.empty-state .emoji{filter:grayscale(.08)}

/* Login — restrained, school-grade premium look */
.login-screen{
  grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr);
  background:#f3f6fb;
}
.login-visual{
  padding:46px 54px;
  background:
    radial-gradient(640px 420px at 15% 15%,rgba(127,126,255,.24),transparent 66%),
    radial-gradient(520px 340px at 100% 100%,rgba(43,137,224,.18),transparent 70%),
    linear-gradient(145deg,#142a50 0%,#203967 49%,#4b49bd 100%);
}
.login-visual:after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 76%);
}
.login-brand{z-index:3}.login-logo{width:55px;height:55px;background:#fff;border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 30px rgba(6,18,45,.24);overflow:hidden}
.login-logo img,.mini-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.login-brand strong{font-size:20px;font-weight:850}.login-brand small{font-size:11.5px}
.login-copy{z-index:3;max-width:650px}.eyebrow{padding:6px 11px;font-size:11px;background:rgba(255,255,255,.09)}
.login-copy h1{font-size:42px;font-weight:900;line-height:1.65;margin:16px 0 7px;letter-spacing:-1.7px}
.login-copy p{font-size:14px;line-height:2.05;color:rgba(255,255,255,.72)}
.growth-dimensions{font-weight:800;letter-spacing:0}
.login-feature-grid{gap:10px;margin-top:25px}.login-feature-grid div{padding:11px 13px;border-radius:13px;background:rgba(255,255,255,.065);font-size:12.5px;backdrop-filter:blur(8px)}
.login-feature-grid b{width:24px;height:24px;background:rgba(81,218,151,.13);font-size:12px}
.login-panel-wrap{background:radial-gradient(520px 360px at 100% 0%,rgba(93,87,239,.08),transparent 66%),#f3f6fb;padding:36px}
.login-card{
  width:min(100%,485px);
  border-radius:22px;
  border:1px solid rgba(216,225,238,.92);
  padding:27px;
  box-shadow:0 24px 65px rgba(30,48,80,.11);
}
.login-card-head{margin-bottom:20px}.mini-logo{width:47px;height:47px;border-radius:14px;background:#fff;border:1px solid #e6eaf2;box-shadow:0 6px 18px rgba(38,55,88,.07);overflow:hidden}
.login-card h2{font-size:21px;font-weight:850}.login-card-head p{font-size:11.5px}
.login-roles{grid-template-columns:1fr 1fr;gap:9px}
.login-role{min-height:72px;border-radius:13px;padding:10px 11px;gap:10px;background:#fff}
.login-role>span{width:36px;height:36px;border-radius:10px;background:#f1f4fa;color:#5965ce;font-size:17px}
.login-role strong{font-size:12.5px;font-weight:760}.login-role small{font-size:10px;line-height:1.65}
.login-role:hover{border-color:#ccd6e6;background:#fbfcff;transform:none}
.login-role.active{border-color:#7778e6;background:linear-gradient(145deg,#fafaff,#f4f4ff);box-shadow:0 0 0 3px rgba(91,92,220,.065)}
.login-role.active>span{background:linear-gradient(145deg,#5c5ddc,#7470ee)}
.login-form{gap:12px;margin-top:18px}.login-form label{font-size:11.5px}.login-submit{min-height:44px;border-radius:12px;font-size:13px;background:linear-gradient(100deg,#5658d7,#7069eb);box-shadow:0 9px 20px rgba(80,83,210,.20)}
.install-app-btn{border-radius:11px!important;font-family:var(--font-ui)!important}
.demo-hint{font-size:10.5px;line-height:1.8}

/* LiveKit classroom — clearer controls and calmer contrast */
.virtual-room-overlay{background:#09111f}
.virtual-room-shell>header{background:#111d30;border-bottom:1px solid rgba(255,255,255,.06);height:66px;padding:0 17px}
.virtual-room-shell>header strong{font-size:14px;font-weight:780}.virtual-room-shell>header small{font-size:10.5px}
.lk-classroom{background:#09111f}
.lk-connected-pill{border:1px solid rgba(83,213,138,.16);font-weight:700}
.lk-room-body{grid-template-columns:minmax(0,1fr) 324px;height:calc(100vh - 66px)}
.lk-main{background:#09111f}.lk-main-stage{background:#070d17}.lk-stage-video,.lk-video{background:#070d17}
.lk-stage-avatar{width:88px;height:88px;background:linear-gradient(145deg,#24344d,#1b2a42);box-shadow:0 12px 30px rgba(0,0,0,.22)}
.lk-media-label{right:14px;bottom:13px;border-radius:9px;font-size:10.5px;backdrop-filter:blur(8px)}
.lk-thumbs{gap:9px;padding:9px 12px;background:#0e192a;border-top:1px solid rgba(255,255,255,.04)}
.lk-thumb{width:158px;height:96px;border-radius:11px;border:1px solid rgba(255,255,255,.06)}
.lk-controls{min-height:66px;background:#111d30;border-top:1px solid rgba(255,255,255,.06);gap:7px}
.lk-control{min-height:39px;border-radius:10px;padding:9px 12px;font-size:11.5px;background:#1a2a43;border-color:#30435f;color:#edf3fb}
.lk-control:hover{background:#223550}.lk-control-primary{background:#5856d8;border-color:#716fed}.lk-control-primary:hover{background:#6461e4}
.lk-media-status{font-size:10.5px}
.lk-sidebar{background:#f7f9fc;border-right:1px solid #dce4ef}.lk-side-title{padding:12px 13px;background:#fff}.lk-side-title strong{font-size:12.5px}.lk-side-title span{font-size:10.5px}
.lk-participants{padding:8px}.lk-participant{padding:8px 7px;border-radius:10px}.lk-participant-avatar{width:34px;height:34px}.lk-participant-info strong{font-size:11.5px}.lk-participant-info small{font-size:9.5px}
.lk-chat-msg{border-radius:10px;padding:8px 9px}.lk-chat-msg strong{font-size:10px}.lk-chat-msg span{font-size:11.5px}.lk-chat-compose{padding:9px}

/* Responsive refinements */
@media(max-width:1250px){.app-shell{grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:980px){
  .sidebar{width:272px}
  .main-content{padding:12px 14px 26px}
  .topbar{top:8px}
  .view-container{padding-top:20px}
}
@media(max-width:760px){
  body{font-size:14.5px}
  .main-content{padding:10px}
  .topbar{min-height:67px;border-radius:15px;padding:9px 10px}
  .page-head h1{font-size:22px}.page-head p{font-size:12px}
  .card{padding:15px;border-radius:16px}
  .metric-card{min-height:146px}.metric-value{font-size:27px}
  .btn{min-height:39px;font-size:12px}
  .data-table th,.data-table td{font-size:12px}
  .login-screen{grid-template-columns:1fr}.login-visual{display:none}.login-panel-wrap{min-height:100vh;padding:18px;background:radial-gradient(420px 300px at 100% 0%,rgba(93,87,239,.10),transparent 66%),#f3f6fb}
  .login-card{max-width:520px;padding:22px;border-radius:19px}.login-roles{grid-template-columns:1fr 1fr}
  .lk-room-body{height:calc(100vh - 62px)}
}
@media(max-width:520px){
  .main-content{padding:7px}.view-container{padding-top:16px}
  .topbar{border-radius:13px}.profile-mini strong{font-size:12.5px}
  .page-head h1{font-size:20px}
  .card{border-radius:15px;padding:13px}
  .login-panel-wrap{padding:12px}.login-card{padding:18px 15px}.login-card h2{font-size:19px}.login-roles{grid-template-columns:1fr}.login-role{min-height:60px}
  .form-group input,.form-group select,.form-group textarea,.search-box,.login-form input{font-size:13px}
  .lk-controls{justify-content:flex-start;padding:8px;gap:6px}.lk-control{min-height:37px;padding:8px 10px}
}


/* ===== v1.4.1 — larger typography, centered navigation, richer motion ===== */
:root{--motion-fast:160ms;--motion-normal:280ms;--motion-slow:420ms;--ease-ui:cubic-bezier(.2,.8,.2,1)}

/* Navigation: visually centered and calmer. */
.nav-item{justify-content:center;text-align:center;gap:10px;padding-inline:14px}
.nav-item span{flex:0 0 30px}
.nav-item:hover{transform:translateY(-2px) scale(1.015);background:rgba(255,255,255,.10);box-shadow:0 8px 20px rgba(4,16,36,.16)}
.nav-item:active{transform:translateY(0) scale(.985)}
.nav-item.active:after{right:50%;top:auto;bottom:3px;width:34px;height:3px;transform:translateX(50%)}
.sidebar-footer .nav-item{width:100%;justify-content:center}

/* Bigger profile identity. */
.topbar{min-height:88px}
.avatar{width:56px;height:56px;font-size:18px}
.table-avatar{width:48px!important;height:48px!important}
.family-summary .avatar{width:72px;height:72px}
.rank-avatar{width:62px;height:62px}
.profile-preview-avatar{width:104px;height:104px;border-radius:50%}
.student-photo-avatar{position:relative}
.student-photo-avatar img{cursor:zoom-in;transition:transform var(--motion-normal) var(--ease-ui),filter var(--motion-normal) ease}
.student-photo-avatar:hover img{transform:scale(1.055);filter:saturate(1.04) contrast(1.02)}

/* Profile photo viewer. */
.profile-photo-viewer{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:28px;background:rgba(5,12,25,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:photoViewerIn .22s var(--ease-ui)}
.profile-photo-viewer-card{position:relative;max-width:min(92vw,760px);max-height:88vh;border-radius:28px;padding:12px;background:rgba(255,255,255,.96);box-shadow:0 36px 90px rgba(0,0,0,.35);animation:photoViewerCardIn .32s var(--ease-ui)}
.profile-photo-viewer-card img{display:block;max-width:100%;max-height:calc(88vh - 24px);border-radius:20px;object-fit:contain;background:#eef2f7}
.profile-photo-viewer-close{position:absolute;top:-14px;left:-14px;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#17233c;font-size:25px;display:grid;place-items:center;box-shadow:0 10px 25px rgba(0,0,0,.22);cursor:pointer}
@keyframes photoViewerIn{from{opacity:0}to{opacity:1}}
@keyframes photoViewerCardIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}

/* Cards: subtle tactile motion throughout all panels. */
.card,.management-branch,.deputy-tool,.workspace-card,.quick-tile,.student-chip,.login-role,.virtual-class-card,.today-card,.activity-item,.leader-row,.teacher-allocation-row{transition:transform var(--motion-normal) var(--ease-ui),box-shadow var(--motion-normal) var(--ease-ui),border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}
.card:hover,.virtual-class-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(25,43,76,.115);border-color:#d7deea}
.management-branch:hover,.deputy-tool:hover,.workspace-card:hover,.quick-tile:hover,.student-chip:hover,.login-role:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 16px 34px rgba(27,46,82,.12)}
.management-branch:active,.deputy-tool:active,.workspace-card:active,.quick-tile:active,.student-chip:active,.login-role:active{transform:translateY(-1px) scale(.985)}
.activity-item:hover,.leader-row:hover,.teacher-allocation-row:hover{transform:translateX(-3px);background:#fbfcff}

/* Animated navigation between views. */
.view-container.view-transition-out{animation:viewOut .12s ease both;pointer-events:none}
.view-container.view-transition-in{animation:viewIn .34s var(--ease-ui) both}
@keyframes viewOut{to{opacity:.18;transform:translateY(5px) scale(.995)}}
@keyframes viewIn{from{opacity:0;transform:translateY(14px) scale(.992);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@media(prefers-reduced-motion:reduce){.view-container.view-transition-out,.view-container.view-transition-in,.profile-photo-viewer,.profile-photo-viewer-card{animation:none!important}.card,.management-branch,.deputy-tool,.workspace-card,.quick-tile,.student-chip,.login-role,.virtual-class-card,.today-card{transition:none!important}}

/* Teacher allocation editor. */
.teacher-assignment-panel{display:grid;gap:12px;padding:14px;border:1px solid #e3e8f2;border-radius:16px;background:#fafbfe}
.teacher-assignment-current{display:flex;flex-wrap:wrap;gap:7px}
.teacher-assignment-builder{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}
.teacher-assignment-builder .form-group{min-width:0}
.teacher-assignment-list{display:grid;gap:7px}
.teacher-assignment-draft{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid #e7ebf3}
.teacher-assignment-draft strong{font-size:13px}.teacher-assignment-draft small{color:var(--muted)}
.teacher-assignment-remove{width:34px;height:34px;border:0;border-radius:10px;background:#fff0f1;color:#c74450;font-size:18px;cursor:pointer}
@media(max-width:700px){.teacher-assignment-builder{grid-template-columns:1fr}.teacher-assignment-draft{grid-template-columns:1fr auto}.teacher-assignment-draft small{grid-column:1}}

/* ===== v1.4.2 — wide tables, ambient particles, mobile dashboard, live-class Talash ===== */

/* Wide information tables: keep every column accessible without browser zoom-out. */
.table-card{
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:#aab5c7 #edf1f6;
}
.table-card::-webkit-scrollbar{height:10px}
.table-card::-webkit-scrollbar-track{background:#edf1f6;border-radius:999px}
.table-card::-webkit-scrollbar-thumb{background:#aab5c7;border:2px solid #edf1f6;border-radius:999px}
.table-card::-webkit-scrollbar-thumb:hover{background:#8492a8}
.table-card .table-tools{position:sticky;right:0;left:0;min-width:min(100%,620px)}
.table-card .data-table{width:max-content;min-width:100%;table-layout:auto}
.table-card .data-table th,.table-card .data-table td{white-space:nowrap}
#studentsTable{min-width:1180px}
#teachersTable{min-width:1040px}

/* Lightweight particle field for every genuinely colored surface. */
.particle-surface{position:relative;isolation:isolate;overflow:hidden}
.particle-surface>.ambient-particles{position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none;overflow:hidden;border-radius:inherit}
.particle-surface>*:not(.ambient-particles){position:relative;z-index:1}
.ambient-particles i{position:absolute;right:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:rgba(59,72,113,.15);box-shadow:0 0 0 1px rgba(255,255,255,.16);opacity:.46;animation:ambientFloat var(--dur) ease-in-out var(--delay) infinite alternate}
.ambient-particles-light i{background:rgba(255,255,255,.62);box-shadow:0 0 10px rgba(255,255,255,.20);opacity:.42}
.ambient-particles i:nth-child(3n){border-radius:2px;transform:rotate(25deg)}
.ambient-particles i:nth-child(4n){opacity:.24}
@keyframes ambientFloat{0%{translate:0 7px;scale:.8;opacity:.18}45%{opacity:.55}100%{translate:-14px -15px;scale:1.35;opacity:.12}}

/* Virtual class entry from teacher quick tools. */
.btn-virtual-quick{background:linear-gradient(135deg,#534fd5,#7669ee)!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 10px 22px rgba(83,79,213,.22)!important}
.btn-virtual-quick:hover{transform:translateY(-2px);box-shadow:0 15px 28px rgba(83,79,213,.30)!important}
.quick-virtual-inline{width:100%;justify-content:center;min-height:45px}

/* Award Talash without leaving the LiveKit classroom. */
.lk-talash-award{display:flex;align-items:center;gap:4px;margin-top:6px;direction:rtl;flex-wrap:wrap}
.lk-talash-award>span{font-size:9px;font-weight:800;color:#8b96a8;margin-left:2px}
.lk-talash-award button{min-width:29px;height:25px;padding:0 6px;border:1px solid #dce4ef;border-radius:8px;background:#fff;color:#2d6671;font:800 10.5px var(--font-ui);cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.lk-talash-award button:hover{background:#eaf9f4;border-color:#a9decf;transform:translateY(-1px)}
.lk-talash-award button.custom{background:#f2efff;color:#5c54d6;border-color:#d9d4ff}
.lk-talash-award button.award-pop{animation:talashAwardPop .45s var(--ease-ui)}
@keyframes talashAwardPop{0%{transform:scale(1)}40%{transform:scale(1.28);box-shadow:0 0 0 7px rgba(56,179,130,.13)}100%{transform:scale(1)}}

/* On phones the sidebar is intentionally removed: every destination lives on Dashboard. */
.mobile-dashboard-menu{display:none}
.mobile-home-button{display:none}
@media(max-width:760px){
  .app-shell{display:block!important;min-height:100vh}
  .sidebar,.mobile-overlay,.menu-button{display:none!important}
  .main-content{width:100%;min-width:0;margin:0!important}
  .mobile-home-button{display:grid!important;place-items:center;font-size:20px}
  .topbar{position:sticky;top:6px;z-index:80}
  .welcome{display:none}
  .mobile-dashboard-menu{display:block;margin:0 0 17px;padding:15px;border-radius:19px;background:linear-gradient(145deg,#152744,#213b63);color:#fff;box-shadow:0 16px 34px rgba(17,38,70,.19);position:relative;overflow:hidden}
  .mobile-dashboard-menu-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
  .mobile-dashboard-menu-head span{font-size:10.5px;color:#b9c8dc}
  .mobile-dashboard-menu-head strong{font-size:14px;color:#fff}
  .mobile-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .mobile-dashboard-nav{min-width:0;min-height:76px;padding:10px 7px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.075);color:#fff;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;font:700 11.5px var(--font-ui);cursor:pointer;transition:transform .2s var(--ease-ui),background .2s ease,border-color .2s ease}
  .mobile-dashboard-nav b{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.11);display:grid;place-items:center;font-size:16px}
  .mobile-dashboard-nav span{line-height:1.55}
  .mobile-dashboard-nav:active{transform:scale(.96);background:rgba(255,255,255,.14)}
  .mobile-dashboard-logout{grid-column:1/-1;min-height:54px;grid-template-columns:auto auto;display:grid;justify-content:center;gap:8px;background:rgba(205,70,84,.16);border-color:rgba(255,164,173,.17)}
  .mobile-dashboard-logout b{height:28px;width:28px}
  #studentsTable{min-width:1120px}
  #teachersTable{min-width:980px}
  .table-card{margin-inline:0;overscroll-behavior-inline:contain}
  .table-card:after{content:'برای دیدن ستون‌های بیشتر، جدول را افقی بکشید ↔';position:sticky;right:10px;bottom:5px;display:inline-block;margin:5px 8px 8px;padding:5px 9px;border-radius:999px;background:rgba(24,40,70,.78);color:#fff;font-size:9.5px;pointer-events:none;backdrop-filter:blur(5px)}
  .lk-talash-award{gap:3px}.lk-talash-award button{min-width:27px;height:24px}
}
@media(max-width:420px){.mobile-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mobile-dashboard-nav{min-height:72px;font-size:11px}}

@media(prefers-reduced-motion:reduce){.ambient-particles i{animation:none!important}.lk-talash-award button.award-pop{animation:none!important}}


/* ===== v1.5.0 — cultural catalog, custom categories and family registration ===== */
.cultural-catalog-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;border-style:dashed;background:linear-gradient(145deg,#fff,#faf7ff)}
.cultural-catalog-guide strong{display:block;font-size:15px;margin-bottom:4px}.cultural-catalog-guide p{margin:0;color:var(--muted);line-height:1.9;font-size:12.5px}.cultural-catalog-guide>span{flex:0 0 auto;padding:8px 11px;border-radius:12px;background:#f2edff;color:#6555a9;font-size:11px;font-weight:800}
.cultural-category-stack{display:grid;gap:18px}.cultural-category-section{padding:0!important;overflow:hidden}.category-disabled{opacity:.72}
.cultural-category-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:19px 20px;color:#fff;position:relative;overflow:hidden}
.cultural-category-head.tone-0{background:linear-gradient(135deg,#245f91,#3e83b8)}
.cultural-category-head.tone-1{background:linear-gradient(135deg,#7c4d9d,#a667bc)}
.cultural-category-head.tone-2{background:linear-gradient(135deg,#39735f,#56a27e)}
.cultural-category-head.tone-3{background:linear-gradient(135deg,#b36d32,#d7984e)}
.cultural-category-head.tone-4{background:linear-gradient(135deg,#4b55a1,#7179d0)}
.cultural-category-symbol{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);font-size:27px;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.cultural-category-copy span{font-size:10.5px;opacity:.75}.cultural-category-copy h2{font-size:19px;margin:3px 0 4px}.cultural-category-copy p{font-size:11.5px;margin:0;opacity:.82;line-height:1.8}
.cultural-category-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn-glass{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.20)}.btn-glass:hover{background:rgba(255,255,255,.17);transform:translateY(-1px)}.btn-glass.danger{color:#ffe5e7;border-color:rgba(255,207,211,.28)}
.btn-ghost-danger{background:#fff6f7!important;color:#b94453!important;border:1px solid #f2d7dc!important}.btn-ghost-danger:hover{background:#ffecef!important}
.cultural-program-list{display:grid;gap:0}.cultural-program-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px 20px;border-top:1px solid var(--line);background:#fff;transition:background .18s ease,transform .18s ease}.cultural-program-item:hover{background:#fcfdff}.cultural-program-item.program-hidden{background:#f8f9fc;opacity:.76}
.cultural-program-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-direction:column}.cultural-program-title-row>div{display:flex;gap:5px;flex-wrap:wrap}.cultural-program-title-row h3{margin:0;font-size:16px}.cultural-program-item-main>p{margin:7px 0;color:var(--muted);font-size:12px;line-height:1.9}
.cultural-program-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.cultural-program-meta span{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:9px;background:#f4f6fa;color:#526077;font-size:10.5px;font-weight:650}
.cultural-registration-window{display:block;margin-top:8px;color:#79859a;font-size:10.5px}.cultural-program-admin-actions{align-self:center;justify-content:flex-end;max-width:310px}
.cultural-empty-category{padding:24px;display:grid;place-items:center;text-align:center;gap:5px;color:var(--muted);background:#fbfcff}.cultural-empty-category strong{color:#34415a}.cultural-empty-category .btn{margin-top:8px}
.family-cultural-section{margin-bottom:18px;border-radius:22px;overflow:hidden;background:#f7f9fc;border:1px solid #e7ebf2}.family-category-head{grid-template-columns:auto 1fr;padding:16px 18px}.family-category-head .cultural-category-symbol{width:46px;height:46px;font-size:22px}.family-category-head .cultural-category-copy h2{font-size:17px}
.family-cultural-section .cultural-family-grid{padding:14px}.cultural-family-card{border:1px solid #e3e8f0!important;box-shadow:0 7px 20px rgba(34,51,82,.045)!important}
.cultural-family-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}.cultural-type-chip{margin-right:auto;padding:4px 8px;border-radius:9px;background:#f2f4f8;color:#657087;font-size:10px;font-weight:800}
.cultural-family-card h3{font-size:16px;margin:5px 0}.cultural-family-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}.cultural-family-facts span{padding:8px 9px;border-radius:11px;background:#f7f8fb;color:#657087;font-size:10.5px;line-height:1.65}.cultural-family-facts b{display:block;color:#34415a;font-size:9.5px;margin-bottom:2px}
.cultural-requirements{margin:9px 0;border:1px dashed #dbe1eb;border-radius:11px;padding:7px 10px;background:#fbfcfe}.cultural-requirements summary{cursor:pointer;font-size:10.5px;font-weight:800;color:#5b6680}.cultural-requirements p{font-size:10.5px!important;margin:7px 0 0!important;line-height:1.8!important}.cultural-family-register{width:100%;justify-content:center;margin-top:6px}
.check-row{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #e0e5ed;border-radius:13px;background:#fafbfe;cursor:pointer}.check-row input{width:17px;height:17px;accent-color:var(--primary);margin-top:2px;flex:0 0 auto}.check-row span{display:block}.check-row b{display:block;font-size:11.5px;color:#34415a}.check-row small{display:block;margin-top:3px;color:var(--muted);font-size:9.8px;line-height:1.7}
.cultural-program-form .form-section-title{margin-top:6px}.cultural-program-form .form-section-title:first-child{margin-top:0}
.cultural-registration-summary{padding:13px 14px;margin-bottom:13px;border-radius:15px;background:linear-gradient(145deg,#f5f2ff,#fafbff);border:1px solid #e6e0fa}.cultural-registration-summary h3{margin:0 0 5px;font-size:15px}.cultural-registration-summary p{margin:0;color:var(--muted);font-size:11px;line-height:1.8}.cultural-registration-summary>div{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.cultural-registration-summary>div span{padding:4px 8px;border-radius:8px;background:#fff;color:#66728a;font-size:9.8px}
.cultural-free-registration,.cultural-paid-external,.cultural-requirement-confirm{padding:11px 13px;border-radius:13px;line-height:1.8}.cultural-free-registration{background:#eef9f3;color:#24734f;border:1px solid #d4eee0;font-weight:800}.cultural-paid-external{display:grid;gap:3px;background:#fff8e7;color:#745b14;border:1px solid #f0e2b6}.cultural-paid-external span{font-size:10.5px}.cultural-requirement-confirm{background:#f7f8fb;border:1px solid #e4e7ed}.cultural-requirement-confirm strong{display:block;font-size:11px}.cultural-requirement-confirm p{margin:4px 0 0;color:var(--muted);font-size:10.5px}
.participant-summary>div{display:grid;gap:3px}.participant-summary>div span{font-size:10px;color:var(--muted)}.cultural-participants-table{margin-top:12px;max-height:55vh;overflow:auto!important}
@media(max-width:900px){.cultural-category-head{grid-template-columns:auto 1fr}.cultural-category-actions{grid-column:1/-1;justify-content:flex-start}.cultural-program-item{grid-template-columns:1fr}.cultural-program-admin-actions{max-width:none;justify-content:flex-start}.cultural-catalog-guide{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.cultural-category-head{padding:15px;gap:11px}.cultural-category-symbol{width:45px;height:45px;border-radius:14px;font-size:22px}.cultural-category-copy h2{font-size:16px}.cultural-category-actions .btn{flex:1;min-width:110px}.cultural-program-item{padding:15px}.cultural-program-admin-actions .btn{flex:1}.cultural-family-facts{grid-template-columns:1fr}.cultural-catalog-guide>span{white-space:normal}.family-cultural-section .cultural-family-grid{padding:10px}.participant-summary{align-items:flex-start;flex-direction:column}}


/* ===== v1.6.0 — identity, messages, today flow, cultural Talash, student council ===== */
.school-login-motto{display:block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:.15px;color:#dccfff}.behnam-message strong{color:#fff;font-weight:900}
.sidebar{isolation:isolate}.sidebar::before{content:"";position:absolute;inset:-30% -80%;z-index:0;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.04) 45%,rgba(164,130,255,.18) 50%,rgba(255,255,255,.05) 55%,transparent 62%);transform:translateX(45%);animation:sidebarLightSweep 9s ease-in-out infinite}.sidebar>*{position:relative;z-index:1}@keyframes sidebarLightSweep{0%,18%{transform:translateX(58%)}55%,72%{transform:translateX(-35%)}100%{transform:translateX(58%)}}
.today-celebration-head{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px;border-radius:20px;background:linear-gradient(135deg,#4e45bd,#7264e9 60%,#8c78f4);color:#fff}.today-celebration-head .eyebrow{background:rgba(255,255,255,.14)}.today-celebration-head h3{margin:4px 0;font-size:20px}.today-celebration-head p{margin:0;color:rgba(255,255,255,.78);font-size:12px;line-height:1.8}.today-orbit-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.15);font-size:25px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.today-progress-ring{--p:0;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at center,#6559d9 58%,transparent 60%),conic-gradient(#b9ffda calc(var(--p)*1%),rgba(255,255,255,.18) 0);box-shadow:0 8px 20px rgba(22,18,92,.22)}.today-progress-ring strong{display:block;font-size:16px}.today-progress-ring small{display:block;font-size:8.5px;color:#e8e5ff}.today-progress-bar{height:6px;border-radius:99px;background:#e9e9f6;margin:12px 1px 18px;overflow:hidden}.today-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d5fe5,#41c982);transition:width .35s ease}.today-check-wrap{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}.today-check-wrap input{position:absolute;opacity:0}.today-check-wrap span{width:32px;height:32px;border-radius:12px;border:2px solid #d8ddea;display:grid;place-items:center;color:transparent;font-weight:900;transition:.2s}.today-check-wrap input:checked+span{background:#44bf7a;border-color:#44bf7a;color:#fff;box-shadow:0 5px 14px rgba(50,177,108,.25);transform:scale(1.05)}.today-item.done{background:#f3fbf6}.today-item.done .today-copy strong{text-decoration:none;color:#5b6878}.today-empty.happy{padding:24px;background:#f7fbf8;border:1px dashed #cfe8d8;border-radius:16px;color:#4d705b}
.student-badge-strip{grid-column:1/-1;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 14px;margin:10px 0 14px;border-radius:15px;background:linear-gradient(135deg,#fff8df,#fffdf5);border:1px solid #f1e5b7}.student-badge-strip>span{font-size:10px;color:#8d7b43;font-weight:800}.student-badge-strip b{font-size:10.5px;padding:5px 9px;border-radius:999px;background:#fff;color:#725f27;border:1px solid #ebddaa}
.message-card.inbox-clickable,.message-card.sent{cursor:pointer}.message-card.unread{border-color:#8d80ef;box-shadow:0 8px 24px rgba(97,81,210,.10)}.message-card.unread::before{content:"";position:absolute;right:0;top:18px;width:4px;height:34px;border-radius:4px 0 0 4px;background:#6858e4}.message-open-hint{margin-top:10px;font-size:10px;font-weight:800;color:#7668d8}.read-receipt{margin-top:10px;padding:7px 10px;border-radius:10px;font-size:10px;font-weight:750}.read-receipt.read{background:#edf8f2;color:#28724f}.read-receipt.pending{background:#f5f6f9;color:#7d8797}.message-dialog{display:grid;gap:14px}.message-dialog-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.message-dialog-body{padding:18px;border-radius:16px;background:#f7f8fb;line-height:2.1;font-size:14px;color:#303b50;min-height:120px}
.confidential-form-card{max-width:840px;margin:0 auto}.confidential-compact-note{display:grid;gap:4px;padding:13px 15px;margin-bottom:16px;border-radius:14px;background:#f5f2ff;border:1px solid #e5defb;color:#5c4d9b}.confidential-compact-note span{font-size:11px;line-height:1.8;color:#756c95}
.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn-ghost-danger{background:#fff4f4!important;color:#b4434c!important;border:1px solid #f0cdd1!important}.btn-ghost-danger:hover{background:#ffe9eb!important}
.modal-card:has(#studentForm),.modal-card:has(#teacherForm),.modal-card:has(#culturalProgramForm),.modal-card:has(#councilElectionForm),.modal-card:has(#culturalBatchPointForm){width:min(940px,96vw)}.form-comfortable{gap:16px 18px}.form-comfortable .form-section-title{padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#f1f4fb,#f8f9fc);border:1px solid #e3e8f1;margin-top:6px}.form-comfortable .form-section-title.account{background:linear-gradient(135deg,#f0f6ff,#f8fbff)}.form-comfortable .form-section-title.family{background:linear-gradient(135deg,#f5f1ff,#fbf9ff)}.form-comfortable .form-group label{font-weight:800;color:#465168}.profile-photo-editor{padding:14px;border:1px solid #e5e8ef;background:#fafbfc;border-radius:16px}.profile-photo-actions{display:grid;gap:5px;align-content:center}.required-mark{color:#bd3f48;font-size:9px}
.cultural-talash-hero{position:relative;overflow:hidden;margin:16px 0;padding:20px;border-radius:22px;background:linear-gradient(135deg,#245e54,#2e7a68 55%,#41917b);color:#fff;box-shadow:0 14px 32px rgba(31,92,77,.16)}.cultural-talash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cultural-talash-head span{font-size:10px;opacity:.75}.cultural-talash-head h2{margin:4px 0;font-size:20px}.cultural-talash-head p{margin:0;color:rgba(255,255,255,.76);font-size:11px}.cultural-student-picker{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;margin:16px 0 12px;padding:12px;border-radius:15px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12)}.cultural-student-picker label{font-size:10px}.cultural-student-picker select{width:100%;margin-top:5px;border:none;border-radius:11px;padding:10px}.cultural-student-picker>div{display:grid;text-align:left}.cultural-student-picker small{color:rgba(255,255,255,.72)}.cultural-point-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cultural-point-preset{border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:11px;background:rgba(255,255,255,.10);color:#fff;text-align:right;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center;transition:.18s}.cultural-point-preset:hover{transform:translateY(-2px);background:rgba(255,255,255,.16)}.cultural-point-preset b{grid-row:1/3;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.13)}.cultural-point-preset span{font-size:10px;font-weight:800}.cultural-point-preset em{font-size:9.5px;font-style:normal;opacity:.72}.cultural-point-preset.negative{background:rgba(105,18,29,.22)}.behavior-repeat-warning{margin:10px 0;padding:9px 12px;border-radius:11px;background:#fff2d8;color:#775a16;border:1px solid #ead6a2;font-size:10.5px;font-weight:750}
.student-council-hero,.council-election-banner{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border-radius:22px;background:linear-gradient(135deg,#3b397d,#5d54b8 55%,#7a6bd3);color:#fff;margin-bottom:16px}.student-council-hero span,.council-election-banner span{font-size:10px;opacity:.72}.student-council-hero h2,.council-election-banner h2{margin:4px 0;font-size:22px}.student-council-hero p,.council-election-banner p{margin:0;color:rgba(255,255,255,.78);font-size:11px;line-height:1.9}.council-phase-badge{padding:10px 13px;border-radius:13px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:850}.council-election-banner select{min-width:210px;padding:10px;border:none;border-radius:12px}.council-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.council-kpis>div{padding:15px;border-radius:16px;background:#fff;border:1px solid #e5e8ef}.council-kpis small{display:block;color:var(--muted);font-size:10px}.council-kpis strong{display:block;margin-top:4px;font-size:20px}.council-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0}.council-candidate-card{display:grid;grid-template-columns:auto 1fr;gap:12px}.council-candidate-avatar{width:64px;height:64px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:#eceafb;font-size:28px}.council-candidate-avatar img{width:100%;height:100%;object-fit:cover}.council-candidate-card h3{margin:5px 0}.council-candidate-card p{font-size:11px;color:var(--muted);line-height:1.8}.campaign-snippet{grid-column:1/-1;margin-top:8px;padding:9px;border-radius:12px;background:#f6f4ff;display:grid;gap:4px}.campaign-snippet span{font-size:10px;color:#6f678c}.campaign-snippet img{width:100%;max-height:220px;object-fit:cover;border-radius:10px;margin-top:6px}.candidate-result{margin-top:8px;font-weight:900;color:#4b4299}.council-vote-counter{padding:12px;border-radius:13px;background:#f4f2ff;margin-bottom:12px}.council-vote-counter span{float:left;color:#574ba7;font-weight:850}.council-vote-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:50vh;overflow:auto}.council-vote-picker label{display:flex;gap:9px;align-items:center;padding:11px;border:1px solid #e3e6ef;border-radius:13px;cursor:pointer}.council-vote-picker label:has(input:checked){border-color:#7566dd;background:#f4f2ff}.council-vote-picker span{display:grid}.council-vote-picker small{color:var(--muted)}.council-vote-privacy{margin:12px 0;padding:10px;border-radius:12px;background:#eef8f3;color:#347158;font-size:10.5px}.council-voted-ok,.council-wait-result,.council-my-status{padding:12px 14px;margin-bottom:14px;border-radius:14px;background:#edf9f2;color:#2f7250;border:1px solid #d2ebdd}.council-wait-result{background:#fff7e7;color:#775c1a;border-color:#eedcaf}.council-result-list{display:grid;gap:6px;margin:12px 0}.council-result-list>div{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:9px 11px;border-radius:11px;background:#f7f8fb}.council-result-list b{width:26px;height:26px;display:grid;place-items:center;border-radius:9px;background:#e8e6fb;color:#544aa1}.council-meetings{margin-top:15px}.council-meeting-row{display:grid;grid-template-columns:180px 1fr auto;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.council-meeting-row:first-of-type{border-top:0}.council-meeting-row div{display:grid}.council-meeting-row small{color:var(--muted)}.council-meeting-row p{margin:0;font-size:11px;line-height:1.8}.council-student-picker{max-height:43vh;overflow:auto}
.cultural-program-admin-actions{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important}.cultural-program-admin-actions .btn{min-height:34px}
@media(max-width:900px){.cultural-point-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.council-candidate-grid{grid-template-columns:1fr 1fr}.council-kpis{grid-template-columns:1fr 1fr}.council-meeting-row{grid-template-columns:1fr}.cultural-student-picker{grid-template-columns:1fr}.student-council-hero,.council-election-banner{align-items:flex-start;flex-direction:column}.council-election-banner select{width:100%}}
@media(max-width:600px){.today-celebration-head{grid-template-columns:auto 1fr}.today-progress-ring{grid-column:1/-1;width:100%;height:auto;border-radius:14px;background:rgba(255,255,255,.13);padding:9px;display:flex;justify-content:center;gap:8px}.cultural-point-preset-grid,.council-candidate-grid,.council-vote-picker,.council-kpis{grid-template-columns:1fr}.cultural-talash-head{flex-direction:column}.modal-card:has(#studentForm),.modal-card:has(#teacherForm),.modal-card:has(#culturalProgramForm){width:96vw}.message-dialog-meta{flex-direction:column}.council-vote-counter span{float:none;display:block;margin-top:4px}}
@media(prefers-reduced-motion:reduce){.sidebar::before{animation:none!important}.today-check-wrap span{transition:none!important}}


/* === v2.0.0 Release visual refinements === */
.sidebar{overflow:hidden!important;isolation:isolate}
.sidebar::before,.sidebar::after{content:"";position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(2px);will-change:transform,opacity}
.sidebar::before{inset:auto;left:auto;bottom:auto;width:190px;height:190px;right:-55px;top:9%;background:radial-gradient(circle,rgba(176,135,255,.27) 0%,rgba(116,87,235,.12) 37%,rgba(116,87,235,0) 72%);animation:sidebarOrbOne 10s ease-in-out infinite}
.sidebar::after{inset:auto;right:auto;top:auto;width:135px;height:135px;left:-42px;bottom:12%;background:radial-gradient(circle,rgba(86,194,255,.20) 0%,rgba(121,111,240,.08) 42%,rgba(121,111,240,0) 73%);animation:sidebarOrbTwo 12s ease-in-out infinite}
.sidebar>*{position:relative;z-index:1}
@keyframes sidebarOrbOne{0%,100%{transform:translate3d(0,0,0) scale(.92);opacity:.55}48%{transform:translate3d(-42px,90px,0) scale(1.16);opacity:1}}
@keyframes sidebarOrbTwo{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.45}52%{transform:translate3d(54px,-86px,0) scale(1.18);opacity:.95}}
.today-celebration-head{isolation:isolate}
.water-particles{position:absolute!important;inset:0!important;z-index:0!important;overflow:hidden!important;pointer-events:none!important;opacity:.5!important}
.water-particles i{position:absolute;left:var(--x,50%);top:var(--y,50%);width:var(--s,12px);height:var(--s,12px);border-radius:50%;border:1.5px solid rgba(255,255,255,.72);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.42),rgba(255,255,255,.05) 55%,transparent 72%);box-shadow:inset 0 0 8px rgba(255,255,255,.2),0 0 10px rgba(180,225,255,.10);animation:waterParticleFloat var(--dur,7s) ease-in-out infinite;animation-delay:var(--delay,0s)}
.today-celebration-head>:not(.water-particles),.student-faith-hero>:not(.water-particles){position:relative;z-index:1}
@keyframes waterParticleFloat{0%,100%{transform:translate3d(0,8px,0) scale(.8);opacity:.22}45%{transform:translate3d(8px,-16px,0) scale(1.12);opacity:.95}72%{transform:translate3d(-6px,-7px,0) scale(.94);opacity:.58}}
.staff-console-hero,.student-faith-hero{position:relative;overflow:hidden;isolation:isolate}
.cleanliness-class-grid,.religious-quiz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.cleanliness-class-card,.religious-quiz-card{min-height:160px}
.staff-student-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:14px 0}
.staff-student-toolbar label{min-width:min(100%,340px);flex:1}
.religious-option-list{display:grid;gap:10px;margin:16px 0}
.religious-option-list label{display:flex;gap:10px;align-items:center;padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer}
.religious-option-list label:has(input:checked){border-color:#7668e9;background:#f5f3ff;box-shadow:0 0 0 3px rgba(118,104,233,.09)}
@media(prefers-reduced-motion:reduce){.sidebar::before,.sidebar::after,.water-particles i{animation:none!important}}

/* =========================================================
   v2.1.0 — Hamyar Moallem + Class Champion
   ========================================================= */
.peer-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.peer-filter-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.peer-filter-card label{display:grid;gap:6px;min-width:220px;font-weight:700}.peer-filter-card select{min-width:180px}.peer-filter-card>span{font-size:12px;color:var(--muted);line-height:1.9}.peer-groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.peer-group-card{display:grid;gap:14px}.peer-group-off{opacity:.68}.peer-group-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.peer-group-head h3{margin:7px 0 3px}.peer-group-head small{color:var(--muted)}.peer-next-date{display:grid;gap:3px;text-align:left;background:var(--blue-soft);padding:10px 12px;border-radius:14px;min-width:165px}.peer-next-date span{font-size:10px;color:var(--muted)}.peer-next-date strong{font-size:12px}.peer-leader{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:13px}.peer-leader span{font-size:11px;color:var(--muted)}.peer-member-chips{display:flex;gap:7px;flex-wrap:wrap}.peer-member-chips span{padding:7px 10px;border:1px solid var(--line);background:var(--surface-soft);border-radius:999px;font-size:11px}.peer-member-chips span.leader{font-weight:800;border-color:#d9c26a;background:#fff9df}.peer-member-chips.large span{padding:9px 12px;font-size:12px}.peer-group-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted)}.peer-report-admin{margin-top:14px}.peer-student-shell{display:grid;gap:14px;margin-bottom:18px}.peer-student-hero{border-radius:24px;padding:22px;display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#172b55,#334d79);color:#fff;box-shadow:var(--shadow)}.peer-student-hero span{font-size:11px;opacity:.75}.peer-student-hero h2{margin:6px 0}.peer-student-hero p{margin:0;opacity:.86}.peer-next-box{min-width:220px;padding:14px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.1);border-radius:17px;display:grid;gap:4px}.peer-next-box small,.peer-next-box span{opacity:.75}.peer-next-box strong{font-size:14px}.peer-leader-action,.peer-confirm-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.peer-leader-action h3,.peer-confirm-card h3{margin:6px 0}.peer-leader-action p,.peer-confirm-card p{margin:0;color:var(--muted);line-height:1.9}.peer-history{display:grid;gap:8px}.peer-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.peer-history-row:last-child{border-bottom:0}.peer-history-row>div{display:grid;gap:3px}.peer-history-row small{color:var(--muted)}.peer-review-note{padding:12px 14px;background:var(--amber-soft);border:1px solid #f1dfb7;border-radius:14px;display:grid;gap:5px}.peer-member-picker{max-height:280px;overflow:auto}.inline-check{display:flex!important;align-items:center;gap:8px!important}.inline-check input{width:auto}.class-champion-hero{border-radius:25px;padding:24px;background:linear-gradient(135deg,#172b55,#3b4f7c);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;box-shadow:var(--shadow)}.class-champion-hero h2{font-size:28px;margin:6px 0}.class-champion-hero p{margin:0;opacity:.82}.champion-podium{display:flex;align-items:flex-end;gap:8px}.champion-podium>div{min-width:82px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);border-radius:16px;padding:10px;display:grid;text-align:center;gap:3px}.champion-podium .p1{padding-top:18px;transform:translateY(-6px)}.champion-podium b{font-size:20px}.champion-podium span{font-size:11px;opacity:.8}.champion-podium strong{font-size:16px}.class-standing-list{display:grid}.class-standing-row{display:grid;grid-template-columns:54px minmax(120px,1fr) minmax(160px,2fr) 65px;gap:12px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--line)}.class-standing-row:last-child{border-bottom:0}.class-standing-row.mine{background:var(--blue-soft);border-radius:13px;padding-inline:10px}.class-standing-row.winner .class-standing-rank{font-size:18px}.class-standing-row>div:nth-child(2){display:grid;gap:2px}.class-standing-row small{color:var(--muted)}.class-standing-track,.competition-score-track{height:7px;background:#edf0f6;border-radius:99px;overflow:hidden}.class-standing-track span,.competition-score-track span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:99px}.class-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.class-breakdown-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.class-breakdown-head span{font-size:10px;color:var(--muted)}.class-breakdown-head h3{margin:4px 0}.class-breakdown-head>strong{font-size:25px}.competition-score-row{display:grid;gap:5px;margin:9px 0}.competition-score-row>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:11px}.competition-score-row>div:first-child span{color:var(--muted)}.student-champion-hero{border-radius:24px;padding:22px;background:linear-gradient(135deg,#172b55,#4b5f91);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.student-champion-hero h2{margin:5px 0;font-size:27px}.student-champion-hero p{margin:0;opacity:.82}.student-champion-score{display:grid;text-align:center;min-width:130px;padding:14px;border:1px solid rgba(255,255,255,.17);border-radius:18px;background:rgba(255,255,255,.1)}.student-champion-score strong{font-size:32px}.student-champion-score small,.student-champion-score span{opacity:.76;font-size:10px}.class-champion-student-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.competition-suggestions{display:grid;gap:10px}.competition-suggestions>div{padding:12px;border:1px solid var(--line);background:var(--surface-soft);border-radius:14px}.competition-suggestions strong{font-size:12px}.competition-suggestions p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.9}.champion-history{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.champion-history-item{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;padding:11px;display:grid;gap:4px}.champion-history-item span,.champion-history-item small{font-size:10px;color:var(--muted)}.wallet-note-box.danger{border-color:#f0b6ba;background:var(--danger-soft)}
@media(max-width:900px){.peer-groups-grid,.class-breakdown-grid,.class-champion-student-grid{grid-template-columns:1fr}.peer-summary-grid{grid-template-columns:1fr 1fr}.class-champion-hero,.student-champion-hero,.peer-student-hero{align-items:flex-start;flex-direction:column}.champion-podium{width:100%;justify-content:center}.champion-history{grid-template-columns:1fr 1fr}.peer-next-box{width:100%}}
@media(max-width:620px){.peer-summary-grid{grid-template-columns:1fr}.peer-filter-card,.peer-group-head,.peer-group-foot,.peer-leader-action,.peer-confirm-card{align-items:stretch;flex-direction:column}.peer-filter-card label{min-width:0}.peer-next-date{min-width:0;text-align:right}.class-standing-row{grid-template-columns:38px 1fr 55px}.class-standing-track{display:none}.champion-history{grid-template-columns:1fr}.peer-history-row{grid-template-columns:1fr auto}.peer-history-row>small{grid-column:1/-1}.champion-podium>div{min-width:70px}.peer-student-hero,.student-champion-hero,.class-champion-hero{padding:18px}}

/* =========================================================
   v2.2.0 — search, council workflow, Jalali dates, notifications
   ========================================================= */
.table-search-toolbar{position:sticky;right:0;left:0;z-index:3;display:flex;align-items:center;gap:9px;min-width:min(100%,620px);padding:11px 13px;border-bottom:1px solid var(--line);background:rgba(250,252,255,.96);backdrop-filter:blur(8px)}
.table-search-toolbar>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:18px;font-weight:800}.table-search-toolbar input{flex:1;min-width:180px;border:1px solid var(--line-strong);background:#fff;border-radius:11px;padding:9px 11px;outline:none}.table-search-toolbar input:focus{border-color:#aeb7f3;box-shadow:0 0 0 3px rgba(90,91,220,.08)}.table-search-toolbar small{color:var(--muted);font-size:10px;white-space:nowrap}
.weekly-overview-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.weekly-overview-table{min-width:1160px!important}.weekly-overview-table th:first-child,.weekly-overview-table td:first-child{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-5px 0 12px rgba(26,46,85,.04)}.weekly-overview-table thead th:first-child{background:#f7f9fc;z-index:4}.weekly-overview-table td{vertical-align:top;min-width:145px;white-space:normal!important}.matrix-schedule-slot{margin-bottom:6px}.matrix-schedule-slot:last-child{margin-bottom:0}.matrix-schedule-slot .schedule-slot{margin:0;min-height:45px;padding:7px 8px;border-radius:10px}.matrix-schedule-slot .schedule-slot strong{font-size:10.5px}.matrix-schedule-slot .schedule-slot small{font-size:9px}.matrix-empty{display:block;color:#b0bac9;text-align:center;padding:13px 0}.all-class-schedule-card{overflow:hidden}
.student-search-select,.counselor-student-search{display:grid;grid-template-columns:minmax(220px,1fr) minmax(250px,1fr);gap:12px;align-items:end}.student-search-select label,.counselor-student-search label{display:grid;gap:6px;font-size:11px;font-weight:750;color:var(--muted)}.student-search-select select,.counselor-student-search select{width:100%}.student-search-select>div{display:grid;align-self:stretch;align-content:center;padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.08)}.student-search-select>div small{opacity:.75}.active-student-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.active-student-summary small{color:var(--muted)}.academic-talash-hero{margin-bottom:14px}
.candidate-idea-block{margin:8px 0;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.candidate-idea-block small{display:block;color:var(--muted);font-size:9.5px;font-weight:800;margin-bottom:3px}.candidate-idea-block p{margin:0!important;line-height:1.85}.candidate-campaign-list{display:grid;gap:9px;margin-top:10px}.my-campaign-status{display:grid;gap:7px;margin-top:12px}.campaign-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}.campaign-status-row>div{display:grid;gap:2px}.campaign-status-row small{color:var(--muted)}.campaign-media-image,.campaign-media-video{display:block;width:100%;max-height:340px;object-fit:contain;border-radius:13px;background:#0f172a;margin-top:9px}.campaign-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.campaign-review-card{border:1px solid var(--line);border-radius:16px;padding:13px;background:var(--surface-soft);display:grid;gap:12px}.campaign-review-card h3{margin:6px 0 2px}.campaign-review-card p{color:var(--muted);font-size:11px;line-height:1.9}.council-campaign-review{margin-top:14px}
.system-notice-button{display:none}.system-notice-button.has-unread{box-shadow:0 0 0 4px rgba(243,167,46,.10)}.system-notice-intro{padding:11px 13px;margin-bottom:11px;border-radius:13px;background:var(--blue-soft);color:#395271;font-size:12px;line-height:1.9}.system-notice-list{display:grid;gap:8px;max-height:min(58vh,520px);overflow:auto;padding-left:3px}.system-notice-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}.system-notice-item.unread{background:#fffcf3;border-color:#eedda9}.system-notice-dot{width:8px;height:8px;border-radius:50%;background:#b8c2d0}.system-notice-item.unread .system-notice-dot{background:var(--amber);box-shadow:0 0 0 4px rgba(243,167,46,.12)}.system-notice-item h4{margin:0 0 3px;font-size:12px}.system-notice-item p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.8}.system-notice-item small{display:block;margin-top:3px;color:#9aa5b6;font-size:9px}.system-notice-actions{display:flex;justify-content:flex-end;margin-top:12px}
.jalali-date-select{direction:rtl}
@media(max-width:760px){.table-search-toolbar{min-width:720px}.weekly-overview-table{min-width:1040px!important}.student-search-select,.counselor-student-search{grid-template-columns:1fr}.campaign-review-grid{grid-template-columns:1fr}.system-notice-item{grid-template-columns:auto 1fr}.system-notice-item .btn{grid-column:2;justify-self:start}.system-notice-list{max-height:55vh}}
