:root{--bg-primary:#f0f0f0;--bg-secondary:#e4e4e4;--bg-tertiary:#d4d4d4;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-tertiary:#7a7a7a;--border-color:#b0b0b0;--border-color-light:silver;--accent:#0a8f08;--accent-hover:#0b6e09;--accent-light:#0caf0a;--success:#0a8f08;--error:#c00;--card-bg:#e8e8e8;--shadow:#00000026;--tag-bg:#d4d4d4;--subject-tag-bg:#c8e6c9;--subject-tag-color:#1b5e20;--year-tag-bg:#fff9c4;--year-tag-color:#6d4c00;--correct-bg:#c8e6c9;--correct-border:#66bb6a;--incorrect-bg:#ffcdd2;--incorrect-border:#ef5350;--unknown-bg:#fff9c4;--unknown-border:#ffca28;--unknown-color:#9e7700;--bookmark-color:#ff8f00;--bookmark-bg:#fff3e0;--bookmark-border:#ff8f00;--bookmark-text:#6d4c00;--memo-icon-color:#0a8f08;--subject-badge-bg:#2e7d32;--subject-badge-color:#fff;--disabled-bg:#b0b0b0;--input-bg:#f5f5f5;--select-bg:#f5f5f5;--disabled-input-bg:#e0e0e0}[data-theme=dark]{--bg-primary:#0a0a0a;--bg-secondary:#141414;--bg-tertiary:#1e1e1e;--text-primary:#00ff41;--text-secondary:#0c3;--text-tertiary:#009926;--border-color:#1a3a1a;--border-color-light:#244024;--accent:#00ff41;--accent-hover:#0c3;--accent-light:#3f6;--success:#00ff41;--error:#f33;--card-bg:#0f1a0f;--shadow:#00ff411a;--tag-bg:#1a2e1a;--subject-tag-bg:#0a2e0a;--subject-tag-color:#00ff41;--year-tag-bg:#2e2a0a;--year-tag-color:#fc0;--correct-bg:#0a2e0a;--correct-border:#00ff41;--incorrect-bg:#2e0a0a;--incorrect-border:#f33;--unknown-bg:#2e2a0a;--unknown-border:#fc0;--unknown-color:#fc0;--bookmark-color:#fc0;--bookmark-bg:#2e2a0a;--bookmark-border:#fc0;--bookmark-text:#fc0;--memo-icon-color:#00ff41;--subject-badge-bg:#00ff41;--subject-badge-color:#000;--disabled-bg:#333;--input-bg:#0f1a0f;--select-bg:#0f1a0f;--disabled-input-bg:#1a2e1a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Space Mono,monospace;transition:background-color .2s,color .2s}::selection{background-color:var(--accent);color:#000}[data-theme=dark] ::selection{color:#0a0a0a;background-color:#00ff41}[data-theme=dark] body:before{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#00000008 0 1px,#0000 1px 2px);width:100%;height:100%;position:fixed;top:0;left:0}[data-theme=dark] .glow-text{text-shadow:0 0 8px #00ff4166}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.terminal-cursor:after{content:"_";animation:1s step-end infinite blink}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:.3s fadeIn}.animate-slide-up{animation:.4s slideUp}.animate-scale-in{animation:.2s scaleIn}.animate-correct-pulse{animation:.3s correctPulse}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.animate-bar-grow{transform-origin:bottom;animation:.5s ease-out barGrow}@keyframes widthGrow{0%{width:0%}}.animate-width-grow{animation:.6s ease-out widthGrow}@keyframes bookmarkPulse{0%{transform:scale(1)}30%{transform:scale(1.06)}60%{transform:scale(.97)}to{transform:scale(1)}}.animate-bookmark-pulse{animation:.35s bookmarkPulse}@keyframes processingBlink{0%,to{opacity:1}50%{opacity:.4}}.animate-processing{animation:.6s infinite processingBlink}@keyframes selectFlash{0%{background-color:var(--accent);color:#000}to{background-color:var(--bg-tertiary)}}.animate-select-flash{animation:.3s selectFlash}.spinner{border:3px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}.card-hover{transition:box-shadow .2s,transform .15s}.card-hover:hover{box-shadow:0 4px 12px var(--shadow);transform:translateY(-1px)}.btn-primary:hover{filter:brightness(1.1)}.list-item-hover{transition:background-color .15s}.list-item-hover:hover{background-color:var(--bg-secondary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){box-shadow:none;outline:none}button:active{transform:scale(.98)}select{appearance:none;background-color:var(--select-bg);color:var(--text-primary);border:1px solid var(--border-color);padding:10px 12px;font-family:Space Mono,monospace}select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}select option{background-color:var(--bg-primary);color:var(--text-primary);font-family:Space Mono,monospace}input,textarea{background-color:var(--input-bg);color:var(--text-primary);border:1px solid var(--border-color);caret-color:var(--accent);font-family:Space Mono,monospace}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}button,a,input,select,textarea{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s}a:hover{opacity:.85}*{-webkit-tap-highlight-color:transparent}.tab-bar-safe{padding-bottom:env(safe-area-inset-bottom,0)}@media (width>=768px){[data-testid=question-body]{font-size:16px!important}}textarea[data-testid=memo-textarea]:focus{outline:none}@keyframes fireFlicker{0%,to{opacity:1;transform:scaleY(1)scaleX(1)}25%{opacity:.9;transform:scaleY(1.2)scaleX(.9)}50%{opacity:1;transform:scaleY(.85)scaleX(1.1)}75%{opacity:.85;transform:scaleY(1.1)scaleX(.95)}}@keyframes fireGlow{0%,to{text-shadow:0 0 4px #f60,0 0 8px #f40,0 0 12px #f20}50%{text-shadow:0 0 6px #f80,0 0 12px #f60,0 0 18px #f40}}@keyframes fireWave{0%{transform:rotate(-2deg)translateY(0)}25%{transform:rotate(1deg)translateY(-1px)}50%{transform:rotate(-1deg)translateY(-2px)}75%{transform:rotate(2deg)translateY(-1px)}to{transform:rotate(-2deg)translateY(0)}}.fire-sway{animation:1s ease-in-out infinite fireWave;display:inline-block}
