*{box-sizing:border-box;margin:0;padding:0}:root{--ease-out:cubic-bezier(.23, 1, .32, 1)}a{color:#93c5fd}body{color:#e2e8f0;background:#0f172a;min-height:100dvh;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,BIZ UDPGothic,Meiryo,sans-serif}.container{max-width:720px;padding:1.5rem 1rem max(1.5rem, env(safe-area-inset-bottom));margin:0 auto}.card{background:#1e293b;border:1px solid #334155;border-radius:16px;flex-direction:column;gap:1rem;padding:1.5rem 1.25rem;display:flex}.card h2{font-size:1.1rem}.card h3{color:#7dd3fc;margin-bottom:.5rem;font-size:1rem}button.primary{color:#fff;cursor:pointer;transition:transform .16s var(--ease-out);background:#0284c7;border:none;border-radius:12px;padding:.9rem;font-size:1rem;font-weight:600}button.primary:active:not(:disabled){transform:scale(.97)}button.primary:disabled{color:#94a3b8;cursor:not-allowed;background:#334155}button.secondary{color:#e2e8f0;cursor:pointer;transition:transform .16s var(--ease-out);background:#334155;border:1px solid #475569;border-radius:12px;padding:.8rem;font-size:.95rem}button.secondary:active:not(:disabled){transform:scale(.97)}.error{color:#fca5a5;font-size:.9rem}.note{color:#94a3b8;font-size:.8rem}.status-label{text-align:center;color:#7dd3fc;font-size:1rem}.visualizer{background:#0f172a;border-radius:10px;width:100%;height:64px}.transcript{overscroll-behavior:contain;flex-direction:column;gap:.5rem;max-height:30dvh;font-size:.9rem;line-height:1.6;display:flex;overflow-y:auto}.transcript p{transition:opacity .15s var(--ease-out)}@starting-style{.transcript p{opacity:0}}.line-model{color:#93c5fd}.line-user{color:#e2e8f0}.pulse-dot{background:#38bdf8;border-radius:50%;width:12px;height:12px;margin:0 auto;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.lecture-stage{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden}.lecture-video,.lecture-still{object-fit:contain;background:#000;width:100%;height:100%}.jump-view{flex-direction:column;gap:.5rem;display:flex}.jump-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.jump-bar .note{color:#7dd3fc;flex:auto;min-width:0}.jump-bar button{flex:none;padding:.5rem .9rem;font-size:.85rem}.video-controls{align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.video-controls button{color:#fff;cursor:pointer;width:44px;height:44px;transition:transform .16s var(--ease-out);background:#0284c7;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1rem;display:flex}.video-controls button:active:not(:disabled){transform:scale(.94)}.video-controls button:disabled{color:#94a3b8;cursor:not-allowed;background:#334155}.video-seek{accent-color:#38bdf8;cursor:pointer;flex:auto;min-width:0}.video-seek:disabled{cursor:not-allowed;opacity:.5}.video-time{color:#94a3b8;font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.segment-bar{gap:2px;height:10px;margin-top:.75rem;display:flex}.segment{cursor:pointer;background:#334155;border:none;border-radius:3px;flex:1;padding:0;transition:background .15s}.segment.watched{background:#0369a1}.segment.current{background:#38bdf8}@media (hover:hover) and (pointer:fine){.segment:hover{background:#7dd3fc}.segment:disabled:hover{background:#334155}}.segment:disabled{cursor:not-allowed;opacity:.5}.watch-layout{max-width:1400px;padding:1.5rem 1rem max(1.5rem, env(safe-area-inset-bottom));align-items:flex-start;gap:1.5rem;margin:0 auto;display:flex}.watch-main{min-width:0;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);flex-direction:column;flex:auto;gap:1rem;display:flex}@starting-style{.watch-main{opacity:0;transform:translateY(8px)}}.watch-info{background:#1e293b;border:1px solid #334155;border-radius:16px;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}@media (max-width:960px){.watch-layout{flex-direction:column;align-items:stretch;gap:1rem}.watch-main{display:contents}}.conversation-panel{width:360px;max-width:100%;max-height:calc(100dvh - 3rem);transition:opacity .3s var(--ease-out) 60ms, transform .3s var(--ease-out) 60ms;background:#1e293b;border:1px solid #334155;border-radius:16px;flex-direction:column;flex:0 0 360px;gap:.75rem;padding:1rem;display:flex;position:sticky;top:1.5rem}@starting-style{.conversation-panel{opacity:0;transform:translateY(8px)}}.conversation-panel .transcript{flex:auto;min-height:6rem;max-height:none}.conversation-controls{border-top:1px solid #334155;flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.conversation-controls button{width:100%}.chat-input-row{align-items:flex-end;gap:.5rem;display:flex}.chat-input-row textarea{color:#e2e8f0;overscroll-behavior:contain;resize:none;background:#0f172a;border:1px solid #475569;border-radius:10px;flex:auto;min-width:0;max-height:8.5rem;padding:.6rem .75rem;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .15s;overflow-y:auto}.chat-input-row textarea:focus{border-color:#38bdf8}.chat-input-row button{flex:none;width:auto;padding:.6rem 1rem}@media (max-width:960px){.conversation-panel{flex:auto;width:100%;max-height:none;position:static}}.chapter-comments{background:#1e293b;border:1px solid #334155;border-radius:16px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}@media (max-width:960px){.watch-main>.chapter-comments{order:1}}.chapter-comments h3{color:#7dd3fc;font-size:1rem}.comment-list{flex-direction:column;gap:1rem;display:flex}.comment-row{animation:comment-in .3s var(--ease-out) backwards;gap:.75rem;display:flex}.comment-row:nth-child(2){animation-delay:40ms}.comment-row:nth-child(3){animation-delay:80ms}.comment-row:nth-child(4){animation-delay:.12s}.comment-row:nth-child(5){animation-delay:.16s}@keyframes comment-in{0%{opacity:0;transform:translateY(8px)}}.comment-avatar{color:#0f172a;background:#7dd3fc;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.comment-avatar.novice{background:#fbbf24}.comment-body{flex:auto;min-width:0}.comment-author{color:#cbd5e1;margin-bottom:.15rem;font-size:.85rem;font-weight:600}.comment-text{color:#e2e8f0;font-size:.9rem;line-height:1.6}@media (prefers-reduced-motion:reduce){button.primary:active:not(:disabled),button.secondary:active:not(:disabled),.video-controls button:active:not(:disabled),.quiz-inline-button:active:not(:disabled),.hub-link:active,.primary-link:active,.completion-primary:active{transform:none}.comment-row{animation:none}.watch-main,.conversation-panel{transition-property:opacity}}.signin-screen{place-items:center;min-height:100dvh;padding:24px;display:grid}.signin-card{text-align:center;background:#1e293b;border:1px solid #334155;border-radius:12px;width:min(100%,30rem);padding:32px}.signin-card h1{color:#f1f5f9;margin:0 0 12px;font-size:1.35rem}.signin-lead{color:#cbd5e1;margin:0 0 24px;font-size:.95rem;line-height:1.7}.signin-error{text-align:left;background:#422006;border:1px solid #a16207;border-radius:8px;margin:0 0 24px;padding:16px}.signin-error strong{color:#fde68a;margin-bottom:6px;font-size:.95rem;display:block}.signin-error p{color:#fef3c7;margin:0;font-size:.875rem;line-height:1.7}.signin-button{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #0000;border-radius:8px;padding:12px 28px;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.signin-button:hover{background:#1d4ed8}.signin-note{color:#94a3b8;margin:20px 0 0;font-size:.8rem;line-height:1.6}.consent-card{text-align:left;width:min(100%,40rem)}.consent-card h1{text-align:center}.consent-points{color:#cbd5e1;margin:0 0 24px;padding-left:1.25rem;font-size:.9rem;line-height:1.8}.consent-points li+li{margin-top:10px}.consent-points strong{color:#f1f5f9}.consent-state{color:#cbd5e1;margin:0 0 20px;font-size:.95rem}.consent-state strong{color:#f1f5f9}.consent-notice{color:#bbf7d0;background:#052e16;border:1px solid #15803d;border-radius:8px;margin:0 0 20px;padding:12px 16px;font-size:.875rem;line-height:1.7}.consent-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.consent-button-secondary{color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #475569;border-radius:8px;padding:12px 28px;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.consent-button-secondary:hover{background:#334155}.consent-actions button:disabled{opacity:.6;cursor:progress}.consent-history{border-top:1px solid #334155;margin-top:28px;padding-top:20px}.consent-history h2{color:#cbd5e1;margin:0 0 10px;font-size:.9rem}.consent-history ul{color:#94a3b8;margin:0;padding-left:1.25rem;font-size:.85rem;line-height:1.8}.review-screen{max-width:56rem;margin:0 auto;padding:32px 24px 64px}.review-head h1{color:#f1f5f9;margin:0 0 8px;font-size:1.4rem}.review-meta{color:#94a3b8;margin:0 0 8px;font-size:.9rem}.review-ready{color:#86efac;margin:0;font-size:.9rem}.review-pending{color:#fcd34d;margin:0;font-size:.9rem}.review-toolbar{flex-wrap:wrap;align-items:center;gap:0 24px;margin:24px 0;display:flex}.review-toolbar a{color:#93c5fd;padding:10px 0;font-size:.875rem;display:inline-block}.review-notice{color:#bbf7d0;background:#052e16;border:1px solid #15803d;border-radius:8px;margin:0 0 16px;padding:12px 16px;font-size:.875rem}.review-error{color:#fecaca;background:#450a0a;border:1px solid #b91c1c;border-radius:8px;margin:0 0 16px;padding:12px 16px;font-size:.875rem}.review-empty{color:#94a3b8;border:1px dashed #334155;border-radius:12px;padding:24px;font-size:.9rem;line-height:1.8}.review-card{background:#1e293b;border:1px solid #334155;border-radius:12px;margin:0 0 24px;padding:20px}.review-approved{border-left:4px solid #16a34a}.review-rejected{opacity:.7;border-left:4px solid #64748b}.review-generated,.review-edited{border-left:4px solid #ca8a04}.review-card-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.review-order{color:#f1f5f9;font-weight:600}.review-badge{border-radius:999px;padding:2px 10px;font-size:.75rem}.badge-approved{color:#bbf7d0;background:#14532d}.badge-rejected{color:#cbd5e1;background:#334155}.badge-generated,.badge-edited{color:#fde68a;background:#422006}.review-source{color:#94a3b8;margin-left:auto;font-size:.75rem}.review-field{margin-bottom:16px;display:block}.review-field>span,.review-field>label{color:#94a3b8;margin-bottom:6px;font-size:.8rem;display:block}.review-field textarea,.review-field select,.review-field input[type=text],.review-field input[type=email],.review-field input[type=number],.review-field input[type=datetime-local],.review-field input[type=date],.review-field input[type=url]{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:.9rem;line-height:1.7}.review-field input:focus,.review-field select:focus,.review-field textarea:focus{border-color:#3b82f6}.review-field input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.review-field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.review-field>label.review-check{color:#e2e8f0;align-items:center;gap:8px;margin-bottom:6px;font-size:.9rem;display:flex}.review-field>label.review-check input[type=checkbox]{accent-color:#3b82f6;width:16px;height:16px}.review-choice{align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-choice input[type=radio]{accent-color:#16a34a;flex:none;width:18px;height:18px}.review-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.review-actions button{cursor:pointer;border-radius:8px;min-height:40px;padding:8px 18px;font-family:inherit;font-size:.875rem}.review-actions button:not(.primary,.secondary,.danger){color:#e2e8f0;transition:background-color .12s ease, transform .16s var(--ease-out);background:0 0;border:1px solid #64748b}.review-actions button:not(.primary,.secondary,.danger):active:not(:disabled){transform:scale(.97)}.review-actions button.primary{color:#fff;background:#0284c7;border:1px solid #0284c7;font-weight:600}.review-actions button.secondary{color:#7dd3fc;background:0 0;border:1px solid #38bdf8}@media (hover:hover) and (pointer:fine){.review-actions button:not(.primary,.secondary,.danger):hover:not(:disabled){background:#334155}.review-actions button.primary:hover:not(:disabled){background:#0369a1}}.review-actions button:disabled{color:#94a3b8;cursor:not-allowed;background:#334155;border-color:#0000}.review-hint{color:#94a3b8;margin:12px 0 0;font-size:.8rem;line-height:1.7}.review-warning{color:#fcd34d;margin:12px 0 0;font-size:.8rem;line-height:1.7}.review-warning:before{content:"⚠ "}.review-add{color:#93c5fd;cursor:pointer;width:100%;transition:background-color .12s ease, transform .16s var(--ease-out);background:0 0;border:1px dashed #475569;border-radius:12px;padding:14px;font-family:inherit;font-size:.9rem;display:block}.review-add:active{transform:scale(.99)}@media (hover:hover) and (pointer:fine){.review-add:hover{background:#1e293b}}.hub-screen{max-width:52rem;margin:0 auto;padding:32px 24px 64px}.hub-head h1{color:#f1f5f9;margin:0 0 6px;font-size:1.4rem}.hub-user{color:#94a3b8;margin:0 0 28px;font-size:.8rem}.hub-user a,.hub-link{color:#93c5fd}.hub-link{transition:text-decoration-color .12s ease, transform .16s var(--ease-out);text-decoration-color:#0000;display:inline-block}.hub-link:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.hub-link:hover{text-decoration-color:currentColor}}.lesson-switcher{align-items:center;gap:12px;margin:16px 0 8px;font-size:.85rem;display:flex}.lesson-switcher a{flex:none}.lesson-switcher select{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;flex:1;min-width:0;padding:6px 28px 6px 10px;font-family:inherit;font-size:.85rem}.lesson-switcher select:focus{border-color:#3b82f6}.hub-empty{color:#94a3b8;border:1px dashed #334155;border-radius:12px;padding:24px;font-size:.9rem;line-height:1.8}.hub-course{background:#1e293b;border:1px solid #334155;border-radius:12px;margin-bottom:32px;padding:20px}.hub-course-head h2{color:#f1f5f9;margin:0 0 4px;font-size:1.1rem}.hub-course-head h2 a{color:inherit;text-decoration:none}.hub-course-head h2 a:hover{text-decoration:underline}.course-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:0 0 32px;padding:0;list-style:none;display:grid}.course-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:20px}.course-card-title{color:#f1f5f9;margin-bottom:4px;font-size:1.1rem;font-weight:600;text-decoration:none;display:block}.course-card-title:hover{text-decoration:underline}.course-card-meta{color:#94a3b8;margin:0 0 14px;font-size:.8rem}.course-card-next{color:#cbd5e1;margin:12px 0 0;font-size:.85rem}.hub-past{margin-bottom:32px}.hub-past>summary{cursor:pointer;color:#94a3b8;padding:10px 4px;font-size:.85rem}.hub-course-meta{color:#94a3b8;margin:0 0 14px;font-size:.8rem}.hub-progress{align-items:center;gap:12px;margin-bottom:18px;display:flex}.hub-progress-bar{background:#0f172a;border-radius:999px;flex:auto;height:8px;overflow:hidden}.hub-progress-fill{height:100%;transition:width .3s var(--ease-out);background:#16a34a;border-radius:999px}.hub-progress-text{color:#cbd5e1;font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.hub-lessons{margin:0;padding:0;list-style:none}.hub-lesson{border-top:1px solid #334155;padding:12px 0}.hub-excluded,.hub-preparing,.hub-scheduled{opacity:.65}.hub-lesson-main{align-items:center;gap:10px;margin-bottom:4px;display:flex}.hub-session{color:#94a3b8;font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.hub-title{color:#e2e8f0;font-size:.95rem}.hub-passed{color:#bbf7d0;background:#14532d;border-radius:999px;padding:1px 8px;font-size:.7rem}.hub-resolved{color:#99f6e4;background:#134e4a}.hub-lesson-sub{flex-wrap:wrap;align-items:center;gap:16px;padding-left:3.4rem;font-size:.85rem;display:flex}.hub-note{color:#94a3b8;font-size:.8rem}.hub-teacher-links{color:#94a3b8;border-top:1px solid #334155;flex-wrap:wrap;gap:14px;margin:16px 0 0;padding-top:14px;font-size:.8rem;display:flex}.quiz-screen{max-width:44rem;margin:0 auto;padding:32px 24px 64px}.quiz-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px}.quiz-card h1{color:#f1f5f9;margin:0 0 10px;font-size:1.25rem}.quiz-item{border-top:1px solid #334155;margin:24px 0;padding-top:20px}.quiz-question{color:#f1f5f9;margin:0 0 12px;font-size:.95rem;line-height:1.8}.quiz-choice{cursor:pointer;border:1px solid #334155;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;font-size:.9rem;line-height:1.7;display:flex}.quiz-choice:hover{background:#0f172a}.quiz-choice input[type=radio]{accent-color:#0284c7;width:18px;height:18px;margin-top:4px}.quiz-intro-points{color:#cbd5e1;margin:20px 0 4px;padding-left:1.2em;line-height:1.9}.quiz-intro-points strong{color:#f1f5f9}.quiz-actions{border-top:1px solid #334155;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.quiz-error{color:#fecaca;background:#450a0a;border:1px solid #b91c1c;border-radius:8px;margin:16px 0 0;padding:12px 16px;font-size:.875rem}.quiz-passed{color:#bbf7d0;background:#052e16;border:1px solid #15803d;border-radius:8px;margin:0 0 20px;padding:12px 16px;font-size:.9rem}.quiz-failed{color:#fde68a;background:#422006;border:1px solid #a16207;border-radius:8px;margin:0 0 20px;padding:12px 16px;font-size:.9rem}.quiz-result-item{border:1px solid #334155;border-radius:8px;margin:20px 0;padding:16px}.quiz-result-item.correct{border-left:4px solid #16a34a}.quiz-result-item.wrong{border-left:4px solid #dc2626}.quiz-verdict{vertical-align:.1em;border-radius:999px;margin-right:8px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}.quiz-verdict.correct{color:#bbf7d0;background:#14532d}.quiz-verdict.wrong{color:#fecaca;background:#7f1d1d}.quiz-result-choices{color:#94a3b8;margin:0 0 12px;padding:0;font-size:.875rem;line-height:1.9;list-style:none}.quiz-result-choices .choice-answer{color:#bbf7d0;font-weight:600}.quiz-result-choices .choice-chosen{color:#fca5a5}.quiz-explanation{color:#cbd5e1;background:#0f172a;border-radius:6px;margin:0;padding:12px;font-size:.85rem;line-height:1.8}.quiz-inline-button{color:#fde68a;cursor:pointer;transition:background-color .12s ease, transform .16s var(--ease-out);background:0 0;border:1px solid #a16207;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:.8rem}.quiz-inline-button:active:not(:disabled){transform:scale(.97)}.quiz-inline-button:hover:not(:disabled){background:#422006}.quiz-inline-button:disabled{opacity:.6;cursor:progress}.lecture-header{border-bottom:1px solid #334155;flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:12px;padding-bottom:10px;display:flex}.lecture-header-title{color:#94a3b8;font-size:.85rem}.completion-card{border:1px solid #16a34a}.completion-primary{color:#fff;text-align:center;transition:background-color .12s ease, transform .16s var(--ease-out);background:#0284c7;border-radius:12px;padding:12px 28px;font-weight:600;text-decoration:none;display:inline-block}.completion-primary:hover{background:#0369a1}.completion-primary:active{transform:scale(.97)}.completion-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.quiz-review-invite{color:#cbd5e1;background:#0c243a;border:1px solid #0369a1;border-left-width:4px;border-radius:10px;margin-top:20px;padding:14px 16px;font-size:.92rem;line-height:1.8}.quiz-review-invite strong{color:#7dd3fc}.primary-link{color:#fff;transition:transform .16s var(--ease-out);background:#0284c7;border-radius:12px;padding:.9rem 1.4rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.primary-link:active{transform:scale(.97)}.quiz-actions :is(button.primary,button.secondary,.primary-link){cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 24px;font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.5}.quiz-actions button.primary{color:#fff;background:#0284c7}.quiz-actions button.secondary{color:#7dd3fc;background:0 0;border-color:#38bdf8}.quiz-actions button:is(.primary,.secondary):disabled{color:#94a3b8;cursor:not-allowed;background:#334155;border-color:#0000}.activity-section{background:#1e293b;border:1px solid #334155;border-radius:12px;margin-bottom:32px;padding:20px}.activity-body{transition:opacity .2s var(--ease-out)}@starting-style{.activity-body{opacity:0}}.activity-section h2{color:#f1f5f9;margin:0 0 12px;font-size:1rem}.activity-section h3{color:#e2e8f0;margin:20px 0 8px;font-size:.9rem}.activity-list{margin:0;padding:0;list-style:none}.activity-item{border-top:1px solid #334155;padding:12px 0}.activity-head{color:#94a3b8;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:.8rem;display:flex}.activity-pos{font-variant-numeric:tabular-nums;color:#cbd5e1}.activity-title{color:#e2e8f0}.activity-time{margin-left:auto}.activity-question{color:#f1f5f9;margin:6px 0}.activity-resolved .activity-question{color:#94a3b8}.umap-bar{gap:2px;height:14px;margin:8px 0;display:flex}.umap-cell{background:#334155;border-radius:3px;flex:1;min-width:0;position:relative}.umap-group-head{align-items:center;gap:6px;display:inline-flex}.fold-group{margin-top:16px}.fold-group summary{cursor:pointer;color:#e2e8f0;font-size:.9rem}.umap-open{background:#d97706}.umap-resolved{background:#2dd4bf}.umap-correct{background:#16a34a}.umap-unanswered{background:0 0;box-shadow:inset 0 0 0 1px #64748b}.umap-none{background:#334155}.umap-legend{color:#94a3b8;flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;padding:0;font-size:.75rem;list-style:none;display:flex}.umap-legend-item{align-items:center;gap:6px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.umap-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.timeline-tools{gap:8px;margin-bottom:8px;display:flex}.timeline-tools input,.timeline-tools select{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:6px 10px;font-family:inherit;font-size:.85rem}.timeline-tools input{flex:1;min-width:0}.timeline-tools select{flex:none}.timeline-tools input:focus,.timeline-tools select:focus{border-color:#3b82f6}.activity-mark{color:#fef9c3;background:#854d0e;border-radius:2px;padding:0 1px}.activity-excerpt{color:#cbd5e1;margin:4px 0 8px;font-size:.85rem}.attempt-failed{color:#fecaca;background:#450a0a;border-radius:999px;padding:1px 8px;font-size:.7rem}.attempt-detail .quiz-result-item{margin:12px 0}.activity-misconception{color:#cbd5e1;border-left:2px solid #475569;margin:4px 0;padding-left:10px;font-size:.85rem}.activity-turns{margin:10px 0 0;padding:0;font-size:.85rem;list-style:none}.activity-turn{color:#cbd5e1;margin-bottom:8px}.turn-role{color:#94a3b8;background:#334155;border-radius:4px;margin-right:8px;padding:1px 6px;font-size:.75rem;display:inline-block}.turn-user .turn-role{color:#e0e7ff;background:#1d4ed8}.roster-lines{margin:0;padding:0;list-style:none}.roster-line{border-top:1px solid #334155;grid-template-columns:1fr auto;align-items:center;gap:0 12px;padding:6px 0;display:grid}.roster-line-full{grid-column:1/-1}.roster-concluded,.roster-suspended{opacity:.65}.roster-line-main{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.roster-line-toggle{color:#cbd5e1;cursor:pointer;transition:transform .16s var(--ease-out);background:0 0;border:1px solid #334155;border-radius:8px;padding:8px 12px;font-size:.8rem}.roster-line-toggle:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.roster-line-toggle:hover{border-color:#64748b}}.roster-line-actions{background:#0f172a;border-radius:8px;margin:8px 0 10px;padding:12px 16px}.roster-line-actions .review-hint{margin-top:8px}.roster-delete{border-top:1px solid #334155;margin-top:14px;padding-top:12px}.roster-delete .review-warning{margin:0 0 8px}.roster-filter{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.roster-filter-input{flex:14rem;min-width:0}.roster-filter-input,.roster-filter-select{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:.9rem;line-height:1.7}.roster-filter-input:focus,.roster-filter-select:focus{border-color:#3b82f6}.roster-concluded-fold{margin-top:12px}.roster-name{color:#f1f5f9;font-weight:600}.roster-nameless{color:#94a3b8;font-weight:400}.roster-role,.roster-status{color:#cbd5e1;background:#334155;border-radius:999px;padding:1px 8px;font-size:.75rem}.roster-email{color:#94a3b8;overflow-wrap:anywhere;font-size:.8rem}.roster-problems{color:#e2e8f0;background:#1e293b;border-left:3px solid #f59e0b;margin-top:14px;padding:12px;font-size:.85rem}.roster-problems ul{margin:6px 0 0;padding-left:18px}.roster-modes{gap:8px;margin:14px 0;display:flex}.roster-rows{margin:0 0 8px;padding:0;list-style:none}.roster-row{border-top:1px solid #334155;grid-template-columns:1fr 1.6fr auto;align-items:end;gap:10px;padding:8px 0;display:grid}.roster-row .review-field{margin:0}.roster-row-remove{color:#94a3b8;cursor:pointer;min-width:40px;min-height:40px;transition:border-color .12s ease, color .12s ease, transform .16s var(--ease-out);background:0 0;border:1px solid #475569;border-radius:8px;padding:0 10px}.roster-row-remove:active{transform:scale(.95)}@media (hover:hover) and (pointer:fine){.roster-row-remove:hover{color:#f87171;border-color:#f87171}}@media (max-width:640px){.roster-row{grid-template-columns:1fr}}.teach-section-title{color:#f1f5f9;border-bottom:1px solid #334155;flex-wrap:wrap;align-items:baseline;gap:12px;margin:36px 0 12px;padding-bottom:8px;font-size:1.05rem;display:flex}.teach-section-title .review-meta{margin:0;font-size:.8rem}.lesson-add{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.lesson-add .review-field{flex:160px;margin:0}.lesson-add button{flex:none}.lesson-list{margin:0;padding:0;list-style:none}.lesson-item{border-top:1px solid #334155;padding:12px 0}.lesson-preparing,.lesson-scheduled,.lesson-excluded{opacity:.7}.lesson-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.lesson-no{font-variant-numeric:tabular-nums;color:#94a3b8;font-size:.85rem}.lesson-title{color:#f1f5f9;font-weight:600}.lesson-state{color:#cbd5e1;background:#334155;border-radius:999px;padding:1px 8px;font-size:.75rem}.lesson-form{border-left:2px solid #475569;margin-top:10px;padding:12px}.teach-course-list{margin:0;padding:0;list-style:none}.teach-course-item{border-top:1px solid #334155;flex-wrap:wrap;align-items:baseline;gap:12px;padding:10px 0;display:flex}.teach-course-item .review-meta{margin:0}.teach-course-links{white-space:nowrap;margin-left:auto}.teach-course-title{color:#f1f5f9;text-underline-offset:3px;font-weight:600;-webkit-text-decoration:underline #475569;text-decoration:underline #475569;transition:text-decoration-color .12s}@media (hover:hover) and (pointer:fine){.teach-course-title:hover{text-decoration-color:#93c5fd}}.material-pickers{flex-wrap:wrap;gap:10px;margin-bottom:6px;display:flex}.material-picker{color:#e2e8f0;cursor:pointer;min-height:40px;transition:border-color .12s ease, transform .16s var(--ease-out);background:#1e293b;border:1px solid #475569;border-radius:8px;align-items:center;padding:8px 14px;font-size:.875rem;display:inline-flex;position:relative}.material-picker:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.material-picker:hover{border-color:#38bdf8}}.material-picker input[type=file]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.material-picker:has(input:focus-visible){outline-offset:2px;outline:2px solid #7dd3fc}.survey-card{background:#0f172a;border:1px solid #334155;border-radius:10px;margin:28px 0 8px;padding:20px}.survey-card h3{color:#f1f5f9;margin:0 0 8px;font-size:1rem}.survey-item{border:none;margin:18px 0 0;padding:0}.survey-item legend,.survey-item>label{color:#e2e8f0;margin-bottom:8px;font-size:.9rem;display:block}.survey-item textarea{color:#e2e8f0;resize:vertical;background:#1e293b;border:1px solid #334155;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:.9rem;line-height:1.7}.survey-item textarea:focus{border-color:#3b82f6}.survey-scale{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.survey-end{color:#94a3b8;font-size:.78rem}.survey-choice{color:#cbd5e1;cursor:pointer;border:1px solid #475569;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-width:44px;min-height:44px;padding:0 8px;font-size:.95rem;transition:background-color .12s,border-color .12s;display:inline-flex}.survey-choice:has(input:checked){color:#fff;background:#0c4a6e;border-color:#38bdf8}.survey-choice{position:relative}.survey-choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.survey-choice:has(input:focus-visible){outline-offset:2px;outline:2px solid #7dd3fc}.survey-radio{color:#cbd5e1;cursor:pointer;margin-bottom:6px;font-size:.88rem;display:block}.survey-radio input,.survey-choice input{accent-color:#3b82f6;margin-right:4px}.lesson-bulk{border-bottom:1px solid #334155;margin-bottom:16px;padding-bottom:12px}.back-nav{margin-bottom:12px;font-size:.85rem}@media (max-width:640px){.hub-screen{padding:24px 12px 48px}.activity-section{padding:16px}.quiz-screen{padding:20px 12px 48px}.quiz-card{padding:16px}.signin-screen{padding:16px 12px}.signin-card{padding:24px 16px}.hub-lesson-sub{gap:4px 16px;padding-left:0}.hub-lesson-sub .hub-link{padding:8px 0}}.hub-review-card{color:#e2e8f0;transition:border-color .12s ease, transform .16s var(--ease-out);background:#0f172a;border:1px solid #334155;border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;margin:16px 0 12px;padding:14px 16px;text-decoration:none;display:grid}.hub-review-card:active{transform:scale(.99)}@media (hover:hover) and (pointer:fine){.hub-review-card:hover{border-color:#38bdf8}}.hub-review-card-title{color:#7dd3fc;font-weight:600}.hub-review-card-sub{color:#94a3b8;grid-column:1;font-size:.8rem}.hub-review-card-arrow{color:#7dd3fc;grid-area:1/2/span 2;font-size:1.2rem}.hub-nav{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 28px;font-size:.85rem;display:flex}.hub-nav-back{color:#93c5fd;font-weight:600;text-decoration:none}.hub-nav-right{gap:16px;margin-left:auto;font-size:.8rem;display:flex}.hub-nav-right a{color:#94a3b8}@media (prefers-reduced-motion:reduce){.hub-review-card:active{transform:none}}.umap-summary{flex-wrap:wrap;gap:4px 16px;margin-bottom:8px;display:flex}.slide-misses{border-left:2px solid #334155;flex-direction:column;gap:10px;margin:8px 0 0;padding:0 0 0 12px;list-style:none;display:flex}.slide-miss-kind{color:#94a3b8;margin-right:6px;font-size:.75rem}.slide-misses .activity-question{font-size:.9rem}.attempt-toggle{margin-top:10px}.course-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 32px;display:grid}.course-stat{background:#1e293b;border:1px solid #334155;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;display:flex}.course-stat-value{color:#f1f5f9;font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:700}.course-stat-value small{color:#94a3b8;font-size:.85rem;font-weight:400}.course-stat-label{color:#94a3b8;font-size:.85rem}.course-steps{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.course-step-link,.course-step-box{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:10px;flex-direction:column;gap:2px;height:100%;padding:10px;font-size:.8rem;text-decoration:none;display:flex}.course-step-link{transition:border-color .12s ease, transform .16s var(--ease-out)}.course-step-link:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.course-step-link:hover{border-color:#38bdf8}}.course-step-no{color:#94a3b8}.course-step-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.course-step-state{margin-top:auto;padding-top:4px;font-weight:600}.course-step-note{color:#94a3b8;min-height:1.2em}.course-step-passed .course-step-link{border-color:#166534}.course-step-passed .course-step-state{color:#86efac}.course-step-trying .course-step-state{color:#fbbf24}.course-step-todo .course-step-state{color:#cbd5e1}.course-step-scheduled .course-step-box,.course-step-inactive .course-step-box{color:#94a3b8;background:#1e293b;border-style:dashed}.course-step[aria-current=step] .course-step-link{border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf8}.course-step-next{color:#7dd3fc;font-weight:700}.umap-done{background:#16a34a}@media (max-width:640px){.course-stat-value{font-size:1.4rem}.course-steps{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (prefers-reduced-motion:reduce){.course-step-link:active{transform:none}}button.danger{color:#fff;cursor:pointer;min-height:40px;transition:background-color .12s ease, transform .16s var(--ease-out);background:#991b1b;border:1px solid #b91c1c;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:.875rem;font-weight:600}button.danger:active:not(:disabled){transform:scale(.97)}@media (hover:hover) and (pointer:fine){button.danger:hover:not(:disabled){background:#7f1d1d}}button.danger:disabled{color:#94a3b8;cursor:not-allowed;background:#334155;border-color:#0000}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}@media (prefers-reduced-motion:reduce){.review-actions button:active,button.danger:active,.review-add:active,.roster-row-remove:active,.material-picker:active{transform:none}}.review-actions button.danger:not(:first-child){margin-left:auto}.review-generate{margin:0 0 24px}.review-actions .hub-link{padding:10px 2px}.review-notice,.review-error,.lesson-form{transition:opacity .2s var(--ease-out)}@starting-style{.review-notice,.review-error,.lesson-form{opacity:0}}@media (max-width:640px){.review-screen{padding:24px 12px 48px}.review-card{padding:16px}}.revision-picker{max-width:22rem;margin:8px 0}.insight-muted{color:#94a3b8;margin:0 0 12px;font-size:.85rem;line-height:1.7}.insight-label{color:#cbd5e1;margin:16px 0 8px;font-size:.8rem;font-weight:600}.insight-highlights{color:#e2e8f0;background:#1e293b;border:1px solid #334155;border-radius:12px;margin:0 0 8px;padding:16px 20px 16px 36px;line-height:1.9}.insight-highlights a{font-variant-numeric:tabular-nums;font-weight:600}.insight-slides-head .teach-section-title{border-bottom:none;margin-bottom:0}.insight-slides-head{border-bottom:1px solid #334155;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 16px;margin-bottom:12px;display:flex}.insight-sort{gap:16px;font-size:.85rem;display:flex}.insight-sort a{padding:10px 0}.insight-sort a[aria-current=true]{color:#f1f5f9;pointer-events:none;font-weight:600;text-decoration:none}.insight-slides{flex-direction:column;gap:8px;display:flex}.insight-slide{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:0 16px;scroll-margin-top:16px}.insight-slide[open]{padding-bottom:16px}.insight-slide>summary{cursor:pointer;padding:12px 0}.insight-slide-head>span+span{margin-left:12px}.insight-slide-no{color:#f1f5f9;font-variant-numeric:tabular-nums;font-weight:600}.insight-slide-title{color:#e2e8f0}.insight-slide-counts{color:#94a3b8;font-size:.8rem}.insight-slide-empty .insight-slide-no,.insight-slide-empty .insight-slide-title{color:#64748b}.insight-questions,.insight-notfound{color:#e2e8f0;margin:0;padding-left:20px;font-size:.9rem;line-height:1.7}.insight-questions>li+li,.insight-notfound>li+li{margin-top:6px}.insight-questions summary{cursor:pointer}.insight-turns{border-left:2px solid #334155;margin:8px 0 12px;padding:12px;font-size:.85rem;list-style:none}.insight-turn+.insight-turn{margin-top:8px}.insight-turn-role{color:#94a3b8;font-size:.75rem;display:block}.insight-turn-assistant{color:#cbd5e1}.insight-core{border-top:1px solid #334155;margin-top:16px;padding-top:12px}.insight-core-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;display:flex}.insight-core-head .insight-label{margin:0}.insight-rate{color:#cbd5e1;font-variant-numeric:tabular-nums;font-size:.85rem}.insight-rate-low{color:#fbbf24}.insight-rate-low:before{content:"⚠ "}.insight-core-question{color:#e2e8f0;margin:8px 0;font-size:.9rem;line-height:1.7}.insight-choices{margin:0;padding:0;font-size:.85rem;list-style:none}.insight-choice{color:#cbd5e1;border-radius:6px;justify-content:space-between;gap:12px;padding:6px 10px;display:flex}.insight-choice+.insight-choice{margin-top:4px}.insight-choice-answer{color:#bbf7d0;background:#052e16}.insight-choice-count{color:#fbbf24;font-variant-numeric:tabular-nums;flex:none}.analysis-run{margin:0 0 16px}.analysis-run .review-actions{align-items:center}.insight-clusters{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.insight-cluster{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:12px 16px}.insight-cluster-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 4px;display:flex}.insight-cluster-label{color:#f1f5f9;font-weight:600}.insight-cluster-text{color:#cbd5e1;margin:4px 0 0;font-size:.9rem;line-height:1.7}.insight-suggestion{color:#bae6fd}.insight-tag{color:#e2e8f0;vertical-align:1px;background:#334155;border-radius:999px;margin-left:8px;padding:0 8px;font-size:.75rem;display:inline-block}.survey-table-wrap{margin:0 0 8px;overflow-x:auto}.survey-table{border-collapse:collapse;color:#e2e8f0;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.survey-table th,.survey-table td{text-align:center;vertical-align:bottom;white-space:nowrap;border-bottom:1px solid #334155;padding:8px 6px}.survey-table thead th{color:#94a3b8;font-weight:400}.survey-table tbody th{text-align:left;white-space:normal;min-width:9rem;font-weight:400}.survey-mean{font-weight:600}.survey-count{color:#cbd5e1;min-width:2rem}.survey-bar{background:#38bdf8;border-radius:3px 3px 0 0;width:14px;margin:0 auto 4px;display:block}.survey-note{color:#94a3b8;font-size:.75rem;display:block}.survey-texts{margin-top:8px}.insight-survey-summary{white-space:pre-line;background:#1e293b;border-left:3px solid #38bdf8;border-radius:0 8px 8px 0;margin:0 0 8px;padding:12px 16px}.analysis-lessons{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.analysis-lesson{color:#e2e8f0;transition:border-color .12s ease, transform .16s var(--ease-out);background:#1e293b;border:1px solid #334155;border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:14px 16px;text-decoration:none;display:grid}.analysis-lesson:active{transform:scale(.99)}@media (hover:hover) and (pointer:fine){.analysis-lesson:hover{border-color:#38bdf8}}.analysis-lesson-title{color:#f1f5f9;grid-column:1;font-weight:600}.analysis-lesson-stats{color:#cbd5e1;font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-column:1;gap:2px 16px;font-size:.85rem;display:flex}.analysis-state{color:#94a3b8;grid-column:1;font-size:.8rem}.analysis-state-done{color:#86efac}.analysis-state-stale{color:#fcd34d}.analysis-lesson-arrow{color:#7dd3fc;grid-area:1/2/span 3;font-size:1.2rem}@media (prefers-reduced-motion:reduce){.analysis-lesson:active{transform:none}}.export-columns{margin-top:8px}.export-columns>summary{cursor:pointer;color:#cbd5e1;font-size:.8rem}.export-research{border:1px dashed #a78bfa;border-radius:8px;margin-top:20px;padding:12px 16px}.export-research-title{color:#c4b5fd;margin:0;font-size:.85rem;font-weight:600}.export-research-link{color:#ddd6fe;transition:transform .16s var(--ease-out);border:1px solid #a78bfa;border-radius:8px;padding:8px 14px;font-size:.85rem;text-decoration:none;display:inline-block}.export-research-link:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.export-research-link:hover{background:#2e1065}}@media (prefers-reduced-motion:reduce){.export-research-link:active{transform:none}}.manage-tabs{border-bottom:1px solid #334155;gap:4px;margin:0 0 8px;display:flex;overflow-x:auto}.manage-tab{color:#94a3b8;white-space:nowrap;border-bottom:2px solid #0000;align-items:baseline;gap:6px;margin-bottom:-1px;padding:12px 16px;font-size:.95rem;text-decoration:none;display:inline-flex}.manage-tab small{color:#64748b;font-size:.75rem}.manage-tab[aria-current=page]{color:#f1f5f9;border-bottom-color:#38bdf8;font-weight:600}@media (hover:hover) and (pointer:fine){.manage-tab:hover{color:#e2e8f0}}.manage-fold{background:#1e293b;border:1px solid #334155;border-radius:12px;margin:0 0 16px;padding:0 20px}.manage-fold[open]{padding-bottom:20px}.manage-fold>summary{cursor:pointer;color:#e2e8f0;padding:14px 0;font-weight:600}.review-card .manage-fold{background:0 0;border:none;border-radius:0;padding:0}@media (prefers-reduced-motion:reduce){.roster-line-toggle:active{transform:none}}.review-field select,.roster-filter-select,.lesson-switcher select,.timeline-tools select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2394a3b8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:32px}
