:root{--primary:#58cc02;--primary-deep:#46a302;--primary-light:#d7ffb8;--secondary:#1cb0f6;--secondary-deep:#1899d6;--secondary-light:#ddf4ff;--warning:#ff9600;--warning-deep:#d97d00;--warning-light:#fff3d6;--danger:#ff4b4b;--danger-deep:#ea2b2b;--danger-light:#ffdfe0;--purple:#af70e6;--purple-deep:#8f55c2;--dark:#23313d;--gray-100:#f7f9fa;--gray-200:#e5e5e5;--gray-300:#cecece;--gray-500:#777777;--gray-700:#4b4b4b;--white:#ffffff;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--shadow-sm:0 2px 0 var(--gray-200);--shadow-md:0 4px 0 var(--gray-200);--shadow-lg:0 8px 24px rgba(0,0,0,0.08);--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--header-height:72px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--gray-100);color:var(--dark);line-height:1.5;min-height:100vh;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;overflow-x:hidden}@media print{body{display:none !important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:0.8px;border-radius:var(--radius-md);border:none;cursor:pointer;transition:transform 0.1s ease,box-shadow 0.1s ease,background-color 0.2s ease;outline:none}.btn:active{transform:translateY(2px)}.btn-primary{background-color:var(--primary);color:var(--white);box-shadow:0 4px 0 var(--primary-deep)}.btn-primary:hover{background-color:#61e002}.btn-primary:active{box-shadow:0 2px 0 var(--primary-deep)}.btn-secondary{background-color:var(--secondary);color:var(--white);box-shadow:0 4px 0 var(--secondary-deep)}.btn-secondary:hover{background-color:#2ec1ff}.btn-secondary:active{box-shadow:0 2px 0 var(--secondary-deep)}.btn-warning{background-color:var(--warning);color:var(--white);box-shadow:0 4px 0 var(--warning-deep)}.btn-warning:hover{background-color:#ffa41c}.btn-warning:active{box-shadow:0 2px 0 var(--warning-deep)}.btn-danger{background-color:var(--danger);color:var(--white);box-shadow:0 4px 0 var(--danger-deep)}.btn-danger:hover{background-color:#ff5e5e}.btn-danger:active{box-shadow:0 2px 0 var(--danger-deep)}.btn-ghost{background-color:var(--white);color:var(--gray-700);border:2px solid var(--gray-200);box-shadow:0 4px 0 var(--gray-200)}.btn-ghost:hover{background-color:#f0f2f5}.btn-ghost:active{box-shadow:0 2px 0 var(--gray-200)}.app-header{height:var(--header-height);background-color:var(--white);border-bottom:2px solid var(--gray-200);position:sticky;top:0;z-index:50;display:flex;align-items:center}.header-container{width:100%;max-width:1320px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.brand-wrapper{display:flex;align-items:center;gap:12px}.brand-badge{width:44px;height:44px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:900;font-size:22px;box-shadow:0 3px 0 var(--primary-deep)}.brand-title{font-size:19px;font-weight:900;color:var(--dark);letter-spacing:-0.3px}.brand-subtitle{font-size:11px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.5px}.header-controls{display:flex;align-items:center;gap:16px}.timer-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:var(--gray-100);border:2px solid var(--gray-200);border-radius:var(--radius-full);font-size:16px;font-weight:800;color:var(--gray-700);box-shadow:0 2px 0 var(--gray-200);font-variant-numeric:tabular-nums}.timer-badge.warning{background-color:var(--danger-light);border-color:var(--danger);color:var(--danger-deep);animation:pulse 1s infinite alternate}@keyframes pulse{0%{transform:scale(1)}100%{transform:scale(1.05)}}.icon-btn{width:42px;height:42px;border-radius:var(--radius-full);border:2px solid var(--gray-200);background-color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 0 var(--gray-200);color:var(--gray-700);transition:all 0.1s ease}.icon-btn:hover{background-color:var(--gray-100)}.icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--gray-200)}.main-content{flex:1;max-width:1320px;width:100%;margin:0 auto;padding:24px 20px}.screen{display:none}.screen.active{display:block}.auth-card{max-width:480px;margin:40px auto;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:var(--shadow-md);text-align:center}.auth-icon{width:72px;height:72px;margin:0 auto 20px;background-color:var(--secondary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--secondary);box-shadow:0 4px 0 rgba(28,176,246,0.2)}.auth-title{font-size:24px;font-weight:900;margin-bottom:8px;color:var(--dark)}.auth-desc{font-size:14px;color:var(--gray-500);margin-bottom:28px}.form-group{margin-bottom:20px;text-align:left}.form-label{display:block;font-size:13px;font-weight:800;color:var(--gray-700);text-transform:uppercase;margin-bottom:8px}.input-wrapper{position:relative;display:flex;align-items:center}.form-input{width:100%;padding:14px 16px;font-size:16px;font-weight:600;border:2px solid var(--gray-200);border-radius:var(--radius-md);background-color:var(--gray-100);color:var(--dark);outline:none;transition:all 0.2s ease}.form-input:focus{border-color:var(--secondary);background-color:var(--white);box-shadow:0 0 0 3px rgba(28,176,246,0.2)}.auth-error{display:none;margin-top:14px;padding:10px 14px;background-color:var(--danger-light);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger-deep);font-size:13px;font-weight:700;text-align:center}.auth-error.show{display:block;animation:shake 0.35s ease}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}.intro-card{max-width:680px;margin:30px auto;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:var(--shadow-md)}.intro-header{text-align:center;margin-bottom:28px}.intro-title{font-size:26px;font-weight:900;color:var(--dark);margin-bottom:8px}.intro-subtitle{font-size:15px;color:var(--gray-500)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.info-box{background-color:var(--gray-100);border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:16px 12px;text-align:center}.info-val{font-size:22px;font-weight:900;color:var(--secondary-deep)}.info-lbl{font-size:12px;font-weight:800;color:var(--gray-500);text-transform:uppercase}.rules-list{background-color:#fbfbfc;border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:18px 22px;margin-bottom:30px;font-size:14px;color:var(--gray-700)}.rules-list li{margin-bottom:10px;line-height:1.5}.rules-list li:last-child{margin-bottom:0}.cat-container{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}.question-panel{background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:32px 28px;display:flex;flex-direction:column;min-height:520px}.question-meta{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;margin-bottom:22px;border-bottom:2px dashed var(--gray-200)}.q-badge{background-color:var(--secondary-light);color:var(--secondary-deep);font-size:13px;font-weight:800;padding:6px 14px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:0.5px}.q-category{font-size:13px;font-weight:700;color:var(--gray-500)}.q-text{font-size:18px;font-weight:600;color:var(--dark);line-height:1.6;margin-bottom:28px}.options-list{display:flex;flex-direction:column;gap:14px;margin-bottom:36px;flex:1}.option-item{display:flex;align-items:center;gap:16px;padding:14px 18px;background-color:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-md);box-shadow:0 3px 0 var(--gray-200);cursor:pointer;transition:all 0.15s ease}.option-item:hover{background-color:#f7fafc;border-color:var(--gray-300)}.option-item.selected{background-color:var(--secondary-light);border-color:var(--secondary);box-shadow:0 4px 0 var(--secondary-deep)}.option-key{width:36px;height:36px;border-radius:50%;background-color:var(--gray-100);border:2px solid var(--gray-300);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;color:var(--gray-700);flex-shrink:0;transition:all 0.15s ease}.option-item.selected .option-key{background-color:var(--secondary);border-color:var(--secondary-deep);color:var(--white)}.option-text{font-size:15px;font-weight:500;color:var(--dark)}.panel-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:20px;border-top:2px solid var(--gray-200);margin-top:auto}.nav-sidebar{background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:24px;position:sticky;top:calc(var(--header-height) + 24px)}.nav-title{font-size:16px;font-weight:900;color:var(--dark);margin-bottom:14px;text-align:center}.legend-row{display:flex;justify-content:space-between;padding:10px 8px;background-color:var(--gray-100);border-radius:var(--radius-sm);margin-bottom:18px;font-size:11px;font-weight:800;text-transform:uppercase}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:12px;height:12px;border-radius:4px}.dot-answered,.dot-correct{background-color:var(--primary)}.dot-doubt{background-color:var(--warning)}.dot-unanswered,.dot-empty{background-color:var(--white);border:1px solid var(--gray-300)}.dot-wrong{background-color:var(--danger)}.q-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px;max-height:400px;overflow-y:auto;overflow-x:hidden;padding:6px 6px 8px 6px;box-sizing:border-box}.grid-item{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;border-radius:var(--radius-sm);border:2px solid var(--gray-200);background-color:var(--white);color:var(--gray-700);cursor:pointer;box-shadow:0 2px 0 var(--gray-200);transition:transform 0.1s ease,box-shadow 0.1s ease;position:relative}.grid-item:hover{transform:translateY(-2px)}.grid-item.active{border-color:var(--secondary) !important;outline:3px solid var(--secondary) !important;outline-offset:1px !important}.grid-item.answered{background-color:var(--primary);border-color:var(--primary-deep);color:var(--white);box-shadow:0 2px 0 var(--primary-deep)}.grid-item.doubt{background-color:var(--warning);border-color:var(--warning-deep);color:var(--white);box-shadow:0 2px 0 var(--warning-deep)}.grid-item.correct{background-color:var(--primary) !important;border-color:var(--primary-deep) !important;color:var(--white) !important;box-shadow:0 2px 0 var(--primary-deep) !important}.grid-item.wrong{background-color:var(--danger) !important;border-color:var(--danger-deep) !important;color:var(--white) !important;box-shadow:0 2px 0 var(--danger-deep) !important}.grid-item.empty{background-color:var(--white) !important;border-color:var(--gray-300) !important;color:var(--gray-500) !important;box-shadow:0 2px 0 var(--gray-200) !important}.option-switch-card{background-color:var(--gray-100);border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:14px 18px;margin-bottom:24px}.switch-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.switch-info{display:flex;flex-direction:column;padding-right:12px}.switch-title{font-size:15px;font-weight:800;color:var(--dark)}.switch-desc{font-size:12px;font-weight:600;color:var(--gray-500);margin-top:2px}.toggle-wrapper{position:relative;width:52px;height:30px;flex-shrink:0}.toggle-checkbox{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--gray-300);transition:0.2s;border-radius:var(--radius-full);box-shadow:inset 0 2px 4px rgba(0,0,0,0.1)}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:white;transition:0.2s;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,0.2)}.toggle-checkbox:checked + .toggle-slider{background-color:var(--primary)}.toggle-checkbox:checked + .toggle-slider:before{transform:translateX(22px)}.restore-banner{display:none;background-color:var(--secondary-light);border:2px solid var(--secondary);border-radius:var(--radius-md);padding:12px 18px;margin-bottom:20px;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:var(--secondary-deep);animation:fadeIn 0.3s ease}.restore-banner.show{display:flex}.finish-btn-wrap{width:100%;padding:4px 2px 6px 2px}.finish-btn-wrap .btn{width:100%}.modal-backdrop{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(35,49,61,0.5);backdrop-filter:blur(4px);z-index:100;align-items:center;justify-content:center;padding:20px}.modal-backdrop.show{display:flex;animation:fadeIn 0.2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.modal-card{background:var(--white);border-radius:var(--radius-lg);max-width:480px;width:100%;padding:32px 28px;border:2px solid var(--gray-200);box-shadow:var(--shadow-lg);text-align:center;transform:scale(0.95);animation:modalPop 0.25s cubic-bezier(0.175,0.885,0.32,1.275) forwards}@keyframes modalPop{to{transform:scale(1)}}.modal-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background-color:var(--warning-light);display:flex;align-items:center;justify-content:center;color:var(--warning)}.modal-title{font-size:20px;font-weight:900;margin-bottom:8px}.modal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;text-align:center}.summary-col{background-color:var(--gray-100);padding:10px;border-radius:var(--radius-sm)}.summary-num{font-size:18px;font-weight:900}.summary-label{font-size:11px;font-weight:700;color:var(--gray-500);text-transform:uppercase}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-actions .btn{flex:1}.result-card{max-width:680px;margin:30px auto;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:40px 32px;box-shadow:var(--shadow-md);text-align:center}.trophy-badge{width:90px;height:90px;margin:0 auto 20px;background:linear-gradient(135deg,var(--warning),#ffd900);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 6px 0 var(--warning-deep)}.score-display{font-size:54px;font-weight:900;color:var(--primary-deep);line-height:1;margin-bottom:6px}.score-max{font-size:15px;font-weight:800;color:var(--gray-500);text-transform:uppercase;letter-spacing:1px;margin-bottom:24px}.result-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}.stat-item{padding:16px;border-radius:var(--radius-md);background-color:var(--gray-100);border:2px solid var(--gray-200)}.stat-item.correct{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary-deep)}.stat-item.wrong{background-color:var(--danger-light);border-color:var(--danger);color:var(--danger-deep)}.stat-item.empty{background-color:var(--gray-100);border-color:var(--gray-300);color:var(--gray-700)}.stat-val{font-size:26px;font-weight:900}.stat-lbl{font-size:12px;font-weight:800;text-transform:uppercase}.result-actions{display:flex;gap:16px;justify-content:center}.explanation-card{margin-top:24px;padding:18px 20px;background-color:#f6f3fc;border-left:5px solid var(--purple);border-radius:var(--radius-sm);text-align:left}.exp-title{font-size:13px;font-weight:800;text-transform:uppercase;color:var(--purple-deep);margin-bottom:6px}.exp-text{font-size:14px;color:var(--dark);line-height:1.5}.option-item.correct-ans{background-color:var(--primary-light) !important;border-color:var(--primary) !important;box-shadow:0 4px 0 var(--primary-deep) !important}.option-item.correct-ans .option-key{background-color:var(--primary) !important;border-color:var(--primary-deep) !important;color:var(--white) !important}.option-item.wrong-ans{background-color:var(--danger-light) !important;border-color:var(--danger) !important;box-shadow:0 4px 0 var(--danger-deep) !important}.option-item.wrong-ans .option-key{background-color:var(--danger) !important;border-color:var(--danger-deep) !important;color:var(--white) !important}@media (max-width:900px){.cat-container{grid-template-columns:1fr}.nav-sidebar{position:static}.info-grid,.result-stats-grid{grid-template-columns:1fr}}