:root{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: rgba(17, 24, 39, .85);--bg-glass: rgba(255, 255, 255, .04);--border-glass: rgba(255, 255, 255, .08);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #6366f1;--accent-glow: rgba(99, 102, 241, .3);--correct: #10b981;--correct-bg: rgba(16, 185, 129, .12);--correct-border: rgba(16, 185, 129, .4);--incorrect: #ef4444;--incorrect-bg: rgba(239, 68, 68, .12);--incorrect-border: rgba(239, 68, 68, .4);--gradient-1: linear-gradient(135deg, #6366f1, #8b5cf6, #a855f7);--gradient-2: linear-gradient(135deg, #0ea5e9, #6366f1);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 2px 8px rgba(0,0,0,.2);--shadow-md: 0 4px 20px rgba(0,0,0,.3);--shadow-lg: 0 8px 40px rgba(0,0,0,.4);--question-font-size: 112px;--option-font-size: 92px;--furigana-ratio: 1.4;--furigana-gap: .4em;--transition: .3s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,Noto Sans JP,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;position:relative}.bg-particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.bg-particles:before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.08) 0%,transparent 70%);top:-200px;right:-200px;animation:floatBlob 20s ease-in-out infinite}.bg-particles:after{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(168,85,247,.06) 0%,transparent 70%);bottom:-150px;left:-150px;animation:floatBlob 25s ease-in-out infinite reverse}@keyframes floatBlob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}body:has(.edit-modal.active,.settings-panel.active,.map-modal.active) .bg-particles:before,body:has(.edit-modal.active,.settings-panel.active,.map-modal.active) .bg-particles:after{animation-play-state:paused}body:has(.edit-modal.active,.settings-panel.active,.map-modal.active){overflow:hidden}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#0a0e1ae6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-glass)}.header-left{display:flex;align-items:center;gap:12px}.logo{display:flex;align-items:center;gap:10px}.logo-icon{font-size:28px}.logo-text h1{font-size:16px;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.logo-sub{font-size:11px;color:var(--text-muted)}.header-center{flex:1;max-width:300px;margin:0 20px}.progress-wrapper{display:flex;align-items:center;gap:10px}.progress-bar{flex:1;height:6px;background:var(--bg-glass);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-1);border-radius:3px;transition:width .5s ease;width:0%}.progress-text{font-size:12px;color:var(--text-muted);white-space:nowrap;font-weight:500}.header-right{display:flex;align-items:center;gap:12px}.score-display{display:flex;gap:8px}.score-item{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:600}.score-item.correct{background:var(--correct-bg);color:var(--correct)}.score-item.incorrect{background:var(--incorrect-bg);color:var(--incorrect)}.score-icon{font-size:11px}.btn-icon{width:36px;height:36px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-icon:hover{background:#ffffff14;color:var(--text-primary)}.settings-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none}.settings-panel.active{display:block}.settings-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-content{position:absolute;right:0;top:0;bottom:0;width:320px;background:var(--bg-secondary);border-left:1px solid var(--border-glass);padding:24px;overflow-y:auto;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.settings-header h3{font-size:18px}.btn-close{width:32px;height:32px;border-radius:8px;border:none;background:var(--bg-glass);color:var(--text-secondary);cursor:pointer;font-size:16px;transition:var(--transition)}.btn-close:hover{background:var(--incorrect-bg);color:var(--incorrect)}.setting-group{margin-bottom:20px}.setting-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:8px;font-weight:500}.font-size-control{display:flex;align-items:center;gap:12px}.btn-sm{width:36px;height:36px;border-radius:8px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;transition:var(--transition)}.btn-sm:hover{background:#6366f126;border-color:var(--accent)}.font-size-value{font-size:14px;font-weight:600;color:var(--accent);min-width:40px;text-align:center}.toggle-switch{position:relative}.toggle-switch input{display:none}.toggle-label{display:block;width:48px;height:26px;border-radius:13px;background:var(--bg-glass);border:1px solid var(--border-glass);cursor:pointer;position:relative;transition:var(--transition)}.toggle-label:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:var(--text-secondary);top:2px;left:2px;transition:var(--transition)}.toggle-switch input:checked+.toggle-label{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-label:after{transform:translate(22px);background:#fff}.btn-reset{width:100%;padding:10px;border-radius:10px;border:1px solid var(--incorrect-border);background:var(--incorrect-bg);color:var(--incorrect);cursor:pointer;font-size:14px;font-weight:500;transition:var(--transition)}.btn-reset:hover{background:#ef444433}.main-content{position:relative;z-index:1;max-width:1800px;margin:0 auto;padding:24px 12px 140px}.content-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:24px;align-items:start}.content-left{min-width:0}.content-right{min-width:0;position:sticky;top:80px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}.content-right::-webkit-scrollbar{width:6px}.content-right::-webkit-scrollbar-thumb{background:var(--border-glass);border-radius:3px}.content-right::-webkit-scrollbar-thumb:hover{background:#ffffff26}.result-placeholder{background:var(--bg-card);border:1px dashed var(--border-glass);border-radius:var(--radius-xl);padding:40px 24px;text-align:center;color:var(--text-muted)}.result-placeholder.hidden{display:none}.placeholder-icon{font-size:48px;margin-bottom:12px;opacity:.6}.placeholder-text{font-size:16px;line-height:1.6}.placeholder-text strong{color:var(--text-secondary)}.question-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-xl);padding:36px 32px;margin-bottom:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.question-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-1)}.question-badge-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px;flex-wrap:wrap}.question-badge{display:inline-flex;align-items:baseline;gap:6px;padding:6px 16px;border-radius:22px;background:#6366f11a;border:1px solid rgba(99,102,241,.2)}.question-actions{display:flex;gap:6px}.btn-q-action{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-primary);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-q-action:hover{background:#ffffff14;transform:translateY(-1px)}.btn-q-action.danger:hover{background:#ef444426;border-color:#ef444466}.btn-q-action.ai.gemini{background:linear-gradient(135deg,#6366f12e,#a855f72e);border-color:#a855f759}.btn-q-action.ai.gemini:hover{background:linear-gradient(135deg,#6366f14d,#a855f74d);border-color:#a855f799;box-shadow:0 0 12px #a855f74d}.btn-q-action.ai.groq{background:linear-gradient(135deg,#f9731633,#ea580c33);border-color:#f9731673}.btn-q-action.ai.groq:hover{background:linear-gradient(135deg,#f9731659,#ea580c59);border-color:#f97316bf;box-shadow:0 0 12px #f9731659}.api-key-input{width:100%;padding:10px 12px;box-sizing:border-box;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:8px;color:var(--text-primary);font-family:Inter,monospace;font-size:13px;transition:border-color .15s ease}.api-key-input:focus{outline:none;border-color:var(--accent)}.api-key-hint{font-size:11px;color:var(--text-muted);margin-top:6px;line-height:1.5}.api-key-hint a{color:var(--accent);text-decoration:none}.api-key-hint a:hover{text-decoration:underline}.api-key-row{display:flex;align-items:center;gap:8px;margin-top:10px}.api-key-model-label{font-size:12px;color:var(--text-muted);flex-shrink:0;margin:0!important}.api-key-select{flex:1;padding:8px 10px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:8px;color:var(--text-primary);font-size:12px;cursor:pointer;font-family:Inter,sans-serif}.api-key-select:focus{outline:none;border-color:var(--accent)}.ai-review-box{display:none;margin-bottom:16px;background:var(--bg-card);border:1px solid var(--ai-accent, rgba(168,85,247,.35));border-radius:var(--radius-xl);overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 24px var(--ai-glow, rgba(168,85,247,.12));animation:fadeSlideUp .3s ease}.ai-review-box.active{display:block}.ai-review-box:before{content:"";display:block;height:3px;background:var(--ai-bar, linear-gradient(135deg, #6366f1, #a855f7, #ec4899))}.ai-review-box.provider-gemini{--ai-accent: rgba(168,85,247,.35);--ai-glow: rgba(168,85,247,.12);--ai-bar: linear-gradient(135deg, #6366f1, #a855f7, #ec4899);--ai-title-grad: linear-gradient(135deg, #a855f7, #ec4899);--ai-reason-accent: rgba(168,85,247,.5);--ai-reason-bg: rgba(168,85,247,.05);--ai-spinner: rgba(168,85,247,.25);--ai-spinner-top: #a855f7}.ai-review-box.provider-groq{--ai-accent: rgba(249,115,22,.45);--ai-glow: rgba(249,115,22,.18);--ai-bar: linear-gradient(135deg, #f97316, #ea580c, #dc2626);--ai-title-grad: linear-gradient(135deg, #f97316, #ea580c);--ai-reason-accent: rgba(249,115,22,.55);--ai-reason-bg: rgba(249,115,22,.07);--ai-spinner: rgba(249,115,22,.25);--ai-spinner-top: #f97316}.ai-review-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-glass)}.ai-review-title{font-size:14px;font-weight:700;background:var(--ai-title-grad, linear-gradient(135deg, #a855f7, #ec4899));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.02em}.ai-review-close{width:26px;height:26px;border-radius:7px;border:none;background:var(--bg-glass);color:var(--text-muted);cursor:pointer;font-size:13px;transition:var(--transition)}.ai-review-close:hover{background:var(--incorrect-bg);color:var(--incorrect)}.ai-review-body{padding:14px 16px}.ai-verdict{display:inline-block;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.02em;margin-bottom:12px}.ai-verdict.ok{background:var(--correct-bg);color:var(--correct);border:1px solid var(--correct-border)}.ai-verdict.bad{background:var(--incorrect-bg);color:var(--incorrect);border:1px solid var(--incorrect-border)}.ai-verdict.warn{background:#eab3081f;color:#fbbf24;border:1px solid rgba(234,179,8,.35)}.ai-suggested{font-size:14px;color:var(--text-secondary);margin-bottom:10px;padding:8px 12px;background:var(--bg-glass);border-radius:8px}.ai-suggested .ai-key{color:var(--text-muted);font-size:12px}.ai-suggested strong{color:var(--accent);font-size:16px;margin-left:4px}.ai-reason{font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--ai-reason-bg, rgba(168,85,247,.05));border-left:3px solid var(--ai-reason-accent, rgba(168,85,247,.5));padding:10px 12px;border-radius:8px;white-space:pre-wrap}.ai-reason a{color:var(--accent)}.ai-review-model{font-size:11px;color:var(--text-muted);margin-top:10px;text-align:right;font-family:monospace}.ai-loading{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:14px;padding:8px 0}.ai-spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--ai-spinner, rgba(168,85,247,.25));border-top-color:var(--ai-spinner-top, #a855f7);animation:aiSpin .8s linear infinite}@keyframes aiSpin{to{transform:rotate(360deg)}}.map-cell.deleted{opacity:.4;background:#ef44440d;border-color:#ef44444d;text-decoration:line-through}.map-cell.deleted:hover{opacity:.7}.edit-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:none}.edit-modal.active{display:block}.edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9}.edit-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:92%;max-width:800px;max-height:88vh;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-xl);display:flex;flex-direction:column;animation:editFadeIn .2s ease-out;contain:layout paint;will-change:opacity}@keyframes editFadeIn{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.edit-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border-glass)}.edit-header h3{font-size:16px;margin:0}.edit-qid{color:var(--accent);font-weight:700}.edit-body{padding:18px 24px;overflow-y:auto;flex:1}.edit-hint{font-size:12px;color:var(--text-muted);margin-bottom:14px;padding:8px 12px;background:#6366f10d;border-radius:8px;border-left:3px solid var(--accent)}.edit-hint code{background:#6366f126;padding:1px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}.edit-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin:12px 0 6px}.edit-label.sub{margin-top:6px;font-weight:500;opacity:.8}.edit-input{width:100%;padding:10px 12px;box-sizing:border-box;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:8px;color:var(--text-primary);font-family:Inter,Noto Sans JP,sans-serif;font-size:13px;resize:none;transition:border-color .15s ease}textarea.edit-input{resize:vertical;min-height:38px}.edit-input:focus{outline:none;border-color:var(--accent)}.edit-row{display:flex;align-items:center;gap:12px;margin-top:12px}.edit-row .edit-label{margin:0}.edit-answer-radios{display:flex;gap:12px}.edit-answer-radios label{display:inline-flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;padding:4px 10px;border-radius:6px;border:1px solid var(--border-glass);background:var(--bg-glass)}.edit-answer-radios input[type=radio]:checked+*{color:var(--accent)}.edit-answer-radios label:has(input:checked){background:#6366f126;border-color:var(--accent);color:var(--accent)}.edit-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}@media (max-width: 600px){.edit-options-grid{grid-template-columns:1fr}}.edit-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-top:1px solid var(--border-glass);gap:8px;flex-wrap:wrap}.edit-footer-right{display:flex;gap:8px}.btn-edit-restore,.btn-edit-cancel,.btn-edit-save{padding:9px 18px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;transition:var(--transition)}.btn-edit-restore:hover,.btn-edit-cancel:hover{background:#ffffff14}.btn-edit-save{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-edit-save:hover{background:var(--accent-hover, #5358db)}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%) translateY(20px);background:#22c55ef2;color:#fff;padding:12px 24px;border-radius:12px;font-size:14px;font-weight:600;z-index:999;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 8px 24px #0000004d;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{background:#ef4444f2}.toast.info{background:#6366f1f2}.override-status{font-size:12px;color:var(--text-muted);margin:6px 0 10px}.btn-reset.secondary{background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-primary)}.btn-reset.secondary:hover{background:#ffffff14}.badge-number{font-size:16px;font-weight:700;color:var(--accent)}.badge-total{font-size:13px;color:var(--text-muted)}.badge-difficulty{font-size:11px;font-weight:700;padding:3px 10px;border-radius:10px;margin-left:8px;letter-spacing:.3px}.badge-difficulty:empty{display:none}.badge-difficulty.easy{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.badge-difficulty.hard{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.question-text{font-size:var(--question-font-size);line-height:2.4;color:var(--text-primary);font-family:Noto Sans JP,sans-serif;word-break:keep-all}.question-text ruby{font-weight:500;ruby-position:over;ruby-align:center}.question-text rt{font-size:calc(.42em * var(--furigana-ratio));color:var(--accent);font-weight:400;letter-spacing:.02em;padding-bottom:var(--furigana-gap);line-height:1}.blank-slot{display:inline-block;min-width:2.4em;border-bottom:3px dashed var(--accent);margin:0 6px;text-align:center;color:var(--accent);font-weight:600}body.hide-furigana .question-text rt,body.hide-furigana .option-text rt{visibility:hidden}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.option-wrap{display:flex;flex-direction:column;gap:8px}.option-explain{display:none;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-glass);font-size:18px;line-height:1.55;color:var(--text-secondary);font-family:Inter,Noto Sans JP,sans-serif}.option-explain.visible{display:block;animation:fadeSlideUp .3s ease}.option-explain.correct{background:#10b98112;border-color:#10b98159}.option-explain.wrong{background:#ef44440f;border-color:#ef444447}.option-explain .oe-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;margin-bottom:8px;text-transform:uppercase}.option-explain.correct .oe-tag{background:var(--correct-bg);color:var(--correct)}.option-explain.wrong .oe-tag{background:var(--incorrect-bg);color:var(--incorrect)}.option-explain .oe-body{color:var(--text-primary)}.option-explain .oe-body ruby rt{font-size:.55em;color:var(--accent)}.option-btn{display:flex;align-items:center;gap:18px;padding:22px 24px;background:var(--bg-card);border:2px solid var(--border-glass);border-radius:var(--radius-lg);cursor:pointer;transition:all .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;position:relative;overflow:hidden;min-height:88px}.option-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-1);opacity:0;transition:opacity .3s ease}.option-btn:hover:not(:disabled){border-color:#6366f166;transform:translateY(-1px)}.option-btn:hover:not(:disabled):before{opacity:.05}.option-btn.selected{border-color:var(--accent);background:#6366f114}.option-btn.selected .option-label{background:var(--accent);color:#fff}.option-btn.correct-answer{border-color:var(--correct)!important;background:var(--correct-bg)!important;animation:pulseCorrect .5s ease}.option-btn.wrong-answer{border-color:var(--incorrect)!important;background:var(--incorrect-bg)!important;animation:pulseWrong .5s ease}.option-btn.correct-answer .option-label{background:var(--correct);color:#fff}.option-btn.wrong-answer .option-label{background:var(--incorrect);color:#fff}.option-btn:disabled{cursor:default}@keyframes pulseCorrect{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes pulseWrong{0%{transform:scale(1)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}to{transform:scale(1)}}.option-label{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--border-glass);transition:var(--transition);position:relative;z-index:1}.option-text{font-size:var(--option-font-size);font-family:Noto Sans JP,sans-serif;color:var(--text-primary);position:relative;z-index:1;line-height:2.2}.option-text ruby{ruby-position:over;ruby-align:center}.option-text rt{font-size:calc(.42em * var(--furigana-ratio));color:var(--accent);padding-bottom:var(--furigana-gap);line-height:1;font-weight:400}.action-buttons{display:flex;justify-content:center;margin-bottom:20px}.btn-submit{display:inline-flex;align-items:center;gap:10px;padding:16px 48px;border-radius:14px;border:none;background:var(--gradient-1);color:#fff;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px var(--accent-glow);font-family:Inter,sans-serif;letter-spacing:.02em}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px var(--accent-glow)}.btn-submit:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-submit:active:not(:disabled){transform:translateY(0)}.result-panel{display:none;margin-bottom:20px;animation:fadeSlideUp .4s ease}.result-panel.active{display:block}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--radius-md);margin-bottom:14px;font-weight:600;font-size:17px}.result-header.correct{background:var(--correct-bg);border:1px solid var(--correct-border);color:var(--correct)}.result-header.incorrect{background:var(--incorrect-bg);border:1px solid var(--incorrect-border);color:var(--incorrect)}.result-icon{font-size:22px}.explanation-box{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:18px 20px;font-size:36px;line-height:1.5;color:var(--text-secondary);margin-bottom:14px}.explanation-box .exp-item{margin-bottom:6px;padding:8px 12px;border-radius:8px}.explanation-box .exp-item.highlight{background:#10b98114;border-left:3px solid var(--correct)}.explanation-box .exp-grammar{font-weight:600;color:var(--text-primary);font-family:Noto Sans JP,sans-serif}.translation-box{text-align:left}.translation-content{display:none;padding:18px 20px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.15);border-radius:var(--radius-md);font-size:38px;color:#7dd3fc;line-height:1.5}.translation-content.active{display:block;animation:fadeSlideUp .3s ease}.nav-buttons{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.btn-nav{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;transition:var(--transition);font-family:Inter,sans-serif}.btn-nav:hover:not(:disabled){background:#ffffff14;color:var(--text-primary)}.btn-nav:disabled{opacity:.3;cursor:not-allowed}.nav-center{display:flex;align-items:center;gap:8px}.btn-nav-mini{width:36px;height:36px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-secondary);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-nav-mini:hover{background:#ffffff14}.question-jump{display:flex;align-items:center;gap:4px}.question-jump input{width:90px;height:36px;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-primary);text-align:center;font-size:14px;font-family:Inter,sans-serif;outline:none;padding:0 8px}.question-jump input::placeholder{color:var(--text-muted)}.question-jump input:focus{border-color:var(--accent)}.map-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none}.map-modal.active{display:block}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:90%;max-width:600px;max-height:80vh;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-xl);padding:24px;overflow-y:auto;animation:fadeSlideUp .3s ease}.map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.map-header h3{font-size:16px}.map-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.map-cell{aspect-ratio:1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-muted);cursor:pointer;transition:var(--transition)}.map-cell:hover{background:#ffffff14}.map-cell.current{border-color:var(--accent);background:#6366f126;color:var(--accent)}.map-cell.answered-correct{background:var(--correct-bg);border-color:var(--correct-border);color:var(--correct)}.map-cell.answered-wrong{background:var(--incorrect-bg);border-color:var(--incorrect-border);color:var(--incorrect)}.map-cell.current.answered-correct,.map-cell.current.answered-wrong{box-shadow:0 0 0 2px var(--accent),0 0 10px #6366f180}.map-cell.hard:after{content:"難";position:absolute;top:-2px;right:-2px;font-size:9px;color:#f87171;font-weight:700;background:#ef444426;border-radius:50%;padding:1px 3px;line-height:1;border:1px solid rgba(239,68,68,.3)}.map-cell{position:relative}.map-cell.filtered-out{opacity:.3;pointer-events:none}.btn-floating{position:fixed;bottom:24px;right:24px;z-index:50;width:52px;height:52px;border-radius:16px;border:1px solid var(--border-glass);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:var(--transition)}.btn-floating:hover{transform:translateY(-2px);background:#6366f126;color:var(--accent)}@media (max-width: 1200px){:root{--question-font-size: 80px;--option-font-size: 66px}.explanation-box{font-size:24px}.translation-content{font-size:26px}.option-explain{font-size:15px}.main-content{max-width:100%;padding:20px 10px 110px}}@media (max-width: 1000px){.content-grid{grid-template-columns:1fr;gap:16px}.content-right{position:static;max-height:none;overflow:visible}.result-placeholder{display:none}}@media (max-width: 700px){:root{--question-font-size: 60px;--option-font-size: 50px}.explanation-box{font-size:18px;padding:14px 16px}.translation-content{font-size:19px;padding:14px 16px}.option-explain{font-size:14px;padding:10px 12px}.app-header{padding:10px;flex-wrap:wrap;gap:8px}.header-center{order:3;flex-basis:100%;max-width:none;margin:4px 0 0}.logo-text h1{font-size:14px}.main-content{padding:14px 8px 100px}.question-card{padding:22px 16px}.question-text{line-height:2.3}.options-grid{grid-template-columns:1fr;gap:12px}.option-btn{padding:18px 16px;min-height:72px}.option-label{width:40px;height:40px;font-size:16px}.btn-submit{padding:16px 40px;font-size:18px}.map-grid{grid-template-columns:repeat(8,1fr)}.nav-buttons{flex-wrap:wrap;gap:8px;justify-content:center}.settings-content{width:100%}.result-header{font-size:16px}}
