body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh}.login-form{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:400px;padding:2rem;width:100%}.login-form h1{color:#333;margin-bottom:.5rem;text-align:center}.login-form p{color:#666;margin-bottom:1.5rem;text-align:center}.login-form input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:1rem;margin-bottom:1rem;padding:.75rem;width:100%}.login-form input:focus{border-color:#007bff;outline:none}.login-form button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s;width:100%}.login-form button:hover:not(:disabled){background-color:#0056b3}.login-form button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{background-color:#f8d7da;color:#dc3545;margin-top:1rem;padding:.75rem}.project-list-container{margin:0 auto;max-width:1200px;padding:2rem}.tabs-container{margin-bottom:2rem}.tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:8px}.tab{border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:16px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .2s}.tab,.tab:hover{background:#0000}.tab:hover{color:#333}.tab.active{background:#0000;border-bottom-color:#007bff;color:#007bff}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:1rem;padding:1rem}.loading{color:#666;font-size:1.1rem;padding:2rem}.no-projects{color:#666;font-size:1.2rem;margin-top:4rem;text-align:center}.project-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));overflow:visible;padding:1rem}.project-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:inherit;cursor:pointer;display:block;min-height:200px;padding:1.5rem;position:relative;text-decoration:none;transition:all .2s ease}.project-card:hover:not(.no-hover){border-color:#007bff;box-shadow:0 4px 8px #00000026;text-decoration:none;transform:translateY(-2px)}.project-card.no-hover{border-color:#e0e0e0!important;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d!important;transform:none!important}.project-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.project-card h3{color:#333;flex:1 1;font-size:1.25rem;margin:0}.project-details{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.detail-item{align-items:center;display:flex;justify-content:space-between}.detail-item .label{color:#666;font-size:.875rem;font-weight:500}.detail-item .value{color:#333;font-size:.875rem;font-weight:600}.progress-bar{background-color:#e0e0e0;border-radius:4px;height:8px;margin-top:1rem;overflow:hidden;width:100%}.progress-fill{background-color:#28a745;height:100%;transition:width .3s ease}.project-card.completed{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-color:#28a745;box-shadow:0 2px 8px #28a74533}.project-card.completed:hover{border-color:#1e7e34;box-shadow:0 4px 12px #28a7454d}.project-card.completed .progress-fill{animation:progress-animation 1s linear infinite;background-color:#28a745;background-image:linear-gradient(45deg,#fff3 25%,#0000 0,#0000 50%,#fff3 0,#fff3 75%,#0000 0,#0000);background-size:8px 8px}@keyframes progress-animation{0%{background-position:0 0}to{background-position:8px 0}}.completion-badge{background-color:#28a745}.completion-badge,.locked-badge{border-radius:12px;color:#fff;flex-shrink:0;font-size:.75rem;font-weight:700;padding:4px 8px;text-align:center;white-space:nowrap}.locked-badge{background-color:#dc3545}.project-card.locked{background:#f8f9fa;cursor:not-allowed;opacity:.7}.project-card.locked:hover{border-color:#dc3545;box-shadow:0 2px 4px #0000001a;transform:none}.project-due-date{align-items:center;display:flex;gap:8px;margin:.5rem 0 1rem}.due-label{color:#666;font-size:.9rem;font-weight:500}.due-value{color:#ff6b6b;font-size:.9rem;font-weight:600}.due-value.overdue{color:#dc3545;font-weight:700}.due-value.completed{color:#28a745;font-weight:600}.project-progress{bottom:1.5rem;left:1.5rem;position:absolute}.progress-text{color:#666;font-size:.9rem;font-weight:500}.project-earnings{align-items:flex-end;bottom:1.5rem;display:flex;flex-direction:column;gap:4px;position:absolute;right:1.5rem;text-align:right}.earnings-amount{color:#28a745;font-size:1.75rem;font-weight:700;line-height:1}.earnings-label{color:#666;font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.retry-button{background-color:#007bff;border-radius:4px;font-size:.875rem;margin-top:1rem;padding:.5rem 1rem}.retry-button:hover{background-color:#0056b3}.projects-content h2{color:#333;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.playground-recording-modal-backdrop{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172abf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.playground-recording-modal{animation:slideUp .3s ease-out;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:0;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0000000d;display:flex;flex-direction:column;height:100vh;margin:0;max-height:100vh;max-width:100vw;overflow:visible;position:relative;width:fit-content;width:100vw}.playground-recording-modal.recording{animation:recordingPulse 2s ease-in-out infinite;box-shadow:0 25px 50px -12px #ef444440,0 0 0 2px #ef444466,0 0 40px #ef444426}.playground-recording-modal.recording .recording-close-button{animation:closeButtonPulse 2s ease-in-out infinite}@keyframes closeButtonPulse{0%,to{box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}50%{box-shadow:0 6px 16px #ef444433,0 3px 6px #ef444426}}@keyframes recordingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.002)}}.recording-close-button{align-items:center;background:#fff;border:2px solid #00000014;border-radius:50%;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;color:#475569;cursor:pointer;display:flex;font-size:16px;font-weight:600;height:36px;justify-content:center;position:absolute;right:10px;top:10px;transition:all .2s cubic-bezier(.4,0,.2,1);width:36px;z-index:20}.recording-close-button:hover{background:#f8fafc;border-color:#ef44444d;box-shadow:0 8px 20px #ef444440,0 4px 8px #ef444426;color:#ef4444;transform:scale(1.1) rotate(90deg)}.recording-close-button:active{transform:scale(.95) rotate(90deg)}.modal-scroll-content{align-items:stretch;border-radius:16px;display:flex;flex:1 1;flex-direction:column;justify-content:flex-start;max-height:95vh;min-height:0;overflow-x:hidden;overflow-y:auto;position:relative;scrollbar-color:#cbd5e1 #f1f5f9;scrollbar-width:thin;width:100%}.modal-scroll-content::-webkit-scrollbar{width:10px}.modal-scroll-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px;margin:10px 0}.modal-scroll-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px;-webkit-transition:background .2s;transition:background .2s}.modal-scroll-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.recording-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,#f9fafbfa,#fffffffa);border-bottom:1px solid #0000000f;border-radius:16px 16px 0 0;flex-shrink:0;margin-right:80px;min-height:auto;overflow:visible;padding:12px 24px;position:relative;transition:padding .3s ease;width:calc(100% - 80px);z-index:10}.recording-header.collapsed{padding:10px 24px}.recording-header:after{background:linear-gradient(90deg,#0000,#0000001a 20%,#0000001a 80%,#0000);bottom:0;content:"";height:1px;left:0;position:absolute;right:0}.header-top-row{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.recording-info h2{align-items:center;color:#0f172a;display:flex;font-size:20px;font-weight:600;gap:8px;letter-spacing:-.025em;margin:0 0 6px}.recording-indicator{align-items:center;background:#ef44441a;border-radius:6px;display:inline-flex;padding:4px 8px}.recording-dot{animation:pulse 1.5s ease-in-out infinite;background:#ef4444;border-radius:50%;box-shadow:0 0 0 2px #ef444433;height:10px;width:10px}@keyframes pulse{0%,to{box-shadow:0 0 0 2px #ef444433;opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px #ef44441a;opacity:.8;transform:scale(1.2)}}.recording-subtitle{color:#64748b;font-size:13px;line-height:1.4;margin:0;max-width:600px}.recording-timer{font-feature-settings:"tnum";align-items:center;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #ef444433;border-radius:6px;box-shadow:0 2px 4px #ef44441a;color:#dc2626;display:inline-flex;font-size:14px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.025em;padding:4px 10px}.video-recording-badge{animation:videoGlow 2s ease-in-out infinite;font-size:20px}@keyframes videoGlow{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.video-error-message{background:#fbbf241a;border-radius:4px;color:#f59e0b;font-size:14px;margin-left:12px;padding:4px 8px}.header-right-controls{align-items:center;display:flex;gap:12px}.recording-controls{display:flex;gap:8px}.action-button,.cancel-recording-button,.reset-playground-button,.start-recording-button,.stop-recording-button{border:none;border-radius:10px;box-shadow:0 1px 3px #0000001a;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s cubic-bezier(.4,0,.2,1)}.cancel-recording-button{background:#fff;border:1px solid #e2e8f0;color:#475569}.cancel-recording-button:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.reset-playground-button{align-items:center;background:#fff;border:1px solid #3b82f6;color:#3b82f6;display:flex;font-weight:500;gap:6px}.reset-playground-button:hover:not(:disabled){background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#2563eb;box-shadow:0 4px 12px #3b82f626;color:#2563eb;transform:translateY(-1px)}.reset-playground-button:disabled{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8;cursor:not-allowed;opacity:.6}.start-recording-button{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 14px #ef44444d;color:#fff;display:flex;gap:8px}.start-recording-button:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 20px #ef444466;transform:translateY(-2px)}.start-recording-button:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}.stop-recording-button{background:linear-gradient(135deg,#334155,#1e293b);box-shadow:0 4px 14px #3341554d;color:#fff}.stop-recording-button:hover:not(:disabled){background:linear-gradient(135deg,#1e293b,#0f172a);box-shadow:0 6px 20px #33415566;transform:translateY(-2px)}.action-button{background:#fff;border:1px solid #e2e8f0;color:#475569}.action-button:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.button-spinner{border:2px solid #ffffff40;height:12px;width:12px}.reset-playground-button .button-spinner{border:2px solid #3b82f64d;border-top-color:#3b82f6}.login-info-container{position:relative}.login-info-dropdown{animation:dropdownSlide .2s ease-out;background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a,0 0 0 1px #0000000d;min-width:320px;padding:18px}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.login-info-dropdown h3{border-bottom:1px solid #e2e8f0;color:#0f172a;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:12px}.credential-row{align-items:center;background:#f8fafc;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:12px;padding:8px 12px;transition:background .2s}.credential-row:hover{background:#f1f5f9}.credential-row p{color:#475569;font-size:14px;margin:0}.credential-row strong{color:#334155;margin-right:8px}.credential-row code{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#0f172a;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;padding:4px 8px}.copy-button-inline{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;font-size:14px;margin-left:8px;padding:6px;transition:all .2s}.copy-button-inline:hover{background:#f1f5f9;border-color:#cbd5e1;transform:scale(1.05)}.collapse-button{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;justify-content:center;margin-left:8px;padding:8px;transition:all .2s}.collapse-button:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.collapse-icon{color:#64748b;transition:transform .3s ease}.collapse-icon.collapsed{transform:rotate(180deg)}.task-description-section{animation:slideDown .3s ease-out;background:linear-gradient(135deg,#f0f9ff,#f8fafc);border:1px solid #0ea5e926;border-radius:8px;margin-top:12px;overflow:hidden;padding:10px 14px;position:relative}@keyframes slideDown{0%{margin-top:0;max-height:0;opacity:0}to{margin-top:12px;max-height:200px;opacity:1}}.task-description-section:before{background:linear-gradient(90deg,#3b82f6,#0ea5e9,#06b6d4);content:"";height:2px;left:0;position:absolute;right:0;top:0}.task-description-section p{color:#475569;font-size:13px;line-height:1.5;margin:4px 0}.task-description-section p:last-child{margin-bottom:0}.task-description-section strong{color:#0f172a;font-weight:600;margin-right:8px}.playground-iframe-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;flex-shrink:0;margin:0 auto;overflow:hidden;position:relative}.playground-iframe-container::-webkit-scrollbar{height:12px;width:12px}.playground-iframe-container::-webkit-scrollbar-track{background:#f1f5f980;border-radius:6px}.playground-iframe-container::-webkit-scrollbar-thumb{background:#94a3b899;background-clip:content-box;border:2px solid #0000;border-radius:6px}.playground-iframe-container::-webkit-scrollbar-thumb:hover{background:#64748bcc;background-clip:content-box}.playground-iframe-container::-webkit-scrollbar-corner{background:#0000}.iframe-loading-skeleton{align-items:center;background:linear-gradient(135deg,#fff,#f9fafb);bottom:0;display:flex;flex-direction:column;gap:20px;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:5}.loading-text{animation:fadeInOut 2s ease-in-out infinite;color:#64748b;font-size:16px;font-weight:500}@keyframes fadeInOut{0%,to{opacity:.5}50%{opacity:1}}.iframe-loading-skeleton:before{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#3b82f6;content:"";height:60px;width:60px}.playground-recording-iframe{background:#fff;border:none;display:block;height:850px;position:relative;transform-origin:top left;width:1400px}.playground-recording-iframe.hidden{visibility:hidden}.exit-confirmation-backdrop,.reset-confirmation-backdrop{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172abf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10001}.exit-confirmation-modal,.reset-confirmation-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0000000d;max-width:440px;padding:28px}.exit-confirmation-modal h3,.reset-confirmation-modal h3{color:#0f172a;font-size:22px;font-weight:600;letter-spacing:-.025em;margin:0 0 16px}.exit-confirmation-modal p,.reset-confirmation-modal p{color:#64748b;font-size:15px;line-height:1.6;margin:0 0 24px}.exit-confirmation-buttons,.reset-confirmation-buttons{display:flex;gap:12px;justify-content:flex-end}.exit-cancel-button,.exit-confirm-button{border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s cubic-bezier(.4,0,.2,1)}.exit-cancel-button{background:#fff;border:1px solid #e2e8f0;color:#475569}.exit-cancel-button:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.exit-confirm-button{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 14px #ef44444d;color:#fff}.exit-confirm-button:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 20px #ef444466;transform:translateY(-2px)}.reset-cancel-button,.reset-confirm-button{border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s cubic-bezier(.4,0,.2,1)}.reset-cancel-button{background:#fff;border:1px solid #e2e8f0;color:#475569}.reset-cancel-button:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.reset-confirm-button{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 14px #3b82f64d;color:#fff}.reset-confirm-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 20px #3b82f666;transform:translateY(-2px)}.reset-confirm-button:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed;opacity:.7}.video-recording-prompt .video-prompt-instruction{background:linear-gradient(135deg,#f0f9ff,#eff6ff);border:1px solid #3b82f633;border-radius:10px;margin:16px 0;overflow:hidden;padding:14px 16px;position:relative}.video-recording-prompt .video-prompt-instruction:before{background:linear-gradient(90deg,#3b82f6,#2563eb);content:"";height:2px;left:0;position:absolute;right:0;top:0}.video-recording-prompt .video-prompt-instruction strong{color:#1e40af;font-weight:600}.submission-modal .submission-notes{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;line-height:1.6;margin:16px 0;padding:12px 14px;resize:vertical;transition:all .2s;width:100%}.submission-modal .submission-notes:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.impossible-task-button-modal{align-items:center;background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;padding:.5rem 1rem;transition:all .2s ease}.impossible-task-button-modal:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.impossible-task-button-modal:disabled{cursor:not-allowed;opacity:.5}.impossible-task-modal-web{max-width:600px}.task-viewer{background-color:#f9fafb;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;overflow:hidden}.task-header{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;flex-shrink:0;padding:1rem 2rem}.back-button{align-items:center;background:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.back-button:hover{background:#4b5563;transform:translateY(-1px)}.task-scrollable-content{display:flex;flex:1 1;flex-direction:column;overflow-x:hidden;overflow-y:auto}.progress-section{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:1.5rem 2rem;text-align:center}.task-progress-indicator{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin-bottom:12px;margin-left:auto;margin-right:auto;max-width:1200px;padding:0 20px}.progress-dot{align-items:center;border:2px solid #0000;border-radius:50%;cursor:pointer;display:flex;font-size:12px;font-weight:600;height:32px;justify-content:center;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:32px}.progress-dot.empty{background:#f3f4f6;border-color:#e5e7eb;color:#9ca3af}.progress-dot.has-file{background:#dbeafe;border-color:#6366f1;color:#4f46e5}.progress-dot.has-file:after{content:"📄";font-size:14px}.progress-dot.completed{background:#d1fae5;border-color:#10b981;color:#059669}.progress-dot.completed:after{content:"✓";font-size:16px;font-weight:700}.progress-dot.impossible{background:#fee2e2;border-color:#ef4444;color:#dc2626}.progress-dot.impossible:after{content:"⚠";font-size:16px;font-weight:700}.progress-dot.impossible-completed{background:#dc2626;border-color:#991b1b;color:#fff}.progress-dot.impossible-completed:after{content:"✓";font-size:16px;font-weight:700}.progress-dot.active{box-shadow:0 0 0 4px #6366f133;transform:scale(1.15)}.progress-dot:hover{box-shadow:0 4px 12px #00000026;transform:scale(1.1)}.progress-label{color:#6b7280;font-size:.875rem;font-weight:600}.task-content{flex:1 1;flex-direction:column;gap:1.5rem;margin:0 auto;max-width:1200px;min-height:0;width:100%}.task-content,.task-info{display:flex;padding:2rem}.task-info{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;flex-wrap:wrap;gap:1rem;justify-content:space-between;transition:all .2s ease}.task-info:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.task-info h2{color:#1f2937;font-size:1.5rem;font-weight:700;line-height:1.2;margin:0}.task-status{font-weight:600}.status-completed{background:#d1fae5;border:1px solid #a7f3d0;border-radius:20px;color:#059669}.status-completed,.status-pending{font-size:.875rem;padding:.5rem 1rem}.status-pending{background:#fef3c7;border:1px solid #fcd34d;border-radius:20px;color:#d97706}.task-description{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:2rem;transition:all .2s ease}.task-description:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.task-description h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem}.task-description p{color:#374151;line-height:1.6;margin:0;white-space:pre-wrap}.task-files{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:2rem;transition:all .2s ease}.task-files:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.task-files h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem}.file-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.file-item:hover{background:#f3f4f6;border-color:#d1d5db}.file-item span{color:#374151;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-weight:500}.download-button,.sandbox-button{background:#6366f1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.download-button:hover,.sandbox-button:hover{background:#4f46e5;transform:translateY(-1px)}.sandbox-button{background:#10b981}.sandbox-button:hover{background:#059669}.solution-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;flex-shrink:0;min-height:auto;overflow:visible;padding:2rem;transition:all .2s ease}.solution-section:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.solution-section h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.75rem}.completed-info{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;position:relative}.completed-info:before{background:linear-gradient(90deg,#10b981,#059669);content:"";height:3px;left:0;position:absolute;right:0;top:0}.completed-file-card{align-items:center;display:flex;gap:.75rem;padding:1rem}.completed-file-icon{color:#059669;font-size:1.25rem}.completed-file-info{flex:1 1}.completed-file-name{color:#1f2937;font-size:.9rem;font-weight:500;margin-bottom:.25rem}.completed-status-badge{align-items:center;background:#d1fae5;border:1px solid #a7f3d0;border-radius:12px;color:#065f46;display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;padding:.25rem .625rem}.solution-details{border-top:1px solid #f3f4f6;margin-top:0;padding:0 1rem 1rem}.solution-details p{color:#6b7280;font-size:.8rem;margin:.5rem 0}.solution-details strong{color:#374151;font-weight:500}.upload-section{display:flex;flex-direction:column;gap:1rem;min-height:auto;overflow:visible}.desktop-submission{margin-bottom:1.5rem;min-height:auto;overflow:visible}.submission-header p{color:#6b7280;font-weight:500;margin-bottom:1.5rem}.submission-content{align-items:flex-start;display:flex;flex-direction:column;gap:1rem}.drop-zone{align-items:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;margin:0;min-height:120px;padding:2rem;text-align:center;transition:all .2s ease;width:100%}.drop-zone:hover{border-color:#9ca3af}.drop-zone.dragging{background:#eef2ff;border-color:#6366f1}.drop-zone.has-file{min-height:auto;padding:1rem}.drop-zone.submitted{background:#f9fafb;border:2px solid #e5e7eb;cursor:default}.drop-zone.submitted:hover{border-color:#e5e7eb}.drop-zone-content{pointer-events:none;text-align:center}.drop-zone-icon{display:block;font-size:2.5rem;margin-bottom:.75rem;opacity:.7}.drop-zone-text{color:#6b7280;font-size:.875rem;line-height:1.4;margin:.5rem 0}.drop-zone-text strong{color:#374151;font-weight:600}.drop-zone-hint{color:#9ca3af!important;font-size:.75rem!important;margin-top:.75rem!important}.file-selected{width:100%}.file-selected .file-info{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:.75rem;padding:1rem}.file-selected .file-icon{font-size:1.25rem}.file-selected .file-name{color:#1f2937;flex:1 1;font-size:.9rem;font-weight:500;line-height:1.4;margin-bottom:0}.file-selected .file-size{color:#6b7280;font-size:.8rem;font-weight:400;margin-left:.25rem}.file-selected .remove-file{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:1rem;font-weight:400;height:auto;padding:.25rem;transition:all .2s ease;width:auto}.file-selected .remove-file:hover{background:#fee2e2;color:#dc2626;transform:none}.file-selected.submitted .file-info{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #cbd5e1;position:relative}.file-selected.submitted .file-info:after{background:linear-gradient(90deg,#10b981,#059669);border-radius:8px 8px 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.file-selected.submitted .file-icon{color:#059669}.file-selected.submitted .file-name{color:#0f172a}.file-selected.submitted .file-size{color:#64748b}.submitted-indicator{align-items:center;background:#d1fae5;border:1px solid #a7f3d0;border-radius:12px;color:#065f46;display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;padding:.25rem .625rem}.submit-solution-button{align-items:center;align-self:flex-start;background:#6366f1;border:none;border-radius:8px;box-shadow:0 2px 8px #6366f14d;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;min-width:160px;padding:.875rem 2rem;transition:all .2s ease;white-space:nowrap;width:auto}.submit-solution-button:hover:not(:disabled){background:#4f46e5;box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.submit-solution-button:disabled{box-shadow:0 2px 8px #6b72804d;cursor:not-allowed;transform:none}.submit-solution-button.submitted{background:#10b981;box-shadow:0 2px 8px #10b9814d;color:#fff}.submit-solution-button.submitted:hover{background:#10b981;box-shadow:0 2px 8px #10b9814d;transform:none}.button-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.file-error{background-color:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;font-weight:500;margin-top:.75rem;padding:.75rem}.web-submission{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:12px;margin-bottom:1.5rem;min-height:auto;overflow:visible;padding:2rem;text-align:center}.web-submission p{color:#0f172a;font-weight:500;margin-bottom:1rem}.playground-button{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:8px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;margin:1rem auto;padding:.875rem 1.5rem;transition:all .2s ease;white-space:nowrap}.playground-button:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 6px 16px #8b5cf666;transform:translateY(-1px)}.playground-note{color:#64748b;font-size:.875rem;font-style:italic;margin-top:.75rem}.navigation-section{background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -1px 3px #0000000d;flex-shrink:0;margin-top:auto;padding:1.5rem 2rem}.navigation-controls{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin:0 auto;max-width:400px}.nav-button{align-items:center;background:#6366f1;border:none;border-radius:8px;box-shadow:0 2px 8px #6366f14d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.75rem;justify-content:center;min-width:120px;padding:.875rem 1.5rem;transition:all .2s ease}.nav-button:hover:not(:disabled){background:#4f46e5;box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.nav-button:active:not(:disabled){box-shadow:0 2px 8px #6366f14d;transform:translateY(0)}.nav-button-previous{background:#6b7280;box-shadow:0 2px 8px #6b72804d}.nav-button-previous:hover:not(:disabled){background:#4b5563;box-shadow:0 4px 12px #6b728066}.nav-button-finish{background:#10b981;box-shadow:0 2px 8px #10b9814d}.nav-button-finish:hover:not(:disabled){background:#059669;box-shadow:0 4px 12px #10b98166}.nav-button-finish.disabled{background:#e5e7eb;box-shadow:none;color:#9ca3af;cursor:not-allowed;transform:none}.nav-button-finish.enabled{background:#10b981;color:#fff}.nav-button:disabled{background:#e5e7eb;box-shadow:none;color:#9ca3af;cursor:not-allowed;transform:none}.nav-icon{font-size:1.125rem;font-weight:700}.nav-text{font-size:1rem;font-weight:600}.loading{color:#6b7280;font-size:1.125rem;padding:4rem 2rem}.error-message,.loading{font-weight:500;text-align:center}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:12px;color:#991b1b;margin:2rem;padding:1.5rem}.retry-button{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin:1rem auto;padding:.75rem 1.5rem;transition:all .2s ease}.retry-button:hover{background:#4f46e5;transform:translateY(-1px)}.no-tasks{background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:#6b7280;font-size:1.125rem;font-weight:500;margin:2rem;padding:4rem 2rem;text-align:center}@media (max-width:768px){.task-content{gap:1rem;padding:1rem}.solution-section,.task-description,.task-files,.task-info{padding:1.5rem}.task-info{align-items:flex-start;flex-direction:column}.navigation-controls{gap:1rem}.nav-button{font-size:.875rem;min-width:100px;padding:.75rem 1rem}.task-progress-indicator{gap:8px}.progress-dot{height:28px;width:28px}.drop-zone{padding:2rem 1rem}.bad-task-button,.impossible-task-button,.playground-button,.submit-solution-button{max-width:none;width:100%}.submission-content{width:100%}}@media (max-width:480px){.navigation-section,.progress-section,.task-header{padding-left:1rem;padding-right:1rem}.navigation-controls{flex-direction:column;gap:1rem}.nav-button{width:100%}}.bad-task-section{background:#f9f9f9;border-radius:8px;margin-bottom:1.5rem;min-height:auto;overflow:visible;padding:1rem}.bad-task-button{align-items:center;background:#fbbf24;border:none;border-radius:6px;box-shadow:0 1px 3px #fbbf244d;color:#78350f;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.bad-task-button:hover:not(:disabled){background:#f59e0b;box-shadow:0 2px 6px #fbbf2466;transform:translateY(-1px)}.bad-task-button:disabled{cursor:not-allowed;opacity:.6}.bad-task-button.disputed{background:#6c757d}.bad-task-button.submitted{background:#6c757d;opacity:.5}.dispute-error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;font-size:.9rem;margin-top:.5rem;padding:.5rem}.dispute-notice{align-items:center;background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;display:flex;gap:.5rem;margin-bottom:1rem;padding:1rem;position:relative}.dispute-icon{font-size:1.2rem}.dispute-text-container{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.dispute-text{color:#856404;font-weight:500}.dispute-reason{color:#856404;font-size:.9rem;font-style:italic}.dispute-remove-button{background:#0000;border:none;border-radius:4px;color:#856404;cursor:pointer;font-size:1.2rem;font-weight:700;margin-left:auto;padding:.25rem .5rem;transition:all .2s}.dispute-remove-button:hover:not(:disabled){background:#8564041a;color:#6c5403}.dispute-remove-button:disabled{cursor:not-allowed;opacity:.5}.drop-zone.disputed{cursor:not-allowed;opacity:.6}.drop-zone.disputed,.drop-zone.disputed:hover{background:#f8f9fa;border-color:#dee2e6}.submit-solution-button.disputed{background:#6c757d;cursor:not-allowed}.solution-actions{display:flex;justify-content:flex-end;margin-bottom:1rem;margin-top:2rem;padding-right:1rem}.delete-solution-button{align-items:center;background:#ef4444;border:none;border-radius:6px;box-shadow:0 1px 3px #ef44444d;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.delete-solution-button:hover:not(:disabled){background:#dc2626;box-shadow:0 2px 6px #ef444466;transform:translateY(-1px)}.delete-solution-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.delete-confirm-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.delete-confirm-dialog{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040,0 10px 20px -5px #0000001a;max-height:90vh;max-width:420px;overflow-y:auto;padding:2rem;position:relative;width:90%;z-index:10000}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.delete-confirm-dialog h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.delete-confirm-dialog p{color:#4b5563;line-height:1.5;margin:0 0 1.5rem}.delete-confirm-buttons{display:flex;gap:.75rem;justify-content:flex-end}.cancel-button{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s ease}.cancel-button:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.cancel-button:disabled{cursor:not-allowed;opacity:.5}.confirm-delete-button{align-items:center;background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.confirm-delete-button:hover:not(:disabled){background:#dc2626}.confirm-delete-button:disabled{cursor:not-allowed;opacity:.5}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:500px;overflow:auto;width:90%}.dispute-modal{animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#212529;font-size:1.25rem;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;transition:all .2s;width:30px}.modal-close:hover:not(:disabled){background:#f8f9fa;color:#212529}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:1.5rem}.modal-body p{color:#495057;margin:0 0 1rem}.dispute-reason-input{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;display:block;font-family:inherit;font-size:1rem;margin:0 auto;padding:.75rem;resize:vertical;transition:border-color .15s;width:100%}.dispute-reason-input:focus{border-color:#80bdff;box-shadow:0 0 0 3px #007bff1a;outline:none}.dispute-reason-input:disabled{background:#f8f9fa;cursor:not-allowed}.modal-body .error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;font-size:.9rem;margin-top:.75rem;padding:.75rem}.modal-footer{border-top:1px solid #e9ecef;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem}.modal-button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;padding:.5rem 1.25rem;transition:all .2s}.modal-button-cancel{background:#f8f9fa;color:#495057}.modal-button-cancel:hover:not(:disabled){background:#e9ecef}.modal-button-submit{background:#dc3545;color:#fff}.modal-button-submit:hover:not(:disabled){background:#c82333}.modal-button:disabled{cursor:not-allowed;opacity:.5}.additional-solution-section{border-top:2px dashed #e5e7eb;margin-top:1.5rem;padding-top:1.5rem}.additional-solution-header{margin-bottom:1rem}.additional-solution-header p{color:#6b7280;font-size:.9rem;font-weight:500;margin:0 0 .5rem}.solution-card-container{position:relative}.solution-card-container .completed-file-card{padding-right:3rem;position:relative}.solution-delete-button{align-items:center;background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;font-size:1.2rem;height:36px;justify-content:center;line-height:1;padding:.5rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:all .2s ease;width:36px}.solution-delete-button:hover:not(:disabled){background:#dc2626;color:#fff;transform:translateY(-50%) scale(1.05)}.solution-delete-button:disabled{cursor:not-allowed;opacity:.5}.solution-notes{color:#6b7280;font-size:.85rem;margin-top:.25rem}.solution-timestamp{color:#9ca3af;font-size:.8rem;margin-top:.25rem}.impossible-task-section{margin-bottom:1.5rem;min-height:auto;overflow:visible;text-align:center}.impossible-task-button{align-items:center;background:#ef4444;border:none;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:all .2s ease;white-space:nowrap}.impossible-task-button:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.impossible-task-button:disabled{cursor:not-allowed;opacity:.5}.impossible-task-button-large{align-items:center;background:#ef4444;border:none;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:1.125rem;font-weight:600;gap:.5rem;justify-content:center;max-width:400px;padding:1rem 2rem;transition:all .2s ease;width:100%}.impossible-task-button-large:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.impossible-task-button-large:disabled{cursor:not-allowed;opacity:.5}.impossible-task-note{color:#6b7280;font-size:.875rem;margin-top:.5rem}.divider-or{margin:2rem 0;position:relative;text-align:center}.divider-or:before{background:#e5e7eb;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider-or span{background:#fff;color:#9ca3af;font-size:.875rem;font-weight:500;letter-spacing:.05em;padding:0 1rem;position:relative;text-transform:uppercase}.impossible-task-modal{max-width:600px;width:90%}.impossible-task-reason-input{border:1px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:.875rem;padding:.75rem;resize:vertical;transition:border-color .2s ease;width:100%}.impossible-task-reason-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.impossible-task-reason-input:disabled{background:#f9fafb;cursor:not-allowed}.App{display:flex;flex-direction:column;height:100vh;overflow:hidden}.App-header{align-items:center;background-color:#667eea;box-shadow:0 .125rem .5rem #0000001a;color:#fff;display:flex;flex-shrink:0;height:3rem;justify-content:space-between;padding:.5rem 1.5rem}.App-header h1{font-size:1.125rem;font-weight:600;margin:0}.App-header h1:hover{opacity:.8}.user-info{align-items:center;display:flex;gap:1rem}.user-info span{font-size:.813rem}.logout-btn{background-color:#fff;border:none;border-radius:.25rem;color:#667eea;cursor:pointer;font-size:.75rem;font-weight:500;padding:.375rem .75rem;transition:all .2s}.logout-btn:hover{background-color:#f0f0f0;transform:translateY(-.0625rem)}.tutorial-btn{background-color:#17a2b8;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;margin-right:1rem;padding:.375rem .75rem;transition:all .2s}.tutorial-btn:hover{background-color:#138496;transform:translateY(-.0625rem)}.back-btn{background-color:#6c757d;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;margin-right:1rem;padding:.375rem .75rem;transition:all .2s}.back-btn:hover{background-color:#5a6268;transform:translateY(-.0625rem)}.submit-btn{background-color:#28a745;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;margin-right:1rem;padding:.375rem .75rem;transition:all .2s}.submit-btn:hover{background-color:#218838;transform:translateY(-.0625rem)}.App-main{background-color:#f5f5f5;flex:1 1;height:calc(100vh - 3rem);overflow-y:auto}@media (max-width:768px){.App-header{height:2.5rem;padding:.375rem .75rem}.App-header h1{font-size:1rem}.user-info{gap:.5rem}.user-info span{font-size:.75rem}.logout-btn{font-size:.688rem;padding:.25rem .5rem}.App-main{height:calc(100vh - 2.5rem)}}.loading,.no-problems{align-items:center;color:#666;display:flex;font-size:1.2rem;justify-content:center;min-height:400px}
/*# sourceMappingURL=main.1689983c.css.map*/