/* Шалгалтын модулийн (Assessments-ээс шилжүүлсэн) загвар. app.css-ийн :root хувьсагчийг ашиглана. */

/* ---------- ерөнхий ---------- */
.exam-page{max-width:1080px;margin:0 auto}
.exam-admin [hidden],.exam-take [hidden],.exam-page [hidden]{display:none!important}
.exam-admin .admin-table td:first-child,.exam-admin .admin-table th:first-child,.exam-page .admin-table td:first-child,.exam-page .admin-table th:first-child{width:auto;min-width:0;text-align:left}
.exam-table td{vertical-align:top}
.exam-table td small{display:block;margin-top:4px;color:var(--muted);font:500 12px var(--font-body)}
.exam-lead{margin:0 0 16px;color:#3d4b60;line-height:1.6}
.exam-center{text-align:center}
.exam-panel{margin-bottom:16px}
.exam-panel-body{padding:16px;line-height:1.6;color:#334155}
.exam-panel-body>p:first-child{margin-top:0}
.exam-error-list{margin:0;padding-left:18px}
.exam-alert{margin:0 0 14px;padding:12px 14px;border-left:3px solid #64748b;background:#f1f5f9;color:#334155;font-size:14px;line-height:1.55;border-radius:2px}
.exam-alert.ok{border-color:#10b981;background:#ecfdf5;color:#065f46}
.exam-alert.warn{border-color:#f59e0b;background:#fff8e8;color:#7a4a00}
.exam-wide-button{width:100%;min-height:52px;font-size:16px}
.exam-small-button{min-height:36px!important;padding:0 12px;font-size:13px}
.exam-danger-button{border:1px solid #d9a39b!important;background:#fff!important;color:#a5372a!important}
.exam-danger-button:hover{background:#fff1ee!important}
.exam-danger-link{color:#a5372a!important}
.exam-ok-text{color:#168057;font-weight:700}
.exam-dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0;padding:16px;font-size:14px}
.exam-dl dt{color:var(--muted);font-weight:600}
.exam-dl dd{margin:0;color:#1e293b}
.exam-instructions{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.exam-instructions small{color:var(--muted);font-weight:700}

/* ---------- тэмдэг ---------- */
.exam-badge{display:inline-block;padding:4px 8px;border:1px solid #d9e1eb;border-radius:2px;background:#f8fafc;color:#475569;font:700 11px var(--font-head);white-space:nowrap;vertical-align:middle}
.exam-badge-active,.exam-badge-passed{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.exam-badge-failed{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.exam-badge-draft{background:#fff8e8;border-color:#f1d9a6;color:#8a5a00}
.exam-badge-running{background:#fff8e8;border-color:#f7dfa7;color:#8b5a02}
.exam-badge-inactive{background:#eef1f6;border-color:#cfd6e1;color:#3d4b60}
.exam-badge-archived{background:#f1f5f9;border-color:#cbd5e1;color:#475569}
.exam-badge-override{background:#fff3c4;border-color:#f3cf6a;color:#7a5200}
h1 .exam-badge{font-size:12px;margin-left:6px}

/* ---------- суралцагч: нүүр ---------- */
.exam-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}
.exam-facts>div{padding:12px;border:1px solid #e3e8ef;border-radius:6px;background:#fff;text-align:center}
.exam-facts small{display:block;color:var(--muted);font-size:12px;font-weight:600}
.exam-facts strong{display:block;margin-top:4px;color:var(--ink);font:700 20px var(--font-head)}
.exam-start-panel .exam-panel-body form{margin:0 0 10px}
.exam-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:18px}
.exam-card{padding:16px}
.exam-card small{color:var(--muted);font-weight:600}
.exam-card h2{margin:6px 0;font:700 17px var(--font-head);color:var(--ink)}
.exam-message .exam-panel-body{padding:34px 20px}
.exam-message h1{margin:6px 0 10px;font:700 22px var(--font-head);color:var(--ink)}
.exam-message-icon{font-size:42px;color:#b45309}
.exam-message-links{justify-content:center;margin-top:10px}

/* ---------- суралцагч: шалгалт өгөх ---------- */
.exam-take{max-width:860px;margin:0 auto}
.exam-topbar{position:sticky;top:0;z-index:20;margin:0 0 14px;padding:10px 12px;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 4px 14px #0f172a0d}
.exam-topbar-row{display:flex;align-items:center;gap:12px}
.exam-topbar-title{flex:1;min-width:0}
.exam-topbar-title strong,.exam-topbar-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exam-topbar-title strong{color:var(--ink);font:700 15px var(--font-head)}
.exam-topbar-title small{margin-top:2px;color:var(--muted);font-size:12px}
.exam-timer{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--navy);color:#fff;font:700 18px var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.exam-timer .material-symbols-outlined{font-size:18px}
.exam-timer.warn{background:#b45309}
.exam-timer.danger{background:#ad4638;animation:exam-pulse 1.2s infinite}
@keyframes exam-pulse{50%{opacity:.6}}
.exam-qnav{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:116px;overflow-y:auto}
.exam-qnav-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#475569;font:700 14px var(--font-body);cursor:pointer}
.exam-qnav-btn.answered{background:#e7f7ef;border-color:#9fdcbf;color:#0f5132}
.exam-qnav-btn.current{outline:3px solid var(--amber);outline-offset:1px;border-color:#b45309}
.exam-progress-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;color:var(--muted);font-size:13px}
.exam-save-status{min-height:18px;font-size:13px}
.exam-save-status.saving{color:#8b5a02}
.exam-save-status.saved{color:#168057}
.exam-save-status.error{color:#ad4638}
.exam-question{padding:18px;margin-bottom:14px;background:#fff;border:1px solid #e3e8ef;border-radius:8px}
.exam-question-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.exam-question-head>.exam-chip:last-child{margin-left:auto}
.exam-chip{display:inline-block;padding:4px 10px;border-radius:999px;background:#eef1f6;color:var(--navy-2);font:700 12px var(--font-head)}
.exam-chip.muted{background:#f1f5f9;color:#475569}
.exam-chip.ok{background:#e7f7ef;color:#0f5132}
.exam-chip.bad{background:#fdecea;color:#9b2c1f}
.exam-chip.info{background:#fff3d6;color:#7a4c00}
.exam-question-text{margin:0 0 12px;color:var(--ink);font-size:17px;line-height:1.55;overflow-wrap:anywhere}
.exam-question-image{display:block;max-width:100%;max-height:420px;height:auto;margin:0 0 14px;border:1px solid #e2e8f0;border-radius:6px;background:#fff}
.exam-hint{margin:0 0 8px;color:var(--muted);font-size:13px}
.exam-option{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;padding:12px 14px;border:1px solid #d9e1eb;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .12s,background-color .12s}
.exam-option:hover{border-color:#94a3b8}
.exam-option input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:#b45309}
.exam-option.selected{border-color:#b45309;background:#fffaf0}
.exam-option-text{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.5}
.exam-option-image{display:block;max-width:100%;max-height:220px;height:auto;margin-top:6px;border:1px solid #e9eef4;border-radius:5px;background:#fff}
.exam-match-legend{margin:0 0 10px;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:8px;background:#fff}
.exam-match-legend>div{display:flex;gap:8px;align-items:baseline;padding:2px 0}
.exam-match-letter{flex:none;min-width:22px;color:#b45309;font-weight:800}
.exam-match-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;border:1px solid #d9e1eb;border-radius:8px;background:#fff}
.exam-match-left{flex:1 1 45%;min-width:8rem;font-weight:600;overflow-wrap:anywhere}
.exam-match-right{flex:1 1 45%;min-width:10rem}
.exam-match-right select{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--input-border);border-radius:4px;background:#fff;font:15px var(--font-body);color:var(--ink)}
.exam-actionbar{position:sticky;bottom:0;z-index:20;display:flex;gap:10px;padding:10px 12px;margin-top:6px;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 -4px 14px #0f172a0d}
.exam-actionbar .academy-button{flex:1;min-height:48px}
.exam-actionbar .academy-button:disabled{opacity:.45;cursor:default}

/* ---------- dialog ---------- */
.exam-dialog{width:min(460px,calc(100vw - 32px));padding:22px;border:0;border-radius:10px;box-shadow:0 20px 60px #0f172a40;color:var(--ink)}
.exam-dialog::backdrop{background:#0f172a99}
.exam-dialog h2{margin:0 0 10px;font:700 19px var(--font-head)}
.exam-dialog-note{color:var(--muted);font-size:14px}
.exam-dialog-note.warn{color:#9b2c1f;font-weight:600}
.exam-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px}
.exam-dialog-actions form{margin:0}
.exam-zoom-dialog{width:min(1100px,calc(100vw - 24px));padding:10px}
.exam-zoom-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;color:var(--muted);font-size:13px}
.exam-zoom-close{width:40px;height:40px;border:0;background:none;font-size:26px;cursor:pointer}
.exam-zoom-image{display:block;max-width:100%;max-height:82vh;height:auto;margin:0 auto}

/* ---------- томьёо, зураг ---------- */
.rich-text{white-space:pre-line}
.rich-text .katex-display{overflow-x:auto;overflow-y:hidden;margin:.5em 0;padding:.15em 0}
.rich-text .katex{font-size:1.08em}
[data-zoom]{cursor:zoom-in}

/* ---------- үр дүн ---------- */
.exam-result-banner{display:grid;justify-items:center;gap:4px;margin:0 0 16px;padding:24px 16px;border-radius:10px;color:#fff;text-align:center}
.exam-result-banner.passed{background:linear-gradient(135deg,#0f7a55,#168057)}
.exam-result-banner.failed{background:linear-gradient(135deg,#9b2c1f,#ad4638)}
.exam-result-banner small{opacity:.85;font-weight:600}
.exam-result-banner strong{font:800 28px var(--font-head);letter-spacing:.04em}
.exam-result-score{font:800 36px var(--font-head);line-height:1.1}
.exam-survey-callout{border-color:#f3cf6a;background:#fffaf0}
.exam-survey-callout h2{display:flex;align-items:center;gap:8px;margin:0 0 6px;font:700 17px var(--font-head);color:var(--ink)}
.exam-review{margin-top:22px}
.exam-review>h2{margin:0 0 10px;font:700 18px var(--font-head);color:var(--ink)}
.exam-review-item{margin-bottom:12px;padding:14px 16px;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:8px;background:#fff}
.exam-review-item.right{border-left-color:#168057}
.exam-review-item.wrong{border-left-color:#ad4638}
.exam-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.exam-review-box{padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}
.exam-review-box.expected{background:#f0fdf6;border-color:#bfe9d3}
.exam-review-box small{display:block;margin-bottom:4px;color:var(--muted);font-weight:700}
.exam-review-box ul{margin:0;padding-left:18px}
.exam-review-image{display:block;max-width:100%;max-height:260px;margin:0 0 10px;border:1px solid #e2e8f0;border-radius:6px}
.exam-review-thumb{display:inline-block;max-height:70px;max-width:140px;border:1px solid #e2e8f0;border-radius:4px;vertical-align:middle}
.exam-footer-links{margin-top:16px}

/* ---------- админ ---------- */
.exam-status-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 0}
.exam-status-tabs a{min-height:36px;display:inline-flex;align-items:center;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;font-weight:600;font-size:13px}
.exam-status-tabs a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.exam-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:16px 0;padding:14px;background:#fff;border:1px solid #e5eaf1;border-radius:6px}
.exam-filter label{display:grid;gap:6px;color:#526179;font-size:12px;font-weight:700}
.exam-filter input,.exam-filter select{min-height:40px;min-width:150px;max-width:260px;padding:7px 9px;border:1px solid var(--input-border);border-radius:3px;background:#fff;color:#293850;font:14px var(--font-body)}
.exam-filter .academy-button{min-height:40px}
.exam-view-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}
.exam-view-main,.exam-view-side{min-width:0}
.exam-row-selected td{background:#fffbeb}
.exam-row-muted td{opacity:.6}
.exam-cell-text{max-width:520px;overflow-wrap:anywhere}
.exam-cell-text small{display:block;margin-top:4px}
.exam-inline-icon{font-size:17px;vertical-align:middle;margin-right:4px;color:var(--muted)}
.exam-qr{display:block;width:200px;height:200px;margin:0 auto 12px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;image-rendering:pixelated}
.exam-share .exam-qr{width:240px;height:240px}
.exam-link-box{display:block;margin:0 0 10px;padding:8px 10px;border-radius:4px;background:#f1f5f9;color:#334155;font:12px var(--font-mono);word-break:break-all;text-align:left}
.exam-center-actions{justify-content:center}
.exam-link-list{display:grid;gap:10px}
.exam-link-list .table-link{display:flex;align-items:center;gap:8px}
.exam-link-list .material-symbols-outlined{font-size:19px}
.exam-actions-stack{display:grid;gap:8px}
.exam-actions-stack form{margin:0}
.exam-actions-stack .academy-button{width:100%;min-height:40px}
.exam-inline-create{display:flex;gap:8px;align-items:center}
.exam-inline-create input{min-height:36px;padding:6px 9px;border:1px solid var(--input-border);border-radius:3px;font:14px var(--font-body)}
.exam-order-list{margin:0;padding:8px 16px 8px 36px}
.exam-order-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f4}
.exam-order-list li.inactive{opacity:.6}
.exam-order-list button:disabled{opacity:.35;cursor:default}
.exam-assign-form{display:grid;gap:8px;padding:14px 16px;max-height:640px;overflow-y:auto}
.exam-assign-item{align-items:flex-start!important;padding:8px 10px;border:1px solid #e5eaf1;border-radius:6px;background:#fff}
.exam-assign-item.inactive{opacity:.6}
.exam-assign-item span{min-width:0;overflow-wrap:anywhere}
.exam-assign-item small{display:block}
.exam-assign-form .academy-button{position:sticky;bottom:0}
.exam-result-card.passed{border-color:#a7f3d0}
.exam-result-card.failed{border-color:#fecaca}
.exam-result-card .exam-panel-body{display:grid;gap:6px;justify-items:center}
.exam-override-note{color:#7a5200;font-size:13px;font-weight:600}
.exam-override-box{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}
.exam-override-box p{margin:6px 0}
.exam-override-form{max-width:none;border:0;padding:16px}
.exam-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:18px}
.exam-kpi{padding:12px 14px}
.exam-kpi strong{font-size:24px}
.exam-pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0}
.exam-pager a,.exam-pager span{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);text-decoration:none;font-weight:600;font-size:13px}
.exam-pager span[aria-current]{background:var(--navy);border-color:var(--navy);color:#fff}
.exam-pager small{margin-left:auto;color:var(--muted)}

/* ---------- маягт ---------- */
.exam-form{max-width:980px}
.exam-form label>small,.exam-qform label>small{font-weight:500}
.admin-form-row.exam-form-row4{grid-template-columns:repeat(4,1fr)}
.admin-form-row.exam-form-row2{grid-template-columns:repeat(2,1fr)}
.exam-switches{display:grid;gap:8px}
.exam-switches small{font-weight:500}
.exam-admin .admin-form input[type=checkbox],.exam-admin .admin-form input[type=radio]{width:18px;height:18px;padding:0;flex:none;accent-color:#b45309}
.exam-align-end{align-self:end;min-height:44px}
.exam-admin .admin-form-row>label.checkbox-label{display:flex;align-items:center;gap:8px}
.exam-qform{max-width:1000px}
.exam-type-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;border:0}
.exam-type-picker legend{margin-bottom:8px;color:#3d4b60;font-size:13px;font-weight:700}
.exam-type-picker>small{grid-column:1/-1}
.exam-type-card{position:relative;display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #d9e1eb;border-radius:6px;background:#fff;cursor:pointer}
.exam-type-card:has(input:checked){border-color:#b45309;background:#fffaf0;box-shadow:0 0 0 2px #f59e0b33}
.exam-type-card strong,.exam-type-card small{display:block}
.exam-type-card small{margin-top:2px;color:var(--muted);font-weight:500}
.exam-math-toolbar{position:sticky;top:0;z-index:15;padding:8px;border:1px solid #dfe5ed;border-radius:6px;background:#f8fafc;box-shadow:0 2px 6px #0f172a0a}
.exam-math-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.exam-math-btn{min-width:34px;min-height:32px;padding:2px 8px;border:1px solid #d5dde8;border-radius:4px;background:#fff;color:var(--ink);font:14px var(--font-body);line-height:1.2;cursor:pointer}
.exam-math-btn:hover{border-color:#94a3b8;background:#fffaf0}
.exam-math-btn.primary{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}
.exam-math-btn .katex{font-size:1em}
.math-sym{font-family:"Cambria Math","STIX Two Math","Segoe UI Symbol",serif}
.exam-math-sep{width:1px;height:24px;margin:0 4px;background:#d5dde8}
.exam-math-target{margin-left:auto;color:var(--muted);font-size:12px}
.exam-math-more{margin-top:6px}
.exam-math-more>summary{cursor:pointer;color:#b45309;font-size:13px;font-weight:700;min-height:28px;display:inline-flex;align-items:center}
.exam-math-more[open]{max-height:55vh;overflow-y:auto}
.exam-math-group{margin:6px 0}
.exam-math-group>small{display:block;margin-bottom:3px;color:var(--muted);font-weight:700}
.exam-math-group>div{display:flex;flex-wrap:wrap;gap:4px}
.exam-math-help{font-size:13px;line-height:1.55}
.exam-math-help .admin-table{min-width:0}
.math-target{border-color:#b45309!important;box-shadow:0 0 0 3px #f59e0b33!important}
.exam-field-label{display:block;margin-bottom:6px;color:#3d4b60;font-size:13px;font-weight:700}
.exam-image-picker{display:grid;gap:6px;justify-items:start}
.exam-file-button{cursor:pointer}
.exam-image-slot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.exam-image-thumb{display:block;max-width:220px;max-height:140px;border:1px solid #dfe5ed;border-radius:5px;background:#fff}
.exam-option-slot{margin:6px 0 0 34px}
.exam-option-slot .exam-image-thumb{max-width:160px;max-height:90px}
.exam-editor-block{display:grid;gap:8px}
#optionsWrap,#pairsWrap{display:grid;gap:8px}
.exam-option-row{padding:8px;border:1px solid #e3e8ef;border-radius:6px;background:#fff}
.exam-row-line,.exam-pair-row{display:flex;align-items:center;gap:8px}
.exam-pair-row{flex-wrap:wrap;padding:8px;border:1px solid #e3e8ef;border-radius:6px;background:#fff}
.exam-pair-row input[type=text]{flex:1 1 40%;min-width:11rem}
.exam-row-line input[type=text]{flex:1;min-width:0}
.option-number,.pair-number{width:24px;flex:none;color:var(--muted);font-size:13px}
.exam-icon-button{width:38px;height:38px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d5dde8;border-radius:4px;background:#fff;color:#475569;font-size:20px;cursor:pointer}
.exam-icon-button:hover{background:#f1f5f9}
.exam-icon-button .material-symbols-outlined{font-size:19px}
.exam-preview-card{padding:14px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc}
.exam-preview-card>small{display:block;margin-bottom:8px;color:var(--muted);font-weight:600}
.exam-preview .exam-option{cursor:default}
.exam-preview .exam-option.is-correct{border-color:#9fdcbf}
.exam-preview-mark{flex:none;color:var(--muted)}
.exam-delete-form{margin-top:14px}

/* Шалгалтын хамрах хүрээ (анги, байгууллага) */
.exam-scope{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;align-items:start}
.exam-scope>small{grid-column:1/-1}
.exam-scope-col{display:grid;gap:6px;align-content:start;max-height:280px;overflow:auto;padding-right:4px}
.exam-scope [hidden]{display:none!important}
.exam-scope-list{margin:0;padding-left:18px}
@media (max-width:900px){
  .exam-view-grid{grid-template-columns:1fr}
  .admin-form-row.exam-form-row4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .exam-scope{grid-template-columns:1fr}
  .exam-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exam-type-picker{grid-template-columns:1fr}
  .admin-form-row.exam-form-row4,.admin-form-row.exam-form-row2{grid-template-columns:1fr}
  .exam-qnav-btn{width:34px;height:34px;font-size:13px}
  .exam-timer{font-size:15px;padding:5px 9px}
  .exam-match-left,.exam-match-right{flex:1 1 100%}
  .exam-question{padding:14px}
  .exam-dl{grid-template-columns:1fr;gap:2px}
  .exam-dl dd{margin-bottom:8px}
  .exam-actionbar .academy-button{padding:0 8px;font-size:13px}
  .exam-filter input,.exam-filter select{max-width:none;width:100%}
  .exam-filter label{flex:1 1 100%}
}
@media print{
  .exam-actionbar,.exam-qnav,.exam-filter{display:none!important}
}
