html{-webkit-tap-highlight-color:transparent;background:#f5f7fb;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{overscroll-behavior-y:contain;background:#f5f7fb;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,label{-webkit-user-select:none;user-select:none}*{box-sizing:border-box}.app{color:#1f2937;background:#f5f7fb;min-height:100vh;padding-bottom:50px}.topbar{color:#fff;background:#111827;justify-content:space-between;align-items:center;padding:22px 20px 28px;display:flex}.brand-small{letter-spacing:.18em;opacity:.7;margin:0 0 4px;font-size:.72rem;font-weight:700}.topbar h1{margin:0;font-size:1.45rem}.avatar{color:#111827;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-weight:800;display:flex}.supervisor-avatar{color:#1d4ed8;background:#dbeafe}.content{width:min(100%,720px);margin:0 auto;padding:22px 18px}.login-page{background:linear-gradient(145deg,#0f172a,#111827);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:26px;width:min(100%,420px);padding:32px 26px;box-shadow:0 30px 80px #00000040}.login-logo{color:#f59e0b;background:#111827;border-radius:18px;justify-content:center;align-items:center;width:62px;height:62px;margin:0 auto 18px;font-size:2rem;display:flex}.login-brand{text-align:center;color:#64748b;letter-spacing:.18em;margin:0;font-size:.72rem;font-weight:800}.login-card h1{text-align:center;color:#111827;margin:8px 0}.login-description{text-align:center;color:#64748b;margin:0 0 28px;line-height:1.45}.login-form{flex-direction:column;gap:17px;display:flex}.login-form label{color:#334155;flex-direction:column;gap:7px;font-size:.84rem;font-weight:700;display:flex}.login-form input{background:#f8fafc;border:1px solid #dbe2ea;border-radius:13px;outline:none;width:100%;padding:13px 14px}.login-form input:focus{background:#fff;border-color:#475569;box-shadow:0 0 0 3px #4755691a}.login-button{color:#fff;cursor:pointer;background:#111827;border:none;border-radius:14px;min-height:52px;margin-top:5px;font-weight:800}.login-button:disabled{opacity:.6}.login-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:11px;font-size:.8rem}.login-footer{text-align:center;color:#94a3b8;margin:23px 0 0;font-size:.72rem}.auth-loading{color:#475569;background:#f5f7fb;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-spinner{border:4px solid #e2e8f0;border-top-color:#111827;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-error-card{text-align:center;background:#fff;border-radius:20px;width:min(100% - 36px,420px);padding:24px;box-shadow:0 10px 30px #0f172a14}.auth-error-card button{color:#fff;cursor:pointer;background:#111827;border:none;border-radius:12px;padding:12px 18px;font-weight:700}.welcome{margin-bottom:28px}.welcome-label{color:#6b7280;margin:0;font-size:.9rem}.welcome h2{margin:3px 0 6px;font-size:1.8rem}.welcome-text{color:#6b7280;margin:0;line-height:1.5}.section{margin-bottom:28px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-header h3{margin:0}.section-header span{color:#6b7280;font-size:.82rem}.job-card,.project-summary-card,.evidence-detail-card,.guide-card,.metadata-preview,.photo-preview-card,.thumbnail-card,.quality-card,.supervisor-progress-card,.review-detail-card,.review-photo-card,.review-data-card{background:#fff;border-radius:20px;margin-bottom:18px;padding:18px;box-shadow:0 8px 24px #0f172a0f}.job-card-top{gap:14px;display:flex}.job-icon{background:#fff7ed;border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.6rem;display:flex}.job-info{flex:1}.job-type{color:#d97706;margin:0 0 4px;font-size:.78rem;font-weight:800}.job-info h4{margin:0 0 5px}.job-location{color:#6b7280;margin:0;font-size:.85rem}.job-status-row,.project-progress-row{justify-content:space-between;margin-top:18px;display:flex}.status-badge{color:#0369a1;background:#e0f2fe;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:700}.progress-text{font-weight:800}.progress-bar{background:#e5e7eb;border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.progress-value{background:#111827;height:100%;transition:width .25s}.progress-counter{text-align:right;color:#64748b;margin-top:8px;font-size:.8rem}.job-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.job-summary div,.supervisor-stats div{text-align:center;background:#f8fafc;border-radius:14px;padding:12px}.job-summary strong,.supervisor-stats strong{font-size:1.15rem;display:block}.job-summary span,.supervisor-stats span{color:#64748b;margin-top:3px;font-size:.72rem;display:block}.primary-button,.camera-button,.save-evidence-button{color:#fff;cursor:pointer;background:#111827;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:52px;margin-top:18px;font-weight:800;display:flex}.save-evidence-button{background:#16a34a}.save-evidence-button:disabled{opacity:.55;cursor:not-allowed}.project-topbar{gap:14px}.back-button{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:12px;width:42px;height:42px;font-size:1.4rem}.project-label{color:#d97706;margin:0;font-size:.75rem;font-weight:800}.project-summary-card h2{margin:5px 0}.checklist{flex-direction:column;gap:18px;display:flex}.checklist-group{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 8px 24px #0f172a0f}.checklist-group-header{border-bottom:1px solid #eef2f7;gap:12px;padding:16px;display:flex}.step-number{color:#fff;background:#111827;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-weight:800;display:flex}.checklist-group-header h4{margin:0 0 3px}.checklist-group-header p{color:#64748b;margin:0;font-size:.8rem}.evidence-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #eef2f7;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.evidence-item:last-child{border-bottom:none}.evidence-item:hover,.evidence-completed{background:#f8fafc}.evidence-status{background:#f1f5f9;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-weight:800;display:flex}.evidence-status.completed{color:#fff;background:#16a34a}.evidence-info{flex-direction:column;flex:1;gap:4px;display:flex}.evidence-title{font-size:.9rem;font-weight:700}.evidence-pending{color:#d97706;font-size:.75rem}.evidence-arrow{color:#9ca3af;font-size:1.4rem}.detail-stage{color:#d97706;background:#fff7ed;border-radius:999px;padding:6px 10px;font-size:.73rem;font-weight:800;display:inline-block}.evidence-detail-card h2,.review-detail-card h2{margin:12px 0 8px}.detail-description{color:#64748b;line-height:1.5}.recommendation-list{color:#475569;padding-left:20px}.recommendation-list li{margin-bottom:9px}.photo-preview,.thumbnail-preview,.supervisor-photo{object-fit:contain;background:#f1f5f9;border-radius:16px;width:100%;max-height:440px}.photo-info{color:#64748b;justify-content:space-between;gap:12px;margin-top:10px;font-size:.8rem;display:flex}.thumbnail-header,.quality-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quality-label{color:#64748b;letter-spacing:.1em;margin:0;font-size:.67rem;font-weight:800}.thumbnail-header h3,.quality-header h3{margin:4px 0 0}.saving-badge,.analyzing-badge{color:#15803d;background:#ecfdf5;border-radius:999px;padding:7px 9px;font-size:.72rem;font-weight:800}.compression-stats{grid-template-columns:repeat(2,1fr);gap:9px;margin-top:12px;display:grid}.compression-stats div{background:#f8fafc;border-radius:12px;padding:10px}.compression-stats span{color:#64748b;font-size:.7rem;display:block}.compression-stats strong{margin-top:3px;display:block}.quality-results{border:1px solid #eef2f7;border-radius:14px;margin-top:14px;overflow:hidden}.quality-row{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.quality-row:last-child{border-bottom:none}.quality-name,.quality-value{display:block}.quality-name{font-weight:700}.quality-value{color:#64748b;font-size:.75rem}.quality-ok{color:#15803d;font-size:.77rem;font-weight:800}.quality-error{color:#dc2626;font-size:.77rem;font-weight:800}.photo-actions{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.secondary-button,.confirm-button{cursor:pointer;text-align:center;border:none;border-radius:14px;justify-content:center;align-items:center;min-height:50px;font-weight:800;display:flex}.secondary-button{background:#e5e7eb}.confirm-button{color:#fff;background:#111827}.confirm-button:disabled{opacity:.55;cursor:not-allowed}.metadata-preview h3{margin-top:0}.metadata-item{border-bottom:1px solid #eef2f7;gap:10px;padding:11px 0;display:flex}.metadata-item:last-child{border-bottom:none}.metadata-item p{color:#64748b;margin:4px 0 0;font-size:.8rem}.supabase-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:14px;margin-bottom:18px;padding:13px}.inline-status,.review-status{border-radius:999px;width:fit-content;padding:5px 9px;font-size:.71rem;font-weight:800;display:inline-block}.status-review{color:#c2410c;background:#fff7ed}.status-approved{color:#15803d;background:#ecfdf5}.status-observed{color:#dc2626;background:#fef2f2}.technician-result{border-radius:14px;margin-top:16px;padding:13px}.technician-result p{margin:6px 0 0;font-size:.83rem}.supervisor-welcome{margin-bottom:20px}.supervisor-job-title{background:#fff;border-radius:18px;padding:16px;box-shadow:0 6px 18px #0f172a0d}.supervisor-welcome p{color:#64748b;margin:0}.supervisor-welcome h2{margin:5px 0}.supervisor-welcome span{color:#64748b}.supervisor-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;display:grid}.supervisor-progress-card p{color:#64748b;margin-bottom:0;font-size:.82rem}.supervisor-evidence-list{flex-direction:column;gap:10px;display:flex}.supervisor-evidence-item{text-align:left;cursor:pointer;background:#fff;border:none;border-radius:16px;align-items:center;gap:12px;width:100%;padding:14px;display:flex;box-shadow:0 5px 15px #0f172a0d}.supervisor-evidence-icon{background:#eff6ff;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.supervisor-evidence-info{flex-direction:column;flex:1;gap:4px;display:flex}.supervisor-evidence-info>span:not(.inline-status){color:#64748b;font-size:.75rem}.empty-supervisor{text-align:center;background:#fff;border-radius:18px;padding:30px}.empty-supervisor>span{font-size:2.3rem}.empty-supervisor p{color:#64748b}.review-status{margin-top:8px}.review-photo-card h3,.review-data-card h3{margin-top:0}.private-photo-note{color:#64748b;font-size:.76rem}.image-loading{color:#64748b;background:#f8fafc;border-radius:15px;justify-content:center;align-items:center;min-height:200px;display:flex}.review-data-row{border-bottom:1px solid #eef2f7;justify-content:space-between;gap:20px;padding:11px 0;display:flex}.review-data-row:last-child{border-bottom:none}.review-data-row span{color:#64748b}.review-data-row strong{text-align:right;font-size:.84rem}.observation-card{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:16px;margin-bottom:18px;padding:15px}.observation-card p{margin:7px 0 0}.review-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.approve-button,.observe-button,.return-review-button{cursor:pointer;border:none;border-radius:14px;min-height:52px;font-weight:800}.approve-button{color:#fff;background:#16a34a}.observe-button{color:#fff;background:#dc2626}.return-review-button{color:#111827;background:#e5e7eb;width:100%;margin-top:10px}.logout-button{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:13px;width:100%;margin-top:15px;padding:12px;font-weight:700}.logout-button:hover{background:#f8fafc}button:disabled{opacity:.55;cursor:not-allowed}@media (width>=768px){.topbar{padding-left:calc(50% - 342px);padding-right:calc(50% - 342px)}.jobs-list{flex-direction:column;gap:18px;display:flex}.project-description{color:#64748b;margin:7px 0 0;font-size:.87rem;line-height:1.45}.job-card+.job-card{margin-top:0}}
