:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@font-face{font-family:"Press Start 2P";src:url(/fonts/PressStart2P-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--primary-color: #003366;--secondary-color: #e30031;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--background-color: #f5f5f5;--text-color: #333333;--light-color: #f8f9fa;--dark-color: #343a40;--gray-color: #6c757d;--border-color: #dee2e6;--card-bg: #ffffff;--input-bg: #ffffff;--heading-color: #222222;--border-radius: 8px;--box-shadow: 0 4px 6px rgba(0, 0, 0, .1)}@media (prefers-color-scheme: dark){:root{--background-color: #1a1a1a;--text-color: #f0f0f0;--light-color: #2d2d2d;--dark-color: #121212;--gray-color: #a0a0a0;--border-color: #444444;--card-bg: #2d2d2d;--input-bg: #3a3a3a;--primary-color: #4da6ff;--heading-color: #ffffff;--box-shadow: 0 4px 6px rgba(0, 0, 0, .3)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Roboto,Segoe UI,Arial,sans-serif;line-height:1.6;background-color:var(--background-color);color:var(--text-color)}h1,h2,h3,h4,h5,h6{color:var(--heading-color);font-weight:700}#root{max-width:100%;margin:0 auto;height:100vh;overflow-y:auto}.app-container{max-width:1000px;margin:0 auto;padding:1rem;padding-top:0}.status-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;background-color:var(--card-bg);border-bottom:1px solid var(--border-color);margin-bottom:1rem;box-shadow:var(--box-shadow);position:sticky;top:0;z-index:1000;width:100%;border-radius:0}.offline-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;z-index:10000;box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}.offline-banner svg{flex-shrink:0;stroke-width:2.5}.offline-banner-subtitle{font-size:.85rem;opacity:.9;margin-left:auto}.update-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;z-index:10000;box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}.update-banner svg{flex-shrink:0;stroke-width:2.5;animation:rotate 2s linear infinite}.update-button{margin-left:auto;background-color:#fff3;color:#fff;border:2px solid white;padding:.4rem 1rem;border-radius:var(--border-radius);cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s ease}.update-button:hover{background-color:#fff;color:#4caf50}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.online-status{padding:.25rem .75rem;border-radius:20px;font-weight:700;font-size:.9rem}.online-status.online{background-color:var(--success-color);color:#fff}.online-status.offline{background-color:var(--danger-color);color:#fff}.pending-syncs-badge{padding:.25rem .75rem;border-radius:20px;font-weight:700;font-size:.9rem;background-color:var(--warning-color);color:var(--dark-color)}.groups-nav-button{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:20px;font-weight:600;font-size:.9rem;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.groups-nav-button:hover{background-color:var(--secondary-color);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.groups-nav-button:active{transform:translateY(0)}.catalog-view{text-align:center}.catalog-view h1{color:var(--primary-color);margin:1rem 0 2rem;text-shadow:0 1px 2px rgba(0,0,0,.1)}.challenge-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.75rem;margin-bottom:1.5rem}.challenge-box{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-weight:700;color:#fff;box-shadow:var(--box-shadow);transition:transform .2s ease-in-out;position:relative;flex-direction:column;padding:.5rem}.challenge-box.gray{background-color:var(--gray-color);cursor:pointer}.challenge-box.yellow{background-color:#ffc107;color:var(--dark-color);cursor:pointer}.challenge-box.light-yellow{background-color:#ffe066;color:var(--dark-color);cursor:pointer}.challenge-box.purple{background-color:#9c27b0;color:#fff;cursor:pointer}.challenge-box.light-purple{background-color:#ba68c8;color:#fff;cursor:pointer}.challenge-box.orange{background-color:#ff9800;color:#fff;cursor:pointer}.challenge-box.light-orange{background-color:#ffb74d;color:var(--dark-color);cursor:pointer}.challenge-box.light-green{background-color:#81c784;color:#fff;cursor:pointer}.challenge-box.green{background-color:var(--success-color);color:#fff;cursor:pointer}.challenge-box:hover{transform:scale(1.05)}.challenge-box.selected{transform:scale(1.1);box-shadow:0 0 10px #0000ff80;border:2px solid var(--primary-color)}.challenge-number{font-family:"Press Start 2P",cursive;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.header-section{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem}.fg-logo{max-width:200px;height:auto;object-fit:contain}.pixel-title{font-family:"Press Start 2P",cursive;font-size:1.2rem;text-align:center;color:var(--primary-color);line-height:1.8;margin:0}@media (max-width: 768px){.challenge-grid{grid-template-columns:repeat(4,1fr);gap:.5rem}.fg-logo{max-width:150px}.pixel-title{font-size:.9rem}}@media (max-width: 480px){.challenge-grid{grid-template-columns:repeat(4,1fr);gap:.4rem}.challenge-box{padding:.3rem}.challenge-number{font-size:1.2rem}.fg-logo{max-width:120px}.pixel-title{font-size:.7rem}}.challenge-group-info{font-size:.6rem;margin-top:.25rem;display:flex;flex-direction:column;gap:.1rem}.challenge-group-info .scanned-by,.challenge-group-info .answered-by{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-group-display{padding:.75rem 1rem;margin-bottom:1rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);text-align:center;font-size:1rem;box-shadow:var(--box-shadow)}.current-group-display strong{color:var(--primary-color);font-weight:700}.legend-section{margin:2rem 0;padding:1rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.legend-section h3{margin-top:0;margin-bottom:1rem;font-size:1rem;color:var(--heading-color)}.legend-items{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-box{width:40px;height:40px;border-radius:var(--border-radius);box-shadow:var(--box-shadow);flex-shrink:0}.legend-box.gray{background-color:var(--gray-color)}.legend-box.yellow{background-color:#ffc107}.legend-box.light-yellow{background-color:#ffe066}.legend-box.purple{background-color:#9c27b0}.legend-box.light-purple{background-color:#ba68c8}.legend-box.orange{background-color:#ff9800}.legend-box.light-orange{background-color:#ffb74d}.legend-box.light-green{background-color:#81c784}.legend-box.green{background-color:var(--success-color)}.legend-item span{font-size:.95rem;color:var(--text-color)}button{padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);font-weight:700;cursor:pointer;transition:background-color .2s}.scan-button{background-color:var(--primary-color);color:#fff;margin:1rem 0}.scan-button:hover{background-color:#004c99}.stop-button{background-color:var(--danger-color);color:#fff}.cancel-button{background-color:var(--gray-color);color:#fff;margin-left:.5rem}.submit-button{background-color:var(--success-color);color:#fff}.button-group{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1rem}.scanner-container{position:fixed;inset:0;background-color:#000000f2;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.scanner-container .cancel-button{margin-top:1rem;padding:1rem 2rem;font-size:1.1rem}.qr-scanner-container{margin:2rem auto;max-width:90%;width:100%;max-width:500px;border-radius:var(--border-radius);overflow:hidden;box-shadow:0 8px 32px #00000080;background-color:#000;display:flex;flex-direction:column;align-items:center}#qr-reader{width:100%!important;max-width:500px!important;border:none!important;background-color:#000!important;position:relative!important;overflow:hidden!important}#qr-reader video{width:100%!important;height:auto!important;object-fit:cover!important;display:block!important;border-radius:0!important;max-height:100vh!important}#qr-reader canvas{display:none!important}#qr-reader canvas.drawingBuffer{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;pointer-events:none!important}#qr-reader__dashboard_section,#qr-reader__dashboard_section_csr,#qr-reader__header_message{display:none!important}#qr-reader__scan_region{position:relative!important;width:100%!important;border:none!important}#qr-reader__scan_region video{border-radius:0!important}.scanner-controls{margin-top:1rem;padding:1rem;display:flex;justify-content:center;width:100%}.scan-status{margin:1rem;padding:.75rem 1.5rem;border-radius:var(--border-radius);display:flex;align-items:center;gap:.5rem;font-weight:500;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.scan-status .status-icon{font-size:1.5rem;line-height:1}.scan-status-processing{background-color:#ffc10733;color:#ffc107;border:1px solid #ffc107}.scan-status-success{background-color:#4caf5033;color:#4caf50;border:1px solid #4caf50}.scan-status-error{background-color:#f4433633;color:#f44336;border:1px solid #f44336}.scan-status-processing .status-icon{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.camera-error-container{background-color:var(--card-bg);border:1px solid var(--danger-color);border-radius:var(--border-radius);padding:2rem;text-align:center;max-width:400px;margin:0 auto}.camera-error-container .error-icon,.camera-error-container h3{color:var(--danger-color);margin-bottom:1rem}.camera-error-container p{margin-bottom:1.5rem}.retry-button{background-color:var(--primary-color);color:#fff;padding:.5rem 1rem;border:none;border-radius:var(--border-radius);cursor:pointer}.welcome-section{max-width:800px;margin:0 auto 2rem;padding:2rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);color:var(--text-color)}.welcome-section h1{margin-bottom:1.5rem;text-align:center}.welcome-section p{margin-bottom:1rem;line-height:1.6}.answer-form{position:fixed;inset:0;background-color:var(--background-color);z-index:2000;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;box-sizing:border-box}.answer-form h2{color:var(--heading-color);margin-bottom:1.5rem;text-align:center}.answer-form .markdown-content{flex:1;overflow-y:auto;margin-bottom:1.5rem;padding:1rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius)}.answer-form textarea{width:100%;max-width:100%;min-height:120px;padding:1rem;border:2px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem;font-family:inherit;background-color:var(--input-bg);color:var(--text-color);resize:vertical;box-sizing:border-box}.answer-form .button-group{margin-top:1rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (min-width: 768px){.answer-form{padding:2rem}}.markdown-content{margin-bottom:1rem;line-height:1.6;text-align:left}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-top:1.5rem;margin-bottom:1rem;text-align:left;color:var(--heading-color, var(--text-color));font-weight:700}.markdown-content p{margin-bottom:1rem;text-align:left}.markdown-content ul,.markdown-content ol{margin-bottom:1rem;padding-left:2rem;text-align:left}.markdown-content li{margin-bottom:.5rem;text-align:left}.markdown-content img{max-width:100%;margin:1rem 0}.markdown-content code{background-color:#0000000d;padding:.2rem .4rem;border-radius:3px;font-family:monospace}.markdown-content pre{background-color:#0000000d;padding:1rem;border-radius:5px;overflow-x:auto;margin-bottom:1rem}.main-content{max-width:800px;margin:0 auto 2rem;padding:1rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);min-height:300px}.main-markdown{padding:1rem}.question-markdown{padding:1rem;animation:fadeIn .3s ease-in-out}.question-markdown h3{color:var(--heading-color, var(--primary-color));margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color);font-weight:700}.user-registration{max-width:600px;margin:2rem auto;padding:2rem;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);animation:fadeIn .4s ease}.user-registration h2{color:var(--primary-color);margin-bottom:1rem;text-align:center}.offline-warning{background-color:#fff3cd;color:#856404;border:1px solid #ffc107;border-radius:var(--border-radius);padding:.75rem 1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem}.offline-warning svg{flex-shrink:0;stroke:#856404}@media (prefers-color-scheme: dark){.offline-warning{background-color:#ffc10726;color:#ffc107;border-color:#ffc107}.offline-warning svg{stroke:#ffc107}}.registration-intro{text-align:center;margin-bottom:1.5rem;color:var(--text-color)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:700}.form-group input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--input-bg);color:var(--text-color);font-size:1rem}.field-hint{margin-top:.5rem;font-size:.85rem;color:var(--gray-color)}.required{color:var(--danger-color)}.optional{font-weight:400;font-style:italic;font-size:.9rem;color:var(--gray-color)}.password-input-container{display:flex;position:relative}.toggle-password{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--primary-color);cursor:pointer;padding:.5rem;font-size:.85rem}.privacy-checkbox{margin-top:1.5rem}.checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;font-size:.9rem;line-height:1.5}.checkbox-label input[type=checkbox]{margin-top:.2rem;flex-shrink:0;width:18px;height:18px;cursor:pointer}.checkbox-label a{color:var(--primary-color);text-decoration:underline}.checkbox-label a:hover{color:var(--secondary-color)}.register-button{width:100%;padding:.75rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);font-size:1rem;cursor:pointer;transition:background-color .2s;margin-top:1rem}.register-button:hover{background-color:var(--primary-dark-color)}.register-button:disabled{background-color:var(--gray-color);cursor:not-allowed}.registration-note{margin-top:1.5rem;text-align:center;font-size:.9rem;color:var(--gray-color)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background-color:var(--background-color)}.spinner{width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:var(--primary-color);animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.fancy-loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--background-color) 0%,var(--card-bg) 100%);z-index:9999;animation:fadeIn .3s ease-in}.loading-content{text-align:center;animation:fadeInScale 1s ease-out}.loading-logo{width:200px;height:auto;margin-bottom:2rem;animation:fadeInBounce 1.5s ease-out;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}.loading-title{font-family:"Press Start 2P",cursive;font-size:2rem;color:var(--primary-color);margin:1rem 0;text-shadow:2px 2px 4px rgba(0,0,0,.5);animation:fadeIn 1.5s ease-in .5s backwards}.loading-subtitle{font-size:1.2rem;color:var(--gray-color);margin-bottom:2rem;opacity:.8;animation:fadeIn 1.5s ease-in .8s backwards}.loading-spinner{display:flex;gap:1rem;justify-content:center;margin:2rem 0}.spinner-circle{width:20px;height:20px;border-radius:50%;background:var(--primary-color);animation:pulse 2.5s infinite ease-in-out;box-shadow:0 0 10px #4da6ff80}.spinner-circle:nth-child(1){animation-delay:0s}.spinner-circle:nth-child(2){animation-delay:.3s}.spinner-circle:nth-child(3){animation-delay:.6s}.loading-text{font-size:.9rem;color:var(--gray-color);margin-top:1rem;opacity:.7;animation:fadeIn 1.5s ease-in 1s backwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeInBounce{0%{opacity:0;transform:translateY(-30px) scale(.8)}60%{opacity:1;transform:translateY(5px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.answer-input-container{margin-bottom:1rem}.answer-input-container textarea,.answer-input-container input{margin-bottom:.5rem;background-color:var(--input-bg);color:var(--text-color)}.answer-guidance{font-size:.9rem;color:var(--text-color);opacity:.7;margin-top:.5rem;font-style:italic;text-align:left}.answer-feedback{padding:.75rem;margin:1rem 0;border-radius:var(--border-radius);font-weight:700;text-align:center;animation:fadeIn .3s ease-in-out}.answer-feedback.success{background-color:var(--success-color);color:#fff}.answer-feedback.error{background-color:var(--danger-color);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.success-message,.error-message{padding:.75rem;border-radius:var(--border-radius);margin-bottom:1rem}.success-message{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-message{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.footer{margin-top:2rem;padding:1rem 0;border-top:1px solid #eaeaea;display:flex;justify-content:center;gap:2rem}.footer a{color:var(--gray-color);text-decoration:none}.footer a:hover{text-decoration:underline;color:var(--primary-color)}.floating-camera-button{position:fixed;bottom:2rem;right:2rem;width:4rem;height:4rem;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;font-size:1.8rem;border:none;box-shadow:0 4px 12px #0000004d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:1000;animation:pulse 2s infinite;padding:0;line-height:1}.floating-camera-button:hover{transform:scale(1.1);box-shadow:0 6px 16px #0006}.floating-camera-button:active{transform:scale(.95)}.floating-camera-button.disabled{opacity:.5;cursor:not-allowed;animation:none;background:#6c757d}.floating-camera-button.disabled:hover{transform:none;box-shadow:0 4px 12px #0000004d}@keyframes pulse{0%,to{box-shadow:0 4px 12px #0000004d}50%{box-shadow:0 4px 20px #e3003199}}.qr-scan-handler{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)}.scan-status-card{background-color:var(--card-bg);border-radius:var(--border-radius);padding:3rem 2rem;max-width:500px;width:100%;text-align:center;box-shadow:0 10px 40px #0000004d;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.scan-status-card .spinner{margin:0 auto 1.5rem}.scan-status-card .success-icon{color:var(--success-color);margin-bottom:1.5rem;animation:scaleIn .5s ease-out}.scan-status-card .sync-icon{color:var(--warning-color);margin-bottom:1.5rem}.scan-status-card .sync-icon .rotating{animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scan-status-card .error-icon{color:var(--danger-color);margin-bottom:1.5rem;animation:shake .5s ease-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.scan-status-card h2{margin-bottom:1rem;color:var(--text-color)}.legal-page{max-width:800px;margin:0 auto;padding:2rem 1rem}.legal-content{background-color:var(--card-bg);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.legal-content h1{color:var(--primary-color);margin-bottom:1.5rem;font-size:2rem}.legal-content h2{color:var(--heading-color);margin-top:2rem;margin-bottom:1rem;font-size:1.5rem}.legal-content h3{color:var(--heading-color);margin-top:1.5rem;margin-bottom:.75rem;font-size:1.2rem}.legal-content p{margin-bottom:1rem;line-height:1.6}.legal-content a{color:var(--primary-color);text-decoration:underline;word-break:break-all}.legal-content a:hover{color:var(--secondary-color)}.back-link{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.back-link a{color:var(--primary-color);text-decoration:none;font-weight:600}.back-link a:hover{color:var(--secondary-color)}.app-footer{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:2rem 1rem 3rem;margin-top:2rem;font-size:.9rem;border-top:1px solid var(--border-color)}.app-footer a{color:var(--text-color);text-decoration:none;transition:color .2s}.app-footer a:hover{color:var(--primary-color)}.footer-separator{color:var(--gray-color)}.scan-status-card .qr-number{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin:1rem 0}.scan-status-card .redirect-info{font-size:.9rem;color:var(--text-color);opacity:.7;margin-top:1.5rem}.scan-status-card .error-message{color:var(--danger-color);margin-bottom:1.5rem}.scan-status-card .back-button{background-color:var(--primary-color);color:#fff;padding:.75rem 2rem;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:1rem;transition:all .3s ease}.scan-status-card .back-button:hover{background-color:var(--secondary-color);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.offline-notice{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background-color:#ff98001a;border:1px solid var(--warning-color);border-radius:var(--border-radius);margin:1rem 0;color:var(--warning-color);font-size:.9rem}.offline-notice svg{flex-shrink:0}.group-management{width:100%;max-width:1000px;margin:0 auto;padding:1rem}.group-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.back-button{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:600;transition:all .3s ease;white-space:nowrap}.back-button:hover{background-color:var(--secondary-color);transform:translate(-3px)}.group-management h2{flex:1;text-align:center;margin:0;color:var(--heading-color)}.error-message,.success-message{padding:.75rem 1rem;border-radius:var(--border-radius);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.error-message{background-color:#dc35451a;border:1px solid var(--danger-color);color:var(--danger-color)}.success-message{background-color:#28a7451a;border:1px solid var(--success-color);color:var(--success-color)}.error-message button,.success-message button{background:none;border:none;font-size:1rem;cursor:pointer;padding:0 .5rem}.group-container{display:flex;gap:1.5rem;min-height:500px}.group-sidebar{flex:0 0 300px;border-right:1px solid var(--border-color);padding-right:1rem}.group-sidebar h3,.group-sidebar h4{margin-bottom:1rem;color:var(--heading-color)}.group-sidebar h4{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.group-list{list-style:none;padding:0;margin-bottom:1.5rem}.group-list li{padding:.75rem 1rem;border-radius:var(--border-radius);margin-bottom:.5rem;cursor:pointer;background-color:var(--light-color);transition:all .2s ease}.group-list li:hover{background-color:#646cff1a}.group-list li.selected{background-color:#646cff33;border-left:3px solid var(--primary-color);font-weight:700}.empty-state{font-style:italic;color:var(--gray-color);text-align:center;padding:1rem}.group-selector{margin:1rem 0;padding:.75rem;background-color:var(--card-bg);border-radius:var(--border-radius);display:flex;align-items:center;box-shadow:var(--box-shadow);flex-wrap:wrap}.group-selector label{margin-right:.5rem;font-weight:700}.group-selector select{padding:.5rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--input-bg);color:var(--text-color);margin-right:1rem;min-width:150px;flex:1}.group-link{display:inline-block;margin-left:auto;padding:.5rem .75rem;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-size:.9rem}.challenge-box{position:relative;display:flex;flex-direction:column;justify-content:space-between}.challenge-number{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.challenge-group-info{font-size:.7rem;display:flex;flex-direction:column;margin-top:auto;line-height:1.2}.scanned-by,.answered-by{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.scanned-by{color:var(--text-color);opacity:.8}.answered-by{color:var(--success-color)}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--input-bg);color:var(--text-color)}.form-group textarea{resize:vertical;min-height:80px}.form-group .hint{font-size:.8rem;color:var(--gray-color);margin-top:.25rem}.primary-button,.secondary-button,.danger-button{padding:.75rem 1rem;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:500;transition:all .2s ease;width:100%}.secondary-button{background-color:var(--gray-color);color:#fff}.danger-button{background-color:var(--danger-color);color:#fff}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){opacity:.9}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.6;cursor:not-allowed}.group-details{flex:1;min-width:0}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.group-header h3{margin:0;color:var(--heading-color)}.group-header .danger-button{width:auto}.tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.tabs button{padding:.75rem 1rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-weight:500;color:var(--text-color);transition:all .2s ease;margin-right:1rem}.tabs button:hover{color:var(--primary-color)}.tabs button.active{border-bottom:2px solid var(--primary-color);color:var(--primary-color)}.tab-content{padding:.5rem 0}.group-info{margin-bottom:2rem}.description{margin-top:1rem;padding:1rem;background-color:var(--light-color);border-radius:var(--border-radius)}.description h4{margin-top:0;color:var(--heading-color)}.invite-section{padding:1.5rem;background-color:var(--light-color);border-radius:var(--border-radius)}.invite-section h4{margin-top:0;color:var(--heading-color)}.invite-code-display{display:flex;flex-direction:column;align-items:center;margin-top:1rem;gap:1rem}.invite-qr-code{display:flex;justify-content:center;padding:1rem;background-color:#fff;border:2px solid var(--primary-color);border-radius:var(--border-radius)}.invite-qr-code canvas{display:block}.invite-code-display .code{font-family:monospace;font-size:1.1rem;font-weight:600;padding:.75rem 1rem;background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);text-align:center;width:100%;word-break:break-all}.invite-code-display .invite-url{font-size:.9rem;color:var(--gray-color);text-align:center;word-break:break-all;margin:0;padding:0 1rem}.invite-code-display .secondary-button{width:100%;max-width:300px}.members-list{list-style:none;padding:0}.member-item{padding:1rem;margin-bottom:.5rem;background-color:var(--light-color);border-radius:var(--border-radius)}.member-info{display:flex;justify-content:space-between;align-items:center}.username{font-weight:500}.joined-date{font-size:.85rem;color:var(--gray-color)}.upload-form{margin-bottom:2rem;padding:1.5rem;background-color:var(--light-color);border-radius:var(--border-radius)}.pictures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.picture-item{border-radius:var(--border-radius);overflow:hidden;background-color:var(--light-color);border:1px solid var(--border-color)}.picture-item img{width:100%;height:200px;object-fit:cover}.picture-description{padding:.75rem;font-size:.9rem;border-top:1px solid var(--border-color)}.picture-meta{padding:.5rem .75rem;font-size:.8rem;color:var(--gray-color);background-color:#00000008}.loading{text-align:center;padding:1rem;color:var(--gray-color)}.no-selection{display:flex;flex-direction:column;justify-content:center;align-items:center;height:400px;text-align:center;color:var(--gray-color);background-color:var(--light-color);border-radius:var(--border-radius);padding:2rem}@media (max-width: 768px){.group-container{flex-direction:column}.group-sidebar{flex:none;width:100%;border-right:none;border-bottom:1px solid var(--border-color);padding-right:0;padding-bottom:1rem;margin-bottom:1rem}.group-header{flex-direction:column;align-items:flex-start;gap:1rem}.group-header .danger-button{width:100%}.pictures-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.picture-item img{height:150px}.invite-code-display{flex-direction:column}.invite-code-display .code{margin-right:0;margin-bottom:.5rem}.invite-code-display .secondary-button{width:100%}}@media (prefers-color-scheme: dark){.group-list li:hover{background-color:#646cff33}.group-list li.selected{background-color:#646cff4d}.description,.invite-section,.upload-form{background-color:var(--card-bg)}.error-message{background-color:#dc354533}.success-message{background-color:#28a74533}.member-item,.picture-item{background-color:var(--card-bg)}.picture-meta{background-color:#0000001a}.no-selection{background-color:var(--card-bg)}}:root{--background-color: #ffffff;--text-color: #333333;--border-color: #e1e1e1;--form-bg-color: #f8f9fa;--card-bg-color: #ffffff;--input-bg-color: #ffffff;--highlight-bg-color: #f0f8ff}@media (prefers-color-scheme: dark){:root{--background-color: #222222;--text-color: #f0f0f0;--border-color: #444444;--form-bg-color: #333333;--card-bg-color: #2d2d2d;--input-bg-color: #3a3a3a;--highlight-bg-color: #2c394b}}.admin-page{max-width:800px;margin:2rem auto;padding:1.5rem;background-color:var(--background-color);color:var(--text-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.admin-page h1{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.tabs{display:flex;justify-content:center;margin-bottom:2rem;border-bottom:1px solid #e1e1e1}.tab{padding:.75rem 1.5rem;background:none;border:none;font-size:1rem;font-weight:700;color:var(--gray-color);cursor:pointer;transition:all .2s;position:relative}.tab:hover,.tab.active{color:var(--primary-color)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:3px;background-color:var(--primary-color)}.tab:disabled{color:#ccc;cursor:not-allowed}.message{padding:1rem;border-radius:var(--border-radius);margin-bottom:1.5rem;display:flex;justify-content:flex-start;align-items:center}.message-icon{font-size:1.25rem;margin-right:.75rem;font-weight:700}.close-button{margin-left:auto}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.close-button{background:none;border:none;font-size:1.25rem;font-weight:700;cursor:pointer;padding:0 .5rem}.key-status{margin-bottom:2rem;padding:1rem;background-color:var(--form-bg-color);border-radius:var(--border-radius);text-align:center;color:var(--text-color)}.key-status h2{color:var(--primary-color);margin-bottom:1rem}.status-indicator{font-weight:700;padding:.25rem .5rem;border-radius:20px}.has-keys{background-color:#d4edda;color:#155724}.no-keys{background-color:#f8d7da;color:#721c24}.key-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:1rem}.key-actions button{margin:0}.export-keys,.import-keys{margin-bottom:2rem}.export-keys h2,.import-keys h2{color:var(--primary-color);margin-bottom:.75rem}.export-keys p,.import-keys p{margin-bottom:1rem}.exported-keys-container{position:relative;margin-top:1rem;padding:1rem;background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius)}.export-status{font-weight:700;margin-bottom:.5rem;color:var(--text-color)}.exported-keys,.import-textarea{width:100%;min-height:100px;padding:.75rem;font-family:monospace;border:1px solid var(--border-color);border-radius:var(--border-radius);resize:vertical;background-color:var(--input-bg-color);color:var(--text-color)}.button-group{display:flex;gap:10px;margin-top:1rem;flex-wrap:wrap}.icon-button{background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:4px;padding:.5rem .75rem;color:var(--text-color);cursor:pointer;font-size:.9rem;display:flex;align-items:center;transition:all .2s ease}.icon-button:hover{background-color:var(--primary-color);color:#fff}.primary-button,.secondary-button{padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);font-weight:700;cursor:pointer;transition:background-color .2s;margin-top:1rem}.primary-button{background-color:var(--primary-color);color:#fff}.primary-button:hover{background-color:#004c99}.secondary-button{background-color:#6c757d;color:#fff;margin-right:.5rem}.secondary-button:hover{background-color:#5a6268}.qr-generator{padding:1rem}.qr-generator h2{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.qr-form{margin-bottom:2rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:700;color:var(--text-color)}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--background-color);color:var(--text-color)}.url-input-container{display:flex;align-items:center;position:relative}.url-input-container input{flex-grow:1;border-radius:var(--border-radius) 0 0 var(--border-radius)}.url-path-suffix{padding:.75rem;background-color:#e9ecef;border:1px solid var(--border-color);border-left:none;border-radius:0 var(--border-radius) var(--border-radius) 0;color:#6c757d}.form-help-text{display:block;margin-top:.5rem;font-size:.85rem;color:#6c757d}.qr-result{display:flex;flex-direction:column;align-items:center;margin-top:2rem;padding:1rem;background-color:var(--form-bg-color);border-radius:var(--border-radius);color:var(--text-color);box-shadow:0 2px 4px #0000001a}.qr-image-container{text-align:center;width:100%;margin-bottom:1.5rem}.qr-image{max-width:100%;height:auto;border:1px solid var(--border-color);padding:.5rem;background-color:var(--input-bg-color);border-radius:4px;box-shadow:0 1px 3px #0000001a}.qr-number{margin-top:1rem;font-weight:700;color:var(--primary-color);font-size:1.2rem}.qr-url-section{width:100%;padding:1rem;background-color:var(--card-bg-color);border-radius:var(--border-radius);border:1px solid var(--border-color);margin-bottom:1rem}.qr-url-section h3{color:var(--primary-color);margin-bottom:1rem;text-align:center}.qr-url{width:100%;margin-bottom:1rem}.url-label{font-weight:700;margin-bottom:.5rem;color:#333}.url-container{display:flex;width:100%;margin-bottom:1rem}.url-display{flex-grow:1;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--border-radius) 0 0 var(--border-radius);font-family:monospace;background-color:var(--input-bg-color);color:var(--text-color)}.copy-button{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:0 var(--border-radius) var(--border-radius) 0;cursor:pointer;font-weight:700}.copy-button:hover{background-color:#004c99}.url-help-text{font-size:.85rem;color:var(--text-color);opacity:.7;margin-top:.5rem;text-align:center}.qr-code-preview{margin-top:1rem;text-align:center;padding:.5rem;background-color:var(--highlight-bg-color);border-radius:4px}.qr-code-preview a{color:var(--primary-color);text-decoration:none;font-weight:700}.qr-code-preview a:hover{text-decoration:underline}.qr-actions{margin-top:1rem;display:flex;gap:1rem}.qr-status{margin-top:3rem}.qr-status h3{color:var(--primary-color);margin-bottom:1rem;text-align:center}.qr-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.75rem;margin-bottom:1.5rem}.qr-status-box{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-weight:700;color:#fff;cursor:pointer;box-shadow:var(--box-shadow);transition:transform .2s ease-in-out}.qr-status-box:hover{transform:scale(1.05)}.qr-status-box.generated{background-color:var(--success-color)}.qr-status-box.pending{background-color:var(--gray-color)}
