*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #11457e;--color-primary-light: #1a5da8;--color-primary-dark: #0d3561;--color-success: #2e7d32;--color-success-bg: #e8f5e9;--color-success-border: #a5d6a7;--color-error: #c62828;--color-error-bg: #ffebee;--color-error-border: #ef9a9a;--color-warning: #e65100;--color-bg: #f5f7fa;--color-card: #ffffff;--color-text: #1a1a2e;--color-text-secondary: #546e7a;--color-border: #e0e0e0;--color-hover: #f0f4f8;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--radius: 8px;--radius-lg: 12px}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;min-width:320px}img{max-width:100%;height:auto}.app-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;padding:1.5rem 2rem;text-align:center;box-shadow:var(--shadow-md);position:static}.app-header h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.app-header p{font-size:.875rem;opacity:.85;margin-top:.25rem}.app-container{max-width:900px;margin:0 auto;padding:1.5rem}.start-screen{text-align:center;padding:3rem 1.5rem}.start-screen h2{font-size:1.75rem;margin-bottom:1rem;color:var(--color-primary)}.start-screen .description{color:var(--color-text-secondary);font-size:1rem;max-width:600px;margin:0 auto 2rem;line-height:1.8}.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.info-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.info-card .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:.25rem}.info-card .value{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 2rem;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:#388e3c;box-shadow:var(--shadow-md)}.btn-outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-lg{padding:1rem 3rem;font-size:1.125rem}.btn-sm{padding:.375rem .875rem;font-size:.8rem}.btn-danger{background:transparent;color:var(--color-error);border:2px solid var(--color-error)}.btn-danger:hover{background:var(--color-error);color:#fff}.exam-timer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--color-card);border:2px solid var(--color-primary);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1rem}.exam-timer .timer-icon{font-size:1.25rem}.exam-timer .timer-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary)}.exam-timer .timer-label{font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.exam-timer.warning{border-color:#f57c00;background:#fff3e0}.exam-timer.warning .timer-value{color:#e65100}.exam-timer.critical{border-color:var(--color-error);background:var(--color-error-bg);animation:timer-pulse 1s ease-in-out infinite}.exam-timer.critical .timer-value{color:var(--color-error)}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.6}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--color-card);border-radius:var(--radius-lg);padding:2.5rem 2rem;max-width:440px;width:100%;text-align:center;box-shadow:var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, .2))}.modal-icon{font-size:3rem;margin-bottom:1rem}.modal-title{font-size:1.5rem;font-weight:700;color:var(--color-error);margin-bottom:.75rem}.modal-text{color:var(--color-text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:1.5rem}.result-time{font-size:1.1rem;font-weight:600;color:var(--color-primary);margin-bottom:1.5rem}.history-cell-time{white-space:nowrap;font-variant-numeric:tabular-nums}.progress-section{margin-bottom:1.5rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.progress-header .label{font-size:.875rem;color:var(--color-text-secondary)}.progress-header .count{font-size:.875rem;font-weight:600;color:var(--color-primary)}.progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-primary-light) 100%);border-radius:4px;transition:width .3s ease}.question-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:1.5rem}.question-header{background:var(--color-hover);padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.question-number{font-weight:700;color:var(--color-primary);font-size:.875rem}.question-topic{font-size:.8rem;color:var(--color-text-secondary);font-style:italic}.question-body{padding:1.5rem}.question-text{font-size:1.1rem;font-weight:500;margin-bottom:1.25rem;line-height:1.6}.question-image{text-align:center;margin-bottom:1.25rem}.question-image img{max-height:280px;border-radius:var(--radius);border:1px solid var(--color-border)}.answers-list{list-style:none;display:flex;flex-direction:column;gap:.625rem}.answer-option{position:relative;border:2px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;overflow:hidden}.answer-option:hover:not(.disabled){border-color:var(--color-primary-light);background:var(--color-hover)}.answer-option.selected{border-color:var(--color-primary);background:#e3f2fd}.answer-option.correct{border-color:var(--color-success);background:var(--color-success-bg)}.answer-option.incorrect{border-color:var(--color-error);background:var(--color-error-bg)}.answer-option.disabled{cursor:default}.answer-option.show-correct{border-color:var(--color-success);background:var(--color-success-bg)}.answer-label{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;cursor:inherit;width:100%}.answer-letter{display:flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;border-radius:50%;background:var(--color-border);font-weight:700;font-size:.875rem;color:var(--color-text-secondary);transition:all .2s ease}.answer-option.selected .answer-letter{background:var(--color-primary);color:#fff}.answer-option.correct .answer-letter{background:var(--color-success);color:#fff}.answer-option.incorrect .answer-letter{background:var(--color-error);color:#fff}.answer-option.show-correct .answer-letter{background:var(--color-success);color:#fff}.answer-text{flex:1;font-size:.95rem}.answer-image-wrapper{flex:1}.answer-image-wrapper img{max-height:150px;border-radius:4px}.answer-result-icon{font-size:1.25rem;margin-left:auto}.image-answers-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.image-answers-grid .answer-label{flex-direction:column;text-align:center;padding:.75rem}.image-answers-grid .answer-image-wrapper{display:flex;align-items:center;justify-content:center}.image-answers-grid .answer-image-wrapper img{max-height:140px}.question-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.question-nav .btn{min-width:120px}.question-dots{display:flex;flex-wrap:wrap;gap:.375rem;justify-content:center;padding:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.question-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-card);cursor:pointer;font-size:.7rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--color-text-secondary)}.question-dot:hover{border-color:var(--color-primary);color:var(--color-primary)}.question-dot.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.question-dot.answered{background:#bbdefb;border-color:var(--color-primary-light);color:var(--color-primary)}.question-dot.correct-dot{background:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success)}.question-dot.incorrect-dot{background:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.evaluate-bar{text-align:center;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.evaluate-bar p{margin-bottom:1rem;color:var(--color-text-secondary);font-size:.9rem}.results-screen{text-align:center;padding:2rem 0}.result-badge{display:inline-flex;align-items:center;justify-content:center;width:140px;height:140px;border-radius:50%;margin-bottom:1.5rem;font-size:1rem;font-weight:700;line-height:1.3}.result-badge.passed{background:var(--color-success-bg);border:4px solid var(--color-success);color:var(--color-success)}.result-badge.failed{background:var(--color-error-bg);border:4px solid var(--color-error);color:var(--color-error)}.result-badge .score{font-size:2.5rem;display:block}.result-badge .out-of{font-size:.875rem;font-weight:400;opacity:.8}.result-status{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.result-status.passed{color:var(--color-success)}.result-status.failed{color:var(--color-error)}.result-detail{color:var(--color-text-secondary);margin-bottom:2rem;font-size:1rem}.result-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.results-breakdown{text-align:left;margin-top:2rem}.results-breakdown h3{font-size:1.25rem;margin-bottom:1rem;color:var(--color-primary)}.result-question-item{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.5rem;display:flex;align-items:flex-start;gap:.75rem}.result-question-item .result-icon{font-size:1.25rem;flex-shrink:0;margin-top:.1rem}.result-question-item .result-content{flex:1;min-width:0}.result-question-item .result-q-number{font-weight:700;color:var(--color-primary);font-size:.8rem}.result-question-item .result-q-text{font-size:.9rem;margin-top:.125rem}.result-question-item .result-q-answer{font-size:.8rem;margin-top:.25rem}.result-question-item .result-q-answer.wrong{color:var(--color-error)}.result-question-item .result-q-answer.right{color:var(--color-success)}.history-section{margin-top:3rem;text-align:left}.history-title{font-size:1.25rem;margin-bottom:1rem;color:var(--color-primary);text-align:center}.history-table-wrapper{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.history-table th,.history-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border);font-size:.9rem}.history-table th{background:var(--color-hover);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-weight:600}.history-table tbody tr:last-child td{border-bottom:none}.history-table tbody tr:hover{background:var(--color-hover)}.history-cell-num{color:var(--color-text-secondary);font-weight:600;width:2rem}.history-cell-date{white-space:nowrap}.history-cell-score{font-weight:600}.history-cell-actions{display:flex;gap:.5rem;white-space:nowrap}.history-badge{display:inline-block;padding:.2rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.history-badge.passed{background:var(--color-success-bg);color:var(--color-success)}.history-badge.failed{background:var(--color-error-bg);color:var(--color-error)}.review-screen{padding:1rem 0}.review-header{text-align:center;margin-bottom:1.5rem}.review-header h2{font-size:1.5rem;color:var(--color-primary);margin:1rem 0 .25rem}.review-subtitle{color:var(--color-text-secondary);font-size:.9rem}.review-controls{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.review-controls-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.review-control-group{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:160px}.review-control-group label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-weight:600}.review-select{padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--radius);font-size:.875rem;background:#fff;color:var(--color-text);cursor:pointer;transition:border-color .2s}.review-select:focus{outline:none;border-color:var(--color-primary)}.review-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);flex-wrap:wrap}.review-selection-info{display:flex;align-items:center;gap:.75rem}.review-selection-count{font-size:.875rem;color:var(--color-text-secondary)}.review-list{display:flex;flex-direction:column;gap:.5rem}.review-item{display:flex;align-items:center;gap:.75rem;background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius);padding:.875rem 1rem;cursor:pointer;transition:all .2s ease}.review-item:hover{border-color:var(--color-primary-light);background:var(--color-hover)}.review-item.selected{border-color:var(--color-primary);background:#e3f2fd}.review-item-checkbox{flex-shrink:0}.review-item-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.review-item-content{flex:1;min-width:0}.review-item-meta{display:flex;gap:.5rem;align-items:center;margin-bottom:.25rem;flex-wrap:wrap}.review-item-group{font-size:.7rem;font-weight:700;color:var(--color-primary);background:#e3f2fd;padding:.1rem .5rem;border-radius:999px}.review-item-topic{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.review-item-question{font-size:.9rem;line-height:1.4}.review-item-stat{flex-shrink:0;font-size:.8rem;font-weight:600;padding:.25rem .625rem;border-radius:999px;white-space:nowrap}.review-item-stat.stat-good{background:var(--color-success-bg);color:var(--color-success)}.review-item-stat.stat-medium{background:#fff3e0;color:#e65100}.review-item-stat.stat-bad{background:var(--color-error-bg);color:var(--color-error)}.review-item-stat.stat-not-attempted{background:var(--color-hover);color:var(--color-text-secondary)}.review-empty{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary);font-size:1rem}.custom-test-banner{background:#fff3e0;border:2px solid #f57c00;border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:1rem;text-align:center;font-size:.9rem;color:#e65100;font-weight:600}.app-footer{text-align:center;padding:2rem 1.5rem;color:var(--color-text-secondary);font-size:.8rem}.app-footer a{color:var(--color-primary);text-decoration:none}.app-footer a:hover{text-decoration:underline}@media(max-width:640px){.app-header h1{font-size:1.2rem}.app-container,.question-body{padding:1rem}.question-text{font-size:1rem}.image-answers-grid{grid-template-columns:1fr}.question-nav .btn{min-width:auto;padding:.75rem 1rem;font-size:.875rem}.info-cards{grid-template-columns:1fr}.result-actions{flex-direction:column;align-items:center}.question-dot{width:24px;height:24px;font-size:.6rem}.history-table th,.history-table td{padding:.5rem .625rem;font-size:.8rem}.review-controls-row{flex-direction:column}.review-selection-bar{flex-direction:column;text-align:center}.review-selection-info{flex-direction:column}.review-item{flex-direction:column;align-items:flex-start;gap:.5rem}.review-item-stat{align-self:flex-end}.review-item-checkbox{position:absolute;right:1rem;top:.875rem}.review-item{position:relative;padding-right:2.5rem}}
