:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}.auth-page{background:#f8fafc;place-items:center;min-height:100vh;padding:48px 24px;display:grid}.auth-card{background:#fff;border-radius:8px;width:min(100%,460px);padding:48px 40px 36px;box-shadow:0 2px 14px #0f172a06}.auth-header{text-align:center;margin-bottom:30px}.brand{color:#2563eb;margin:0 0 28px;font-size:16px;font-weight:700}.auth-card h1{color:#111827;letter-spacing:-.02em;margin:0;font-size:30px;line-height:1.2}.subtitle{color:#9ca3af;margin:10px 0 0;font-size:13px;line-height:1.5}.field{margin-bottom:18px;display:block}.field>span{color:#111827;margin-bottom:8px;font-size:13px;font-weight:500;display:block}.field input{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:6px;outline:none;width:100%;height:48px;padding:0 14px;font-size:13px;transition:border-color .16s,box-shadow .16s}.field input::placeholder{color:#9ca3af}.field input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.field.validation-success input,.field.validation-success input:focus{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e1a}.field.validation-error input,.field.validation-error input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef444414}.validation-message{color:#ef4444;margin:6px 0 0;font-size:12px;line-height:1.4}.password-input{position:relative}.password-input input{padding-right:48px}.visibility-button{color:#2563eb;cursor:pointer;background:0 0;border:0;place-items:center;width:28px;height:28px;padding:0;display:grid;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.visibility-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:19px}.primary-button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;width:100%;height:48px;font-size:14px;font-weight:600;transition:background .16s,transform .16s}.primary-button:hover:not(:disabled){background:#1d4ed8}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:wait;opacity:.65}.switch-mode{color:#4b5563;text-align:center;margin:18px 0 0;font-size:12px}.switch-mode button{color:#111827;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.forgot-password-row{justify-content:flex-end;margin:-8px 0 18px;display:flex}.forgot-password-row button{color:#2563eb;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.form-message{border-radius:6px;margin:0 0 16px;padding:11px 12px;font-size:12px;line-height:1.5}.form-message.error{color:#991b1b;background:#fef2f2}.form-message.success{color:#166534;background:#ecfdf3}.dashboard-page{background:#f8fafc;min-height:100vh}.site-header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;height:72px;padding:0 48px;display:flex;position:relative}.mobile-menu-button{display:none}.header-brand{color:#111827;cursor:pointer;background:0 0;border:0;padding:0;font-size:16px;font-weight:700}.site-nav{align-items:center;gap:28px;display:flex}.site-nav button{color:#4b5563;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:500}.site-nav button.active{color:#111827}.site-nav button:hover{color:#2563eb}.dashboard-main{width:min(100% - 48px,1180px);margin:0 auto;padding:44px 0 64px}.dashboard-intro{margin-bottom:28px}.dashboard-intro h1{color:#111827;letter-spacing:-.02em;margin:0;font-size:28px;line-height:1.25}.dashboard-intro p{color:#9ca3af;margin:8px 0 0;font-size:13px}.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.dashboard-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-height:212px;padding:24px;box-shadow:0 1px 3px #0f172a06}.dashboard-card-icon{color:#2563eb;background:#eff6ff;border-radius:6px;place-items:center;width:36px;height:36px;margin-bottom:18px;display:grid}.dashboard-card-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:21px}.dashboard-card h2{color:#111827;margin:0;font-size:17px;line-height:1.35}.dashboard-card p{color:#9ca3af;min-height:38px;margin:7px 0 20px;font-size:13px;line-height:1.5}.dashboard-card button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;min-width:94px;height:38px;padding:0 18px;font-size:12px;font-weight:600}.dashboard-card button:hover{background:#1d4ed8}.dashboard-notice{color:#1e40af;background:#eff6ff;border-radius:6px;margin:-8px 0 22px;padding:10px 12px;font-size:13px}.quiz-main{width:min(100% - 48px,1100px);margin:0 auto;padding:34px 0 64px}.quiz-progress-row{color:#4b5563;align-items:center;gap:16px;margin-bottom:22px;font-size:13px;display:flex}.quiz-progress-track{background:#e5e7eb;border-radius:999px;width:210px;height:6px;overflow:hidden}.quiz-progress-track div{border-radius:inherit;background:#2563eb;height:100%;transition:width .18s}.question-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:28px}.question-card h1{color:#111827;margin:0 0 24px;font-size:19px;line-height:1.5}.answer-list{gap:12px;display:grid}.answer-option{color:#374151;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:16px;min-height:52px;padding:10px 16px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.answer-option:hover,.answer-option.selected{background:#eff6ff;border-color:#2563eb}.answer-option input{opacity:0;pointer-events:none;position:absolute}.answer-letter{color:#4b5563;background:#f3f4f6;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:grid}.answer-option.selected .answer-letter{color:#fff;background:#2563eb}.answer-option.locked{cursor:default}.answer-option.locked:not(.correct):not(.wrong):hover{background:#fff;border-color:#e5e7eb}.answer-option.correct{background:#f0fdf4;border-color:#22c55e}.answer-option.correct .answer-letter{color:#fff;background:#22c55e}.answer-option.wrong{background:#fef2f2;border-color:#ef4444}.answer-option.wrong .answer-letter{color:#fff;background:#ef4444}.quiz-next-button,.quiz-feedback-card button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;min-width:116px;height:42px;margin-top:20px;padding:0 18px;font-size:12px;font-weight:600}.quiz-next-button:disabled{cursor:not-allowed;opacity:.5}.quiz-status{color:#6b7280;font-size:14px}.quiz-feedback-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;max-width:560px;padding:32px}.quiz-feedback-card h1{color:#111827;margin:0;font-size:26px}.quiz-feedback-card p{color:#6b7280;line-height:1.6}.result-main{width:min(100% - 48px,460px);margin:0 auto;padding:48px 0 72px}.result-score-card,.result-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px}.result-score-card{text-align:center;padding:34px 32px 30px}.result-check{color:#fff;background:#2563eb;border-radius:50%;place-items:center;width:48px;height:48px;margin:0 auto 18px;display:grid}.result-check svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:24px}.result-score-card h1{color:#111827;margin:0;font-size:22px}.result-score{color:#111827;margin:10px 0 0;font-size:30px;font-weight:700;line-height:1.2}.result-encouragement{color:#9ca3af;margin:10px 0 20px;font-size:12px}.result-score-card>button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;min-width:132px;height:40px;padding:0 18px;font-size:12px;font-weight:600}.result-save-status,.result-save-error{margin:14px 0 0;font-size:11px;line-height:1.5}.result-save-status{color:#6b7280}.result-save-error{color:#b91c1c}.result-summary-card{margin-top:18px;padding:24px}.result-summary-card h2{color:#111827;margin:0 0 18px;font-size:16px}.result-summary-card dl{gap:14px;margin:0;display:grid}.result-summary-card dl div{justify-content:space-between;align-items:center;gap:18px;display:flex}.result-summary-card dt,.result-summary-card dd{margin:0;font-size:12px}.result-summary-card dt{color:#9ca3af}.result-summary-card dd{color:#111827;font-weight:500}@media (width<=560px){.auth-page{background:#fff;align-items:start;padding:24px 16px}.auth-card{width:100%;box-shadow:none;padding:54px 8px 30px}.auth-header{margin-bottom:28px}.brand{margin-bottom:24px}.auth-card h1{font-size:26px}.field{margin-bottom:16px}.field input,.primary-button{height:46px}.site-header{height:60px;padding:0 20px}.header-brand{font-size:15px}.mobile-menu-button{color:#111827;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:34px;height:34px;padding:0;display:grid}.mobile-menu-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:20px}.site-nav{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;align-items:stretch;gap:0;min-width:142px;padding:8px;display:none;position:absolute;top:calc(100% + 8px);right:16px;box-shadow:0 12px 28px #0f172a1f}.site-nav.mobile-open{display:flex}.site-nav button{text-align:left;border-radius:5px;width:100%;padding:10px 12px}.site-nav button:hover,.site-nav button.active{color:#1d4ed8;background:#eff6ff}.dashboard-main{width:min(100% - 32px,1180px);padding:28px 0 44px}.dashboard-intro h1{font-size:23px}.dashboard-intro{margin-bottom:22px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.dashboard-card{min-height:0;padding:20px}.dashboard-card-icon{margin-bottom:14px}.dashboard-card p{min-height:0;margin-bottom:16px}.quiz-main{width:min(100% - 32px,1100px);padding:24px 0 44px}.quiz-progress-row{flex-direction:column;align-items:flex-start;gap:10px}.quiz-progress-track{width:100%}.question-card{padding:20px 16px}.question-card h1{margin-bottom:20px;font-size:18px;line-height:1.45}.answer-option{gap:12px;min-height:54px;padding:10px 12px}.quiz-next-button{width:100%;height:46px;margin-top:18px}.result-main{width:min(100% - 32px,460px);padding:28px 0 44px}.result-score-card{padding:28px 20px 26px}.result-check{width:44px;height:44px;margin-bottom:16px}.result-score-card h1{font-size:21px}.result-score{font-size:28px}.result-score-card>button{width:100%;height:44px}.result-summary-card{margin-top:16px;padding:20px}}@media (width>=561px) and (width<=900px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
