:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.file-upload-section{border-bottom:2px solid #e0e7ff;margin-bottom:3rem;padding-bottom:2rem}.upload-title{color:#2d5a3d;text-align:center;margin-bottom:1.5rem;font-size:1.3rem;font-weight:600}.drop-zone{text-align:center;cursor:pointer;background-color:#fefce8;border:2px dashed #84cc16;border-radius:12px;padding:2.5rem 1.5rem;transition:all .3s}.drop-zone:hover{background-color:#fef08a;border-color:#65a30d;box-shadow:0 8px 16px #84cc161f}.drop-zone.dragging{background-color:#fef3c7;border-color:#65a30d;transform:scale(1.02);box-shadow:0 12px 24px #84cc1633}.drop-zone-content{flex-direction:column;align-items:center;gap:.75rem;display:flex}.drop-icon{font-size:2.5rem;display:block}.drop-text{color:#2d5a3d;margin:0;font-size:1rem;font-weight:500}.drop-subtext{color:#6b7280;margin:0;font-size:.9rem}.browse-button{color:#fff;cursor:pointer;background-color:#84cc16;border:none;border-radius:8px;margin-top:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s}.browse-button:hover{background-color:#65a30d;transform:translateY(-2px);box-shadow:0 6px 12px #84cc1633}.browse-button:active{transform:translateY(0)}.feedback-message{text-align:center;border-radius:8px;margin-top:1rem;padding:1rem;font-weight:500;animation:.3s slideIn}.feedback-message.success{color:#166534;background-color:#dcfce7;border:1px solid #86efac}.feedback-message.error{color:#991b1b;background-color:#fee2e2;border:1px solid #fecaca}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.file-upload-section{margin-bottom:2rem;padding-bottom:1.5rem}.upload-title{margin-bottom:1.2rem;font-size:1.1rem}.drop-zone{padding:2rem 1rem}.drop-icon{font-size:2rem}.drop-text{font-size:.95rem}}@media (width<=480px){.file-upload-section{margin-bottom:1.5rem}.drop-zone{padding:1.5rem 1rem}.drop-icon{font-size:1.8rem}.drop-text{font-size:.9rem}.browse-button{padding:.6rem 1.2rem;font-size:.9rem}}.login-container{background:linear-gradient(135deg,#f0f9ff 0%,#fef3f2 50%,#f0fdf4 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem;display:flex}.login-content{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:400px;padding:2rem;box-shadow:0 4px 20px #2d5a3d1a}.login-content h1{color:#2d5a3d;letter-spacing:-.02em;margin-bottom:1rem;font-size:2rem;font-weight:700}.login-content p{color:#6b7280;margin-bottom:2rem;font-size:1rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-input{text-align:center;color:#2d5a3d;background:#fefce8;border:2px solid #e0e7ff;border-radius:12px;padding:1rem 1.5rem;font-size:1.1rem;font-weight:500;transition:all .3s}.login-input:focus{background:#fff;border-color:#84cc16;outline:none;box-shadow:0 0 0 3px #84cc161a}.login-button{color:#fff;cursor:pointer;background-color:#84cc16;border:none;border-radius:12px;margin:0 auto;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s;display:block}.login-button:hover{background-color:#65a30d;transform:translateY(-2px);box-shadow:0 6px 12px #84cc1633}.login-error{color:#991b1b;background-color:#fee2e2;border-radius:8px;margin-top:1rem;padding:.75rem;font-size:.95rem;font-weight:500}.mode1-container{background:linear-gradient(135deg,#f0f9ff 0%,#fef3f2 50%,#f0fdf4 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem;display:flex}.mode1-content{text-align:center;width:100%;max-width:600px;padding:0 1rem}.mode1-content h1{color:#2d5a3d;letter-spacing:-.02em;margin-bottom:2rem;font-size:2rem;font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mode1-container{padding:1rem}.mode1-content h1{margin-bottom:1.5rem;font-size:1.5rem}.question-section{padding:1.5rem}.question{margin-bottom:1.5rem;font-size:2.2rem}.answer-input{padding:.8rem 1.2rem;font-size:1.1rem}.answer-input{font-size:1rem}.submit-button,.next-button{padding:.7rem 1.2rem;font-size:.95rem}.mode2-container{background:linear-gradient(135deg,#f0f9ff 0%,#fef3f2 50%,#f0fdf4 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem;display:flex}.mode2-content{text-align:center;width:100%;max-width:600px;padding:0 1rem}.mode2-content h1{color:#2d5a3d;letter-spacing:-.02em;margin-bottom:2rem;font-size:2rem;font-weight:700}.question-points{color:#6b7280;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;padding:.25rem .75rem;font-size:1rem;font-weight:500}@media (width<=640px){.mode2-container{padding:1rem}.mode2-content h1{margin-bottom:1.5rem;font-size:1.5rem}.question-section{padding:1.5rem}.question{margin-bottom:1.5rem;font-size:2rem}.answer-input{padding:.8rem 1.2rem;font-size:1.1rem}.submit-button,.next-button{padding:.8rem 1.5rem;font-size:1rem}}@media (width<=480px){.question{font-size:1.6rem}.answer-input{font-size:1rem}.submit-button,.next-button{padding:.7rem 1.2rem;font-size:.95rem}}.mode3-container{background:linear-gradient(135deg,#f8f4ff 0%,#f3f4ff 50%,#eff6ff 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem;display:flex}.mode3-content{text-align:center;width:100%;max-width:600px;padding:0 1rem}.mode3-content h1{color:#1f2937;letter-spacing:-.02em;margin-bottom:2rem;font-size:2rem;font-weight:700}.question-section{background:#fff;border-radius:16px;margin-bottom:2rem;padding:2rem;box-shadow:0 4px 20px #0f172a14}.question{color:#111827;letter-spacing:.05em;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:2.5rem;font-weight:800;display:flex}.input-section{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.answer-input{text-align:center;color:#111827;background:#f8fafc;border:2px solid #dbeafe;border-radius:12px;padding:1rem 1.5rem;font-size:1.2rem;font-weight:600;transition:all .3s}.answer-input:focus{background:#fff;border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.answer-input::placeholder{color:#6b7280;font-weight:400}.submit-button{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:12px;margin:0 auto;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s;display:block}.submit-button:hover:not(:disabled){background-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 6px 12px #2563eb33}.submit-button:disabled{cursor:not-allowed;background-color:#cbd5e1;transform:none}.feedback{border-radius:8px;margin:1.5rem 0;padding:1rem;font-size:1.1rem;font-weight:600;animation:.3s slideIn}.feedback.correct{color:#166534;background-color:#dcfce7;border:1px solid #86efac}.feedback.incorrect{color:#991b1b;background-color:#fee2e2;border:1px solid #fecaca}.feedback.error{color:#92400e;background-color:#fef3c7;border:1px solid #fcd34d}.correct-answer{opacity:.9;margin-top:.5rem;font-size:1rem;font-weight:500}.next-button{color:#fff;cursor:pointer;background-color:#10b981;border:none;border-radius:12px;margin:1rem auto 0;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s;display:block}.next-button:hover{background-color:#059669;transform:translateY(-2px);box-shadow:0 6px 12px #10b98133}.back-button{color:#fff;background-color:#6b7280;border-radius:8px;margin-top:1rem;padding:.75rem 1.5rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-block}.back-button:hover{background-color:#4b5563;transform:translateY(-1px)}.loading-state{background:#fff;border-radius:16px;padding:3rem 2rem;box-shadow:0 4px 20px #0f172a14}.loading-state p{color:#6b7280;margin-bottom:1rem;font-size:1.2rem}.auto-next-message{color:#0c4a6e;background-color:#e0f2fe;border-radius:8px;margin-top:1rem;padding:.75rem;font-size:.95rem;font-weight:500;animation:.3s fadeIn}@media (width<=480px){.mode3-content h1{margin-bottom:1.5rem;font-size:1.5rem}.question{font-size:2rem}.answer-input{font-size:1rem}.submit-button,.next-button{padding:.8rem 1.5rem;font-size:1rem}}*{box-sizing:border-box}.app-container{background:linear-gradient(135deg,#f0f9ff 0%,#fef3f2 50%,#f0fdf4 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem;display:flex}.content{text-align:center;width:100%;max-width:600px;padding:0 1rem}.header{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.title{color:#2d5a3d;letter-spacing:-.02em;white-space:nowrap;margin:0;font-size:2.5rem;font-weight:700}.logout-button{color:#fff;cursor:pointer;background-color:#6b7280;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .3s}.data-buttons{justify-content:center;gap:1rem;margin-bottom:2rem;display:flex}.data-button{cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s}.save-button{color:#fff;background-color:#10b981}.save-button:hover{background-color:#059669;transform:translateY(-2px);box-shadow:0 6px 12px #10b98133}.load-button{color:#fff;background-color:#3b82f6}.load-button:hover{background-color:#2563eb;transform:translateY(-2px);box-shadow:0 6px 12px #3b82f633}.button-container{flex-direction:column;gap:1.5rem;display:flex}.mode-button{color:#2d5a3d;cursor:pointer;background:#fff;border:2px solid #e0e7ff;border-radius:16px;flex-direction:column;gap:.5rem;padding:1.8rem 2rem;font-size:1.2rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 12px #2d5a3d14}.mode-button:hover{background:#fefce8;border-color:#84cc16;transform:translateY(-4px);box-shadow:0 12px 24px #84cc1626}.mode-button:active{transform:translateY(-2px);box-shadow:0 6px 12px #84cc161a}.button-label{color:#2d5a3d;font-size:1.2rem;font-weight:700;display:block}.button-description{color:#6b7280;opacity:.85;font-size:.9rem;font-weight:400;display:block}.mode-button-link{text-decoration:none;display:block}.mode-button-link .mode-button{width:100%}.progress-indicator{color:#84cc16;background-color:#84cc161a;border:1px solid #84cc1633;border-radius:4px;margin-top:.5rem;padding:.25rem .5rem;font-size:.8rem;font-weight:600;display:block}.data-status{color:#166534;background-color:#dcfce7;border:1px solid #86efac;border-radius:8px;margin-top:2rem;padding:.75rem 1rem;font-size:.95rem;font-weight:500;animation:.3s slideIn}@media (width<=640px){.app-container{width:100vw;padding:1.5rem 1rem}.content{width:100%;max-width:100%}.title{white-space:normal;margin-bottom:2.5rem;font-size:1.8rem}.button-container{gap:1.2rem}.mode-button{padding:1.5rem;font-size:1.1rem}}@media (width<=480px){.title{margin-bottom:2rem;font-size:1.6rem}.mode-button{border-radius:12px;padding:1.2rem}.button-label{font-size:1rem}.button-description{font-size:.8rem}}
