.cx{--cx-fg: #1B2838;--cx-muted: #5b6b7b;--cx-line: rgba(27,40,56,.12);--cx-soft: #f5f7f8;--cx-field: #fff;--cx-teal: #00D4AA;--cx-green: #1Fae8c;--cx-amber: #E8A13A;border:1px solid rgba(0,212,170,.28);border-radius:16px;padding:1.25rem 1.35rem;font-family:Inter,system-ui,sans-serif;color:var(--cx-fg);background:linear-gradient(135deg,rgba(0,212,170,.05) 0%,transparent 58%),#fff;box-shadow:0 10px 30px #1019230f,0 0 34px #00d4aa0f;position:relative;overflow:hidden}html.dark .cx{--cx-fg: #fff;--cx-muted: rgba(255,255,255,.62);--cx-line: rgba(255,255,255,.14);--cx-soft: rgba(255,255,255,.05);--cx-field: rgba(255,255,255,.04);background:linear-gradient(135deg,#00d4aa17,#1b283873 82%);box-shadow:0 10px 30px #00000047,0 0 34px #00d4aa1a}.cx-head{display:flex;align-items:center;gap:.6rem;margin:-1.25rem -1.35rem 1rem;padding:.85rem 1.35rem;background:radial-gradient(circle at 92% 0%,rgba(0,212,170,.3) 0%,transparent 55%),linear-gradient(135deg,#1b2838,#2a3f56);border-bottom:1px solid rgba(0,212,170,.22)}.cx-skill{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cx-teal)}.cx-badge{margin-left:auto;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cx-teal);border:1px solid rgba(0,212,170,.4);border-radius:999px;padding:.15rem .55rem}.cx-asset{margin:0 0 1rem;border-left:3px solid var(--cx-teal);background:var(--cx-soft);border-radius:0 10px 10px 0;padding:.85rem 1rem}.cx-asset-cap{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cx-muted);margin:0 0 .35rem}.cx-asset-body{color:var(--cx-fg);line-height:1.55;font-size:.95rem;opacity:.92}.cx-asset-footer .cx-asset-body{font-size:.8rem;opacity:.7}.cx-task{font-size:1rem;line-height:1.55;margin:0 0 .85rem}.cx-editor-label{display:block;font-size:.8rem;font-weight:600;color:var(--cx-muted);margin-bottom:.35rem}.cx-editor{width:100%;border:1px solid var(--cx-line);border-radius:10px;padding:.7rem .85rem;background:var(--cx-field);color:var(--cx-fg);font:inherit;line-height:1.5;resize:vertical}.cx-editor:focus{outline:none;border-color:var(--cx-teal);box-shadow:0 0 0 3px #00d4aa40}.cx-controls{display:flex;align-items:center;gap:.6rem;margin-top:.7rem;flex-wrap:wrap}.cx-btn{border-radius:9px;padding:.5rem .95rem;font-weight:700;font-size:.88rem;cursor:pointer;border:1px solid transparent;transition:background .15s,opacity .15s,border-color .15s}.cx-btn-primary{background:var(--cx-teal);color:#08231d}.cx-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.cx-btn-primary:disabled{opacity:.45;cursor:not-allowed}.cx-btn-ghost{background:transparent;border-color:var(--cx-line);color:var(--cx-fg)}.cx-btn-ghost:hover:not(:disabled){border-color:var(--cx-teal)}.cx-btn-ghost:disabled{opacity:.45;cursor:not-allowed}.cx-count{margin-left:auto;font-size:.78rem;color:var(--cx-muted)}.cx-diagnose{margin-bottom:1.1rem}.cx-diagnose-prompt{font-weight:600;margin:0 0 .6rem;line-height:1.5}.cx-diagnose-opts{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.7rem}.cx-chip{border:1px solid var(--cx-line);border-radius:999px;padding:.4rem .95rem;font-weight:600;font-size:.85rem;cursor:pointer;background:transparent;color:var(--cx-fg);transition:background .15s,border-color .15s}.cx-chip:hover:not(:disabled){border-color:var(--cx-teal)}.cx-chip-on{background:#00d4aa1f;border-color:var(--cx-teal)}.cx-chip:disabled{opacity:.7;cursor:default}.cx-diagnose-fb{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.5rem}.cx-hint{margin-top:.7rem}.cx-hint-line{background:#e8a13a1a;border:1px solid rgba(232,161,58,.3);color:var(--cx-fg);border-radius:9px;padding:.6rem .8rem;font-size:.88rem;line-height:1.5}.cx-coach{margin-top:1rem;border-top:1px solid var(--cx-line);padding-top:.9rem}.cx-status{font-weight:700;margin:0 0 .6rem;outline:none}.cx-status-loading{color:var(--cx-muted)}.cx-status-pass{color:var(--cx-green)}.cx-status-revise{color:var(--cx-amber)}.cx-dims{list-style:none;margin:0 0 .7rem;padding:0;display:grid;gap:.5rem}.cx-dim{display:flex;gap:.65rem;align-items:flex-start;border:1px solid var(--cx-line);border-radius:10px;padding:.6rem .75rem;background:var(--cx-soft)}.cx-dim-mark{flex:0 0 auto;width:1.3rem;height:1.3rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;color:#fff}.cx-dim-met{border-color:#1fae8c80}.cx-dim-met .cx-dim-mark{background:var(--cx-green)}.cx-dim-partial{border-color:#e8a13a80}.cx-dim-partial .cx-dim-mark{background:var(--cx-amber)}.cx-dim-miss .cx-dim-mark{background:var(--cx-muted)}.cx-dim-body{display:flex;flex-direction:column;gap:.15rem}.cx-dim-label{font-weight:700;font-size:.9rem}.cx-dim-fb{font-size:.85rem;color:var(--cx-muted);line-height:1.45}.cx-dim-check{background:var(--cx-soft)}.cx-dim-check input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--cx-teal)}.cx-praise{color:var(--cx-green);font-size:.92rem;margin:0 0 .4rem}.cx-coaching{font-size:.95rem;line-height:1.55;margin:0 0 .6rem}.cx-example{background:#00d4aa0f;border:1px solid rgba(0,212,170,.25);border-radius:10px;padding:.7rem .85rem;margin:.5rem 0}.cx-example-cap{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cx-teal);margin:0 0 .3rem}.cx-example-body{font-size:.92rem;line-height:1.55;margin:0}.cx-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}.cx-status-pass.cx-celebrate{animation:cx-pass-pop .5s cubic-bezier(.22,1,.36,1) both}@keyframes cx-pass-pop{0%{transform:scale(.96);opacity:.4}60%{transform:scale(1.03)}to{transform:scale(1);opacity:1}}.cx-confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.cx-confetti{position:absolute;top:-12px;width:8px;height:13px;border-radius:2px;opacity:.95;animation:cx-fall 1.4s cubic-bezier(.3,.7,.4,1) forwards}@keyframes cx-fall{0%{transform:translateY(-12px) rotate(0);opacity:0}12%{opacity:1}to{transform:translateY(420px) rotate(560deg);opacity:0}}@media(prefers-reduced-motion:reduce){.cx-btn{transition:none}.cx-status-pass.cx-celebrate{animation:none}.cx-confetti{display:none}}.sidebar-link.active{background:#00d4aa14;color:#00a888;font-weight:600}.dark .sidebar-link.active{background:#00d4aa1f;color:#00d4aa}.quiz-option:focus-visible,.exercise-item button:focus-visible,.cat-buttons button:focus-visible,.warmup-poll-option:focus-visible,.fillin-reveal:focus-visible,.fillin-textarea:focus-visible,.sidebar-link:focus-visible,.drawer-link:focus-visible,#stepper-prev:focus-visible,#stepper-next:focus-visible,#stepper-counter:focus-visible,#sidebar-toggle:focus-visible,#dark-mode-toggle:focus-visible,#drawer-close:focus-visible,#quiz-retry-btn:focus-visible{outline:2px solid #00D4AA;outline-offset:2px;border-radius:.375rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.visited-dot{width:6px;height:6px;border-radius:50%;background:#a8a8c0;flex-shrink:0;margin-left:auto}.dark .visited-dot{background:#5a5a7a}.quiz-question.quiz-hidden{display:none}.quiz-question{scroll-margin-top:5rem}@media(max-width:1023px){.quiz-question{scroll-margin-top:6rem}}.quiz-next-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:.5rem;background:#1b2838;color:#fff;font-family:Inter,system-ui,sans-serif;font-weight:600;font-size:.875rem;cursor:pointer;transition:background .2s ease;margin-top:.75rem}.quiz-next-btn:hover{background:#2a3f56}.quiz-next-btn:disabled{opacity:.4;cursor:not-allowed}.dark .quiz-next-btn{background:#00d4aa;color:#1a1a2e}.dark .quiz-next-btn:hover{background:#00b894}html[lang=ja] .module-prose table{line-height:1.5}html[lang=ja] .module-prose td,html[lang=ja] .module-prose th{word-break:normal;overflow-wrap:anywhere;line-break:strict}@media(min-width:768px){html[lang=ja] .module-prose table:has(thead tr>:nth-child(4)) th:nth-child(2),html[lang=ja] .module-prose table:has(thead tr>:nth-child(4)) td:nth-child(2){min-width:8.5rem}html[lang=ja] .module-prose table:has(thead tr>:nth-child(4)) th:nth-child(3),html[lang=ja] .module-prose table:has(thead tr>:nth-child(4)) td:nth-child(3){min-width:9.5rem}html[lang=ja] .module-prose table:has(thead tr>:nth-child(3)):not(:has(thead tr>:nth-child(4))) th:nth-child(2),html[lang=ja] .module-prose table:has(thead tr>:nth-child(3)):not(:has(thead tr>:nth-child(4))) td:nth-child(2),html[lang=ja] .module-prose table:has(thead tr>:nth-child(3)):not(:has(thead tr>:nth-child(4))) th:nth-child(3),html[lang=ja] .module-prose table:has(thead tr>:nth-child(3)):not(:has(thead tr>:nth-child(4))) td:nth-child(3){width:42%}}
