:root{--color-background:#0f172a;--color-surface:#1e293b;--color-surface-hover:#24324a;--color-primary:#10b981;--color-success:#10b981;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-border:#334155;--color-warning:#f59e0b;--color-error:#ef4444}html,body,#root{height:100%}body{background:var(--color-background);color:var(--color-text-primary);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.nav-link{color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.nav-link:hover{color:var(--color-text-primary)}.app-header>div{font-weight:600}.app-layout{background:var(--color-background);min-height:100vh;color:var(--color-text-primary);flex-direction:column;display:flex}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.app-nav{gap:12px;display:flex}.app-main{flex:1;padding:20px}.button{color:var(--color-text-primary);cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:16px;font-weight:600}.button-primary{background:var(--color-primary)}.button-primary:hover{opacity:.9}.button-secondary{background:var(--color-surface);border:1px solid var(--color-border)}.button-secondary:hover{background:var(--color-surface-hover)}.input-container{flex-direction:column;gap:8px;display:flex}.input-label{color:var(--color-text-primary);font-size:14px}.input-field{background-color:var(--color-surface);border:1px solid var(--color-border);height:44px;color:var(--color-text-primary);border-radius:8px;outline:none;padding:0 12px;font-size:16px}.input-field::placeholder{color:var(--color-text-secondary)}.input-field:focus{border-color:var(--color-primary)}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background-color:var(--color-surface);border-radius:12px;flex-direction:column;gap:16px;width:400px;padding:32px;display:flex}.login-error{color:var(--color-error);font-size:.9rem}.project-card{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:10px;padding:20px;transition:all .2s}.project-card:hover{background-color:var(--color-surface-hover);transform:translateY(-2px)}.project-card h3{color:var(--color-text-primary);margin:0;font-size:18px;font-weight:600}.project-card p{color:var(--color-text-secondary);margin:8px 0 0;font-size:14px}.projects-container{max-width:900px;margin:40px auto;padding:24px}.projects-container h1{margin-bottom:12px}.projects-description{color:var(--color-text-secondary);margin-bottom:24px}.projects-list{gap:16px;display:grid}.projects-loading,.projects-error{max-width:900px;margin:40px auto;padding:24px}.progress-card{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:10px;padding:20px}.progress-card h3{color:var(--color-text-primary);margin:0 0 20px;font-size:18px;font-weight:600}.progress-item{justify-content:space-between;align-items:center;margin-top:12px;font-size:14px;display:flex}.progress-item span{color:var(--color-text-secondary)}.progress-item strong{color:var(--color-text-primary)}.progress-bar-container{background-color:var(--color-border);border-radius:999px;width:100%;height:8px;margin-top:20px;overflow:hidden}.progress-bar{background-color:var(--color-primary);border-radius:999px;height:100%}.progress-percentage{color:var(--color-text-secondary);text-align:right;margin-top:8px;font-size:13px}.project-status-badge{color:var(--color-text-primary);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.status-in_progress{color:var(--color-warning);background-color:#f59e0b26}.status-completed{color:var(--color-success);border:1px solid var(--color-success);background-color:#10b98140}.submission-history{margin-top:24px}.submission-history h4{color:var(--color-text-primary);border-bottom:1px solid var(--color-border);margin:0 0 12px;padding-bottom:8px;font-size:15px;font-weight:600}.submission-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.submission-item:last-child{border-bottom:none}.submission-item strong{color:var(--color-text-primary);font-size:14px}.submission-item p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.submission-item span{color:var(--color-text-secondary);font-size:13px}.dashboard-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px;display:grid}.project-detail{max-width:900px;margin:40px auto;padding:24px}.project-detail h1,.project-detail-section{margin-bottom:24px}.project-detail-section h2{margin-bottom:12px}.project-detail-section p{color:var(--color-text-secondary);line-height:1.6}.criteria-list{flex-direction:column;gap:12px;display:flex}.criterion-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px}.criterion-card h3{margin-bottom:8px}.submission-button{cursor:pointer;background:var(--color-primary);color:#fff;border:none;border-radius:8px;margin-top:12px;padding:12px 20px}.submission-button:hover{opacity:.9}.new-submission{max-width:700px;margin:0 auto}.submission-card{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:10px;margin-top:24px;padding:24px}.submission-card h1{color:var(--color-text-primary);margin:0 0 20px}.submission-card h2{color:var(--color-text-primary);margin:0 0 10px}.project-description{color:var(--color-text-secondary);margin-bottom:16px;line-height:1.5}.project-info{color:var(--color-text-secondary);margin-bottom:24px;font-size:14px}.submission-form{flex-direction:column;gap:16px;display:flex}.submission-form input{border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-text-primary);border-radius:8px;padding:12px;font-size:15px}.submission-form input:focus{border-color:var(--color-primary);outline:none}.submit-button{background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:12px 20px;font-weight:600;transition:all .2s}.submit-button:hover{opacity:.9}.message{color:var(--color-primary);margin-bottom:16px;font-weight:600}.reviews-container{max-width:900px;margin:40px auto;padding:24px}.reviews-container h1{margin-bottom:24px}.reviews-list{flex-direction:column;gap:16px;display:flex}.review-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px}.review-card h2{margin-bottom:16px}.review-card p{color:var(--color-text-secondary);line-height:1.6}.review-button{cursor:pointer;background:var(--color-primary);color:#fff;border:none;border-radius:8px;margin-top:12px;padding:12px 20px}.review-button:hover{opacity:.9}.review-empty,.reviews-empty{color:var(--color-text-secondary)}.review-loading,.reviews-loading,.review-error,.reviews-error,.review-container{max-width:900px;margin:40px auto;padding:24px}.review-container h1,.review-section{margin-bottom:24px}.review-section p{color:var(--color-text-secondary);line-height:1.6}.review-criteria-list{flex-direction:column;gap:12px;display:flex}.review-criterion-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px}.review-criterion-card h3{margin-bottom:8px}.review-criterion-card p{color:var(--color-text-secondary);margin-bottom:16px}.review-options{gap:12px;display:flex}.review-option{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background:0 0;border-radius:8px;padding:10px 24px}.review-option:hover{opacity:.9}.selected-ok{color:var(--color-success);border-color:var(--color-success);background:#10b98126}.selected-ko{color:var(--color-error);border-color:var(--color-error);background:#ef444426}.submit-review-button{cursor:pointer;background:var(--color-primary);color:#fff;border:none;border-radius:8px;margin-top:12px;padding:12px 20px}.submit-review-button:hover{opacity:.9}.submit-review-button:disabled,.review-option:disabled{opacity:.6;cursor:not-allowed}.review-message{color:var(--color-primary);margin-bottom:20px}.review-loading,.review-error{max-width:900px;margin:40px auto;padding:24px}.register-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.register-card{background-color:var(--color-surface);border-radius:12px;flex-direction:column;gap:16px;width:400px;padding:32px;display:flex}.register-error{color:var(--color-error);font-size:.9rem}.login-register{text-align:center;font-size:.9rem}.login-register a{color:var(--color-primary);font-weight:600}
