.student-page { max-width: 1160px; }
.student-topbar { margin-bottom: 30px; }
.student-actions { display: flex; align-items: center; gap: 14px; }
.student-user { max-width: 240px; overflow: hidden; color: var(--muted); font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.student-tasks-link, .student-learn-link { color: var(--blue); font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.student-tasks-link:hover, .student-learn-link:hover { color: var(--blue-dark); text-decoration: underline; }
.student-auth { display: grid; place-items: center; min-height: 62vh; }
.student-auth-card, .student-card { background: rgba(255, 254, 250, .9); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow-card); }
.student-auth-card { width: min(100%, 480px); padding: 38px; }
.student-auth-card h1, .student-heading h1, .student-panel h2 { margin: 5px 0 8px; color: var(--ink-strong); font-family: 'Inter', sans-serif; letter-spacing: -.04em; }
.student-auth-card h1 { font-size: clamp(28px, 5vw, 42px); }
.student-auth-card > p, .student-heading p { margin: 0; color: var(--muted); line-height: 1.6; }
.student-eyebrow { color: #be8850; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.student-auth-tabs, .student-tabs { display: flex; gap: 8px; overflow-x: auto; }
.student-auth-tabs { margin-top: 26px; border-bottom: 1px solid var(--line); }
.student-auth-tab, .student-tab { border: 0; background: transparent; color: var(--muted); cursor: pointer; font: 700 12px 'Inter', sans-serif; }
.student-auth-tab { padding: 0 4px 12px; border-bottom: 2px solid transparent; }
.student-auth-tab.is-active { border-color: var(--blue); color: var(--blue-dark); }
.student-form { display: grid; gap: 14px; margin-top: 24px; }
.student-form label { display: grid; gap: 7px; color: var(--ink); font-size: 12px; font-weight: 700; }
.student-form input { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 12px; background: #fffefa; color: var(--ink); font: 500 13px 'Inter', sans-serif; outline: none; }
.student-form input:focus { border-color: #a8b8e7; box-shadow: 0 0 0 3px var(--blue-soft); }
.student-form .primary-button { width: 100%; min-height: 44px; }
.student-error { min-height: 18px; margin: 15px 0 0; color: #b34d4d; font-size: 12px; }
.student-dashboard { padding-bottom: 30px; }
.student-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.student-heading h1 { font-size: clamp(30px, 5vw, 52px); }
.student-stat { display: grid; min-width: 100px; padding: 13px 17px; border-radius: 18px; background: var(--orange-soft); color: #bd7043; text-align: center; }
.student-stat strong { font: 800 25px 'Inter', sans-serif; }
.student-stat span { font-size: 11px; font-weight: 700; }
.student-tabs { gap: 8px; margin-bottom: 26px; }
.student-tab { min-height: 42px; padding: 0 17px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 254, 250, .85); white-space: nowrap; }
.student-tab:hover, .student-tab.is-active { border-color: var(--blue); background: var(--blue-dark); color: white; }
.student-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.student-panel h2 { font-size: 30px; }
.student-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.student-card { padding: 23px; }
.student-card h3 { margin: 0 0 8px; color: var(--ink-strong); font: 800 17px 'Inter', sans-serif; }
.student-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.student-card-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0; }
.student-chip { display: inline-flex; align-items: center; min-height: 27px; padding: 0 10px; border-radius: 999px; background: var(--blue-soft); color: var(--blue-dark); font-size: 10px; font-weight: 800; }
.student-chip.is-complete { background: #e9f4ed; color: var(--green); }
.student-chip.is-overdue { background: #fff0e4; color: #a34d3f; }
.student-card.is-overdue { border-color: #efc4b5; background: #fffaf7; }
.student-card .primary-button, .student-card .secondary-button { min-height: 42px; }
.student-empty { grid-column: 1 / -1; padding: 40px 20px; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); text-align: center; }
.student-quiz { max-width: 840px; margin: 0 auto; }
.student-quiz-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.student-quiz-progress { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.student-question { padding: clamp(22px, 5vw, 42px); }
.student-assignment-meta { display: grid; gap: 5px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.student-assignment-meta strong { color: var(--ink-strong); font: 800 clamp(18px, 3vw, 24px) 'Inter', sans-serif; letter-spacing: -.035em; }
.student-assignment-meta small { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.student-question-code { max-width: 100%; margin: 20px 0 22px; overflow: hidden; border: 1px solid #303d61; border-radius: 14px; background: #1f2a47; box-shadow: 0 8px 20px rgba(31, 42, 71, .14); }
.student-code-label { padding: 8px 14px; background: #283559; color: #aebce0; font: 700 10px 'Inter', sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.student-question-code pre { max-width: 100%; margin: 0; padding: 15px; overflow-x: auto; color: #f1f4ff; font: 500 12px/1.65 var(--mono); tab-size: 2; white-space: pre; }
.student-question h2 { margin: 10px 0 23px; color: var(--ink-strong); font: 800 clamp(22px, 4vw, 34px) 'Inter', sans-serif; line-height: 1.2; }
.student-options { display: grid; gap: 10px; }
.student-option { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); color: var(--ink); cursor: pointer; font: 600 13px 'Inter', sans-serif; text-align: left; }
.student-option:hover, .student-option.is-selected { border-color: #a8b8e7; background: var(--blue-soft); }
.student-option.is-correct { border-color: #8ac3a1; background: #e9f4ed; color: #286447; }
.student-option.is-wrong { border-color: #e3a0a0; background: #fff0e4; color: #9c4141; }
.student-option-key { display: grid; flex: 0 0 25px; place-items: center; height: 25px; border-radius: 8px; background: #f1efe8; color: var(--muted); font-size: 11px; font-weight: 800; }
.student-question-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 23px; }
.student-question-feedback { color: var(--green); font-size: 12px; font-weight: 700; }
.student-question-feedback.is-wrong { color: #b34d4d; }
.hidden { display: none !important; }

@media (max-width: 760px) {
  .student-heading { align-items: flex-start; flex-direction: column; }
  .student-card-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .student-auth-card, .student-card { border-radius: 18px; padding: 20px; }
  .student-topbar { align-items: flex-start; }
  .student-topbar .brand-copy small { display: none; }
  .student-actions { align-items: flex-end; flex-direction: column; gap: 7px; }
  .student-user { max-width: 150px; }
  .student-tasks-link, .student-learn-link { min-height: 44px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 254, 250, .85); }
  .student-form input { font-size: 16px; }
  .student-section-head, .student-question-footer { align-items: flex-start; flex-direction: column; }
  .student-question-footer .primary-button { width: 100%; }
  .student-quiz-top .secondary-button { width: 100%; }
  .student-question h2 { font-size: clamp(22px, 7vw, 29px); overflow-wrap: anywhere; }
}

.student-auth-tab, .student-tab { min-height: 44px; }
.student-form label, .student-card p, .student-help { font-size: 13px; }
.student-error { font-size: 13px; }
.student-option { min-height: 52px; }
.student-option-key { flex-basis: 30px; width: 30px; height: 30px; }
.student-card .primary-button, .student-card .secondary-button { min-height: 44px; }
.student-form button.is-loading, .student-question-footer button.is-loading { cursor: wait; opacity: .7; }

/* ---------- Редизайн: шолу, тапсырма карточкалары, тест ---------- */
.student-heading { margin-bottom: 18px; }
.student-heading h1 { font-size: clamp(26px, 4vw, 38px); }
.student-heading p { font-size: 15px; }
.student-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
.student-stats .student-stat { display: grid; gap: 2px; min-width: 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: var(--shadow-card); text-align: left; }
.student-stats .student-stat strong { font-size: 26px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.student-stats .student-stat span { color: var(--muted); font-size: 13px; font-weight: 600; }
.student-stat.is-orange strong { color: #b8612f; }
.student-stat.is-green strong { color: var(--green); }
.student-stat.is-blue strong { color: var(--blue-dark); }
.student-tab { font-size: 14px; }
.student-panel h2 { font-size: 22px; letter-spacing: -.02em; }
.student-section-done { margin-top: 28px; }
.student-task { display: flex; flex-direction: column; gap: 10px; }
.student-task h3 { margin: 0; font-size: 18px; line-height: 1.3; }
.student-task p { font-size: 14px; }
.student-task .primary-button, .student-task .secondary-button { align-self: flex-start; margin-top: 6px; min-width: 170px; }
.student-task-top { display: flex; flex-wrap: wrap; gap: 6px; }
.student-task.is-done { box-shadow: none; background: rgba(255, 254, 250, .6); }
.student-chip { font-size: 12px; font-weight: 700; }
.student-chip.is-topic { background: #f0eee6; color: var(--ink); }
.student-chip.is-soon { background: #fbf1d9; color: #8a5d0c; }
.student-empty { display: grid; gap: 6px; }
.student-empty strong { color: var(--ink); font-size: 16px; }
.student-empty span { font-size: 14px; line-height: 1.5; }

.student-bar { height: 8px; overflow: hidden; border-radius: 999px; background: #eeece4; }
.student-bar i { display: block; height: 100%; border-radius: inherit; background: var(--blue-dark); transition: width .3s ease; }
.student-bar i.is-good { background: var(--green); }
.student-bar i.is-mid { background: #d9a23a; }
.student-bar i.is-low { background: #b34d4d; }
.student-result { display: grid; gap: 10px; }
.student-result-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.student-result-head h3 { margin: 0; }
.student-result-head b { font-size: 20px; font-variant-numeric: tabular-nums; }
.student-result p { font-size: 13px; }
b.is-good, .student-summary-score.is-good { color: var(--green); }
b.is-mid, .student-summary-score.is-mid { color: #a8761c; }
b.is-low, .student-summary-score.is-low { color: #b34d4d; }

.student-quiz-top { margin-bottom: 10px; }
.student-quiz-progress { font-size: 14px; letter-spacing: 0; }
.student-quiz-bar { margin-bottom: 16px; }
.student-assignment-meta small { font-size: 12px; text-transform: none; }
.student-option { font-size: 15px; }
.student-feedback { margin-top: 16px; padding: 14px 16px; border-radius: 14px; }
.student-feedback strong { font-size: 15px; }
.student-feedback p { margin: 6px 0 0; color: inherit; font-size: 14px; line-height: 1.55; }
.student-feedback.is-right { background: #e9f4ed; color: #286447; }
.student-feedback.is-wrong { background: #fdf0ec; color: #9c4141; }
.student-question-footer { justify-content: flex-end; }
.student-question-hint { margin-right: auto; color: var(--muted); font-size: 14px; }
.student-summary { display: grid; justify-items: center; gap: 10px; padding: 40px 24px; text-align: center; }
.student-summary-score { font-size: 56px; font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.student-summary h2 { margin: 6px 0 0; font-size: 24px; }
.student-summary p { max-width: 420px; font-size: 15px; }
.student-summary-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 10px; }

@media (max-width: 560px) {
  .student-topbar { align-items: center; }
  .student-actions { flex-direction: row; align-items: center; gap: 6px; }
  .student-user, .student-tasks-link { display: none; }
  .student-learn-link { min-height: 40px; padding: 9px 12px; }
  .student-actions .language-switch { min-height: 40px; }
  .student-stats { gap: 8px; }
  .student-stats .student-stat { padding: 12px; }
  .student-stats .student-stat strong { font-size: 22px; }
  .student-stats .student-stat span { font-size: 12px; }
  .student-task .primary-button, .student-task .secondary-button { align-self: stretch; }
  .student-question-footer { align-items: stretch; }
  .student-summary-actions { flex-direction: column-reverse; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .student-bar i { transition: none; } }

.student-dashboard.is-quiz .student-heading, .student-dashboard.is-quiz .student-stats, .student-dashboard.is-quiz .student-tabs { display: none; }
.student-quiz-top .secondary-button { width: auto; }
.student-quiz-top { align-items: center; flex-direction: row; }
.student-quiz-progress { white-space: nowrap; }
.student-error:empty { display: none; }
