@keyframes bar-spin{to{transform:rotate(360deg)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--hdr-bg:#1c2333;--hdr-text:#fff;--hdr-h:56px;--bg:#f1f5f9;--card:#fff;--border:#e2e8f0;--border-focus:#1d4ed8;--text:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--primary:#1d4ed8;--primary-dark:#1e40af;--primary-light:#eff6ff;--green:#16a34a;--green-bg:#f0fdf4;--yellow:#b45309;--yellow-bg:#fffbeb;--orange:#c2410c;--orange-bg:#fff7ed;--red:#dc2626;--red-bg:#fef2f2;--radius:10px;--radius-sm:6px;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}html,body,#root{width:100%;height:100%;overflow-x:hidden}body{background:var(--bg)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{z-index:100;height:var(--hdr-h);background:var(--hdr-bg);color:var(--hdr-text);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0000004d}.app-header-left{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.back-btn{color:var(--hdr-text);cursor:pointer;opacity:.85;background:0 0;border:none;flex-shrink:0;align-items:center;min-width:36px;min-height:44px;padding:4px 6px 4px 0;font-size:28px;line-height:1;display:flex}.back-btn:active{opacity:1}.app-header-title{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.app-header-brand{letter-spacing:.12em;text-transform:uppercase;color:#ffffff80;border:1px solid #fff3;border-radius:4px;padding:2px 8px;font-size:13px;font-weight:700}.app-header-action{flex-shrink:0;margin-left:8px}.app-content{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-header{border-bottom:1px solid var(--border);padding:11px 16px}.card-header h2{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:12px;font-weight:700}.card-body{flex-direction:column;gap:14px;padding:16px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text-muted);letter-spacing:.015em;font-size:13px;font-weight:600}.field label .req{color:var(--red);margin-left:2px}.field input,.field select,.field textarea{width:100%;height:48px;color:var(--text);border:1.5px solid var(--border);border-radius:var(--radius-sm);appearance:none;background:#fff;outline:none;padding:0 14px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:none;height:auto;padding:12px 14px;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #1d4ed81f}.field input.error,.field select.error,.field textarea.error{border-color:var(--red)}.field input.error:focus,.field select.error:focus{box-shadow:0 0 0 3px #dc26261a}.field .error-msg{color:var(--red);font-size:12px;font-weight:500}.select-wrap{position:relative}.select-wrap:after{content:"▾";pointer-events:none;color:var(--text-muted);font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:8px;height:52px;padding:0 24px;font-family:inherit;font-size:16px;font-weight:600;text-decoration:none;transition:background .15s,transform .1s;display:flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:active{background:var(--primary-dark)}.btn-secondary{background:var(--bg);color:var(--text);border:1.5px solid var(--border)}.btn-danger{background:var(--red-bg);color:var(--red);border:1.5px solid #fecaca}.btn-ghost{color:#fff;background:#ffffff1f;border:1px solid #ffffff40}.btn-full{width:100%}.btn-sm{border-radius:var(--radius-sm);height:38px;padding:0 14px;font-size:14px}.sticky-footer{background:var(--card);border-top:1px solid var(--border);padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));position:sticky;bottom:0}.job-list{flex-direction:column;gap:10px;display:flex}.job-item{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;border:1.5px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:border-color .1s,background .1s;display:flex}.job-item:active{border-color:var(--primary);background:var(--primary-light)}.job-item-info{min-width:0}.job-item-property{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.job-item-meta{color:var(--text-muted);margin-top:3px;font-size:13px}.job-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.job-item-arrow{color:var(--text-light);font-size:20px}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge-draft{color:var(--text-muted);background:#f1f5f9}.badge-complete{background:var(--green-bg);color:var(--green)}.badge-submitted{color:#6d28d9;background:#ede9fe}.empty-state{text-align:center;padding:60px 24px}.empty-state-icon{margin-bottom:16px;font-size:56px}.empty-state h2{margin-bottom:8px;font-size:20px;font-weight:700}.empty-state p{color:var(--text-muted);font-size:15px;line-height:1.6}.placeholder{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px 24px;display:flex}.placeholder-icon{font-size:52px}.placeholder h2{color:var(--text);font-size:18px;font-weight:600}.placeholder p{max-width:300px;font-size:14px;line-height:1.6}.step-nav{justify-content:center;gap:6px;padding:4px 0;display:flex}.step-dot{background:var(--border);border-radius:3px;width:32px;height:5px;transition:background .2s}.step-dot.active{background:var(--primary)}.step-dot.complete{background:var(--green)}.asset-tabs-bar{scrollbar-width:none;background:var(--hdr-bg);top:var(--hdr-h);z-index:90;flex-shrink:0;gap:6px;padding:6px 8px;display:flex;position:sticky;overflow-x:auto}.asset-tabs-bar::-webkit-scrollbar{display:none}.asset-tab{color:#ffffffb3;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:#1e3a5f;border:none;border-radius:7px;align-items:center;gap:7px;min-height:48px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,color .15s;display:flex}.asset-tab.active{color:#fff;background:#166534}.tab-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tab-dot-not-started{background:#fff3}.tab-dot-in-progress{background:#fbbf24}.tab-dot-complete{background:#4ade80}.section-list{overflow:hidden}.section-row{color:inherit;border-bottom:1px solid var(--border);background:var(--card);-webkit-tap-highlight-color:transparent;align-items:center;gap:14px;min-height:72px;padding:16px;text-decoration:none;display:flex}.section-row:last-child{border-bottom:none}.section-row:active{background:var(--primary-light)}.section-icon{text-align:center;flex-shrink:0;width:36px;font-size:26px}.section-info{flex:1;min-width:0}.section-name{font-size:15px;font-weight:600}.section-detail{color:var(--text-muted);margin-top:2px;font-size:13px}.section-badge{white-space:nowrap;border-radius:99px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:700}.section-badge.complete{background:var(--green-bg);color:var(--green)}.section-badge.in-progress{background:var(--yellow-bg);color:var(--yellow)}.section-badge.pending{color:var(--text-muted);background:#f1f5f9}.generate-summary{color:var(--text-muted);text-align:center;margin-bottom:10px;font-size:13px;font-weight:500}.generate-summary strong{color:var(--text)}.asset-check-list{flex-direction:column;display:flex}.asset-check-row{border-bottom:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.asset-check-row:last-child{border-bottom:none}.asset-check-row:active{background:var(--primary-light)}.asset-check-box{border:2px solid var(--border);color:#fff;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:1px;font-size:14px;font-weight:900;transition:background .1s,border-color .1s;display:flex}.asset-check-box.checked{background:var(--primary);border-color:var(--primary)}.asset-check-info{flex:1}.asset-check-name{font-size:15px;font-weight:600}.asset-check-meta{color:var(--text-muted);margin-top:2px;font-size:13px}.asset-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.asset-card-header{background:var(--bg);cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;padding:13px 14px;display:flex}.asset-card-header:active{background:#e8edf3}.asset-card-drag{color:var(--text-light);font-size:18px}.asset-card-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.asset-card-meta{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:12px}.asset-card-chevron{color:var(--text-muted);flex-shrink:0;font-size:16px;transition:transform .2s}.asset-card-chevron.open{transform:rotate(90deg)}.asset-card-body{border-top:1px solid var(--border);background:var(--card);flex-direction:column;gap:12px;padding:14px;display:flex}.checklist-item{border-bottom:1px solid var(--border);padding:14px 16px}.checklist-item:last-child{border-bottom:none}.checklist-item-row{justify-content:space-between;align-items:center;gap:10px;min-height:44px;display:flex}.checklist-item-label{flex:1;min-width:0;font-size:15px;font-weight:500}.response-toggle{border-radius:var(--radius-sm);border:1.5px solid var(--border);flex-shrink:0;display:flex;overflow:hidden}.toggle-btn{background:var(--bg);border:none;border-right:1px solid var(--border);cursor:pointer;height:40px;color:var(--text-muted);-webkit-tap-highlight-color:transparent;letter-spacing:.02em;min-width:44px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .12s,color .12s}.toggle-btn:last-child{border-right:none}.toggle-btn:active{filter:brightness(.92)}.toggle-btn.sel-yes{background:var(--green);color:#fff}.toggle-btn.sel-no{background:var(--red);color:#fff}.toggle-btn.sel-na{color:#fff;background:#64748b}.checklist-comment{margin-top:10px}.checklist-comment textarea{width:100%;height:72px;color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);resize:none;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .15s}.checklist-comment textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #1d4ed81f}.checklist-comment textarea.no-comment{border-color:var(--red);background:var(--red-bg)}.checklist-comment textarea.no-comment:focus{box-shadow:0 0 0 3px #dc26261a}.checklist-progress{color:var(--text-muted);justify-content:space-between;align-items:center;padding:2px 0;font-size:13px;display:flex}.checklist-progress-bar{background:var(--border);border-radius:3px;flex:1;height:5px;margin:0 10px;overflow:hidden}.checklist-progress-fill{background:var(--green);border-radius:3px;height:100%;transition:width .3s}.no-count-badge{background:var(--red-bg);color:var(--red);border:1px solid #fecaca;border-radius:99px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.text-muted{color:var(--text-muted)}.text-sm{font-size:14px}.mt-0{margin-top:0}.photo-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.photo-cell{flex-direction:column;gap:5px;display:flex}.photo-cell-label{color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.photo-empty{aspect-ratio:4/3;border:2px dashed var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;width:100%;transition:border-color .15s,background .15s;display:flex}.photo-empty:active{border-color:var(--primary);background:var(--primary-light)}.photo-empty-icon{font-size:28px}.photo-taken{aspect-ratio:4/3;border-radius:var(--radius);cursor:pointer;position:relative;overflow:hidden}.photo-thumb{object-fit:cover;width:100%;height:100%;display:block}.photo-retake-bar{color:#fff;text-align:center;letter-spacing:.04em;text-transform:uppercase;background:#00000085;padding:5px;font-size:11px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.photo-delete-btn{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex;position:absolute;top:6px;right:6px}.camera-view{z-index:200;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-header{z-index:10;padding:14px 16px;padding-top:max(14px, env(safe-area-inset-top));background:linear-gradient(#000000b3,#0000);align-items:center;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.camera-close-btn{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff3;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;display:flex}.camera-close-btn:active{background:#ffffff59}.camera-zone-label{color:#fff;text-shadow:0 1px 3px #0009;font-size:15px;font-weight:600}.camera-video{object-fit:cover;flex:1;width:100%}.camera-loading{color:#ffffffb3;flex:1;justify-content:center;align-items:center;font-size:15px;display:flex}.camera-controls{padding:32px;padding-bottom:max(32px, env(safe-area-inset-bottom));background:linear-gradient(#0000,#0000008c);justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}.shutter-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff40;border:4px solid #fff;border-radius:50%;width:72px;height:72px;transition:transform .1s,background .1s;box-shadow:0 0 0 2px #fff6}.shutter-btn:active{background:#ffffff80;transform:scale(.9)}.camera-error{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:40px 32px;display:flex}.camera-error p{color:#ffffffd9;font-size:15px;line-height:1.6}.sig-canvas-wrap{border-top:1px solid var(--border);touch-action:none;background:#f8faff;height:180px;position:relative}.sig-canvas-wrap:after{content:"";background:var(--border);pointer-events:none;height:1px;position:absolute;bottom:48px;left:20px;right:20px}.sig-canvas{cursor:crosshair;width:100%;height:100%;display:block}.sig-hint{color:var(--text-light);pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;inset:0}.sig-clear-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:13px;font-weight:600}.sig-attribution{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;padding:10px 16px;font-size:13px;display:flex}.def-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:14px 16px;display:flex}.def-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.def-source-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:700}.def-source-badge.checklist{background:var(--primary-light);color:var(--primary)}.def-source-badge.manual{color:var(--text-muted);background:#f1f5f9}.def-remove-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:13px;font-weight:600}.def-location-label{color:var(--text);font-size:15px;font-weight:600}.def-row{align-items:center;gap:12px;display:flex}.def-row-label{color:var(--text-muted);letter-spacing:.015em;flex-shrink:0;width:64px;font-size:13px;font-weight:600}.severity-toggle{border-radius:var(--radius-sm);border:1.5px solid var(--border);flex:1;display:flex;overflow:hidden}.severity-btn{border:none;border-right:1px solid var(--border);background:var(--bg);height:38px;color:var(--text-muted);cursor:pointer;letter-spacing:.02em;-webkit-tap-highlight-color:transparent;flex:1;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,color .12s}.severity-btn:last-child{border-right:none}.severity-btn:active{filter:brightness(.92)}.severity-btn.selected{border-width:0}.def-photo-wrap{flex:1}.def-photo-taken{aspect-ratio:4/3;border-radius:var(--radius-sm);cursor:pointer;width:120px;position:relative;overflow:hidden}.def-photo-thumb{object-fit:cover;width:100%;height:100%;display:block}.def-photo-add{border:1.5px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg);height:38px;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;transition:border-color .15s,background .15s}.def-photo-add:active{border-color:var(--primary);background:var(--primary-light)}.camera-video-wrap{flex:1;position:relative;overflow:hidden}.camera-video-wrap .camera-video{flex:unset;width:100%;height:100%;position:absolute;inset:0}.ghost-overlay{object-fit:cover;opacity:.38;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ghost-toggle-btn{color:#fff9;letter-spacing:.04em;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;background:#ffffff1f;border:1.5px solid #ffffff4d;border-radius:99px;height:32px;margin-left:auto;padding:0 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .15s,color .15s,border-color .15s}.ghost-toggle-btn.active{color:#fff;background:#ffffff38;border-color:#fff9}.photo-before-badge{color:var(--green);background:var(--green-bg);letter-spacing:.02em;border-radius:99px;margin-top:5px;padding:2px 7px;font-size:10px;font-weight:700}
