:root{--paper: #ffffff;--ink: #0f172a;--muted: #64748b;--line: rgba(148, 163, 184, .35);--accent: #2563eb;--accent-2: #0ea5e9;--accent-3: #22c55e;--accent-soft: rgba(37, 99, 235, .12);--bg: #f5f7fb;--shadow: 0 14px 30px rgba(15, 23, 42, .12);--glow: 0 0 0 1px rgba(59, 130, 246, .08), 0 10px 24px rgba(37, 99, 235, .16);--danger: #dc2626;--warning: #d97706}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(circle at top right,rgba(37,99,235,.12),transparent 45%),radial-gradient(circle at 20% 20%,rgba(14,165,233,.12),transparent 40%),linear-gradient(135deg,#f8fafc,#eef2ff 38%,#f0fdf4);color:var(--ink);font-family:Segoe UI,PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Arial,sans-serif}#root{max-width:none;width:100%;margin:0 auto;padding:20px}.app-loading{min-height:60vh;display:flex;align-items:center;justify-content:center;color:var(--muted)}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px}.sidebar{background:linear-gradient(160deg,#ffffffe6,#f8fafce6);border-radius:20px;border:1px solid rgba(148,163,184,.25);padding:20px 16px;display:flex;flex-direction:column;gap:14px;height:calc(100vh - 40px);position:sticky;top:20px;box-shadow:var(--glow)}.brand strong{font-size:21px}.brand-red{color:#d01c25;font-weight:700}.brand-blue{color:#2563eb;font-weight:700}.user-pill{font-size:12px;color:var(--ink);background:linear-gradient(135deg,#2563eb2e,#22c55e2e);border-radius:999px;padding:7px 12px;width:fit-content}.menu{display:grid;gap:8px;flex:1;align-content:start;grid-auto-rows:min-content}button{border:1px solid transparent;border-radius:12px;padding:10px 12px;cursor:pointer;font-size:14px;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),background-color .22s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.22,1,.36,1),color .22s cubic-bezier(.22,1,.36,1)}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}input,select,textarea{border:1px solid rgba(148,163,184,.45);border-radius:10px;padding:8px 10px;font-size:14px}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%}textarea{resize:vertical;min-height:76px}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.16);outline-offset:2px;border-color:#2563eb61}.menu button{text-align:left;background:transparent;color:#475569;min-height:40px;padding:8px 12px}.menu button.active{background:linear-gradient(135deg,#2563eb2e,#0ea5e92e);color:var(--accent);border-color:#2563eb59;font-weight:600}.sidebar-actions{display:grid;gap:8px;flex-shrink:0}.sidebar-actions .logout{color:#9f1239}.primary{background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:transparent;color:#fff;box-shadow:0 8px 20px #2563eb40}.ghost{background:#fff;border:1px solid rgba(148,163,184,.48);color:#334155}.warn{background:#fff7ed;border:1px solid rgba(245,158,11,.35);color:#92400e}.danger{background:#fef2f2;border:1px solid rgba(220,38,38,.35);color:#991b1b}.content{display:grid;gap:16px}.hero{background:linear-gradient(140deg,#fff,#f1f5ff 55%,#ecfeff);border-radius:20px;border:1px solid rgba(148,163,184,.35);padding:20px 24px;display:flex;justify-content:space-between;gap:20px;box-shadow:var(--glow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-80px;top:-90px;width:220px;height:220px;pointer-events:none;background:radial-gradient(circle,rgba(14,165,233,.22),transparent 70%)}.hero h1{margin:0 0 8px;font-size:32px;font-family:Space Grotesk,Segoe UI,sans-serif}.sub{margin:0;color:var(--muted)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.panel:hover{transform:translateY(-1px);box-shadow:0 18px 34px #0f172a24}.panel-header{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-header h2{margin:0;font-size:20px}.panel-body{padding:14px 16px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{border:1px solid var(--line);border-radius:12px;padding:12px;background:linear-gradient(135deg,#f8fbff,#f5fbff);display:flex;flex-direction:column;gap:8px}.metric label{color:var(--muted);font-size:13px}.metric strong{font-size:28px;color:var(--accent)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.resource-panel-header{align-items:center}.resource-panel-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;color:#0f3d99;border:1px solid rgba(37,99,235,.28);background:linear-gradient(135deg,#dbeafed9,#bae6fdd9)}.resource-workbench{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.resource-card{position:relative;border:1px solid rgba(148,163,184,.3);border-radius:16px;padding:14px;background:linear-gradient(160deg,#fffffff7,#f8fbfff5);box-shadow:0 10px 20px #0f172a14;overflow:hidden}.resource-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#2563eb,#0ea5e9)}.resource-card-create:before{background:linear-gradient(90deg,#2563eb,#06b6d4)}.resource-card-upload:before{background:linear-gradient(90deg,#0891b2,#10b981)}.resource-card-create{border-color:#3b82f657;background:linear-gradient(160deg,#eff6fff2,#e0f2fee6)}.resource-card-upload{border-color:#10b98152;background:linear-gradient(160deg,#ecfdf5f2,#ecfdfae6)}.resource-card-head{display:grid;gap:4px;margin-bottom:10px}.resource-card-step{width:fit-content;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;color:#1e40af;background:#bfdbfecc;border:1px solid rgba(59,130,246,.25)}.resource-card-upload .resource-card-step{color:#065f46;background:#bbf7d0c7;border-color:#10b98159}.resource-card-head h4{margin:0;font-size:20px;letter-spacing:.2px}.resource-card-head p{margin:0;font-size:13px;color:#64748b;line-height:1.45}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.resource-grid label{display:block;margin-bottom:6px;font-size:13px;color:#334155;font-weight:600}.resource-grid input:not([type=radio]):not([type=checkbox]),.resource-grid select,.resource-grid textarea{min-height:42px;border-color:#94a3b880;background:#fffffff2}.resource-grid input:not([type=radio]):not([type=checkbox]):focus,.resource-grid select:focus,.resource-grid textarea:focus{outline:none;border-color:#2563eb80;box-shadow:0 0 0 3px #2563eb1f}.resource-hint{margin:0;font-size:13px;color:#556987;line-height:1.55}.resource-switch-row{padding:2px 0}.resource-switch-row label{margin:0;display:inline-flex;align-items:center;gap:8px}.resource-submit-row{margin-top:2px}.resource-submit-row .primary{min-width:126px}.question-workbench-header{align-items:center}.question-workbench{display:grid;grid-template-columns:1fr;gap:14px}.question-source-card{position:relative;border:1px solid rgba(148,163,184,.3);border-radius:16px;padding:14px;background:linear-gradient(160deg,#fffffff7,#f8fbfff5);box-shadow:0 10px 20px #0f172a14;overflow:hidden}.question-source-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#2563eb,#06b6d4)}.question-source-faq{border-color:#3b82f657;background:linear-gradient(160deg,#eff6fff2,#e0f2fee6)}.question-source-import{border-color:#10b98152;background:linear-gradient(160deg,#ecfdf5f2,#ecfdfae6)}.question-source-import:before{background:linear-gradient(90deg,#0891b2,#10b981)}.question-source-head{display:grid;gap:4px;margin-bottom:10px}.question-source-head h4{margin:0;font-size:20px}.question-source-head p{margin:0;font-size:13px;color:#64748b;line-height:1.45}.question-step-chip{width:fit-content;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;color:#1e40af;background:#bfdbfecc;border:1px solid rgba(59,130,246,.25)}.question-source-import .question-step-chip{color:#065f46;background:#bbf7d0c7;border-color:#10b98159}.question-source-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.question-source-grid label{display:block;margin-bottom:6px;font-size:13px;color:#334155;font-weight:600}.question-source-grid input:not([type=radio]):not([type=checkbox]),.question-source-grid select,.question-source-grid textarea{min-height:42px;border-color:#94a3b880;background:#fffffff2}.question-source-grid input:not([type=radio]):not([type=checkbox]):focus,.question-source-grid select:focus,.question-source-grid textarea:focus{outline:none;border-color:#2563eb80;box-shadow:0 0 0 3px #2563eb1f}.question-source-meta{margin-top:2px;font-size:13px;color:#334155;border-radius:10px;border:1px dashed rgba(148,163,184,.45);background:#ffffff9e;padding:8px 10px;display:grid;gap:4px}.question-source-file{margin-top:10px}.cert-template-panel{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.2fr);gap:14px;align-items:start}.cert-template-form{border:1px solid rgba(148,163,184,.32);border-radius:14px;padding:12px;background:linear-gradient(160deg,#eff6ffe6,#e0f2fed9);display:grid;gap:10px}.cert-template-meta{display:flex;flex-wrap:wrap;gap:8px}.cert-template-preview-wrap{border:1px dashed rgba(148,163,184,.5);border-radius:14px;min-height:220px;display:flex;align-items:center;justify-content:center;padding:12px;background:linear-gradient(140deg,#f8fafcf2,#eff6fff2)}.cert-template-preview{max-width:100%;max-height:380px;object-fit:contain;border-radius:10px;border:1px solid rgba(148,163,184,.35);box-shadow:0 8px 18px #0f172a24}.cert-template-empty{color:#64748b;font-size:14px}.results-hub-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.results-hub-intro strong{display:block;margin-bottom:6px;font-size:16px}.results-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.results-filter-grid label{display:block;margin-bottom:6px;font-size:13px;color:#334155;font-weight:600}.results-filter-check{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid rgba(148,163,184,.35);border-radius:12px;background:#f8fafce6}.results-filter-check input[type=checkbox]{width:16px;height:16px;margin:0}.results-filter-check span{font-size:14px;color:#334155}.student-overall-panel .panel-header{align-items:flex-start}.admin-only-badge{color:#1e40af;border-color:#2563eb47;background:linear-gradient(135deg,#dbeafee6,#e0f2fee6)}.student-overall-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr));gap:12px;align-items:end}.student-overall-filter-grid label{display:block;margin-bottom:6px;font-size:13px;color:#334155;font-weight:600}.student-overall-table th,.student-overall-table td{vertical-align:middle}.student-score-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:360px}.score-chip{display:inline-flex;align-items:center;justify-content:center;min-width:54px;min-height:26px;padding:3px 8px;border-radius:8px;color:#1d4ed8;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#dbeafee6,#e0f2fee6);border:1px solid rgba(37,99,235,.22)}.student-average-score{color:#1d4ed8;font-variant-numeric:tabular-nums}.student-evaluation-chip{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent;white-space:nowrap}.student-evaluation-chip.excellent{color:#166534;background:#22c55e24;border-color:#22c55e59}.student-evaluation-chip.good{color:#075985;background:#0ea5e924;border-color:#0ea5e952}.student-evaluation-chip.warn{color:#92400e;background:#f59e0b24;border-color:#f59e0b59}.student-evaluation-chip.danger{color:#991b1b;background:#dc26261f;border-color:#dc262647}.results-detail-panel{overflow:visible}.results-detail-shell{display:grid;gap:14px}.results-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:14px;align-items:stretch}.results-detail-overview{display:grid;gap:10px;border:1px solid rgba(148,163,184,.28);border-radius:14px;padding:14px;background:linear-gradient(145deg,#eff6ffeb,#ecfdffe0)}.results-detail-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.results-detail-title strong{font-size:24px;color:#0f172a}.results-score-card{border:1px solid rgba(37,99,235,.24);border-radius:16px;padding:16px;background:linear-gradient(160deg,#0f172af2,#2563ebe6);color:#fff;display:grid;gap:8px;align-content:center;box-shadow:0 18px 30px #2563eb2e}.results-score-card span{font-size:13px;color:#fffc}.results-score-card strong{font-size:44px;line-height:1;color:#fff}.results-score-card div{font-size:13px;color:#ffffffd1}.results-score-card.compact strong{font-size:34px}.results-detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.results-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.results-type-grid .metric strong{font-size:24px}.results-ai-advice{margin:12px 0 0;white-space:pre-wrap;font-family:inherit;line-height:1.6;color:#0f172a}.results-question-stack{display:grid;gap:12px}.results-table .sub{display:block;margin-top:4px}.rating-distribution{display:flex;flex-wrap:wrap;gap:6px}.rating-chip{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:24px;padding:3px 8px;border-radius:8px;font-size:12px;font-weight:700;border:1px solid rgba(15,23,42,.12);background:#f8fafc;color:#0f172a;white-space:nowrap}.rating-a{border-color:#16a34a47;background:#dcfce7e6;color:#166534}.rating-b{border-color:#0284c747;background:#e0f2fee6;color:#075985}.rating-c{border-color:#ca8a0447;background:#fef9c3e6;color:#854d0e}.rating-d{border-color:#dc262647;background:#fee2e2e6;color:#991b1b}.ai-config-panel{overflow:visible}.ai-config-panel-header{border-bottom:1px solid rgba(148,163,184,.25);background:linear-gradient(145deg,#f8fafcf2,#eff6fff2)}.ai-config-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(280px,1.3fr);gap:10px;background:linear-gradient(145deg,#eff6ffd9,#ecfdffcc);border-bottom:1px solid rgba(148,163,184,.25)}.ai-config-overview .metric{border:1px solid rgba(148,163,184,.3);border-radius:12px;padding:10px 12px;background:#ffffffdb}.ai-config-overview .metric label{font-size:12px;color:#64748b}.ai-config-overview .metric strong{margin-top:6px;font-size:20px;color:#0f172a}.ai-config-overview .metric-wide{display:grid}.ai-provider-strip{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-config-shell{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.ai-config-form-card,.ai-model-list-card{border:1px solid rgba(148,163,184,.32);border-radius:14px;padding:12px;background:linear-gradient(155deg,#f8fafceb,#eff6ffe0);display:grid;gap:12px}.ai-card-title h3{margin:0;font-size:18px}.ai-card-title p{margin:6px 0 0;color:#64748b;font-size:13px}.ai-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ai-switch-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ai-switch{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#334155;background:#ffffffb8;border:1px solid rgba(148,163,184,.3);border-radius:999px;padding:5px 10px}.ai-switch input[type=checkbox]{width:14px;height:14px;margin:0}.ai-model-grid{display:grid;gap:10px;max-height:760px;overflow:auto;padding-right:4px}.ai-model-card{border:1px solid rgba(148,163,184,.32);border-radius:12px;padding:10px;background:#fff;display:grid;gap:10px;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.ai-model-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a14}.ai-model-card.is-default{border-color:#2563eb73;box-shadow:0 0 0 1px #2563eb29}.ai-model-card.is-disabled{background:#f8fafcf2}.ai-model-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ai-model-title-wrap strong{font-size:16px}.ai-model-tags{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ai-model-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;font-size:13px;color:#475569}.ai-model-action-row{justify-content:flex-start}.ai-model-test-note{border-radius:10px;padding:8px 10px;font-size:13px;line-height:1.45}.ai-model-test-note.ok{color:#166534;border:1px solid rgba(34,197,94,.32);background:#22c55e17}.ai-model-test-note.err{color:#991b1b;border:1px solid rgba(220,38,38,.28);background:#fee2e2b3}.ai-model-draft-test-note{margin-top:2px}.ai-empty-state{border:1px dashed rgba(148,163,184,.45);border-radius:12px;padding:18px;text-align:center;color:#64748b;background:#fffc}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.form-grid .full{grid-column:1 / -1}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-bar{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) repeat(2,auto);gap:10px;align-items:center}.question-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.question-pagination select{width:88px}.message{padding:10px 12px;border-radius:10px;font-size:14px}.message.ok{background:#ecfdf5;border:1px solid rgba(34,197,94,.3);color:#166534}.message.err{background:#fef2f2;border:1px solid rgba(220,38,38,.3);color:#991b1b}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid rgba(148,163,184,.25);padding:8px;text-align:left;vertical-align:top}th{font-weight:600;color:#334155;background:#f8fafc}.table-wrap tbody tr.transcoding-row td{background:#fee2e2e6;transition:background-color .25s ease}.learning-path-table{min-width:1680px}.learning-path-table th,.learning-path-table td{white-space:nowrap;vertical-align:middle}.learning-path-table th{background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.learning-path-table tbody tr:hover td{background:#2563eb09}.learning-path-table .learning-actions{flex-wrap:nowrap;align-items:center;overflow-x:auto;padding-bottom:2px;gap:10px}.learning-path-table .learning-actions button,.learning-path-table .learning-actions .badge{white-space:nowrap;flex-shrink:0}.learning-path-table .learning-actions button{min-height:36px;padding:7px 14px;border-radius:12px}.exam-box{border:1px solid rgba(148,163,184,.35);border-radius:12px;padding:12px;margin-bottom:12px;background:#fcfeff}.exam-box.active{border-color:#2563eb80;box-shadow:0 0 0 2px #2563eb1f}.exam-toolbar{display:grid;gap:10px;margin-bottom:12px}.exam-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:linear-gradient(135deg,#2563eb14,#0ea5e90f)}.exam-history-toolbar select{min-width:320px;max-width:min(760px,80vw)}.exam-options{display:grid;gap:8px;margin-top:8px}.exam-options label{display:flex;align-items:center;justify-content:flex-start;gap:8px}.exam-options input[type=radio],.exam-options input[type=checkbox]{width:16px;height:16px;padding:0;border-radius:999px;flex:0 0 auto}.exam-options label span{word-break:break-word}.exam-answer-review{margin-top:12px;border:1px solid rgba(59,130,246,.28);border-radius:10px;padding:10px;background:linear-gradient(135deg,#2563eb14,#0ea5e914);display:grid;gap:8px}.exam-answer-review-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.exam-answer-review-line{display:grid;gap:4px}.exam-answer-review-line label{font-size:12px;color:#475569}.exam-answer-review-line div{color:#0f172a;word-break:break-word}.learning-video{width:100%;max-height:460px;border-radius:10px;border:1px solid rgba(148,163,184,.35);background:#000}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid rgba(148,163,184,.45);color:#334155;background:#fff}.badge-published{color:#047857;border-color:#10b98147;background:#10b9811f}.badge-scheduled{color:#b45309;border-color:#f59e0b47;background:#f59e0b24}.badge-archived{color:#475569;border-color:#64748b4d;background:#64748b1f}.muted-text{color:var(--muted)}.section-kicker{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:700}.paper-schedule-modal{width:min(620px,100%)}.schedule-paper-name input{color:var(--muted);background:#f8fafc}.schedule-publish-tip{padding:12px 14px;border:1px solid rgba(37,99,235,.18);border-radius:10px;color:#475569;background:#2563eb0f}.paper-schedule-actions{justify-content:flex-end}.trend-list{display:grid;gap:10px}.trend-row{display:grid;grid-template-columns:110px 1fr 68px;align-items:center;gap:12px}.trend-day{color:var(--muted);font-size:13px}.trend-bar-track{position:relative;height:10px;border-radius:999px;background:#94a3b833;overflow:hidden}.trend-bar{height:100%;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.upload-progress{display:grid;gap:6px}.upload-progress-track{width:100%;height:10px;border-radius:999px;background:#94a3b847;overflow:hidden}.upload-progress-fill{height:100%;border-radius:999px;background:linear-gradient(135deg,#2563eb,#0ea5e9);transition:width .2s ease}.upload-progress-text{font-size:12px;color:#475569}.upload-notice{font-size:13px;color:#1e3a8a;padding:8px 10px;border-radius:8px;border:1px solid rgba(59,130,246,.28);background:#bfdbfe59}.learning-player-notice{margin-top:10px;font-size:13px;color:#1e3a8a;padding:8px 10px;border-radius:8px;border:1px solid rgba(59,130,246,.28);background:#bfdbfe59}.doc-threshold-config{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid rgba(148,163,184,.25);background:linear-gradient(135deg,#eff6ff80,#ecfdff73)}.doc-threshold-config input[type=number]{width:120px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{width:min(920px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:16px;border:1px solid rgba(148,163,184,.45);background:#fff;box-shadow:0 24px 48px #0f172a38}.course-learning-modal{position:fixed;border-radius:16px;border:1px solid rgba(148,163,184,.4);background:#fff;box-shadow:0 28px 56px #0f172a3d;display:flex;flex-direction:column;overflow:hidden}.course-learning-modal.maximized{border-radius:12px}.course-learning-modal-header{border-bottom:1px solid rgba(148,163,184,.28);background:linear-gradient(135deg,#2563eb1f,#22c55e14);padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;cursor:move;-webkit-user-select:none;user-select:none}.course-learning-modal-title{display:grid;gap:4px;min-width:0}.course-learning-modal-title strong{display:block;font-size:28px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-learning-modal-title p{margin:0;color:var(--muted);font-size:13px}.course-learning-modal-scroll{flex:1;overflow:auto;min-height:0;display:flex;flex-direction:column}.course-learning-modal .modal-body{display:grid;gap:12px}.course-learning-modal .modal-body+.modal-body{border-top:1px solid rgba(148,163,184,.2)}.course-learning-overview{display:grid;gap:16px}.course-learning-hero{display:grid;gap:14px}.course-learning-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 74%,#0f172a 26%)}.course-learning-hero-copy{display:grid;gap:6px}.course-learning-hero-copy h2{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.04}.course-learning-hero-copy p{margin:0;max-width:72ch;color:color-mix(in srgb,var(--muted) 88%,var(--ink) 12%)}.course-learning-progress-bar{display:grid;gap:10px;padding:14px 16px;border-radius:18px;border:1px solid rgba(148,163,184,.25);background:linear-gradient(135deg,#ffffffe6,#eff6fff2),linear-gradient(135deg,#2563eb0d,#22c55e0a)}.course-learning-progress-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.course-learning-progress-main strong{font-size:clamp(28px,3vw,40px);line-height:1;color:var(--accent)}.course-learning-progress-main span{color:var(--muted)}.course-learning-progress-track{width:100%;height:10px;border-radius:999px;overflow:hidden;background:#94a3b82e}.course-learning-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-3))}.course-learning-progress-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13px;color:color-mix(in srgb,var(--muted) 90%,var(--ink) 10%)}.course-learning-spotlight{display:grid;gap:10px;padding:18px 20px;border-radius:20px;border:1px solid rgba(37,99,235,.2);background:radial-gradient(circle at top right,rgba(14,165,233,.12),transparent 42%),linear-gradient(135deg,#eff6fff5,#f8fafcfa)}.course-learning-spotlight.is-completed{border-color:#22c55e3d;background:radial-gradient(circle at top right,rgba(34,197,94,.1),transparent 40%),linear-gradient(135deg,#f0fdf4f2,#f8fafcfa)}.course-learning-spotlight.is-failed{border-color:#dc26263d;background:radial-gradient(circle at top right,rgba(239,68,68,.08),transparent 40%),linear-gradient(135deg,#fef2f2f2,#f8fafcfa)}.course-learning-spotlight-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 78%,#0f172a 22%)}.course-learning-spotlight-main{display:flex;justify-content:space-between;align-items:center;gap:18px}.course-learning-spotlight-copy{display:grid;gap:8px;min-width:0}.course-learning-spotlight-copy strong{font-size:22px;line-height:1.15}.course-learning-spotlight-copy p{margin:0;color:var(--muted)}.course-learning-spotlight-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13px;color:color-mix(in srgb,var(--muted) 92%,var(--ink) 8%)}.course-learning-spotlight-actions{display:grid;gap:10px;justify-items:end;flex-shrink:0}.course-learning-flow-wrap{display:grid}.course-learning-flow{display:grid;gap:14px}.learning-chapter-card{position:relative;display:grid;--chapter-accent: #94a3b8;--chapter-accent-soft: rgba(148, 163, 184, .14);--chapter-accent-ink: color-mix(in srgb, var(--chapter-accent) 78%, #0f172a 22%);grid-template-columns:110px minmax(0,1fr);gap:18px;padding:18px 18px 16px;border-radius:20px;border:1px solid rgba(148,163,184,.26);background:linear-gradient(180deg,#fffffffa,#f8fafcf5);overflow:hidden;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.22,1,.36,1)}.learning-chapter-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,color-mix(in srgb,var(--chapter-accent) 80%,#ffffff 20%),var(--chapter-accent));opacity:.96}.learning-chapter-card:after{content:"";position:absolute;right:-72px;top:-56px;width:180px;height:180px;pointer-events:none;background:radial-gradient(circle,var(--chapter-accent-soft),transparent 68%)}.learning-chapter-card:hover{transform:translateY(-2px);box-shadow:0 18px 32px #0f172a14}.learning-chapter-card.is-active{--chapter-accent: #2563eb;--chapter-accent-soft: rgba(37, 99, 235, .16);border-color:#2563eb47}.learning-chapter-card.is-pending{--chapter-accent: #64748b;--chapter-accent-soft: rgba(100, 116, 139, .12)}.learning-chapter-card.is-spotlight{border-color:#2563eb52;box-shadow:0 12px 28px #2563eb14}.learning-chapter-card.is-completed{--chapter-accent: #16a34a;--chapter-accent-soft: rgba(34, 197, 94, .14);border-color:#22c55e38}.learning-chapter-card.is-transcoding{--chapter-accent: #d97706;--chapter-accent-soft: rgba(217, 119, 6, .14);border-color:#d9770638}.learning-chapter-card.is-failed{--chapter-accent: #dc2626;--chapter-accent-soft: rgba(220, 38, 38, .14);border-color:#dc262638}.learning-chapter-index{display:grid;justify-items:start;align-content:start;gap:10px;min-width:0;padding:12px;border-radius:18px;border:1px solid color-mix(in srgb,var(--chapter-accent) 14%,rgba(148,163,184,.22) 86%);background:linear-gradient(180deg,color-mix(in srgb,var(--chapter-accent-soft) 70%,rgba(255,255,255,.94) 30%),#ffffffd1);box-shadow:inset 0 1px #ffffff8c}.learning-chapter-order{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--chapter-accent-ink);background:color-mix(in srgb,var(--chapter-accent-soft) 90%,rgba(255,255,255,.85) 10%)}.learning-chapter-index strong{font-size:20px;line-height:1.1;color:color-mix(in srgb,var(--chapter-accent-ink) 86%,var(--ink) 14%);overflow-wrap:anywhere}.learning-chapter-main{display:grid;gap:12px;min-width:0}.learning-chapter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.learning-chapter-copy{display:grid;gap:6px;min-width:0}.learning-chapter-copy h3{margin:0;font-size:20px;line-height:1.18;text-wrap:balance;overflow-wrap:anywhere}.learning-chapter-copy p{margin:0;color:var(--muted);max-width:62ch}.learning-flow-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;border:1px solid rgba(148,163,184,.25);background:#ffffffe0;color:var(--ink);white-space:nowrap}.learning-flow-badge.is-active{color:#1d4ed8;border-color:#2563eb47;background:#dbeafee6}.learning-flow-badge.is-completed{color:#166534;border-color:#22c55e47;background:#dcfce7e6}.learning-flow-badge.is-pending{color:#475569}.learning-flow-badge.is-transcoding{color:#b45309;border-color:#d9770647;background:#fef3c7e6}.learning-flow-badge.is-failed{color:#b91c1c;border-color:#dc262642;background:#fee2e2eb}.learning-chapter-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.learning-chapter-progress-track{height:8px;border-radius:999px;overflow:hidden;background:#94a3b82e;box-shadow:inset 0 1px 2px #0f172a0f}.learning-chapter-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--chapter-accent) 92%,var(--accent) 8%),color-mix(in srgb,var(--chapter-accent) 68%,#ffffff 32%))}.learning-chapter-progress-row strong{font-size:15px;color:color-mix(in srgb,var(--chapter-accent-ink) 82%,var(--ink) 18%)}.learning-chapter-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13px;color:color-mix(in srgb,var(--muted) 92%,var(--ink) 8%)}.learning-chapter-meta span{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#f1f5f9c2;border:1px solid rgba(148,163,184,.14)}.learning-chapter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.learning-primary-action{border-radius:14px;padding:10px 16px;font-weight:700;color:#fff;border-color:transparent;background:linear-gradient(135deg,#2563eb,#0ea5e9);box-shadow:0 10px 24px #2563eb38}.learning-primary-action:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb42}.learning-primary-action:active{transform:translateY(0)}.learning-primary-action.is-active{background:linear-gradient(135deg,#2563eb,#0ea5e9)}.learning-primary-action.is-pending{background:linear-gradient(135deg,#1d4ed8,#2563eb)}.learning-primary-action.is-completed{background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 10px 24px #16a34a33}.learning-primary-action.is-completed:hover{box-shadow:0 14px 28px #16a34a3d}.learning-primary-action.is-transcoding{background:linear-gradient(135deg,#d97706,#f59e0b);box-shadow:0 10px 24px #d9770633}.learning-primary-action.is-transcoding:hover{box-shadow:0 14px 28px #d977063d}.learning-primary-action.is-failed{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 10px 24px #dc262633}.learning-primary-action.is-failed:hover{box-shadow:0 14px 28px #dc26263d}.learning-primary-action.is-spotlight{padding-inline:18px;box-shadow:0 14px 30px #2563eb47}.learning-primary-action:disabled{background:linear-gradient(135deg,#94a3b8,#cbd5e1);color:#ffffffeb}.learning-chapter-admin{width:100%;border-top:1px dashed rgba(148,163,184,.3);padding-top:10px}.learning-chapter-admin summary,.course-learning-admin-panel summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:var(--muted);font-weight:600;list-style:none;transition:color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}.learning-chapter-admin summary:after,.course-learning-admin-panel summary:after{content:"▾";font-size:12px;line-height:1;transition:transform .18s cubic-bezier(.22,1,.36,1)}.learning-chapter-admin summary::-webkit-details-marker,.course-learning-admin-panel summary::-webkit-details-marker{display:none}.learning-chapter-admin summary:hover,.course-learning-admin-panel summary:hover{color:var(--ink)}.learning-chapter-admin[open] summary,.course-learning-admin-panel[open] summary{color:var(--ink)}.learning-chapter-admin[open] summary:after,.course-learning-admin-panel[open] summary:after{transform:rotate(180deg)}.learning-chapter-admin-actions,.course-learning-admin-content{margin-top:10px}.learning-inline-tip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;font-size:12px;color:color-mix(in srgb,var(--muted) 88%,var(--ink) 12%);background:#f1f5f9e6}.course-learning-empty{display:grid;gap:8px;padding:24px;border-radius:18px;border:1px dashed rgba(148,163,184,.4);background:#f8fafce6}.course-learning-empty strong,.course-learning-empty p{margin:0}.course-learning-empty p{color:var(--muted)}.course-learning-admin-shell{display:grid}.course-learning-admin-panel{border-top:1px dashed rgba(148,163,184,.32);padding-top:12px}.course-learning-modal-actions{flex-wrap:wrap;justify-content:flex-end}.course-learning-modal-actions select{min-width:220px}.course-learning-config{align-items:flex-start}.course-learning-modal-resizer{position:absolute;right:6px;bottom:6px;width:16px;height:16px;border-right:2px solid #60a5fa;border-bottom:2px solid #60a5fa;border-radius:2px;cursor:nwse-resize;touch-action:none}.modal-header{padding:14px 16px;border-bottom:1px solid rgba(148,163,184,.28);display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-header h3{margin:0;font-size:18px}.modal-body{padding:14px 16px}.player-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172a33}.doc-preview-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:79;background:#0f172a47}.doc-preview-modal{position:fixed;border-radius:16px;border:1px solid rgba(148,163,184,.38);background:#fff;box-shadow:0 24px 48px #0f172a3d;display:flex;flex-direction:column;overflow:hidden}.doc-preview-modal.maximized{border-radius:12px}.doc-preview-modal-header{border-bottom:1px solid rgba(148,163,184,.28);background:linear-gradient(135deg,#2563eb1a,#0ea5e90f);padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;cursor:move}.doc-preview-title{display:grid;gap:8px;min-width:0}.doc-preview-title strong{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-preview-modal-body{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:auto;flex:1}.doc-preview-stage{flex:1;min-height:300px;border-radius:12px;border:1px solid rgba(148,163,184,.36);overflow:hidden;background:#f8fafc}.doc-preview-container{width:100%;height:100%}.doc-preview-modal-resizer{position:absolute;right:6px;bottom:6px;width:16px;height:16px;border-right:2px solid #60a5fa;border-bottom:2px solid #60a5fa;border-radius:2px;cursor:nwse-resize}.player-modal{position:fixed;border-radius:14px;border:1px solid rgba(148,163,184,.45);background:#fff;box-shadow:0 24px 48px #0f172a40;display:flex;flex-direction:column;overflow:hidden}.player-modal.maximized{border-radius:12px}.player-modal-header{border-bottom:1px solid rgba(148,163,184,.3);background:linear-gradient(135deg,#2563eb1f,#0ea5e914);padding:10px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;cursor:move}.player-modal-title{display:grid;gap:8px;min-width:0}.player-modal-title strong{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-modal-body{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:auto;flex:1}.player-video-stack{display:flex;flex-direction:column;gap:10px;min-height:0}.modal-video{width:100%;max-height:none;min-height:220px;height:min(64vh,680px)}.player-session-progress{display:grid;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:linear-gradient(135deg,#f8fafcf5,#eff6ffe6)}.player-session-progress-track{width:100%;height:8px;border-radius:999px;overflow:hidden;background:#94a3b82e;box-shadow:inset 0 1px 2px #0f172a0f}.player-session-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-3))}.player-session-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:color-mix(in srgb,var(--muted) 92%,var(--ink) 8%)}.player-session-progress-meta strong{color:var(--accent);font-size:14px}.player-volume-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.player-volume-bar label{color:#334155;font-size:13px}.player-volume-bar input[type=range]{min-width:180px;max-width:320px;flex:1}.player-playback-actions{display:inline-flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}.player-replay-action{background:linear-gradient(135deg,#2563eb1a,#0ea5e914);border-color:#2563eb3d;color:#1e3a8a;box-shadow:inset 0 1px #ffffff8c}.player-replay-action:hover{border-color:#2563eb57;box-shadow:inset 0 1px #ffffff8c,0 8px 18px #2563eb1f}.player-modal-resizer{position:absolute;right:6px;bottom:6px;width:16px;height:16px;border-right:2px solid #60a5fa;border-bottom:2px solid #60a5fa;border-radius:2px;cursor:nwse-resize}.trend-value{text-align:right;color:#1d4ed8;font-weight:600;font-size:13px}.tip-list{display:grid;gap:10px}.tip-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid rgba(148,163,184,.25);border-radius:10px;background:linear-gradient(135deg,#2563eb14,#0ea5e914)}.tip-index{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#1d4ed8;background:#e0ecff;flex-shrink:0}.question-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:8px;margin-bottom:12px}.q-nav-btn{min-height:38px;border-radius:10px;border:1px solid rgba(148,163,184,.4);background:#fff;color:#334155;font-weight:600}.q-nav-btn.answered{border-color:#22c55e73;background:#22c55e17;color:#166534}.q-nav-btn.active{border-color:#2563eb8c;background:#2563eb24;color:#1d4ed8}.empty-tip{color:var(--muted)}.retrain-grid{display:grid;gap:10px}.retrain-recommend-full{grid-template-columns:1fr}.retrain-workbench{border:1px solid rgba(37,99,235,.22);border-radius:14px;padding:14px;background:linear-gradient(145deg,#eff6ffd9,#e8faffd1);box-shadow:inset 0 1px #ffffffb3;display:grid;gap:10px;margin-bottom:10px}.retrain-workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.retrain-workbench-head strong{font-size:16px;color:#0f2a56}.retrain-workbench-head p{margin:6px 0 0;color:#526484;font-size:13px}.retrain-filter-bar{display:grid;grid-template-columns:96px minmax(200px,1fr) 84px minmax(160px,1fr);align-items:center;gap:8px}.retrain-filter-bar label{color:#334155;font-size:13px;font-weight:600}.retrain-filter-bar select{width:100%;min-width:0}.retrain-workbench-actions,.retrain-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.retrain-card{border:1px solid rgba(148,163,184,.28);border-radius:12px;padding:12px;background:linear-gradient(135deg,#2563eb14,#0ea5e914);display:grid;gap:8px}.retrain-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.resource-list{display:grid;gap:6px}.resource-list a{color:#1d4ed8;text-decoration:none;font-size:13px}.resource-list a:hover{text-decoration:underline}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;border:1px solid transparent}.status-chip.good{color:#166534;background:#22c55e24;border-color:#22c55e59}.status-chip.warn{color:#92400e;background:#f59e0b24;border-color:#f59e0b59}@media (max-width: 1180px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.metric-grid,.form-grid,.resource-grid,.question-source-grid,.resource-workbench,.question-workbench,.ai-config-shell,.cert-template-panel,.grid-2,.grid-3{grid-template-columns:1fr}.ai-config-overview{grid-template-columns:1fr 1fr}.ai-form-grid,.ai-model-meta,.filter-bar,.results-filter-grid,.student-overall-filter-grid,.results-detail-hero,.results-type-grid,.results-detail-metrics{grid-template-columns:1fr}.trend-row{grid-template-columns:82px 1fr 56px}.exam-history-toolbar{align-items:flex-start}.exam-history-toolbar select{min-width:0;width:100%;max-width:100%}.retrain-filter-bar{grid-template-columns:1fr}.course-learning-modal-actions{width:100%;justify-content:stretch}.course-learning-modal-actions select,.course-learning-modal-actions button{width:100%}.course-learning-modal-header{flex-direction:column}.course-learning-modal-title strong{white-space:normal}.learning-chapter-card{grid-template-columns:1fr}.learning-chapter-index{width:fit-content;max-width:100%}.course-learning-spotlight-main{flex-direction:column;align-items:flex-start}.course-learning-spotlight-actions{justify-items:start}.learning-chapter-head{flex-direction:column}.learning-chapter-actions{align-items:stretch}.learning-chapter-actions>button{width:100%}.learning-chapter-admin{width:100%}.player-playback-actions{margin-left:0;width:100%}.player-session-progress-meta{align-items:flex-start}}@media (prefers-reduced-motion: reduce){button,.learning-chapter-card,.learning-chapter-admin summary,.course-learning-admin-panel summary{transition:none!important}button:hover,.learning-chapter-card:hover{transform:none}}@media print{.sidebar,.hero,.message,.sidebar-actions,.results-hub-intro .row-actions,.panel-header .row-actions,.question-pagination,button,input,select,textarea{display:none!important}#root{padding:0}.shell,.content{display:block}.panel{box-shadow:none;border-color:#d1d5db;break-inside:avoid}.panel:hover{transform:none;box-shadow:none}.results-score-card{background:#0f172a!important;color:#fff!important}}
