:root{--color-bg: #f8f9fa;--color-surface: #ffffff;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-error: #dc2626;--color-error-bg: #fef2f2;--radius: 12px;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 12px rgba(0, 0, 0, .06)}[data-theme=light]{--color-bg: #f8f9fa;--color-surface: #ffffff;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-error: #dc2626;--color-error-bg: #fef2f2;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);color-scheme:light}[data-theme=dark]{--color-bg: #0f1117;--color-surface: #1a1b26;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-border: #2d3148;--color-error: #f87171;--color-error-bg: #2d1b1b;--color-success: #4ade80;--color-success-bg: #052e16;--color-warning: #fbbf24;--color-warning-bg: #2e2510;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 4px 12px rgba(0, 0, 0, .15);color-scheme:dark}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--color-surface);color:var(--color-text)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-bg: #0f1117;--color-surface: #1a1b26;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-border: #2d3148;--color-error: #f87171;--color-error-bg: #2d1b1b;--color-success: #4ade80;--color-success-bg: #052e16;--color-warning: #fbbf24;--color-warning-bg: #2e2510;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 4px 12px rgba(0, 0, 0, .15);color-scheme:dark}:root:not([data-theme]) input,:root:not([data-theme]) select,:root:not([data-theme]) textarea{background:var(--color-surface);color:var(--color-text)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;background:var(--color-bg);color:var(--color-text);line-height:1.65;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,.05);-webkit-text-size-adjust:100%}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-form{background:var(--color-surface);padding:2.5rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.25rem}.auth-form h1{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:.5rem}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted)}.auth-form input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;color:var(--color-text);transition:border-color .15s}.auth-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.auth-form button{padding:.7rem;border:none;border-radius:var(--radius);background:var(--color-primary);color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background .15s}.auth-form button:hover:not(:disabled){background:var(--color-primary-hover)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:var(--color-error-bg);color:var(--color-error);padding:.625rem .75rem;border-radius:var(--radius);font-size:.875rem}.auth-link{text-align:center;font-size:.875rem;color:var(--color-text-muted)}.auth-link a{color:var(--color-primary);text-decoration:none;font-weight:500}.auth-link a:hover{text-decoration:underline}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.125rem;color:var(--color-text-muted)}:root{--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-cs: #2563eb;--color-cg: #ea580c;--color-bg-muted: #f1f5f9;--color-bg-hover: #f8f9fa;--color-bg-detail: #fafbfc;--color-selected-bg: #eff6ff;--color-badge-cs-bg: #dbeafe;--color-badge-cg-bg: #fff7ed;--color-btn-secondary-hover: #d1d5db;--color-unanswered: #9ca3af}[data-theme=dark]{--color-cs: #60a5fa;--color-cg: #fb923c;--color-bg-muted: #1e2030;--color-bg-hover: #1e2030;--color-bg-detail: #1e2030;--color-selected-bg: #1e3a5f;--color-badge-cs-bg: #1e3a5f;--color-badge-cg-bg: #3b2810;--color-btn-secondary-hover: #3d4050;--color-unanswered: #6b7280}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-cs: #60a5fa;--color-cg: #fb923c;--color-bg-muted: #1e2030;--color-bg-hover: #1e2030;--color-bg-detail: #1e2030;--color-selected-bg: #1e3a5f;--color-badge-cs-bg: #1e3a5f;--color-badge-cg-bg: #3b2810;--color-btn-secondary-hover: #3d4050;--color-unanswered: #6b7280}}.page-error{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.125rem;color:var(--color-error);padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.25rem;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-btn-secondary-hover)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.chip-group{display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.375rem .875rem;border-radius:99px;border:1px solid var(--color-border);background:var(--color-surface);font-size:.8125rem;color:var(--color-text);cursor:pointer;transition:all .15s}.chip:hover{border-color:var(--color-primary)}.chip-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.type-badge{display:inline-block;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}.badge-cs{background:var(--color-badge-cs-bg);color:var(--color-cs)}.badge-cg{background:var(--color-badge-cg-bg);color:var(--color-cg)}.quiz-setup-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem}.setup-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;width:100%;max-width:720px}.setup-card h1{font-size:1.375rem;font-weight:600;margin-bottom:.25rem;letter-spacing:-.02em}.setup-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.5rem}.filter-section{margin-bottom:1.5rem}.filter-section h2{font-size:.9375rem;font-weight:600;margin-bottom:.625rem}.available-counts{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.875rem 1rem;background:var(--color-bg-muted);border-radius:var(--radius);font-size:.875rem;margin-bottom:1.5rem}.setup-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.count-inputs{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.count-input-group{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted);flex:1;min-width:180px}.count-input-group input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;color:var(--color-text);width:100%}.count-input-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.count-max{font-size:.75rem;color:var(--color-text-muted)}.total-selected{font-size:.9375rem;margin-bottom:1rem}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-border);border-radius:22px;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;background:var(--color-surface);border-radius:50%;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.toggle-switch-sm{width:32px;height:18px}.toggle-switch-sm .toggle-slider:before{width:12px;height:12px}.toggle-switch-sm input:checked+.toggle-slider:before{transform:translate(14px)}.exam-mode-toggle{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;cursor:pointer}.exam-mode-hint{font-size:.8125rem;color:var(--color-text-muted);margin-top:.375rem}.hide-results-toggle{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;cursor:pointer;white-space:nowrap;color:var(--color-text-muted)}.question-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.75rem;border:1px solid var(--color-border)}.question-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.question-number{font-weight:600;font-size:1rem}.topic-label,.year-label,.page-label{font-size:.75rem;color:var(--color-text-muted);background:var(--color-bg-muted);padding:.125rem .5rem;border-radius:4px}.question-text{font-size:.9375rem;line-height:1.65;margin-bottom:1.25rem}.cg-statements{margin:0 0 1.25rem 1.25rem;font-size:.9375rem;line-height:1.65}.cg-statements li{margin-bottom:.25rem}.statement-correct{color:var(--color-success);font-weight:500}.choices-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.choice-row{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem .75rem;border-radius:var(--radius);border:1px solid var(--color-border);cursor:pointer;transition:border-color .15s,background .15s;font-size:.9375rem}.choice-row:hover:not(.choice-correct):not(.choice-wrong){border-color:var(--color-primary)}.choice-row input[type=radio]{margin-top:.2rem;flex-shrink:0}.choice-letter{font-weight:600;min-width:1.25rem;flex-shrink:0}.choice-text{flex:1}.choice-selected{border-color:var(--color-primary);background:var(--color-selected-bg)}.choice-correct{border-color:var(--color-success);background:var(--color-success-bg)}.choice-wrong{border-color:var(--color-error);background:var(--color-error-bg)}.correct-statements-info{padding:.625rem .75rem;background:var(--color-success-bg);border-radius:var(--radius);font-size:.875rem;color:var(--color-success);font-weight:500;margin-bottom:1rem}.question-actions{display:flex;gap:.75rem}.cg-info{margin-top:1rem}.cg-info-toggle{background:none;border:none;color:var(--color-primary);font-size:.8125rem;cursor:pointer;padding:.25rem 0;text-decoration:underline}.cg-info-table{margin-top:.5rem}.cg-info-table table{width:100%;border-collapse:collapse;font-size:.8125rem}.cg-info-table th,.cg-info-table td{padding:.375rem .5rem;border:1px solid var(--color-border);text-align:left}.cg-info-table th{background:var(--color-bg-muted);font-weight:600}.quiz-page{display:flex;min-height:100vh}.quiz-sidebar{width:240px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:1rem;overflow-y:auto;max-height:100vh;position:sticky;top:0}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.sidebar-header h3{font-size:.9375rem;font-weight:600}.sidebar-progress{font-size:.8125rem;color:var(--color-text-muted)}.question-nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.375rem}.nav-btn{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s}.nav-btn:hover{border-color:var(--color-primary)}.nav-current{border-color:var(--color-primary);background:var(--color-selected-bg);font-weight:700}.nav-answered{background:var(--color-bg-muted)}.nav-correct{background:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success)}.nav-wrong{background:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.quiz-main{flex:1;padding:1.5rem;max-width:800px}.quiz-top-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.quiz-progress-info{font-size:.875rem;font-weight:500;white-space:nowrap}.progress-bar{flex:1;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;min-width:100px}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s;border-radius:3px}.finish-btn{margin-left:auto}.submitting-overlay{text-align:center;padding:.5rem;color:var(--color-text-muted);font-size:.875rem}.quiz-nav-buttons{display:flex;justify-content:space-between;margin-top:1.25rem}.results-page{min-height:100vh;display:flex;justify-content:center;padding:2rem 1rem}.results-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;width:100%;max-width:800px}.results-card h1{font-size:1.375rem;font-weight:600;margin-bottom:1.5rem;letter-spacing:-.02em}.results-summary{text-align:center;margin-bottom:2rem}.score-display{font-size:2.5rem;font-weight:700;margin-bottom:.75rem}.score-divider{color:var(--color-text-muted);margin:0 .25rem}.score-total{color:var(--color-text-muted)}.accuracy-bar{height:10px;background:var(--color-border);border-radius:5px;overflow:hidden;margin-bottom:.5rem}.accuracy-fill{height:100%;border-radius:5px;transition:width .5s}.accuracy-label{font-size:1rem;font-weight:500;color:var(--color-text-muted);margin-bottom:.75rem}.results-meta{display:flex;justify-content:center;gap:1.5rem;font-size:.875rem;color:var(--color-text-muted)}.results-actions{display:flex;gap:.75rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.results-list-title{font-size:1rem;font-weight:600;margin-bottom:.75rem}.results-list{display:flex;flex-direction:column;gap:.25rem}.result-row{border-radius:var(--radius);border:1px solid var(--color-border);overflow:hidden}.result-row-header{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;cursor:pointer;font-size:.875rem;transition:background .1s}.result-row-header:hover{background:var(--color-bg-hover)}.result-correct{border-left:3px solid var(--color-success)}.result-wrong{border-left:3px solid var(--color-error)}.result-unanswered{border-left:3px solid var(--color-unanswered)}.result-position{font-weight:600;min-width:2rem;flex-shrink:0}.result-text-preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-answers{font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.result-expand{font-size:.625rem;color:var(--color-text-muted)}.result-row-detail{padding:.75rem 1rem;border-top:1px solid var(--color-border);background:var(--color-bg-detail)}.detail-question-text{font-size:.875rem;line-height:1.6;margin-bottom:.75rem}.detail-choices{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.detail-choice{padding:.375rem .5rem;border-radius:4px;font-size:.8125rem}.detail-correct{background:var(--color-success-bg);color:var(--color-success);font-weight:500}.detail-wrong{background:var(--color-error-bg);color:var(--color-error)}.detail-statements{font-size:.8125rem;color:var(--color-success);font-weight:500;margin-top:.5rem}.detail-time{font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.dashboard-page{max-width:900px;margin:0 auto;padding:2rem 1rem}.dash-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.dash-header h1{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.dash-subtitle{color:var(--color-text-muted);font-size:.875rem}.dash-empty{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:3rem 2rem;text-align:center}.dash-empty h2{font-size:1.25rem;margin-bottom:.5rem}.dash-empty p{color:var(--color-text-muted);margin-bottom:1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.stat-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-card-accent{background:var(--color-primary);color:#fff}.stat-card-accent .stat-label{color:#fffc}.stat-value{font-size:1.75rem;font-weight:700;line-height:1.2}.stat-label{font-size:.8125rem;color:var(--color-text-muted);text-align:center}.dash-section{margin-bottom:2rem}.dash-section-title{font-size:1.125rem;font-weight:600;margin-bottom:.75rem;letter-spacing:-.02em}.quick-actions{display:flex;gap:.75rem;flex-wrap:wrap}.resume-list{display:flex;flex-direction:column;gap:.5rem}.resume-card{display:flex;align-items:center;gap:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.resume-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow)}.resume-info{display:flex;flex-direction:column;min-width:140px}.resume-type{font-weight:600;font-size:.875rem}.resume-date{font-size:.75rem;color:var(--color-text-muted)}.resume-progress{flex:1;display:flex;align-items:center;gap:.5rem}.resume-progress-bar{flex:1;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.resume-progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s}.resume-progress-text{font-size:.8125rem;font-weight:600;white-space:nowrap;min-width:50px;text-align:right}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.stats-chart{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.stats-chart-title{font-size:1rem;font-weight:600;margin-bottom:1rem}.stats-chart-bars{display:flex;flex-direction:column;gap:.625rem}.bar-row{display:flex;align-items:center;gap:.75rem}.bar-label{min-width:130px;font-size:.8125rem;color:var(--color-text);text-align:right;flex-shrink:0}.bar-track{flex:1;height:14px;background:var(--color-border);border-radius:7px;overflow:hidden}.bar-fill{height:100%;border-radius:7px;transition:width .4s}.bar-pct{min-width:40px;font-size:.8125rem;font-weight:600;text-align:right;flex-shrink:0}.history-table-wrap{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;font-size:.875rem}.history-table th{background:var(--color-bg-muted);text-align:left;padding:.625rem .75rem;font-weight:600;font-size:.8125rem;color:var(--color-text-muted)}.history-table td{padding:.625rem .75rem;border-top:1px solid var(--color-border)}.history-row{cursor:pointer;transition:background .1s}.history-row:hover{background:var(--color-bg-hover)}.weak-list{display:flex;flex-direction:column;gap:.5rem}.weak-item{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:.875rem 1rem}.weak-text{font-size:.875rem;line-height:1.5;margin-bottom:.5rem}.weak-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.weak-rate{font-size:.8125rem;font-weight:600}.sidebar-toggle,.sidebar-close-btn,.sidebar-backdrop{display:none}@media(max-width:768px){.dashboard-page{padding:1.25rem .75rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0))}.dash-header{flex-direction:column;gap:.75rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{padding:1rem}.stat-value{font-size:1.5rem}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.quick-actions .btn{font-size:.8125rem;padding:.75rem .5rem;text-align:center;white-space:nowrap}.resume-card{flex-wrap:wrap;gap:.5rem;padding:.75rem}.resume-info{min-width:auto;flex:1}.resume-card .btn-sm{padding:.5rem 1rem}.bar-label{min-width:80px;font-size:.6875rem}.bar-row{gap:.5rem}.bar-pct{min-width:36px;font-size:.75rem}.bar-track{height:12px}.history-table{font-size:.8125rem}.history-table th,.history-table td{padding:.5rem}.quiz-page{flex-direction:column}.quiz-sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;max-height:65vh;overflow-y:auto;border-right:none;border-top:1px solid var(--color-border);z-index:200;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 24px #0000002e;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0));-webkit-overflow-scrolling:touch}.quiz-sidebar.sidebar-open{transform:translateY(0)}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;padding:.25rem;line-height:1;margin-left:auto}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:199;-webkit-tap-highlight-color:transparent}.sidebar-toggle{display:flex;align-items:center;gap:.375rem;position:fixed;bottom:calc(4.25rem + env(safe-area-inset-bottom,0));right:1rem;z-index:90;background:var(--color-primary);color:#fff;border:none;border-radius:99px;padding:.625rem 1rem;font-size:.8125rem;font-weight:600;cursor:pointer;box-shadow:0 2px 12px #2563eb66;transition:transform .15s,box-shadow .15s}.sidebar-toggle:active{transform:scale(.95)}.sidebar-toggle-grid{font-size:1.125rem;line-height:1}.question-nav-grid{grid-template-columns:repeat(8,1fr);gap:.3125rem}.nav-btn{min-height:38px;font-size:.8125rem;border-radius:6px}.quiz-main{padding:1rem .75rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom,0))}.quiz-top-bar{gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.quiz-progress-info{font-size:.8125rem}.finish-btn{margin-left:0;width:100%;order:3;padding:.625rem;font-size:.875rem}.quiz-nav-buttons{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.625rem .75rem;padding-bottom:calc(.625rem + env(safe-area-inset-bottom,0));margin-top:0;z-index:100;gap:.5rem}.quiz-nav-buttons .btn{flex:1;padding:.75rem;font-size:.9375rem}.question-card{padding:1rem}.question-header{gap:.5rem;margin-bottom:.75rem}.question-text{font-size:.9375rem;margin-bottom:1rem}.choice-row{padding:.75rem;font-size:.9375rem;gap:.5rem;min-height:44px}.choice-row input[type=radio]{width:18px;height:18px;margin-top:.125rem}.question-actions{flex-wrap:wrap}.question-actions .btn{flex:1;min-width:0;text-align:center}.chip{padding:.5rem 1rem;font-size:.875rem;min-height:40px;display:inline-flex;align-items:center}.count-inputs{flex-direction:column}.count-input-group input{padding:.625rem .75rem;font-size:1.0625rem}.setup-card{padding:1.25rem}.setup-actions{flex-direction:column-reverse;gap:.5rem}.setup-actions .btn{width:100%;padding:.75rem}.results-card{padding:1.25rem}.score-display{font-size:2rem}.results-meta{flex-wrap:wrap;gap:.75rem;font-size:.8125rem}.results-actions{flex-direction:column;gap:.5rem}.results-actions .btn{width:100%}.result-text-preview{display:none}.result-row-header{gap:.5rem;padding:.75rem}.result-position{min-width:1.75rem}.result-row-detail{padding:.75rem}.detail-question-text{font-size:.8125rem}.modal-content{padding:1.25rem;max-width:calc(100% - 1rem);max-height:calc(90vh - env(safe-area-inset-bottom,0))}.auth-form{padding:2rem 1.25rem}}@media(max-width:380px){.stats-grid{grid-template-columns:1fr 1fr;gap:.5rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.75rem}.question-nav-grid{grid-template-columns:repeat(6,1fr)}.quick-actions{grid-template-columns:1fr}.bar-label{min-width:65px;font-size:.625rem}.chip{padding:.4375rem .75rem;font-size:.8125rem}.dash-section-title{font-size:1rem}}.theme-toggle{display:flex;background:var(--color-bg-muted);border-radius:8px;padding:3px;gap:2px}.theme-toggle-btn{padding:5px 9px;border-radius:6px;border:none;background:transparent;color:var(--color-text-muted);font-size:14px;cursor:pointer;transition:background .2s,color .2s;line-height:1}.theme-toggle-btn:hover{color:var(--color-text)}.theme-toggle-active{background:var(--color-primary);color:#fff}.theme-toggle-active:hover{color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--color-surface);border-radius:var(--radius);box-shadow:0 4px 24px #0003;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;padding:1.5rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;padding:.25rem;line-height:1}.modal-close:hover{color:var(--color-text)}.report-context{background:var(--color-bg-muted);padding:.75rem 1rem;border-radius:var(--radius);font-size:.8125rem;color:var(--color-text-muted);margin-bottom:1rem;line-height:1.6}.report-context-label{font-weight:600;color:var(--color-text)}.report-field{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted);margin-bottom:1rem}.report-field select,.report-field textarea,.report-field input[type=file]{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem;color:var(--color-text);font-family:inherit}.report-field textarea{resize:vertical;min-height:80px}.report-field select:focus,.report-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.report-file-name{font-size:.75rem;color:var(--color-text-muted)}.report-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.report-success{padding:1.5rem;text-align:center;font-weight:500;color:var(--color-success);font-size:1rem}.report-flag-btn{background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:.125rem .25rem;margin-left:auto;opacity:.6;transition:opacity .15s,color .15s}.report-flag-btn:hover{opacity:1;color:var(--color-warning, #d97706)}.admin-page{max-width:900px;margin:0 auto;padding:2rem 1rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h1{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.admin-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:1.5rem}.admin-tab{background:none;border:none;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--color-text)}.admin-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.admin-tab-content{min-height:300px}.admin-filter-bar{display:flex;gap:.5rem;margin-bottom:1rem}.admin-pill{padding:.375rem .875rem;border-radius:99px;border:1px solid var(--color-border);background:var(--color-surface);font-size:.8125rem;color:var(--color-text);cursor:pointer;transition:all .15s}.admin-pill:hover{border-color:var(--color-primary)}.admin-pill-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.admin-loading{padding:2rem;text-align:center;color:var(--color-text-muted)}.admin-empty{padding:2rem;text-align:center;color:var(--color-text-muted);font-size:.9375rem}.admin-success{background:var(--color-success-bg);color:var(--color-success);padding:.625rem .75rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.admin-report-list{display:flex;flex-direction:column;gap:.5rem}.admin-report-row{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.admin-report-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;cursor:pointer;transition:background .1s}.admin-report-header:hover{background:var(--color-bg-hover)}.admin-report-info{display:flex;flex-direction:column;gap:.25rem}.admin-report-category{font-weight:500;font-size:.9375rem}.admin-report-question{font-size:.8125rem;color:var(--color-text-muted)}.admin-report-meta{font-size:.75rem;color:var(--color-text-muted)}.admin-report-actions{display:flex;gap:.5rem;flex-shrink:0}.admin-action-btn{background:none;border:1px solid var(--color-border);border-radius:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all .15s}.admin-action-resolve{color:var(--color-success)}.admin-action-resolve:hover{background:var(--color-success-bg);border-color:var(--color-success)}.admin-action-delete{color:var(--color-error)}.admin-action-delete:hover{background:var(--color-error-bg);border-color:var(--color-error)}.admin-report-detail{padding:1rem;border-top:1px solid var(--color-border);background:var(--color-bg-detail)}.admin-report-description{font-size:.9375rem;line-height:1.6;margin-bottom:1rem}.admin-report-screenshot{max-width:100%;max-height:300px;border-radius:var(--radius);border:1px solid var(--color-border);margin-bottom:1rem}.admin-question-context{background:var(--color-bg-muted);border-radius:var(--radius);padding:1rem}.admin-question-context h4{font-size:.875rem;font-weight:600;margin-bottom:.75rem}.admin-q-text{font-size:.875rem;line-height:1.6;margin-bottom:.75rem}.admin-q-choices{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.admin-q-choice{padding:.375rem .5rem;border-radius:4px;font-size:.8125rem}.admin-q-choice-correct{background:var(--color-success-bg);color:var(--color-success);font-weight:500}.admin-q-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.75rem;color:var(--color-text-muted)}.admin-file-info{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem}.admin-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.admin-info-item{display:flex;flex-direction:column;gap:.25rem}.admin-info-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.admin-info-value{font-size:1.125rem;font-weight:600}.admin-upload-section{margin-bottom:1.5rem}.admin-upload-btn{cursor:pointer}.admin-pdf-list{display:flex;flex-direction:column;gap:.25rem}.admin-pdf-row{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow)}.admin-pdf-name{flex:1;font-size:.875rem;font-weight:500}.admin-pdf-size{font-size:.8125rem;color:var(--color-text-muted);flex-shrink:0}@media(max-width:768px){.admin-page{padding:1.25rem .75rem}.admin-info-grid{grid-template-columns:1fr}.admin-report-header{flex-direction:column;align-items:flex-start;gap:.5rem}.admin-report-actions{align-self:flex-end}.admin-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-tab{padding:.625rem 1rem;font-size:.875rem;white-space:nowrap}.admin-pdf-row{flex-wrap:wrap;gap:.5rem;padding:.625rem .75rem}.admin-pdf-name{min-width:0;word-break:break-word}.admin-filter-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}}.toast{position:fixed;bottom:2rem;right:2rem;padding:.75rem 1.25rem;border-radius:10px;font-size:.9375rem;font-weight:600;z-index:1100;pointer-events:none;animation:toastIn .4s cubic-bezier(.34,1.56,.64,1) forwards;box-shadow:0 4px 16px #00000026}.toast-correct{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.toast-wrong{background:var(--color-warning-bg, #fffbeb);color:var(--color-warning, #d97706);border:1px solid var(--color-warning, #d97706)}.toast-exit{animation:toastOut .3s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@media(max-width:768px){.toast{bottom:calc(5rem + env(safe-area-inset-bottom,0));right:50%;transform:translate(50%);left:auto;white-space:nowrap}}} .confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1200;overflow:hidden}.confetti-particle{position:absolute;top:-10px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(100vh) translate(var(--drift, 0px)) rotate(calc(var(--rotation, 0deg) + 720deg));opacity:0}}.stat-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #0000000f,0 8px 20px #00000014}.weak-item,.resume-card,.stats-chart,.admin-report-row{border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.weak-item:hover,.stats-chart:hover{transform:translateY(-2px);box-shadow:0 2px 4px #0000000f,0 8px 20px #00000014}@media(prefers-reduced-motion:no-preference){@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes popIn{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes correctGlow{0%{box-shadow:0 0 #16a34a66}50%{box-shadow:0 0 0 8px #16a34a00}to{box-shadow:0 0 #16a34a00}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pulseGlow{0%,to{opacity:.7}50%{opacity:1}}@keyframes countUp{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.anim-fade-slide-up{opacity:0;animation:fadeSlideUp .4s ease-out forwards}.anim-bounce-in{opacity:0;animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1) forwards}.anim-slide-right{animation:slideInRight .3s ease-out}.anim-slide-left{animation:slideInLeft .3s ease-out}.anim-pop{animation:popIn .25s cubic-bezier(.34,1.56,.64,1)}.anim-correct-glow{animation:correctGlow .6s ease-out}.anim-shake{animation:shake .4s ease-in-out}.anim-count-up{animation:countUp .6s cubic-bezier(.34,1.56,.64,1) forwards}.btn:active:not(:disabled){transform:scale(.95);transition:transform .1s}.bar-fill{transition:width .6s cubic-bezier(.34,1.56,.64,1)}.anim-pulse{animation:pulseGlow 2s ease-in-out infinite}}.dash-messages{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.dash-message{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500}.dash-message-streak{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning)}.dash-message-improvement{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.dash-message-milestone{background:var(--color-badge-cs-bg);color:var(--color-cs);border:1px solid var(--color-cs)}.results-banner{text-align:center;padding:.875rem 1.25rem;border-radius:var(--radius);font-size:1rem;font-weight:600;margin-bottom:1.5rem}.results-banner-excellent{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.results-banner-good{background:var(--color-badge-cs-bg);color:var(--color-cs);border:1px solid var(--color-cs)}.results-banner-decent{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning)}.results-banner-encourage{background:var(--color-bg-muted);color:var(--color-text);border:1px solid var(--color-border)}
