@layer student {
/* EduNex module: student ui.
 * Responsibility-based runtime module; changes belong to this module only when they match its ownership contract.
 */


/* Shared title rows: icon belongs beside the title on the RTL side, actions stay opposite. */
.edunex-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;direction:rtl;}
.edunex-section-title{display:flex;align-items:flex-start;gap:9px;min-width:0;}
.edunex-section-title>.ui-icon{width:22px;height:22px;flex:0 0 auto;color:#475569;margin-top:2px;}
.edunex-section-title>div{min-width:0;}.edunex-section-title h1,.edunex-section-title h2,.edunex-section-title h3{margin:0;}.edunex-section-title p{margin:4px 0 0;color:#64748b;line-height:1.8;}
.edunex-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-start;}
.edunex-head-actions .btn{width:auto;min-height:34px;padding:7px 11px;font-size:var(--ed-font-xs);border-radius:9px;white-space:nowrap;}
.edunex-head-actions .btn .ui-icon{width:15px;height:15px;}
/* Direct-icon heading geometry is centralized in platform-ui.css. */

/* Exam page action/header cleanup. */
.exams-page>.edunex-section-head{margin-bottom:10px;}
.exams-page .exam-toolbar{margin-top:0;}

/* Question bank alignment and builder controls. */
.question-bank-page-head{margin-bottom:16px;}
.question-bank-page-head .question-bank-tabs{margin:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.question-bank-page-head .question-bank-tabs a{white-space:nowrap;}
.question-bank-layout{margin-top:16px;}
.question-bank-layout .question-review-head{display:grid;grid-template-columns:32px 32px minmax(0,1fr) auto;align-items:center;}
.question-bank-layout .question-review-head .question-number{align-self:center;display:grid;place-items:center;flex:0 0 auto;}
.question-bank-layout .question-review-head .analysis-button{align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;}
.question-bank-layout .question-review-head .question-select-for-exam{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--ed-border);border-radius:8px;background:#fff;flex:0 0 auto;cursor:pointer;}
.question-bank-layout .question-review-head .question-select-for-exam input{width:15px;height:15px;margin:0;accent-color:#2457e6;}
.question-exam-builder-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--ed-border);border-radius:12px;background:#fff;}
.question-exam-builder-bar>span{font-size:var(--ed-font-xs);color:#64748b;}.question-exam-builder-bar>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.question-exam-builder-bar .btn{width:auto;padding:7px 10px;font-size:var(--ed-font-xs);}

/* Timer visibility and state in both themes. */
.timer-ring{position:relative;border:1px solid #d9e3dc;background:conic-gradient(#bbf7d0 0 88%,#ecfdf5 88%);transition:.2s ease;}
.timer-ring:before{background:#fff;box-shadow:inset 0 0 0 1px #dcfce7;}
.timer-ring b{color:var(--ed-success);font-weight:900;text-shadow:none;}
.timer-ring small{color:#64748b;}
.timer-ring.warning{border-color:#fecaca;background:conic-gradient(#fca5a5 0 88%,#fef2f2 88%);}
.timer-ring.warning:before{box-shadow:inset 0 0 0 1px #fecaca;}
.timer-ring.warning b,.timer-ring b.warning{color:var(--ed-danger);}
html.unified-dark .timer-ring,body.dark-ui .timer-ring{border-color:#166534;background:conic-gradient(#166534 0 88%,#052e16 88%);}
html.unified-dark .timer-ring:before,body.dark-ui .timer-ring:before{background:#0c1220;box-shadow:inset 0 0 0 1px #166534;}
html.unified-dark .timer-ring b,body.dark-ui .timer-ring b{color:#4ade80;}
html.unified-dark .timer-ring small,body.dark-ui .timer-ring small{color:#cbd5e1;}
html.unified-dark .timer-ring.warning,body.dark-ui .timer-ring.warning{border-color:#991b1b;background:conic-gradient(#b91c1c 0 88%,#450a0a 88%);}
html.unified-dark .timer-ring.warning:before,body.dark-ui .timer-ring.warning:before{box-shadow:inset 0 0 0 1px #991b1b;}
html.unified-dark .timer-ring.warning b,body.dark-ui .timer-ring.warning b,html.unified-dark .timer-ring b.warning,body.dark-ui .timer-ring b.warning{color:#f87171;}

/* Subscription catalog: horizontal responsive cards + snap and dots. */
.subscription-carousel{position:relative;overflow:hidden;}
.subscription-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/3);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 1px 10px;scrollbar-width:none;overscroll-behavior-inline:contain;}
.subscription-track::-webkit-scrollbar{display:none;}.subscription-track>.subscription-plan-card{scroll-snap-align:start;min-width:0;height:100%;display:flex;flex-direction:column;}
.subscription-plan-card .subscription-plan-grants{display:flex;flex-wrap:wrap;}
.subscription-plan-card form{margin-top:auto;display:grid;gap:9px;}.subscription-plan-card form label{display:grid;gap:5px;}
.subscription-dots{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:8px;}
.subscription-dots button{width:8px;height:8px;min-width:8px;padding:0;border:0;border-radius:999px;background:#cbd5e1;transition:.2s;}
.subscription-dots button.active{width:22px;background:#2457e6;}

/* Account access cards. */
.account-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.account-access-card{border:1px solid var(--ed-border);border-radius:12px;padding:12px;background:#fff;display:grid;gap:8px;min-width:0;}
.account-access-card .access-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}.account-access-card .access-card-head b{font-size:var(--ed-font-md);}.account-access-card .access-type{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:var(--ed-font-micro);}
.account-access-card .access-resource{font-size:var(--ed-font-xs);color:#475569;word-break:break-word;}.account-access-card .access-dates{display:grid;grid-template-columns:1fr 1fr;gap:7px;}.account-access-card .access-dates span{border-top:1px solid #eef2f7;padding-top:7px;font-size:var(--ed-font-micro);color:#64748b;}.account-access-card .access-dates b{display:block;color:#1f2937;margin-top:3px;font-size:var(--ed-font-micro);}
.account-access-empty{grid-column:1/-1;text-align:center;padding:24px;border:1px dashed var(--ed-border);border-radius:12px;color:#64748b;}

/* Universal access-required modal. */
.access-required-modal .modal-panel{max-width:520px;text-align:center;}.access-required-modal .modal-icon{margin-inline:auto;}.access-required-modal .modal-actions{justify-content:center;}.access-required-modal .modal-actions .btn{min-width:150px;}

/* Dark mode for new blocks. */
body.dark-ui .edunex-section-title>.ui-icon,html.unified-dark .edunex-section-title>.ui-icon{color:#cbd5e1;}
body.dark-ui .edunex-section-title p,html.unified-dark .edunex-section-title p{color:#94a3b8;}
body.dark-ui .question-exam-builder-bar,body.dark-ui .question-bank-layout .question-review-head .question-select-for-exam,body.dark-ui .subscription-plan-card,body.dark-ui .account-access-card,html.unified-dark .question-exam-builder-bar,html.unified-dark .account-access-card{background:#0f172a;border-color:#334155;color:#e5e7eb;}
body.dark-ui .account-access-card .access-resource,body.dark-ui .account-access-card .access-dates span,html.unified-dark .account-access-card .access-resource,html.unified-dark .account-access-card .access-dates span{color:#94a3b8;}
body.dark-ui .account-access-card .access-dates b,html.unified-dark .account-access-card .access-dates b{color:#e5e7eb;}

@media(max-width:1100px){.subscription-track{grid-auto-columns:calc((100% - 12px)/2);}.account-access-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:720px){.edunex-section-head{align-items:flex-start;flex-direction:column;}.edunex-head-actions{width:100%;justify-content:flex-start;}.subscription-track{grid-auto-columns:100%;}.account-access-grid{grid-template-columns:1fr;}.question-exam-builder-bar{align-items:flex-start;flex-direction:column;}.question-bank-layout .question-review-head{grid-template-columns:32px 32px minmax(0,1fr);}.question-bank-layout .question-review-head .analysis-button{grid-column:1/-1;justify-self:start;}.question-bank-layout .question-review-head .question-body{min-width:0;}}


/* Student UI visual integrity rules. */
/* Exam result: flexible question row; question-bank grid rules stay scoped to the bank view. */
.result-question .question-review-head{min-width:0;}
.result-question .question-review-head .q-circle{flex:0 0 29px;}
.result-question .question-review-head .question-body{flex:1 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;white-space:normal;}

.result-question .question-rich-text,.result-question .math-block,.result-question .math-inline{max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;}
.result-question mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden;}

/* Negative-score summary: never keep a white panel with pale text in dark mode. */
body.dark-ui .summary-score,html.unified-dark .summary-score{background:var(--ed-surface);border-color:var(--ed-border);color:var(--ed-text);}
body.dark-ui .summary-score b,html.unified-dark .summary-score b{color:#7dd3fc;}
body.dark-ui .summary-score span,html.unified-dark .summary-score span{color:#cbd5e1;}
body.dark-ui .summary-list>div,html.unified-dark .summary-list>div{border-color:#334155;}

/* Question performance modal: the correct option is a rounded semantic row in both themes. */
.question-stat-modal .option-stat{padding:8px 10px;border:1px solid transparent;border-radius:12px;overflow:hidden;}
.question-stat-modal .option-stat.correct-stat{background:var(--ed-success-surface,#ecfdf3);border-color:var(--ed-success-border,#86efac);color:var(--ed-success-text,#166534);}
.question-stat-modal .correct-answer-banner{border-radius:12px;overflow:hidden;}
body.dark-ui .question-stat-modal .option-stat.correct-stat,html.unified-dark .question-stat-modal .option-stat.correct-stat{background:#123b2b;border-color:#166534;color:#bbf7d0;}
body.dark-ui .question-stat-modal .correct-answer-banner,html.unified-dark .question-stat-modal .correct-answer-banner{background:#123b2b;color:#bbf7d0;border-color:#166534;}
body.dark-ui .question-stat-modal .option-stat.correct-stat span,body.dark-ui .question-stat-modal .option-stat.correct-stat b,html.unified-dark .question-stat-modal .option-stat.correct-stat span,html.unified-dark .question-stat-modal .option-stat.correct-stat b{color:#bbf7d0;}

/* Progress reports: recent report rows remain dark, readable and consistent. */
body.dark-ui .timeline-item,html.unified-dark .timeline-item{background:var(--ed-surface);border-color:var(--ed-border);color:var(--ed-text);}
body.dark-ui .timeline-item b,html.unified-dark .timeline-item b{color:#f8fafc;}
body.dark-ui .timeline-item small,html.unified-dark .timeline-item small{color:#94a3b8;}
body.dark-ui .timeline-item em,html.unified-dark .timeline-item em{color:#93c5fd;}
body.dark-ui .timeline-dot,html.unified-dark .timeline-dot{box-shadow:0 0 0 5px rgba(96,165,250,.13);}
body.dark-ui .percent-chip,html.unified-dark .percent-chip{background:#172554;color:#bfdbfe;}

/* Study calendar day-cell contrast and interaction states. */
body.dark-ui .study-calendar-wrap .jalali-calendar,body.dark-ui .dashboard-calendar-root .jalali-calendar,html.unified-dark .study-calendar-wrap .jalali-calendar,html.unified-dark .dashboard-calendar-root .jalali-calendar{background:var(--ed-surface);border-color:var(--ed-border);color:var(--ed-text);}
body.dark-ui .jalali-calendar-head button,html.unified-dark .jalali-calendar-head button{background:var(--ed-surface-soft);color:var(--ed-text);border:1px solid var(--ed-border);}
body.dark-ui .jalali-calendar-title select,html.unified-dark .jalali-calendar-title select{background:var(--ed-surface-soft);color:var(--ed-text);border:1px solid var(--ed-border);}
body.dark-ui .jalali-week span,html.unified-dark .jalali-week span{color:#94a3b8;}
body.dark-ui .jalali-day,html.unified-dark .jalali-day{background:var(--ed-surface-soft);color:var(--ed-text);border:1px solid var(--ed-border);box-shadow:none;}
body.dark-ui .jalali-day:hover,html.unified-dark .jalali-day:hover{background:var(--ed-dark-hover,#1e293b);border-color:var(--ed-dark-border-strong,#475569);color:var(--ed-text,#fff);}
body.dark-ui .jalali-day.today,html.unified-dark .jalali-day.today{background:var(--ed-info-surface,#172554);color:var(--ed-info-text,#bfdbfe);border-color:var(--ed-info-border,#3b82f6);box-shadow:inset 0 0 0 1px rgba(96,165,250,.28);}
body.dark-ui .jalali-day.other,html.unified-dark .jalali-day.other{background:var(--ed-surface-soft);color:var(--ed-muted);opacity:.72;}
body.dark-ui .jalali-day.holiday,html.unified-dark .jalali-day.holiday{color:#fca5a5;}

/* Academy/product cards in unified dark mode. */
html.unified-dark .unified-platform .up-product-card{background:#111a29;border-color:#283447;color:#eef2f7;}
html.unified-dark .unified-platform .up-product-placeholder{background:linear-gradient(135deg,#0e1726,#172033);color:#8fb1ff;}
html.unified-dark .unified-platform .up-product-body h3,html.unified-dark .unified-platform .up-product-foot>b{color:#f8fafc;}
html.unified-dark .unified-platform .up-product-body p,html.unified-dark .unified-platform .up-product-meta{color:#9aa6b5;}
html.unified-dark .unified-platform .up-product-foot{border-color:#283447;}

/* Education/article cards: the cover/placeholder follows dark mode as well as the body. */
html.unified-dark .education-post-card{background:#111a29;border-color:#273449;color:#e5e7eb;}
html.unified-dark .education-post-cover{background:linear-gradient(135deg,#0e1726,#172033);color:#8fb1ff;}
html.unified-dark .education-post-card h2 a{color:#f8fafc;}
html.unified-dark .education-post-card p{color:#cbd5e1;}
html.unified-dark .education-post-meta,html.unified-dark .education-post-card-foot{color:#94a3b8;}
html.unified-dark .education-post-card-foot{border-color:#273449;}

/* Review subscription cards: call-to-action sits at the bottom, full width. */
.review-subscription-grid{align-items:stretch;}
.review-subscription-card{display:flex;flex-direction:column;min-height:100%;}
.review-subscription-card>.up-kv{margin-bottom:10px;}
.review-subscription-card>.review-subscription-cta{width:100%;margin-top:auto;min-height:42px;}

/* Exam count badge: number and label share one centered row instead of crowding the top. */
.exams-page .exam-cube{width:auto;min-width:64px;height:46px;min-height:46px;padding:0 11px;flex-direction:row;gap:5px;border-radius:13px;line-height:1;}
.exams-page .exam-cube span{font-size:16px;line-height:1;}
.exams-page .exam-cube small{font-size:var(--ed-font-micro);line-height:1;margin:0;}

@media(max-width:720px){
  .result-question .question-review-head{flex-wrap:wrap;}
  .result-question .question-review-head .question-body{flex-basis:calc(100% - 42px);}
  
}


/* Exam-result semantics: number, question and state badge share one center line. */
.result-question .question-review-head{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.result-question .question-review-head .q-circle,

.result-question .question-review-head .question-body{min-width:0;}
.result-state-badge{border:1px solid transparent;white-space:nowrap;}
.result-state-badge.state-correct{background:var(--ed-success-surface,#ecfdf3);border-color:var(--ed-success-border,#86efac);color:var(--ed-success-text,#166534);}
.result-state-badge.state-wrong{background:var(--ed-danger-surface,#fef2f2);border-color:var(--ed-danger-border,#fca5a5);color:var(--ed-danger-text,#b91c1c);}
.result-state-badge.state-blank{background:var(--ed-surface-soft,#f8fafc);border-color:var(--ed-border,#cbd5e1);color:var(--ed-muted,#64748b);}

/* Strong, explicit answer cards in both themes. */
.result-options>div{position:relative;border-width:1px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;}
.result-options .correct-option{
  background:var(--ed-success-surface,#ecfdf3);
  border:2px solid var(--ed-success-border,#22c55e);
  color:var(--ed-success-text,#14532d);
  box-shadow:0 0 0 1px rgba(34,197,94,.08);
}
.result-options .wrong-option{
  background:var(--ed-danger-surface,#fef2f2);
  border:2px solid var(--ed-danger-border,#ef4444);
  color:var(--ed-danger-text,#7f1d1d);
  box-shadow:0 0 0 1px rgba(239,68,68,.08);
}
.result-options .option-result-label{
  margin-inline-start:auto;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:3px 8px;
  border-radius:999px;
  font-size:var(--ed-font-micro);
  font-weight:900;
  white-space:nowrap;
}
.result-options .option-result-label.correct{background:var(--ed-success-surface-strong,#dcfce7);color:var(--ed-success-text,#166534);}
.result-options .option-result-label.wrong{background:var(--ed-danger-surface-strong,#fee2e2);color:var(--ed-danger-text,#991b1b);}

/* Last-question primary action. */
.finish-exam-button{background:#15803d;border-color:#15803d;color:#fff;}

/* Compact subscription catalog. */
.subscription-track>.subscription-plan-card{padding:14px;gap:10px;}
.subscription-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0;}
.subscription-plan-title{display:flex;align-items:flex-start;gap:9px;min-width:0;flex:1;}
.subscription-plan-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;background:#eef4ff;color:#2457e6;}
.subscription-plan-icon .ui-icon{width:20px;height:20px;}
.subscription-plan-title>div{min-width:0;flex:1;}
.subscription-title-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.subscription-title-line h2{font-size:15px;margin:0;}
.subscription-title-line .badge{font-size:var(--ed-font-micro);padding:3px 6px;}
.subscription-plan-title p{margin:4px 0 0;font-size:var(--ed-font-xs);line-height:1.75;color:var(--ed-muted,#64748b);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.subscription-active-badge{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;min-height:27px;padding:4px 8px;border-radius:999px;background:var(--ed-success-surface,#ecfdf3);color:#067647;border:1px solid #abefc6;font-size:var(--ed-font-micro);font-weight:900;white-space:nowrap;}
.subscription-active-badge .ui-icon{width:13px;height:13px;}
.subscription-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.subscription-meta-grid>div{position:relative;display:grid;gap:2px;padding:8px 9px 8px 32px;border:1px solid #e5eaf1;border-radius:10px;background:var(--ed-surface-soft,#f8fafc);min-width:0;}
.subscription-meta-grid>div>span{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--ed-muted,#64748b);}
.subscription-meta-grid .ui-icon{width:16px;height:16px;}
.subscription-meta-grid small{font-size:var(--ed-font-micro);color:var(--ed-muted,#64748b);}
.subscription-meta-grid b{font-size:var(--ed-font-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.subscription-plan-card .subscription-plan-grants{margin:0;gap:5px;min-height:24px;}
.subscription-plan-card .subscription-plan-grants .badge{font-size:var(--ed-font-micro);padding:3px 6px;}
.subscription-buy-form{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;align-items:end;margin-top:auto;}
.subscription-buy-form label{gap:3px;margin:0;}
.subscription-buy-form label>span{font-size:var(--ed-font-micro);color:var(--ed-muted,#64748b);}
.subscription-buy-form select{min-height:38px;padding-block:7px;}
.subscription-buy-form .btn{min-height:38px;padding-block:7px;}
body.dark-ui .subscription-plan-icon,html.unified-dark .subscription-plan-icon{background:#172554;color:#bfdbfe;}
body.dark-ui .subscription-plan-title p,html.unified-dark .subscription-plan-title p{color:#94a3b8;}
body.dark-ui .subscription-active-badge,html.unified-dark .subscription-active-badge{background:#123b2b;border-color:var(--ed-success-text,#166534);color:#bbf7d0;}
body.dark-ui .subscription-meta-grid>div,html.unified-dark .subscription-meta-grid>div{background:#111827;border-color:var(--ed-text,#334155);}
body.dark-ui .subscription-meta-grid small,html.unified-dark .subscription-meta-grid small,
body.dark-ui .subscription-buy-form label>span,html.unified-dark .subscription-buy-form label>span{color:#94a3b8;}
body.dark-ui .subscription-meta-grid>div>span,html.unified-dark .subscription-meta-grid>div>span{color:#93c5fd;}

/* Update history: apply/delete/rollback controls stay in one row with stable spacing. */
.update-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;white-space:nowrap;}
.update-row-actions form{display:inline-flex;margin:0;}
.update-row-actions .up-btn{white-space:nowrap;}

/* Small screens. */
@media(max-width:720px){
  .result-question .question-review-head{grid-template-columns:32px minmax(0,1fr);align-items:start;}
  
  .result-options>div{align-items:flex-start;flex-wrap:wrap;}
  .result-options .option-result-label{margin-inline-start:38px;}
  .subscription-plan-head{display:grid;grid-template-columns:1fr;}
  .subscription-active-badge{justify-self:start;}
  .subscription-meta-grid{grid-template-columns:1fr 1fr;}
  .subscription-buy-form{grid-template-columns:1fr;}
}

/* Result question header: answer state and utility actions share one stable toolbar. */
.question-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;min-width:0;}.question-result-toolbar .question-action-icons{margin:0;display:flex;align-items:center;gap:7px;flex:0 0 auto;}.question-result-toolbar .result-state-badge{margin:0;align-self:center;flex:0 0 auto;}@media(max-width:560px){.question-result-toolbar{gap:8px;}.question-result-toolbar .question-action-icons{gap:5px;}.question-result-toolbar .question-action-icons .icon-btn{width:38px;height:38px;}.question-result-toolbar .result-state-badge{padding:5px 8px;}}
}
