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

:root {
  --color-navy-deep:  #0A1F3D;
  --color-navy:        #0F2C59;
  --color-navy-light:  #1E4785;
  --color-gold:         #C9A227;
  --color-gold-light:   #E4C458;
  --color-bg:           #F4F7FB;
  --color-surface:      #FFFFFF;
  --color-text:         #1C222B;
  --color-text-muted:   #5B6472;
  --color-border:       #DDE4EE;
  --font-display: 'Vazirmatn', sans-serif;
  --font-body: 'Vazirmatn', sans-serif;
  --radius-sm: 6px;
  --radius-md: 12px;
  --shadow-sm: 0 2px 8px rgba(10,31,61,0.06);
  --shadow-md: 0 14px 34px rgba(10,31,61,0.11);
  --container: 1100px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); background:radial-gradient(circle at 100% 0%, rgba(228,196,88,.12), transparent 28rem), var(--color-bg); color: var(--color-text); line-height: 1.8; direction: rtl; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 20px; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 800; color: var(--color-navy-deep); line-height: 1.4; }
.muted { color: var(--color-text-muted); font-size: 14px; }
.tiny-link { font-size: 13px; font-weight: 700; color: var(--color-navy); }

.btn { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 20px; border-radius:10px; font-size:14px; font-weight:700; border:none; cursor:pointer; transition:transform .18s, box-shadow .18s, background .18s; }
.btn:hover { transform:translateY(-1px); box-shadow:0 7px 16px rgba(10,31,61,.12); }
.btn-primary { background:var(--color-navy); color:#fff; }
.btn-primary:hover { background:var(--color-navy-light); }
.btn-gold { background:var(--color-gold); color:var(--color-navy-deep); }
.btn-gold:hover { background:var(--color-gold-light); }
.btn-outline { background:transparent; border:1.5px solid var(--color-navy); color:var(--color-navy); }
.btn-outline:hover { background:var(--color-navy); color:#fff; }
.btn-reject { background:#A3241C; color:#fff; }
.btn-approve { background:#1E7A34; color:#fff; }
.btn-sm { padding:6px 14px; font-size:12.5px; }
.btn-wide { width:100%; }

/* auth */
.auth-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 15% 15%, rgba(228,196,88,.24), transparent 18rem), linear-gradient(135deg,var(--color-navy-deep),var(--color-navy)); padding:20px; }
.auth-card { background:rgba(255,255,255,.98); border:1px solid rgba(255,255,255,.55); border-radius:20px; padding:40px; max-width:430px; width:100%; box-shadow:0 24px 70px rgba(0,0,0,.22); }
.auth-card h1 { text-align:center; font-size:22px; margin-bottom:4px; }
.auth-card .sub { text-align:center; color:var(--color-text-muted); font-size:13px; margin-bottom:24px; }

.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:13.5px; font-weight:600; margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; padding:11px 14px; border:1.5px solid var(--color-border); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:14px; background:var(--color-bg);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:var(--color-navy); background:#fff; }
.inline-check { display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:500; }
.form-error { background:#FDECEC; color:#A3241C; border:1px solid #F5C2BE; padding:10px 14px; border-radius:var(--radius-sm); font-size:13.5px; margin-bottom:16px; }
.form-success { background:#EAF7EE; color:#1E7A34; border:1px solid #BFE6C9; padding:10px 14px; border-radius:var(--radius-sm); font-size:13.5px; margin-bottom:16px; }

/* dashboard layout */
.dashboard { display:grid; grid-template-columns:250px 1fr; min-height:100vh; }
.sidebar { background:var(--color-navy-deep); color:rgba(255,255,255,.85); padding:24px 0; }
.sidebar .brand { display:flex; align-items:center; gap:10px; padding:0 20px 20px; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:16px; }
.brand-logo { width:38px; height:38px; flex:0 0 38px; display:block; object-fit:contain; border-radius:10px; background:#fff; padding:3px; }
.sidebar .brand-text { font-size:13.5px; font-weight:700; color:#fff; }
.sidebar nav a { display:flex; align-items:center; gap:10px; padding:12px 20px; font-size:14px; color:rgba(255,255,255,.75); border-right:3px solid transparent; transition:background .2s; }
.sidebar nav a:hover, .sidebar nav a.active { background:rgba(255,255,255,.06); color:#fff; border-right-color:var(--color-gold); }
.sidebar .logout { margin-top:24px; padding-top:16px; border-top:1px solid rgba(255,255,255,.1); }

.dashboard-main { padding:32px 38px; min-width:0; }
.dashboard-topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; flex-wrap:wrap; gap:12px; }
.dashboard-topbar h1 { font-size:22px; }
.user-chip { font-size:13.5px; color:var(--color-text-muted); }
.today-date { padding:7px 12px; border:1px solid var(--color-border); border-radius:999px; background:var(--color-surface); color:var(--color-navy); font-size:13px; font-weight:700; white-space:nowrap; }

.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:30px; }
.stat-box { background:var(--color-surface); border:1px solid var(--color-border); border-radius:16px; padding:20px; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }
.stat-box::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--color-gold),var(--color-gold-light)); }
.stat-box .num { font-family:var(--font-display); font-size:26px; font-weight:800; color:var(--color-navy); }
.stat-box .label { font-size:13px; color:var(--color-text-muted); margin-top:4px; }

.panel { background:rgba(255,255,255,.96); border:1px solid var(--color-border); border-radius:16px; padding:24px; margin-bottom:24px; box-shadow:var(--shadow-sm); overflow-x:auto; }
.panel-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; flex-wrap:wrap; gap:8px; }
.panel-header h3 { font-size:16px; }
.import-guide ol { margin:0 22px 12px 0; padding:0; }
.import-guide li { margin-bottom:6px; }
.import-upload-form { display:flex; align-items:end; gap:16px; flex-wrap:wrap; }
.import-upload-form .form-group { flex:1 1 320px; margin:0; }

.editor-card { background:var(--color-bg); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:18px; margin:16px 0; }
.editor-card-head h3 { font-size:14.5px; margin-bottom:10px; }
.admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.editor-stack > * + * { margin-top: 0; }
.jalali-picker-input { display:flex; gap:8px; align-items:stretch; }
.jalali-picker-input input { flex:1; min-width:0; }
.jalali-picker-button { white-space:nowrap; padding:8px 13px; }
.jalali-picker { position:relative; }
.jalali-picker-panel { display:none; position:absolute; top:calc(100% + 8px); right:0; z-index:20; width:360px; padding:18px; background:var(--color-surface); border:1px solid var(--color-border); border-radius:16px; box-shadow:0 16px 40px rgba(10,31,61,.18); }
.jalali-picker-panel.open { display:block; }
.jalali-picker-head { display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.jalali-picker-title { display:flex; align-items:center; flex:1; min-width:0; gap:6px; }
.jalali-picker-panel select { width:auto; min-width:0; padding:7px 8px; border:1px solid var(--color-border); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:13px; background:var(--color-bg); color:var(--color-navy-deep); }
.jalali-picker-head select { width:auto; }
.jalali-picker-head select:first-child { flex:1; width:auto; }
.jalali-picker-head select:last-child { width:76px; }
.jalali-picker-nav button { width:36px; height:36px; border:1px solid var(--color-border); background:var(--color-bg); color:transparent; border-radius:50%; cursor:pointer; font-size:0; line-height:1; position:relative; }
.jalali-picker-nav button::before { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--color-navy); font-size:22px; }
.jalali-picker-nav button[data-nav="-1"]::before { content:"‹"; }
.jalali-picker-nav button[data-nav="1"]::before { content:"›"; }
.jalali-picker-nav button:hover, .jalali-picker-today:hover { background:var(--color-navy); color:#fff; border-color:var(--color-navy); }
.jalali-picker-week, .jalali-picker-days { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; text-align:center; }
.jalali-picker-week { color:var(--color-text-muted); font-size:11px; font-weight:700; margin-bottom:7px; }
.jalali-picker-days button { width:34px; height:34px; justify-self:center; border:0; background:transparent; border-radius:50%; cursor:pointer; font-family:var(--font-body); color:var(--color-text); transition:.15s; }
.jalali-picker-days button:hover { background:#EAF1FF; color:var(--color-navy); }
.jalali-picker-days button.selected { background:var(--color-navy); color:#fff; box-shadow:0 4px 10px rgba(15,44,89,.25); }
.jalali-picker-days .empty { visibility:hidden; }
.jalali-picker-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; border-top:1px solid var(--color-border); padding-top:14px; }
.jalali-picker-today { border:1px solid var(--color-navy); background:transparent; color:var(--color-navy); border-radius:var(--radius-sm); cursor:pointer; padding:6px 10px; font-family:var(--font-body); font-size:12px; }
.jalali-picker-time { display:flex; align-items:center; gap:4px; direction:ltr; }
.jalali-picker-time select { padding:6px 5px; border:1px solid var(--color-border); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:13px; background:var(--color-bg); }

table.data-table { width:100%; border-collapse:collapse; font-size:13.5px; }
table.data-table th { text-align:right; padding:10px 12px; background:var(--color-bg); color:var(--color-text-muted); font-weight:600; border-bottom:1px solid var(--color-border); }
table.data-table td { padding:12px; border-bottom:1px solid var(--color-border); }

.status-pill { display:inline-block; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; }
.status-pending { background:#FFF4DE; color:#A66A00; }
.status-approved { background:#E7F7EC; color:#1E7A34; }
.status-rejected { background:#FDECEC; color:#A3241C; }
.status-active { background:#E7F7EC; color:#1E7A34; }
.status-upcoming { background:#EAF1FF; color:#1E4785; }
.status-closed { background:#F1F2F4; color:#5B6472; }

.teacher-quick-links { display:flex; gap:10px; flex-wrap:wrap; }
.teacher-quick-links .btn { white-space:nowrap; }
.logout-form { display:inline-flex; margin:0; }
.logout-form button { font:inherit; }
.sidebar .logout-form { width:100%; }
.sidebar .logout-form button { display:block; width:100%; padding:12px 20px; border:0; background:transparent; color:rgba(255,255,255,.75); text-align:right; cursor:pointer; }
.sidebar .logout-form button:hover { background:rgba(255,255,255,.06); color:#fff; }

/* ==== سامانه فجر: صفحه آزمون ==== */
.fajr-timer { position:sticky; top:10px; z-index:50; display:flex; align-items:center; justify-content:space-between; background:var(--color-navy-deep); color:#fff; border-radius:var(--radius-md); padding:14px 20px; margin-bottom:20px; box-shadow:var(--shadow-md); }
.exam-sync-status { min-height:24px; margin:-10px 2px 12px; color:#267044; font-size:12px; font-weight:600; }
.exam-sync-status.is-offline { color:#9b6500; }
.fajr-timer .label { font-size:13px; color:rgba(255,255,255,.7); }
.fajr-timer .clock { font-family:var(--font-display); font-size:24px; font-weight:800; color:var(--color-gold-light); letter-spacing:1px; }
.fajr-timer.warn .clock { color:#ff8a80; animation:fajr-pulse 1s infinite; }
@keyframes fajr-pulse { 0%,100%{opacity:1;} 50%{opacity:.4;} }
.fajr-progress { font-size:13px; color:var(--color-text-muted); margin-bottom:16px; }

.fajr-question-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:24px; margin-bottom:16px; }
.fajr-question-card .q-number { display:inline-block; background:var(--color-navy); color:#fff; font-size:12.5px; font-weight:700; padding:4px 12px; border-radius:999px; margin-bottom:12px; }
.fajr-question-card .q-text { font-size:16px; font-weight:600; margin-bottom:18px; line-height:1.9; }
.question-image { display:block; max-width:100%; max-height:360px; object-fit:contain; margin:4px auto 18px; border-radius:var(--radius-sm); border:1px solid var(--color-border); }
.question-image-preview { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:10px; }
.question-image-preview img { width:180px; max-height:120px; object-fit:contain; border:1px solid var(--color-border); border-radius:var(--radius-sm); }
.question-filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr auto; gap:12px; align-items:end; margin-bottom:20px; padding:16px; background:var(--color-bg); border:1px solid var(--color-border); border-radius:var(--radius-md); }
.question-filters .form-group { margin-bottom:0; }
.filter-submit { white-space:nowrap; margin-bottom:1px; }
.fajr-options { display:grid; gap:10px; }
.fajr-option { display:flex; align-items:center; gap:12px; padding:14px 16px; border:1.5px solid var(--color-border); border-radius:var(--radius-sm); cursor:pointer; transition:.15s; user-select:none; }
.fajr-option:hover { border-color:var(--color-navy-light); background:var(--color-bg); }
.fajr-option input { accent-color:var(--color-navy); width:18px; height:18px; }
.fajr-option.selected { border-color:var(--color-navy); background:#EAF1FF; }

.fajr-violation-banner { position:fixed; top:20px; left:50%; transform:translateX(-50%); background:#A3241C; color:#fff; padding:14px 26px; border-radius:var(--radius-sm); box-shadow:var(--shadow-md); z-index:999; font-size:14px; font-weight:600; }
.fajr-exam-list-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border:1px solid var(--color-border); border-radius:var(--radius-md); margin-bottom:12px; background:var(--color-surface); flex-wrap:wrap; }
.fajr-exam-list-item .meta { font-size:13px; color:var(--color-text-muted); margin-top:4px; }
.fajr-close-mode-group { display:flex; gap:16px; margin-bottom:12px; font-size:13.5px; }
.fajr-noselect { user-select:none; -webkit-user-select:none; }

@media (max-width: 900px) {
  .dashboard { grid-template-columns:1fr; }
  .sidebar { display:none; }
  .stat-grid { grid-template-columns:1fr 1fr; }
  .admin-form-grid { grid-template-columns:1fr; }
}
@media (max-width: 480px) {
  .jalali-picker-panel { width:min(360px, calc(100vw - 40px)); right:50%; transform:translateX(50%); }
  .jalali-picker-head { gap:6px; }
  .jalali-picker-title { gap:4px; }
  .jalali-picker-head select:last-child { width:68px; }
  .jalali-picker-panel { padding:14px; }
  .jalali-picker-days button { width:30px; height:30px; }
  .jalali-picker-week, .jalali-picker-days { gap:3px; }
}
.auth-logo { display:block; width:92px; height:92px; object-fit:contain; margin:0 auto 18px; border-radius:22px; box-shadow:0 10px 24px rgba(10,31,61,.15); }
@media (prefers-reduced-motion: reduce) { * { transition:none!important; animation:none!important; } }

/* Final visual layer: a calmer, more polished classroom dashboard. */
:root {
  --color-bg: #eef3f8;
  --color-surface: #ffffff;
  --color-text: #172334;
  --color-text-muted: #667386;
  --color-border: #dce5ef;
  --color-navy-deep: #071c36;
  --color-navy: #0d3764;
  --color-navy-light: #185b91;
  --color-gold: #d7a52b;
  --color-gold-light: #f1d174;
  --radius-sm: 10px;
  --radius-md: 18px;
  --shadow-sm: 0 8px 24px rgba(13, 55, 100, .07);
  --shadow-md: 0 20px 55px rgba(7, 28, 54, .14);
}
body {
  background:
    radial-gradient(circle at 4% 0%, rgba(215, 165, 43, .14), transparent 22rem),
    radial-gradient(circle at 96% 16%, rgba(24, 91, 145, .10), transparent 28rem),
    var(--color-bg);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: linear-gradient(rgba(13,55,100,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(13,55,100,.035) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, #000, transparent 78%);
}
body.login-page::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  background:
    url("../loading.svg") center / 120px 120px no-repeat,
    linear-gradient(135deg, #061a32, #0d3764 60%, #185b91);
  animation: fajr-page-loader 3s ease .12s forwards;
}
@keyframes fajr-page-loader {
  0% { opacity: 1; visibility: visible; }
  82% { opacity: 1; visibility: visible; }
  100% { opacity: 0; visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  body.login-page::after { animation-duration: .01s; animation-delay: 0s; }
}
h1, h2, h3, h4 { letter-spacing: -.35px; }
.btn { min-height: 44px; border-radius: 12px; padding: 10px 19px; box-shadow: 0 3px 0 rgba(7,28,54,.06); }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(7,28,54,.15); }
.btn-primary { background: linear-gradient(135deg, var(--color-navy), var(--color-navy-light)); }
.btn-gold { background: linear-gradient(135deg, var(--color-gold), var(--color-gold-light)); }
.btn-reject { background: linear-gradient(135deg, #a3241c, #c34a40); }
.btn-approve { background: linear-gradient(135deg, #1d7c3a, #2e9d52); }
.form-group input, .form-group select, .form-group textarea {
  min-height: 45px;
  border-radius: 12px;
  background: rgba(248, 250, 253, .92);
  transition: border-color .18s, box-shadow .18s, background .18s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-color: var(--color-navy-light);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(24, 91, 145, .11);
}
.auth-wrap {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 18% 16%, rgba(241,209,116,.28), transparent 16rem), linear-gradient(135deg, #061a32 0%, #0d3764 56%, #185b91 100%);
}
.auth-wrap::before, .auth-wrap::after {
  content: "";
  position: absolute;
  width: 28rem;
  height: 28rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 38% 62% 54% 46%;
  transform: rotate(25deg);
}
.auth-wrap::before { left: -12rem; bottom: -15rem; box-shadow: 0 0 0 34px rgba(255,255,255,.035), 0 0 0 68px rgba(255,255,255,.025); }
.auth-wrap::after { right: -14rem; top: -17rem; }
.auth-card { position: relative; z-index: 1; border: 1px solid rgba(255,255,255,.7); border-radius: 26px; padding: 44px 42px; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.auth-card h1 { font-size: 25px; }
.auth-card .sub { margin-bottom: 30px; }
.auth-logo { width: 104px; height: 104px; border-radius: 28px; padding: 7px; box-shadow: 0 14px 28px rgba(7,28,54,.20); }
.dashboard { position: relative; z-index: 1; }
.sidebar { background: linear-gradient(180deg, #061a32 0%, #0b2b51 68%, #0d3764 100%); box-shadow: 8px 0 28px rgba(7,28,54,.10); }
.sidebar .brand { padding: 26px 22px 22px; }
.brand-logo { width: 42px; height: 42px; flex-basis: 42px; border-radius: 13px; padding: 4px; }
.sidebar nav a { margin: 3px 10px; padding: 12px 13px; border-right-width: 0; border-radius: 11px; }
.sidebar nav a:hover, .sidebar nav a.active { background: linear-gradient(90deg, rgba(255,255,255,.13), rgba(255,255,255,.035)); border-right-color: transparent; box-shadow: inset -3px 0 var(--color-gold); }
.dashboard-main { padding: 38px 42px 60px; }
.dashboard-topbar { margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid rgba(183,198,216,.65); }
.dashboard-topbar h1 { font-size: 25px; }
.today-date { padding: 8px 14px; background: rgba(255,255,255,.78); border-color: rgba(183,198,216,.75); box-shadow: var(--shadow-sm); }
.user-chip { background: rgba(255,255,255,.58); border: 1px solid rgba(183,198,216,.55); border-radius: 999px; padding: 7px 12px; }
.stat-grid { gap: 20px; margin-bottom: 28px; }
.stat-box { border: 0; border-radius: 18px; padding: 22px; box-shadow: var(--shadow-sm); background: linear-gradient(145deg, #fff, #f8fbfe); }
.stat-box::before { height: 4px; background: linear-gradient(90deg, var(--color-gold), #f3dc8f); }
.stat-box::after { content: ""; position: absolute; width: 72px; height: 72px; left: -20px; bottom: -32px; border-radius: 50%; background: rgba(24,91,145,.055); }
.stat-box .num { font-size: 30px; }
.panel { border: 0; border-radius: 18px; padding: 26px; margin-bottom: 24px; box-shadow: var(--shadow-sm); background: rgba(255,255,255,.91); }
.panel-header { margin-bottom: 20px; }
.panel-header h3 { font-size: 17px; }
.editor-card, .essay-review { border-radius: 14px; background: linear-gradient(145deg, #f8fbfe, #eef4f9); }
table.data-table { border-collapse: separate; border-spacing: 0 5px; }
table.data-table th { border: 0; background: transparent; padding: 10px 14px; }
table.data-table td { border: 0; background: #fff; padding: 14px; }
table.data-table tr td:first-child { border-radius: 0 10px 10px 0; }
table.data-table tr td:last-child { border-radius: 10px 0 0 10px; }
table.data-table tbody tr:hover td { background: #f3f8fc; }
.fajr-exam-list-item, .fajr-question-card { border: 0; box-shadow: var(--shadow-sm); }
.fajr-exam-list-item { padding: 20px; border-radius: 16px; background: linear-gradient(145deg, #fff, #f8fbfe); }
.fajr-question-card { padding: 28px; border-radius: 18px; }
.fajr-option { border-radius: 12px; background: #fbfdff; }
.fajr-option.selected, .fajr-option:has(input:checked) { background: #edf5fd; box-shadow: 0 6px 15px rgba(13,55,100,.09); }
.fajr-timer { border-radius: 17px; background: linear-gradient(120deg, #061a32, #0d3764 70%, #185b91); }
.jalali-picker-panel { border: 0; box-shadow: 0 24px 55px rgba(7,28,54,.2); }
.form-error, .form-success { border-radius: 12px; padding: 12px 15px; }
.question-thread-list { display:grid; gap:14px; }
.question-thread { padding:18px; border:1px solid var(--color-border); border-right:4px solid var(--color-gold); border-radius:14px; background:linear-gradient(145deg,#fff,#f8fbfe); }
.question-thread.is-answered { border-right-color:#2e9d52; }
.question-thread-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; color:var(--color-navy-deep); font-size:13px; }
.question-thread > p { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.9; margin-bottom:12px; }
.question-answer { margin-top:14px; padding:13px 15px; border-radius:11px; background:#edf8f0; color:#205d31; }
.question-answer strong { display:block; margin-bottom:5px; font-size:13px; }
.question-answer p { white-space:pre-wrap; overflow-wrap:anywhere; }
.question-answer-form { margin-top:14px; padding-top:14px; border-top:1px solid var(--color-border); }
.question-answer-form .form-group { margin-bottom:10px; }
.progress-panel { overflow:hidden; }
.progress-legend { display:inline-flex; align-items:center; gap:7px; color:var(--color-text-muted); font-size:12px; white-space:nowrap; }
.progress-legend i { width:9px; height:9px; display:inline-block; border-radius:50%; background:var(--color-navy-light); box-shadow:0 0 0 4px rgba(30,71,133,.12); }
.subject-progress-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:16px; }
.subject-progress-card { min-width:0; padding:18px; border:1px solid var(--color-border); border-radius:16px; background:linear-gradient(145deg, #fff, #f7fafd); }
.subject-progress-head, .subject-progress-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.subject-progress-head { margin-bottom:10px; }
.subject-progress-head h4 { font-size:15px; margin-bottom:1px; }
.subject-progress-head .muted { font-size:11px; }
.growth { padding:4px 9px; border-radius:999px; font-size:12px; direction:ltr; }
.growth.positive { color:#1e7a34; background:#e7f7ec; }
.growth.negative { color:#a3241c; background:#fdecec; }
.progress-chart-wrap { position:relative; padding:2px 0 0; }
.progress-chart { display:block; width:100%; height:220px; overflow:visible; }
.chart-grid-line { stroke:#dce5ef; stroke-width:.7; stroke-dasharray:2 2; }
.chart-bar { fill:#49a9ad; transition:fill .2s, opacity .2s; }
.chart-bar:hover { fill:var(--color-navy-light); opacity:.9; }
.chart-bar-0 { fill:#277da1; }
.chart-bar-1 { fill:#49a9ad; }
.chart-bar-2 { fill:#70c1b3; }
.chart-bar-3 { fill:#f4a261; }
.chart-bar-4 { fill:#e76f51; }
.chart-bar-5 { fill:#8b75b5; }
.chart-bar-6 { fill:#d4a72c; }
.chart-bar-7 { fill:#3d8b70; }
.chart-labels { display:flex; justify-content:space-between; direction:ltr; color:var(--color-text-muted); font-size:10px; margin-top:-4px; }
.subject-progress-foot { margin-top:12px; padding-top:10px; border-top:1px solid var(--color-border); color:var(--color-text-muted); font-size:11px; }
.form-group input[type="checkbox"], .form-group input[type="radio"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  flex: 0 0 18px;
}
.inline-check { display: inline-flex; align-items: center; gap: 9px; line-height: 1.7; }
.fajr-close-mode-group label { display: inline-flex; align-items: center; gap: 8px; }
.password-field { position: relative; }
.password-field input { padding-left: 48px; }
.password-toggle {
  position: absolute;
  left: 9px;
  top: 50%;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: background .18s, color .18s;
}
.password-toggle:hover { background: #eaf1f8; color: var(--color-navy); }
.password-toggle:focus-visible { outline: 3px solid var(--color-gold-light); outline-offset: 1px; }
.password-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-icon-hide { display: none; }
.password-toggle[aria-pressed="true"] .password-icon-show { display: none; }
.password-toggle[aria-pressed="true"] .password-icon-hide { display: block; }

@media (max-width: 900px) {
  .dashboard-main { padding: 26px 22px 44px; }
  .sidebar { box-shadow: 0 8px 24px rgba(7,28,54,.16); }
}
@media (max-width: 480px) {
  .auth-card { padding: 32px 22px; }
  .dashboard-main { padding: 20px 13px 34px; }
  .dashboard-topbar h1 { font-size: 21px; }
  .panel { padding: 17px 14px; }
  .fajr-question-card { padding: 20px 16px; }
  .fajr-timer { padding: 13px 15px; }
}

/* Responsive refinements for dense management and exam screens. */
::selection { background:var(--color-gold-light); color:var(--color-navy-deep); }
button, input, select, textarea { font:inherit; }
input[type="checkbox"], input[type="radio"] { accent-color:var(--color-navy); }
.btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible { outline:3px solid var(--color-gold-light); outline-offset:2px; }
.stat-box { position:relative; overflow:hidden; box-shadow:var(--shadow-sm); }
.stat-box::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--color-gold),var(--color-gold-light)); }
.panel { box-shadow:var(--shadow-sm); overflow-x:auto; }
.panel-header { min-width:0; }
.dashboard-topbar { padding-bottom:18px; border-bottom:1px solid rgba(221,228,238,.85); }
.dashboard-topbar h1 { letter-spacing:-.3px; }
.quick-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.quick-grid .btn { min-height:70px; text-align:center; padding:18px; }
.essay-answer { width:100%; resize:vertical; }
.essay-save-status { margin-top:6px; font-size:12px; }
.grade-card { border-top:3px solid var(--color-gold); }
.essay-review { background:#F8FAFD; border:1px solid var(--color-border); border-radius:12px; padding:14px; margin-bottom:12px; }
.essay-review p { margin:6px 0; }
.answer-box { white-space:pre-wrap; background:#fff; border:1px solid var(--color-border); border-radius:8px; padding:12px; margin:8px 0; min-height:48px; }
.grade-form { border-top:1px solid var(--color-border); padding-top:16px; margin-top:16px; }
.form-group input:hover, .form-group select:hover, .form-group textarea:hover { border-color:#B8C5D8; }
.fajr-exam-list-item { transition:transform .18s, box-shadow .18s, border-color .18s; }
.fajr-exam-list-item:hover { transform:translateY(-2px); border-color:#C5D2E3; box-shadow:var(--shadow-sm); }
.fajr-question-card { box-shadow:var(--shadow-sm); }
.fajr-option:has(input:checked) { border-color:var(--color-navy); background:#EAF1FF; box-shadow:0 4px 12px rgba(15,44,89,.08); }
.today-date { box-shadow:0 2px 7px rgba(10,31,61,.05); }
.fajr-exam-list-item > div:last-child { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.dashboard-topbar .teacher-quick-links { align-items:center; }
.dashboard-topbar .btn { white-space:nowrap; }
table.data-table tbody tr { transition:background .15s; }
table.data-table tbody tr:hover { background:#F8FAFD; }

@media (max-width: 900px) {
  .dashboard { grid-template-columns:1fr; }
  .sidebar { display:block; position:sticky; top:0; z-index:40; padding:12px 0 0; box-shadow:0 5px 18px rgba(10,31,61,.16); }
  .sidebar .brand { padding:0 16px 10px; margin-bottom:8px; }
  .sidebar nav { display:flex; align-items:stretch; gap:4px; padding:0 10px 10px; overflow-x:auto; scrollbar-width:thin; }
  .sidebar nav a { flex:0 0 auto; border-right:0; border-bottom:3px solid transparent; border-radius:8px; padding:9px 12px; font-size:12px; white-space:nowrap; }
  .sidebar nav a:hover, .sidebar nav a.active { border-right-color:transparent; border-bottom-color:var(--color-gold); }
  .sidebar .logout { margin:0; padding:0; border:0; }
  .dashboard-main { padding:24px 20px 40px; }
  .panel { padding:18px; }
  .quick-grid { grid-template-columns:1fr; gap:10px; }
  .quick-grid .btn { min-height:52px; padding:12px; }
}

@media (max-width: 480px) {
  .container { padding-left:14px; padding-right:14px; }
  .auth-card { padding:28px 20px; border-radius:16px; }
  .dashboard-main { padding:18px 12px 32px; }
  .dashboard-topbar { align-items:stretch; margin-bottom:20px; }
  .dashboard-topbar > div:first-child { width:100%; }
  .dashboard-topbar h1 { font-size:19px; }
  .teacher-quick-links { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .teacher-quick-links .today-date { grid-column:1 / -1; text-align:center; }
  .teacher-quick-links .btn { width:100%; padding-left:10px; padding-right:10px; }
  .teacher-quick-links .logout-form { width:100%; }
  .teacher-quick-links .logout-form .btn { width:100%; }
  .stat-grid { gap:10px; margin-bottom:18px; }
  .stat-box { padding:14px 12px; border-radius:12px; }
  .stat-box .num { font-size:22px; }
  .stat-box .label { font-size:11px; line-height:1.6; }
  .panel { padding:14px; margin-bottom:16px; border-radius:13px; }
  .panel-header h3 { font-size:14px; }
  .dashboard-topbar { padding-bottom:14px; }
  .fajr-exam-list-item { align-items:stretch; padding:13px; }
  .fajr-exam-list-item > div { width:100%; }
  .fajr-exam-list-item > div:last-child { justify-content:stretch; }
  .fajr-exam-list-item > div:last-child .btn, .fajr-exam-list-item > div:last-child form, .fajr-exam-list-item > div:last-child form .btn { flex:1; width:100%; }
  .fajr-timer { top:6px; padding:11px 13px; }
  .fajr-timer .clock { font-size:20px; }
  .fajr-question-card { padding:16px; }
  .fajr-question-card .q-text { font-size:14px; }
  .fajr-option { padding:12px; gap:9px; font-size:13px; }
  .admin-form-grid, .question-filters { gap:10px; }
}

/* Sidebar drawer and lightweight micro-interactions. */
.sidebar-toggle, .sidebar-backdrop { display:none; }
.sidebar nav a { position:relative; overflow:hidden; }
.sidebar nav a::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg, transparent 20%, rgba(255,255,255,.1), transparent 80%);
  transform:translateX(120%);
  transition:transform .45s ease;
  pointer-events:none;
}
.sidebar nav a:hover::after { transform:translateX(-120%); }
.panel, .stat-box, .fajr-exam-list-item, .fajr-question-card {
  animation:fajr-content-in .38s ease both;
}
.stat-grid .stat-box:nth-child(2) { animation-delay:.04s; }
.stat-grid .stat-box:nth-child(3) { animation-delay:.08s; }
.stat-grid .stat-box:nth-child(4) { animation-delay:.12s; }
.form-success, .form-error { animation:fajr-notice-in .3s ease both; }
@keyframes fajr-content-in {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes fajr-notice-in {
  from { opacity:0; transform:translateX(10px); }
  to { opacity:1; transform:translateX(0); }
}
.btn:active, .sidebar-toggle:active { transform:translateY(1px) scale(.98); }

@media (max-width: 900px) {
  body.sidebar-open { overflow:hidden; }
  .sidebar-toggle {
    position:fixed;
    top:14px;
    right:14px;
    z-index:110;
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    background:var(--color-navy-deep);
    color:#fff;
    font-family:var(--font-body);
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(7,28,54,.2);
    transition:transform .2s, background .2s;
  }
  .sidebar-toggle:hover { background:var(--color-navy); }
  .sidebar-toggle-icon { display:grid; gap:4px; width:18px; }
  .sidebar-toggle-icon i { display:block; height:2px; border-radius:2px; background:#fff; transition:transform .2s; }
  .sidebar-toggle[aria-expanded="true"] .sidebar-toggle-icon i:first-child { transform:translateY(6px) rotate(45deg); }
  .sidebar-toggle[aria-expanded="true"] .sidebar-toggle-icon i:nth-child(2) { opacity:0; }
  .sidebar-toggle[aria-expanded="true"] .sidebar-toggle-icon i:last-child { transform:translateY(-6px) rotate(-45deg); }
  .sidebar-backdrop {
    position:fixed;
    inset:0;
    z-index:90;
    display:block;
    background:rgba(3,14,29,.52);
    opacity:0;
    visibility:hidden;
    transition:opacity .25s, visibility .25s;
  }
  .sidebar-backdrop.is-visible { opacity:1; visibility:visible; }
  .dashboard .sidebar {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(82vw, 310px);
    z-index:100;
    overflow-y:auto;
    padding-top:72px;
    transform:translateX(105%);
    transition:transform .3s cubic-bezier(.22,.61,.36,1);
    box-shadow:-18px 0 45px rgba(3,14,29,.2);
  }
  .dashboard .sidebar.is-open { transform:translateX(0); }
  .dashboard .sidebar nav { display:block; padding:0 10px 18px; overflow:visible; }
  .dashboard .sidebar nav a { display:flex; width:100%; margin:4px 0; padding:13px 14px; border:0; border-radius:12px; font-size:13.5px; }
  .dashboard .sidebar nav a:hover, .dashboard .sidebar nav a.active { border:0; box-shadow:inset -3px 0 var(--color-gold); }
  .dashboard .sidebar .logout { margin:14px 10px 0; padding-top:14px; }
  .dashboard .sidebar .logout-form button { border-radius:12px; text-align:right; }
  .dashboard-main { padding-top:76px; }
}

@media (prefers-reduced-motion: reduce) {
  .panel, .stat-box, .fajr-exam-list-item, .fajr-question-card, .form-success, .form-error { animation:none; }
  .sidebar nav a::after { display:none; }
  .sidebar, .sidebar-backdrop, .sidebar-toggle, .sidebar-toggle-icon i { transition:none; }
}

/* Final mobile pass for dashboards, forms, tables and the exam screen. */
@media (max-width: 900px) {
  html, body { overflow-x:hidden; }
  .dashboard-main, .container { width:100%; min-width:0; }
  .dashboard-topbar > * { min-width:0; }
  .dashboard-topbar .teacher-quick-links { width:100%; justify-content:stretch; }
  .dashboard-topbar .teacher-quick-links > * { min-width:0; }
  .question-filters { grid-template-columns:1fr 1fr; }
  .question-filters > * { min-width:0; }
  .question-filters .filter-submit { width:100%; }
  .fajr-timer { gap:12px; }
  .fajr-timer > * { min-width:0; }
  .fajr-timer .label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .fajr-violation-banner { width:calc(100vw - 28px); text-align:center; padding:11px 14px; }
  form[style*="display:flex"] { flex-wrap:wrap; }
  .pdf-toolbar, .results-toolbar { padding:0 14px; flex-wrap:wrap; }
}

@media (max-width: 480px) {
  .question-filters { grid-template-columns:1fr; padding:12px; }
  .question-filters .form-group { width:100%; }
  .jalali-picker-panel { right:50%; max-width:calc(100vw - 24px); }
  .jalali-picker-head { align-items:stretch; flex-wrap:wrap; }
  .jalali-picker-title { order:2; flex-basis:100%; }
  .jalali-picker-nav { display:flex; gap:6px; }
  .jalali-picker-nav button { width:32px; height:32px; }
  .jalali-picker-footer { align-items:stretch; flex-direction:column; }
  .jalali-picker-today { width:100%; min-height:38px; }
  .jalali-picker-time { justify-content:center; }
  .fajr-timer { align-items:flex-start; }
  .fajr-timer .clock { flex:0 0 auto; }
  .fajr-timer .label { white-space:normal; line-height:1.6; }
  .fajr-question-card .q-text { overflow-wrap:anywhere; }
  .fajr-option { align-items:flex-start; }
  .fajr-option span { overflow-wrap:anywhere; }
  .data-table { min-width:620px; }
  .panel:has(.data-table) { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .admin-form-grid, .question-filters { width:100%; }
  .quick-grid .btn { min-height:48px; }
  .form-group input, .form-group select, .form-group textarea { font-size:16px; }
  .pdf-toolbar .btn, .results-toolbar .btn { flex:1; min-width:140px; }
  .progress-chart { height:190px; }
}

/* Mobile dashboard finish: keep controls comfortable without shrinking the desktop layout. */
@media (max-width: 900px) {
  .container { max-width: 100%; }
  .dashboard-main { width: 100%; max-width: 100%; }
  .dashboard-topbar { align-items: stretch; gap: 14px; }
  .dashboard-topbar > div:first-child { width: 100%; }
  .dashboard-topbar .teacher-quick-links { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .dashboard-topbar .teacher-quick-links > * { min-width: 0; width: 100%; }
  .dashboard-topbar .teacher-quick-links .today-date { grid-column: 1 / -1; text-align: center; }
  .dashboard-topbar .teacher-quick-links .logout-form { width: 100%; }
  .dashboard-topbar .teacher-quick-links .btn { width: 100%; min-height: 48px; padding: 10px 8px; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-progress-grid { grid-template-columns: minmax(0, 1fr); }
  .subject-progress-card { width: 100%; }
  .panel { width: 100%; min-width: 0; }
  .panel-header { align-items: flex-start; }
  .panel-header > * { min-width: 0; }
  .data-table { display: table; min-width: 600px; }
  .panel:has(.data-table) { overflow-x: auto; overscroll-behavior-inline: contain; }
  .quick-grid .btn, .import-upload-form .btn { min-height: 48px; }
}

@media (max-width: 480px) {
  .container { padding-left: 12px; padding-right: 12px; }
  .dashboard-main { padding-left: 10px; padding-right: 10px; }
  .dashboard-topbar h1 { font-size: 20px; line-height: 1.55; }
  .dashboard-topbar .user-chip { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dashboard-topbar .teacher-quick-links { grid-template-columns: minmax(0, 1fr); }
  .dashboard-topbar .teacher-quick-links .today-date,
  .dashboard-topbar .teacher-quick-links .btn,
  .dashboard-topbar .teacher-quick-links .logout-form { grid-column: auto; }
  .stat-grid { gap: 8px; }
  .stat-box { min-width: 0; padding: 13px 10px; }
  .stat-box .num { font-size: 21px; }
  .stat-box .label { overflow-wrap: anywhere; }
  .panel { padding: 13px 11px; }
  .panel-header { gap: 10px; }
  .panel-header .btn { flex: 0 0 auto; }
  .subject-progress-card { padding: 13px 11px; }
  .subject-progress-head, .subject-progress-foot { gap: 6px; }
  .subject-progress-foot { flex-wrap: wrap; }
  .progress-chart { height: 215px; }
  .fajr-timer { position: static; }
  .fajr-timer .label { max-width: 68vw; }
  .fajr-question-card { margin-bottom: 12px; }
  .fajr-option { min-height: 48px; }
  .data-table { min-width: 560px; font-size: 12.5px; }
  .data-table th, .data-table td { padding: 10px 9px; }
  .admin-form-grid { grid-template-columns: minmax(0, 1fr); }
  .admin-form-grid > [style*="grid-column"] { grid-column: auto !important; }
  .question-filters { grid-template-columns: minmax(0, 1fr); }
}

/* Signature visual polish: a focused, calm interface for daily school work. */
:root {
  --color-ink: #132238;
  --color-blue-soft: #eaf2f9;
  --color-gold-soft: #fff7df;
  --shadow-card: 0 12px 30px rgba(7, 28, 54, .075);
  --shadow-hover: 0 18px 38px rgba(7, 28, 54, .13);
}
body {
  color: var(--color-ink);
  background:
    radial-gradient(ellipse at 0% 0%, rgba(241, 209, 116, .19) 0, transparent 27rem),
    radial-gradient(ellipse at 100% 8%, rgba(24, 91, 145, .13) 0, transparent 30rem),
    #eef3f8;
}
body::before { opacity: .14; background-size: 36px 36px; }
h1, h2, h3, h4 { color: var(--color-ink); }
.container { position: relative; }
.container > .dashboard-topbar { position: relative; }
.container > .dashboard-topbar::after,
.dashboard-main > .dashboard-topbar::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  width: 76px;
  height: 3px;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
}
.dashboard-topbar h1 { color: var(--color-navy-deep); font-weight: 800; }
.dashboard-topbar p.muted { margin-top: 3px; }
.today-date { background: rgba(255,255,255,.82); backdrop-filter: blur(8px); }
.user-chip { background: rgba(255,255,255,.66); backdrop-filter: blur(8px); }
.stat-grid { align-items: stretch; }
.stat-box {
  border: 1px solid rgba(210, 222, 235, .72);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,250,253,.94));
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.stat-box:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: #c7d7e7; }
.stat-box::before { height: 4px; }
.stat-grid .stat-box:nth-child(2)::before { background: linear-gradient(90deg, #3c91b8, #83c8d6); }
.stat-grid .stat-box:nth-child(3)::before { background: linear-gradient(90deg, #5b78af, #91a9d3); }
.stat-grid .stat-box:nth-child(4)::before { background: linear-gradient(90deg, #4a9b71, #95d1a9); }
.stat-box .num { color: var(--color-navy-deep); letter-spacing: -.8px; }
.panel {
  border: 1px solid rgba(214, 225, 236, .82);
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(7px);
}
.panel:hover { border-color: #cddce9; }
.panel-header { position: relative; }
.panel-header h3 { display: inline-flex; align-items: center; gap: 9px; }
.panel-header h3::before {
  content: "";
  width: 7px;
  height: 22px;
  flex: 0 0 7px;
  border-radius: 5px;
  background: linear-gradient(180deg, var(--color-gold-light), var(--color-gold));
}
.quick-grid .btn { border-color: #d3dfeb; background: linear-gradient(145deg, #fff, #f4f8fb); }
.quick-grid .btn:hover { border-color: var(--color-navy-light); background: var(--color-blue-soft); }
table.data-table { border-spacing: 0 7px; }
table.data-table th { color: #718096; font-size: 12px; letter-spacing: .1px; }
table.data-table td { border-top: 1px solid #edf2f6; border-bottom: 1px solid #edf2f6; }
table.data-table tr td:first-child { border-right: 1px solid #edf2f6; }
table.data-table tr td:last-child { border-left: 1px solid #edf2f6; }
table.data-table tbody tr:hover td { background: #f3f8fc; }
.fajr-exam-list-item {
  border: 1px solid #dfe8f0;
  box-shadow: 0 8px 22px rgba(7,28,54,.055);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.fajr-exam-list-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); border-color: #bed1e2; }
.subject-progress-card { box-shadow: 0 7px 20px rgba(7,28,54,.045); transition: transform .2s ease, box-shadow .2s ease; }
.subject-progress-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.fajr-question-card { box-shadow: 0 8px 24px rgba(7,28,54,.07); }
.fajr-option { background: rgba(255,255,255,.8); }
.fajr-option:hover { transform: translateX(-2px); }
.btn { letter-spacing: -.1px; }
.btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible { box-shadow: 0 0 0 4px rgba(241, 209, 116, .34); }
.form-error, .form-success { box-shadow: 0 7px 18px rgba(7,28,54,.045); }
.editor-card { background: linear-gradient(145deg, #f8fbfe, #eef4f9); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.sidebar .brand-text { letter-spacing: -.2px; }
.sidebar nav a { transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sidebar nav a:hover { transform: translateX(-3px); }

@media (max-width: 700px) {
  .container > .dashboard-topbar::after,
  .dashboard-main > .dashboard-topbar::after { width: 54px; }
  .stat-box:hover, .subject-progress-card:hover, .fajr-exam-list-item:hover { transform: none; box-shadow: var(--shadow-card); }
  .panel { backdrop-filter: none; }
  .panel-header h3::before { height: 18px; width: 6px; flex-basis: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .stat-box, .fajr-exam-list-item, .subject-progress-card, .fajr-option, .sidebar nav a { transition: none; }
}
