@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--cpc-green: #00A86B;--cpc-yellow: #FFD700;--primary-black: #1a1a1a;--secondary-black: #333333;--white: #ffffff;--light-grey: #f8f9fa;--medium-grey: #6c757d;--border-grey: #dee2e6;--success-green: #28a745;--error-red: #dc3545;--warning-orange: #fd7e14;--dark-bg: #121212;--dark-surface: #1E1E1E;--dark-surface-hover: #2C2C2C;--dark-text: #EAEAEA;--dark-border: #444444;--dark-text-secondary: #AAAAAA;--border-radius: 8px;--border-width: 3px;--transition: all .2s ease}body{font-family:JetBrains Mono,Courier New,monospace;line-height:1.6;color:var(--primary-black);background:linear-gradient(135deg,#00a86b14,#ffd7000f,#00a86b0d,#ffd70014,#00a86b0f);min-height:100vh;padding:20px;transition:background-color .3s,color .3s;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:url(/electrical_circuit_light.svg) repeat;opacity:.08;z-index:-1;transition:background-image .3s}.container{max-width:800px;margin:0 auto;background:var(--white);padding:40px;border-radius:var(--border-radius);border:var(--border-width) solid var(--primary-black);box-shadow:0 4px 6px #0000001a;transition:var(--transition)}h1,h2,h3{color:var(--primary-black);margin-bottom:20px;font-weight:700;line-height:1.2;transition:color .3s,border-color .3s}h1{font-size:2.5rem;border-bottom:4px solid var(--cpc-green);padding-bottom:10px;margin-bottom:30px}h2{font-size:2rem;font-weight:600}h3{font-size:1.5rem;font-weight:500}.subtitle{text-align:center;color:var(--medium-grey);margin-bottom:30px;font-size:1.1rem}button{background-color:var(--primary-black);color:var(--white);border:var(--border-width) solid var(--primary-black);padding:15px 30px;font-size:1rem;font-weight:600;font-family:inherit;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:.5px}button:hover{background-color:var(--white);color:var(--primary-black)}button:disabled{background-color:var(--medium-grey);border-color:var(--medium-grey);cursor:not-allowed;color:var(--white)}button:disabled:hover{background-color:var(--medium-grey);color:var(--white)}.secondary-button{background-color:var(--white);color:var(--primary-black);border-color:var(--primary-black)}.secondary-button:hover{background-color:var(--primary-black);color:var(--white)}.brush-up-button{background-color:var(--error-red);border-color:var(--error-red)}.brush-up-button:hover{background-color:var(--white);color:var(--error-red)}.unanswered-button{background-color:var(--warning-orange);border-color:var(--warning-orange)}.unanswered-button:hover{background-color:var(--white);color:var(--warning-orange)}.link-button{background:none;border:none;color:var(--cpc-green);cursor:pointer;text-decoration:underline;padding:0;font-size:inherit;font-weight:600;text-transform:none;letter-spacing:normal}.link-button:hover{background:none;color:var(--primary-black)}.start-screen{text-align:center;padding:40px 0}.mode-buttons{display:flex;gap:20px;justify-content:center;margin-bottom:30px}.topic-selection{margin:30px 0;text-align:left}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-bottom:30px}.topic-card{padding:20px;background:var(--white);border:var(--border-width) solid var(--border-grey);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);display:flex;align-items:center}.topic-card:hover{border-color:var(--cpc-green);background-color:var(--light-grey)}.topic-card.selected{border-color:var(--cpc-green);background-color:var(--cpc-green);color:var(--white)}.topic-card input[type=checkbox]{margin-right:15px;width:20px;height:20px;accent-color:var(--cpc-green)}.topic-details{display:flex;flex-direction:column}.topic-name{font-weight:600;margin-bottom:5px;font-size:1rem}.topic-count{font-size:.875rem;color:var(--medium-grey)}.topic-card.selected .topic-count{color:#fffc}.selection-controls{display:flex;gap:15px;margin-bottom:30px}.selection-info{text-align:center;margin:20px 0;font-size:1rem;color:var(--secondary-black);background:var(--light-grey);padding:20px;border-radius:var(--border-radius);border:2px solid var(--border-grey);font-weight:500}.question-container-wrapper{display:flex;flex-direction:column;min-height:calc(100vh - 160px);max-height:calc(100vh - 160px)}.question-container{margin-bottom:20px;padding:30px;background:var(--white);border-radius:var(--border-radius);border:var(--border-width) solid var(--primary-black);border-left:8px solid var(--cpc-green);border-right:8px solid var(--cpc-yellow);flex:1;overflow-y:auto;display:flex;flex-direction:column}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--border-grey);gap:20px}.question-progress-container{flex-grow:1;display:flex;flex-direction:column;gap:10px}.progress-bar-container{width:100%;height:12px;background-color:var(--border-grey);border-radius:6px;overflow:hidden;border:2px solid var(--primary-black)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--cpc-green),var(--cpc-yellow));border-radius:4px;transition:width .3s ease-in-out}.question-number{font-weight:700;background-color:var(--primary-black);color:var(--white);padding:8px 16px;border-radius:6px}.question-topic{background-color:var(--cpc-green);color:var(--white);padding:6px 12px;border-radius:6px;font-size:.875rem;font-weight:600}.question-text{font-size:1.125rem;margin-bottom:25px;color:var(--primary-black);line-height:1.6;font-weight:500}.options{list-style:none}.option{margin-bottom:15px}.option label{display:flex;align-items:center;padding:20px;background:var(--white);border:var(--border-width) solid var(--border-grey);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);font-size:1rem}.option input[type=radio]{margin-right:15px;width:20px;height:20px;accent-color:var(--cpc-green)}.option label:hover{border-color:var(--cpc-green);background-color:var(--light-grey)}.option input[type=radio]:checked+label{background-color:var(--cpc-green);border-color:var(--cpc-green);color:var(--white);font-weight:600}.navigation-section{margin-top:auto;flex-shrink:0}.progress{text-align:center;color:var(--secondary-black);background:var(--light-grey);padding:15px 25px;border-radius:var(--border-radius);font-weight:600;border:2px solid var(--border-grey);margin-bottom:20px}.navigation{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:var(--border-width) solid var(--border-grey);gap:15px}.navigation button{flex:1;max-width:200px}.results{text-align:center;padding:40px 0}.score{font-size:4rem;font-weight:700;color:var(--success-green);margin-bottom:15px}.score.fail{color:var(--error-red)}.percentage{font-size:2rem;color:var(--secondary-black);margin-bottom:30px;font-weight:600}.stats{display:flex;justify-content:space-around;margin-bottom:40px;padding:30px;background:var(--light-grey);border-radius:var(--border-radius);border:var(--border-width) solid var(--border-grey)}.stat{text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:var(--primary-black)}.stat-label{color:var(--medium-grey);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:5px}.review-container{text-align:left;margin-top:40px}.review-question{margin-bottom:30px;padding:25px;background:var(--white);border-radius:var(--border-radius);border:var(--border-width) solid var(--border-grey)}.review-question.correct{border-left:8px solid var(--success-green);background:#28a7450d}.review-question.incorrect{border-left:8px solid var(--error-red);background:#dc35450d}.correct-answer{color:var(--success-green);font-weight:700}.incorrect-answer{color:var(--error-red);font-weight:700}.explanation{margin-top:20px;padding:20px;background:var(--light-grey);border-radius:6px;color:var(--primary-black);border-left:4px solid var(--cpc-green);font-style:italic}.profile-layout{display:flex;align-items:flex-start;gap:30px;margin-bottom:25px}.profile-fields{flex-grow:1;display:flex;flex-direction:column;gap:25px}.avatar-container{position:relative;width:120px;height:120px;border-radius:50%;flex-shrink:0}.avatar-image,.avatar-placeholder{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--border-grey)}.avatar-placeholder{background-color:var(--medium-grey)}.avatar-upload-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:0;transition:var(--transition);cursor:pointer}.avatar-container:hover .avatar-upload-overlay{opacity:1}.avatar-upload-button{background:none;border:none;color:#fff;font-weight:600;font-size:1rem;padding:0;cursor:pointer;text-transform:uppercase}.user-menu-container{position:relative;display:inline-block}.user-menu-button{background-color:transparent;border:2px solid var(--primary-black);color:var(--primary-black);padding:8px 16px;display:flex;align-items:center;gap:8px;font-weight:600;text-transform:none;letter-spacing:normal}.user-menu-button:hover{background-color:var(--light-grey)}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 5px);background-color:var(--white);border:2px solid var(--primary-black);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000026;z-index:1001;width:200px;overflow:hidden;display:flex;flex-direction:column}.user-menu-item{width:100%;background:none;border:none;border-bottom:2px solid var(--border-grey);color:var(--primary-black);text-align:left;padding:15px 20px;text-transform:none;letter-spacing:normal;font-weight:500;border-radius:0}.user-menu-item:last-child{border-bottom:none}.user-menu-item:hover{background-color:var(--light-grey)}.auth-container{max-width:450px;margin:40px auto;padding:20px}.auth-form{display:flex;flex-direction:column;gap:25px;padding:40px;border:var(--border-width) solid var(--primary-black);border-radius:var(--border-radius);background:var(--white)}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:8px;font-weight:600;color:var(--primary-black);font-size:1rem}.form-group input{padding:15px;border:var(--border-width) solid var(--border-grey);border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s ease;background:var(--white)}.form-group input:focus{outline:none;border-color:var(--cpc-green)}.auth-button{padding:15px 20px;font-size:1rem;font-weight:600}.error-message{color:var(--white);background:var(--error-red);padding:15px;border:var(--border-width) solid var(--error-red);border-radius:6px;text-align:center;font-weight:600}.success-message{color:var(--white);background:var(--success-green);padding:15px;border:var(--border-width) solid var(--success-green);border-radius:6px;text-align:center;font-weight:600}.loading{text-align:center;padding:40px;color:var(--medium-grey);font-size:1.125rem}.error{text-align:center;padding:40px;color:var(--error-red);background:#dc35451a;border-radius:var(--border-radius);border:var(--border-width) solid var(--error-red);font-weight:600}.dark-mode-toggle{position:fixed;top:20px;right:20px;background:var(--cpc-green);color:var(--primary-black);border:var(--border-width) solid var(--cpc-green);padding:10px;border-radius:var(--border-radius);cursor:pointer;z-index:1000;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.dark-mode-toggle svg{width:24px;height:24px;color:var(--primary-black);transition:color .3s}.dark-mode-toggle:hover{transform:translateY(-1px)}.cpc-wire{border-left:4px solid var(--cpc-green);border-right:4px solid var(--cpc-yellow)}button:focus,input:focus,.topic-card:focus{outline:var(--border-width) solid var(--cpc-green);outline-offset:2px}body.dark-mode{background-color:var(--dark-bg);color:var(--dark-text)}body.dark-mode:before{background-image:url(/electrical_circuit_dark.svg)}body.dark-mode .container{background:var(--dark-surface);border-color:var(--dark-text);color:var(--dark-text)}body.dark-mode h1,body.dark-mode h2,body.dark-mode h3{color:var(--dark-text);border-color:var(--cpc-green)}body.dark-mode .topic-card{background:var(--dark-surface);border-color:var(--dark-border);color:var(--dark-text)}body.dark-mode .topic-card:hover{border-color:var(--cpc-green);background:var(--dark-surface-hover)}body.dark-mode .topic-card.selected{background:var(--cpc-green);color:var(--primary-black);border-color:var(--cpc-green)}body.dark-mode .topic-count{color:var(--dark-text-secondary)}body.dark-mode .topic-card.selected .topic-count{color:#1a1a1acc}body.dark-mode .selection-info{background:var(--dark-surface-hover);border-color:var(--dark-border);color:var(--dark-text)}body.dark-mode button{background-color:var(--dark-text);color:var(--primary-black);border-color:var(--dark-text)}body.dark-mode button:hover{background-color:var(--cpc-green);color:var(--primary-black);border-color:var(--cpc-green)}body.dark-mode button:disabled{background-color:var(--dark-border);border-color:var(--dark-border);color:var(--dark-text-secondary)}body.dark-mode .secondary-button{background-color:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-text)}body.dark-mode .secondary-button:hover{background-color:var(--dark-text);color:var(--primary-black)}body.dark-mode .unanswered-button{background-color:var(--warning-orange);border-color:var(--warning-orange);color:var(--primary-black)}body.dark-mode .unanswered-button:hover{background-color:var(--white);color:var(--warning-orange)}body.dark-mode .dark-mode-toggle{background:var(--cpc-yellow);border-color:var(--cpc-yellow)}body.dark-mode .dark-mode-toggle svg{color:var(--primary-black)}body.dark-mode .user-menu-button{background-color:transparent;border-color:var(--dark-text);color:var(--dark-text)}body.dark-mode .user-menu-button:hover{background-color:var(--dark-surface-hover)}body.dark-mode .user-menu-dropdown{background-color:var(--white);border-color:var(--primary-black)}body.dark-mode .user-menu-item{color:var(--primary-black);border-color:var(--border-grey)}body.dark-mode .user-menu-item:hover{background-color:var(--light-grey)}body.dark-mode .question-container{background:var(--dark-surface);border-color:var(--dark-text);color:var(--dark-text)}body.dark-mode .question-header{border-color:var(--dark-border)}body.dark-mode .progress-bar-container{background-color:var(--dark-border);border-color:var(--dark-text)}body.dark-mode .question-number{background-color:var(--dark-text);color:var(--primary-black)}body.dark-mode .question-text{color:var(--dark-text)}body.dark-mode .option label{background:var(--dark-surface);border-color:var(--dark-border);color:var(--dark-text)}body.dark-mode .option label:hover{border-color:var(--cpc-green);background:var(--dark-surface-hover)}body.dark-mode .option input[type=radio]:checked+label{background-color:var(--cpc-green);border-color:var(--cpc-green);color:var(--primary-black)}body.dark-mode .navigation{border-color:var(--dark-border)}body.dark-mode .progress{background:var(--dark-surface-hover);border-color:var(--dark-border);color:var(--dark-text)}body.dark-mode .stats{background:var(--dark-surface-hover);border-color:var(--dark-border)}body.dark-mode .stat-value{color:var(--dark-text)}body.dark-mode .stat-label{color:var(--dark-text-secondary)}body.dark-mode .avatar-image,body.dark-mode .avatar-placeholder{border-color:var(--dark-border)}body.dark-mode .avatar-placeholder{background-color:var(--dark-surface-hover)}body.dark-mode .auth-form{background:var(--dark-surface);border-color:var(--dark-text)}body.dark-mode .form-group label{color:var(--dark-text)}body.dark-mode .form-group input{background:var(--dark-surface-hover);border-color:var(--dark-border);color:var(--dark-text)}body.dark-mode .form-group input:focus{border-color:var(--cpc-green)}body.dark-mode .success-message{background:var(--success-green);border-color:var(--success-green);color:var(--white)}body.dark-mode .error-message{background:var(--error-red);border-color:var(--error-red);color:var(--white)}body.dark-mode .error{background:#dc354533;color:#ff6b6b;border-color:var(--error-red)}body.dark-mode .review-question{background:var(--dark-surface)!important;border-color:var(--dark-border)!important;color:var(--white)!important}body.dark-mode .review-question.correct{background:#0d2818!important;border-left-color:var(--success-green)!important}body.dark-mode .review-question.incorrect{background:#2d0a0a!important;border-left-color:var(--error-red)!important}body.dark-mode .review-question .question-text{color:var(--white)!important}body.dark-mode .review-question .question-number{background-color:var(--white)!important;color:var(--primary-black)!important}body.dark-mode .review-question .question-topic,body.dark-mode .review-question .options li{color:var(--white)!important}body.dark-mode .review-question .options li[style*="background-color: rgb(232, 245, 233)"],body.dark-mode .review-question .options li[style*="backgroundColor: '#e8f5e9'"],body.dark-mode .review-question .options li[style*="background-color: #e8f5e9"]{background-color:#1a4d2e!important;color:var(--white)!important}body.dark-mode .review-question .options li[style*="background-color: rgb(255, 235, 238)"],body.dark-mode .review-question .options li[style*="backgroundColor: '#ffebee'"],body.dark-mode .review-question .options li[style*="background-color: #ffebee"]{background-color:var(--dark-surface-hover)!important;color:var(--white)!important;border-color:var(--error-red)!important}body.dark-mode .review-question .options li[style*="background-color: white"],body.dark-mode .review-question .options li[style*="backgroundColor: 'white'"]{background-color:var(--dark-surface-hover)!important;color:var(--white)!important}body.dark-mode .review-question .explanation{background:#3d3517!important;color:var(--white)!important;border-left-color:var(--cpc-yellow)!important}@media (max-width: 1024px){.container{max-width:90%;padding:30px;margin:15px auto}.question-container-wrapper{min-height:calc(100vh - 140px);max-height:calc(100vh - 140px)}.question-container{padding:25px;margin-bottom:15px}.question-text{font-size:1.1rem;margin-bottom:20px}.option label{padding:18px;font-size:.95rem}.navigation{padding-top:15px}.stats{padding:25px}h1{font-size:2.2rem}h2{font-size:1.8rem}}@media (max-width: 900px){body{padding:15px}.container{max-width:95%;padding:25px;margin:10px auto}.question-container{padding:20px;margin-bottom:15px}.question-header{flex-direction:column;align-items:stretch;gap:15px;margin-bottom:15px}.question-progress-container{order:1}.question-number{align-self:center;order:2}.question-text{font-size:1.05rem;margin-bottom:18px}.option label{padding:16px;font-size:.9rem}.navigation{margin-top:20px;padding-top:15px;gap:15px}.navigation button{padding:12px 24px;font-size:.9rem}.progress{padding:12px 20px;font-size:.9rem}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px}.mode-buttons{flex-wrap:wrap;gap:15px}.selection-controls{flex-wrap:wrap;gap:12px}h1{font-size:2rem}h2{font-size:1.6rem}}@media (max-width: 768px){body{padding:10px}.container{padding:20px;margin:5px auto;border-width:2px;max-width:98%}.topic-grid{grid-template-columns:1fr}.mode-buttons,.selection-controls,.navigation,.stats{flex-direction:column;gap:15px}.stats{padding:20px}.question-container{padding:18px;border-left-width:4px;border-right-width:4px;margin-bottom:10px}.question-header{margin-bottom:15px;padding-bottom:12px}.question-text{font-size:1rem;margin-bottom:15px}.auth-form{padding:25px;margin:10px}.score{font-size:3rem}.option label{padding:14px;font-size:.9rem}.navigation{margin-top:15px;padding-top:12px}.navigation button{padding:12px 20px;font-size:.9rem}h1{font-size:1.8rem}h2{font-size:1.4rem}}@media (max-width: 480px){.container,.topic-card,.question-container,.stats,.option label,.auth-form{border-width:2px}.question-container{padding:15px}.question-text{font-size:.95rem}.option label{padding:12px;font-size:.85rem}.navigation button{padding:10px 16px;font-size:.85rem}.progress{padding:10px 15px;font-size:.85rem}h1{font-size:1.6rem}h2{font-size:1.3rem}}@media (max-height: 700px) and (min-width: 769px){.container{padding:20px;margin:10px auto}.question-container{padding:20px;margin-bottom:15px}.question-text{margin-bottom:15px}.option label{padding:12px}.navigation{margin-top:15px;padding-top:12px}}@media (max-height: 600px) and (min-width: 769px){body{padding:10px}.container{padding:15px;margin:5px auto}.question-container{padding:15px;margin-bottom:10px}.question-header{margin-bottom:10px;padding-bottom:8px}.question-text{font-size:1rem;margin-bottom:12px}.option label{padding:10px;font-size:.9rem}.navigation{margin-top:10px;padding-top:8px}.navigation button{padding:8px 16px;font-size:.9rem}.progress{padding:8px 15px;font-size:.9rem}}@media print{body{background:var(--white);color:var(--primary-black)}.container{border:2px solid var(--primary-black);box-shadow:none}button{border:1px solid var(--primary-black);background:var(--white);color:var(--primary-black)}.dark-mode-toggle{display:none}}.gola-button{background-color:var(--cpc-yellow);border-color:var(--cpc-yellow);color:var(--primary-black)}.gola-button:hover{background-color:var(--white);color:var(--primary-black)}.gola-exam-selection{text-align:center;padding:20px 0}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.exam-list{display:grid;grid-template-columns:1fr;gap:20px;margin-top:30px}.exam-card{position:relative;padding:25px;background:var(--white);border:var(--border-width) solid var(--border-grey);border-radius:var(--border-radius);text-align:left;transition:var(--transition)}.exam-card:hover{border-color:var(--cpc-yellow);transform:translateY(-2px)}.exam-card.passed{border-left:8px solid var(--success-green)}.exam-card.failed{border-left:8px solid var(--error-red)}.exam-ratio{position:absolute;top:15px;right:15px;background:var(--medium-grey);color:var(--white);padding:5px 10px;border-radius:6px;font-size:.8rem;font-weight:700}.exam-card.passed .exam-ratio{background:var(--success-green)}.exam-card.failed .exam-ratio{background:var(--error-red)}.exam-card h3{margin-bottom:10px;font-size:1.2rem}.exam-card p{margin-bottom:20px;color:var(--medium-grey)}.exam-materials{margin-bottom:20px}.exam-materials strong{display:block;margin-bottom:10px;color:var(--primary-black)}.materials-images{display:flex;gap:10px;align-items:center}.material-image{height:60px;width:auto;border-radius:4px;border:2px solid var(--border-grey)}.exam-details{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-weight:600;color:var(--primary-black)}.exam-card button{width:100%}body.dark-mode .gola-button{background-color:var(--cpc-yellow);border-color:var(--cpc-yellow);color:var(--primary-black)}body.dark-mode .gola-button:hover{background-color:var(--dark-surface-hover);color:var(--cpc-yellow)}body.dark-mode .exam-card{background:var(--dark-surface);border-color:var(--dark-border)}body.dark-mode .exam-card p{color:var(--dark-text-secondary)}body.dark-mode .exam-materials strong{color:var(--dark-text)}body.dark-mode .material-image{border-color:var(--dark-border)}body.dark-mode .exam-card.passed{border-left-color:var(--success-green)}body.dark-mode .exam-card.failed{border-left-color:var(--error-red)}body.dark-mode .exam-details{color:var(--dark-text)}.timer{text-align:center;font-size:1.5rem;font-weight:700;color:var(--error-red);background:var(--light-grey);padding:15px;border-radius:var(--border-radius);border:var(--border-width) solid var(--error-red);margin-bottom:20px}body.dark-mode .timer{background:var(--dark-surface-hover);border-color:var(--error-red);color:var(--error-red)}
