:root{--primary: #c0392b;--primary-dark: #a13125;--primary-bg: #fdecea;--accent: #e0a106;--accent-bg: #fbf3dd;--success: #1e8e3e;--success-bg: #e6f4ea;--success-border: #a8dab5;--error: #c5221f;--error-bg: #fce8e6;--error-border: #f5b7b1;--text: #202124;--text-secondary: #5f6368;--text-disabled: #9aa0a6;--bg: #ffffff;--bg-muted: #f8f7f4;--surface: #f1f0ec;--border: #e2ded7;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(60, 64, 67, .06);--shadow-md: 0 1px 3px rgba(60, 64, 67, .1), 0 1px 2px rgba(60, 64, 67, .06);--shadow-lg: 0 4px 16px rgba(60, 64, 67, .16);--transition: .2s ease}:root[data-theme=dark]{--primary: #f08a7e;--primary-dark: #f5a99f;--primary-bg: #3a201e;--accent: #f3cf6b;--accent-bg: #2f2a18;--success: #81c995;--success-bg: #1d3324;--success-border: #2d4a35;--error: #f28b82;--error-bg: #3a201e;--error-border: #5c2f2c;--text: #e3e3e6;--text-secondary: #9aa0a6;--text-disabled: #6e7174;--bg: #1b1b1d;--bg-muted: #242528;--surface: #2a2b2e;--border: #3c4043;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 6px 20px rgba(0, 0, 0, .55)}:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .btn-primary-lg{color:#2a0f0b}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Roboto,Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.wrap{max-width:760px;margin:0 auto;padding:40px 24px 80px}.topbar{margin-bottom:8px}.home-link{font-size:14px;color:var(--text-secondary)}.home-link:hover{color:var(--primary)}.theme-toggle{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow-md);font-size:20px;line-height:1;display:grid;place-items:center;z-index:50}.page-header{margin:16px 0 32px}.page-header h1{font-size:30px;font-weight:700;margin:0 0 8px;letter-spacing:-.5px}.page-header p{color:var(--text-secondary);margin:0;font-size:15px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--primary);margin:0 0 6px}.btn-primary,.btn-primary-lg{background:var(--primary);color:#fff;border:none;border-radius:var(--radius-pill);font-weight:600;padding:10px 20px;transition:background var(--transition)}.btn-primary-lg{padding:13px 26px;font-size:16px}.btn-primary:hover,.btn-primary-lg:hover{background:var(--primary-dark)}.btn-outline{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);font-weight:600;padding:10px 20px;display:inline-flex;align-items:center;gap:6px;transition:border-color var(--transition)}.btn-outline:hover{border-color:var(--primary)}.btn-secondary{background:var(--surface);color:var(--text);border:none;border-radius:var(--radius-pill);font-weight:600;padding:10px 20px}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 14px;font-size:13px;font-weight:600}.btn-ghost:hover{color:var(--primary);border-color:var(--primary)}.class-list{display:flex;flex-direction:column;gap:16px}.class-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);padding:20px 22px;display:block;transition:border-color var(--transition),box-shadow var(--transition)}.class-card.active:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.class-card.disabled{background:var(--bg-muted);opacity:.7;cursor:not-allowed}.class-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.class-card-title{font-size:19px;font-weight:700;color:var(--text)}.class-card-sub{font-size:13px;color:var(--text-secondary);margin-top:4px}.status-pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-pill.now{background:var(--primary-bg);color:var(--primary)}.status-pill.soon{background:var(--surface);color:var(--text-secondary)}.status-pill.done{background:var(--success-bg);color:var(--success)}.class-dots{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}.class-dot{width:26px;height:26px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;display:grid;place-items:center;border:1px solid var(--border);color:var(--text-secondary);background:var(--bg)}.class-dot.ready{border-color:var(--primary);color:var(--primary)}.class-dot.done{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.banner-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}@media(max-width:560px){.banner-row{grid-template-columns:1fr}}.banner{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-muted);transition:border-color var(--transition),box-shadow var(--transition)}.banner:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.banner-icon{font-size:24px}.banner-title{font-weight:700;font-size:15px;color:var(--text)}.banner-desc{font-size:12px;color:var(--text-secondary)}.lesson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media(max-width:560px){.lesson-grid{grid-template-columns:1fr}}.lesson-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);padding:18px;display:flex;flex-direction:column;gap:8px;transition:border-color var(--transition),box-shadow var(--transition)}.lesson-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.lesson-card.disabled{background:var(--bg-muted);opacity:.65;cursor:not-allowed}.lesson-card-top{display:flex;align-items:center;justify-content:space-between}.lesson-num{font-size:12px;font-weight:700;color:var(--primary);letter-spacing:.5px}.lesson-date{font-size:11px;color:var(--text-secondary)}.lesson-title{font-size:16px;font-weight:700;color:var(--text)}.lesson-summary{font-size:13px;color:var(--text-secondary);line-height:1.5}.lesson-actions{display:flex;gap:8px;margin-top:6px}.lesson-actions a{font-size:13px;font-weight:600}.lesson-actions .learn{color:var(--text)}.lesson-actions .sep{color:var(--border)}.doc-breadcrumb{font-size:13px;color:var(--text-secondary);margin:14px 0 18px;display:flex;gap:8px;flex-wrap:wrap}.doc-breadcrumb a{color:var(--text-secondary)}.doc-breadcrumb a:hover{color:var(--primary)}.doc-hero{margin-bottom:8px}.doc-hero h1{font-size:28px;font-weight:700;margin:0 0 6px;letter-spacing:-.5px}.doc-hero-summary{color:var(--text-secondary);margin:0;font-size:15px}.doc-section{margin-top:40px;scroll-margin-top:20px}.doc-section-title{font-size:20px;font-weight:700;margin:0 0 14px;display:flex;align-items:baseline;gap:10px}.doc-section-num{font-size:12px;font-weight:700;color:#fff;background:var(--primary);border-radius:var(--radius-sm);padding:2px 7px;letter-spacing:.5px}.doc-section-lead{color:var(--text-secondary);font-size:14px;margin:-6px 0 14px}.ref-table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0;overflow:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.ref-table caption{caption-side:top;text-align:left;font-weight:700;font-size:14px;margin-bottom:8px;color:var(--text)}.ref-table th,.ref-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border)}.ref-table thead th{background:var(--surface);font-weight:700;font-size:13px}.ref-table tbody tr:last-child td{border-bottom:none}.ref-table tbody tr:nth-child(2n){background:var(--bg-muted)}.ref-table .rowhead{font-weight:700;background:var(--surface);white-space:nowrap}.table-scroll{overflow-x:auto}.examples{display:flex;flex-direction:column;gap:2px;margin:8px 0}.example{display:grid;grid-template-columns:1fr;gap:2px;padding:11px 14px;border-radius:var(--radius-md)}.example:nth-child(odd){background:var(--bg-muted)}.example-es{font-size:15px;font-weight:500}.example-ko{font-size:13px;color:var(--text-secondary)}.example-note{font-size:12px;color:var(--accent);margin-top:2px}:root[data-theme=dark] .example-note{color:var(--accent)}.vocab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}.vocab-cell{border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;background:var(--bg);display:flex;flex-direction:column;gap:2px}.vocab-cell-es{font-size:15px;font-weight:700;display:flex;align-items:center;gap:6px}.vocab-cell-pron{font-size:12px;color:var(--primary)}.vocab-cell-ko{font-size:13px;color:var(--text-secondary)}.note{border-left:3px solid var(--accent);background:var(--accent-bg);border-radius:var(--radius-sm);padding:12px 16px;margin:14px 0;font-size:14px}.note strong{color:var(--text)}.note.tip{border-left-color:var(--primary);background:var(--primary-bg)}.v{border-bottom:1.5px dotted var(--primary);cursor:help;font-weight:600;color:inherit;white-space:nowrap}.v:hover,.v:focus{background:var(--primary-bg);border-radius:3px}#v-popover{position:absolute;z-index:100;max-width:280px;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 14px;font-size:14px;line-height:1.5;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}#v-popover.show{opacity:1;transform:translateY(0);pointer-events:auto}.vp-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.vp-es{font-size:17px;font-weight:700}.vp-pron{font-size:13px;color:var(--primary)}.vp-ko{color:var(--text)}.vp-forms{margin-top:8px;display:flex;flex-direction:column;gap:3px}.vp-form{font-size:13px}.vp-form-label{font-weight:700;margin-right:6px}.vp-note{margin-top:8px;font-size:12px;color:var(--text-secondary);border-top:1px solid var(--border);padding-top:7px}.vp-todo{font-size:11px;color:var(--accent);margin-top:6px}.tts-btn{border:none;background:var(--surface);border-radius:var(--radius-pill);width:24px;height:24px;font-size:12px;display:inline-grid;place-items:center;color:var(--text);flex-shrink:0}.tts-btn:hover{background:var(--primary);color:#fff}.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.lesson-nav a{flex:1;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;transition:border-color var(--transition)}.lesson-nav a:hover{border-color:var(--primary)}.lesson-nav .nav-dir{font-size:12px;color:var(--text-secondary)}.lesson-nav .nav-title{font-weight:700;color:var(--text);font-size:14px}.lesson-nav .next{text-align:right}.review-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:36px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--primary-bg);border:1px solid var(--primary)}.review-cta-text{font-weight:700;color:var(--text)}.review-cta-sub{font-size:13px;color:var(--text-secondary);font-weight:400}.toc{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 8px}.toc a{font-size:13px;padding:5px 12px;border-radius:var(--radius-pill);background:var(--surface);color:var(--text-secondary);font-weight:600}.toc a:hover{background:var(--primary);color:#fff}.mode-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}.mode-tab{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-pill);padding:9px 16px;font-weight:600;font-size:14px;color:var(--text)}.mode-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.mode-tab .count{opacity:.7;font-size:12px;margin-left:4px}.fc-stage{perspective:1200px}.fc-card{position:relative;width:100%;min-height:240px;cursor:pointer;transform-style:preserve-3d;transition:transform .45s;margin:0 auto}.fc-card.flipped{transform:rotateY(180deg)}.fc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;box-shadow:var(--shadow-md)}.fc-back{transform:rotateY(180deg)}.fc-es{font-size:34px;font-weight:700}.fc-pron{font-size:16px;color:var(--primary)}.fc-ko{font-size:24px;font-weight:600}.fc-sub{font-size:14px;color:var(--text-secondary)}.fc-hint{font-size:12px;color:var(--text-disabled);margin-top:8px}.fc-controls{display:flex;gap:10px;justify-content:center;margin-top:20px}.fc-controls .know{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);border-radius:var(--radius-pill);padding:11px 22px;font-weight:700}.fc-controls .dont{background:var(--error-bg);color:var(--error);border:1px solid var(--error-border);border-radius:var(--radius-pill);padding:11px 22px;font-weight:700}.fc-progress{text-align:center;font-size:13px;color:var(--text-secondary);margin-bottom:14px}.fc-dir-toggle{display:flex;justify-content:center;margin-bottom:16px}.quiz-progress-row{display:flex;align-items:center;gap:12px;margin-bottom:18px}.quiz-bar{display:flex;gap:4px;flex:1}.quiz-seg{height:6px;flex:1;border-radius:3px;background:var(--surface)}.quiz-seg.answered{background:var(--primary)}.quiz-seg.current{background:var(--accent)}.quiz-counter{font-size:13px;color:var(--text-secondary);white-space:nowrap}.badge{font-size:12px;font-weight:700;padding:3px 9px;border-radius:var(--radius-pill)}.badge-correct{background:var(--success-bg);color:var(--success)}.badge-wrong{background:var(--error-bg);color:var(--error)}.q-prompt{font-size:18px;font-weight:600;margin:6px 0 18px;line-height:1.5}.q-prompt .q-num{color:var(--primary);margin-right:6px}.options{display:flex;flex-direction:column;gap:10px}.option{text-align:left;border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-md);padding:13px 16px;font-size:15px;transition:border-color var(--transition),background var(--transition);width:100%}.option:not(:disabled):hover{border-color:var(--primary)}.option.correct{border-color:var(--success-border);background:var(--success-bg)}.option.wrong{border-color:var(--error-border);background:var(--error-bg)}.option-row{display:flex;gap:10px;align-items:baseline}.option-label{font-weight:700;color:var(--text-secondary)}.option-feedback{margin-top:8px;font-size:13px;color:var(--text-secondary)}.option-feedback-label{font-weight:700}.option.correct .option-feedback-label{color:var(--success)}.option.wrong .option-feedback-label{color:var(--error)}.quiz-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.drill-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;background:var(--bg);box-shadow:var(--shadow-sm)}.drill-prompt{font-size:16px;color:var(--text-secondary);margin-bottom:6px}.drill-subject{font-size:28px;font-weight:700;text-align:center;margin:8px 0 4px}.drill-meta{text-align:center;font-size:14px;color:var(--text-secondary);margin-bottom:18px}.drill-input{width:100%;font-size:22px;text-align:center;padding:12px;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit}.drill-input:focus{outline:none;border-color:var(--primary)}.drill-input.correct{border-color:var(--success);background:var(--success-bg)}.drill-input.wrong{border-color:var(--error);background:var(--error-bg)}.drill-answer{text-align:center;margin-top:14px;font-size:15px}.drill-answer .sol{font-weight:700;color:var(--success)}.drill-options{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.drill-opt{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-md);padding:12px 20px;font-size:17px;font-weight:600;min-width:80px}.drill-opt:not(:disabled):hover{border-color:var(--primary)}.drill-opt.correct{border-color:var(--success);background:var(--success-bg);color:var(--success)}.drill-opt.wrong{border-color:var(--error);background:var(--error-bg);color:var(--error)}.result{text-align:center;padding:36px 0}.result-score{font-size:52px;font-weight:700;color:var(--primary)}.result-message{font-size:18px;margin:8px 0 18px}.result-badges{display:flex;gap:10px;justify-content:center;margin-bottom:24px}.result-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty h2{color:var(--text)}.vocab-search{width:100%;padding:12px 16px;font-size:15px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);color:var(--text);font-family:inherit;margin-bottom:8px}.vocab-search:focus{outline:none;border-color:var(--primary)}.vocab-count{font-size:13px;color:var(--text-secondary);margin:0 0 18px}.vocab-row{display:flex;align-items:baseline;gap:12px;padding:11px 4px;border-bottom:1px solid var(--border)}.vocab-row.hidden{display:none}.vocab-row-es{font-size:16px;font-weight:700;min-width:130px;display:flex;align-items:center;gap:6px}.vocab-row-pron{font-size:13px;color:var(--primary);min-width:90px}.vocab-row-ko{font-size:14px;color:var(--text-secondary);flex:1}.vocab-row-tag{font-size:11px;color:var(--text-disabled)}.hint-toggle{background:none;border:none;color:var(--primary);font-weight:600;font-size:13px;padding:4px 0}.muted{color:var(--text-secondary)}.center{text-align:center}
