:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;--primary-color: #1976d2;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--background: #ffffff;--surface: #ffffff;--text-primary: #000000;--text-secondary: #424242;--border-color: #212121;color-scheme:light;color:var(--text-primary);background-color:var(--background);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;font-size:18px}h1{font-size:1.75rem;line-height:1.2;font-weight:700}button{border-radius:8px;border:2px solid var(--border-color);padding:1rem 1.5rem;min-height:48px;min-width:48px;font-size:18px;font-weight:600;font-family:inherit;background-color:var(--primary-color);color:#fff;cursor:pointer;transition:all .25s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:hover{background-color:#1565c0;transform:translateY(-1px);box-shadow:0 4px 8px #0003}button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}button:focus,button:focus-visible{outline:3px solid var(--warning-color);outline-offset:2px}.dashboard{min-height:100vh;background:#f5f5f5;display:flex;flex-direction:column}.dashboard-header{background:#fff;padding:1.5rem;text-align:center;box-shadow:0 2px 4px #0000001a}.dashboard-header h1{font-size:1.5rem;color:#212121;margin:0;font-weight:600}.dashboard-header p{color:#424242;margin:.25rem 0 0;font-size:.9rem}.search-container{padding:1rem;background:#fff;border-bottom:1px solid #e0e0e0}.search-input{width:100%;padding:1rem;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;background:#f9f9f9;min-height:48px;box-sizing:border-box;transition:all .2s ease}.search-input:focus{outline:none;border-color:#1976d2;background:#fff;box-shadow:0 0 0 4px #1976d21a}.search-input::placeholder{color:#757575}.current-project{padding:1.5rem 1rem 1rem;background:#fff;border-bottom:1px solid #e0e0e0}.project-info{display:flex;flex-direction:column;gap:.25rem}.project-label{font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.project-info h3{font-size:1.25rem;color:#333;margin:0 0 .5rem;font-weight:600}.btn-change-project{background:transparent;border:2px solid #e0e0e0;color:#424242;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .2s ease;min-height:40px;font-weight:500}.btn-change-project:hover,.btn-change-project:focus{background:#f5f5f5;border-color:#1976d2;color:#1976d2}.btn-change-project:active{background:#e3f2fd}.new-capture-section{padding:1rem;background:#fff;border-bottom:2px solid #e0e0e0;margin-bottom:1rem;display:flex;justify-content:center}.btn-new-capture{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 2rem;font-size:1.125rem;min-height:56px;width:100%;max-width:320px;font-weight:600}.btn-new-capture span{font-size:1.5rem;font-weight:300}.btn-primary{background:#1976d2;color:#fff;border:none;padding:1rem 1.5rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:48px;font-size:1rem;box-shadow:0 2px 8px #1976d24d}.btn-primary:hover,.btn-primary:focus{background:#1565c0;box-shadow:0 4px 12px #1976d266;transform:translateY(-1px)}.btn-primary:active{background:#0d47a1;transform:translateY(0);box-shadow:0 2px 6px #1976d24d}.section{padding:1rem;margin-bottom:1rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d}.section:last-child{margin-bottom:0}.section h2{font-size:1.25rem;color:#212121;margin-bottom:1rem;font-weight:600}.project-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.project-card{background:#fff;border:2px solid #1976d2;border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .2s ease;text-align:left;position:relative;min-height:120px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 2px 8px #1976d226}.project-card:hover,.project-card:focus{box-shadow:0 4px 16px #1976d24d;transform:translateY(-2px);border-color:#1565c0}.project-card:active{transform:translateY(0);box-shadow:0 2px 8px #1976d233}.project-card:after{content:"Tap to Select";position:absolute;top:12px;right:12px;background:#1976d2;color:#fff;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.project-card h3{font-size:1.25rem;color:#212121;margin:0 0 .5rem;font-weight:600}.project-card p{color:#424242;font-size:1rem;margin:0;line-height:1.4}.incomplete-list{display:flex;flex-direction:column;gap:.75rem}.incomplete-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center}.pole-info h3{font-size:1rem;color:#212121;margin:0 0 .25rem;font-weight:600}.pole-info .progress{color:#f57c00;font-size:.9rem;margin:.25rem 0;font-weight:500}.pole-info .time{color:#424242;font-size:.85rem}.btn-continue{background:#4caf50;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;min-height:48px;min-width:80px;transition:all .2s ease;font-size:.95rem}.btn-continue:hover,.btn-continue:focus{background:#45a049;box-shadow:0 2px 8px #4caf504d;transform:translateY(-1px)}.btn-continue:active{background:#388e3c;transform:translateY(0)}.recent-list{display:flex;flex-direction:column;gap:.75rem}.recent-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;display:flex;align-items:center;gap:1rem;transition:box-shadow .2s}.recent-card:hover{box-shadow:0 2px 8px #0000001a}.recent-info{flex:1}.recent-card h4{font-size:1rem;color:#333;margin:0;font-weight:600}.recent-card .time{font-size:.875rem;color:#666;margin:.25rem 0 0}.photo-count{background:#f5f5f5;color:#666;padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;margin-left:auto}.empty-state{text-align:center;padding:3rem 1rem;color:#666}.empty-state h3{color:#333;margin-bottom:.5rem}.loading{text-align:center;padding:3rem;color:#666}.storage-status{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;margin-bottom:1rem;font-size:.875rem}.storage-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.storage-item{display:flex;justify-content:space-between;align-items:center}.storage-item .label{color:#666;font-weight:500}.storage-item .value{color:#333;font-weight:600}.storage-item .value.warning{color:#f57c00}.storage-item .value.pending{color:#1976d2}.storage-item .value.online{color:#2e7d32}.storage-item .value.offline{color:#d32f2f}.storage-warning{background:#fff3e0;border:1px solid #ffcc02;color:#f57c00;padding:.75rem;border-radius:6px;margin-top:.75rem;font-size:.875rem;font-weight:500}.sync-warning{background:#e3f2fd;border:1px solid #2196f3;color:#1976d2;padding:.75rem;border-radius:6px;margin-top:.75rem;font-size:.875rem;font-weight:500}.manual-sync-container{margin-top:.75rem}.btn-sync{background:#1976d2;color:#fff;border:none;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.btn-sync:hover:not(.disabled){background:#1565c0}.btn-sync.disabled{background:#ccc;cursor:not-allowed}.sync-result{margin-top:.5rem;padding:.5rem;border-radius:4px;font-size:.875rem;font-weight:500;text-align:center}.sync-result.success{background:#e8f5e9;color:#2e7d32;border:1px solid #4caf50}.sync-result.error{background:#ffebee;color:#d32f2f;border:1px solid #f44336}.help-button{position:fixed;bottom:1rem;right:1rem;background:#2196f3;color:#fff;border:none;padding:.75rem 1rem;border-radius:50px;font-size:.875rem;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #2196f34d;z-index:1000}.help-overlay{position:fixed;inset:0;background:#00000080;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem}.help-content{background:#fff;border-radius:8px;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d}.help-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 0;border-bottom:1px solid #e0e0e0}.help-header h2{margin:0;color:#333;font-size:1.5rem}.close-help{background:none;border:none;font-size:1.5rem;color:#666;cursor:pointer;padding:.5rem;line-height:1}.help-sections{padding:1.5rem}.help-section{margin-bottom:2rem}.help-section:last-child{margin-bottom:0}.help-section h3{margin:0 0 .75rem;color:#333;font-size:1.1rem}.help-section ul{margin:0;padding-left:1.25rem;color:#555}.help-section li{margin-bottom:.5rem;line-height:1.4}.help-footer{background:#f8f9fa;padding:1rem 1.5rem;border-top:1px solid #e0e0e0;text-align:center;color:#666;font-size:.875rem}.help-footer p{margin:.25rem 0}.dashboard-footer{background:#f8f9fa;padding:1rem;text-align:center;color:#666;font-size:.9rem;margin-top:auto;border-top:1px solid #e0e0e0}.dashboard-content{flex:1;padding:0;overflow-y:auto}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header h2{font-size:1.25rem;color:#333;margin:0;font-weight:600}.count-badge{background:#e3f2fd;color:#1976d2;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500}.count-badge.success{background:#e8f5e9;color:#2e7d32}.recent-icon{width:40px;height:40px;background:#e8f5e9;color:#2e7d32;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.pole-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.separator{color:#ccc;font-size:.75rem}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state p{margin:0;font-size:.95rem}.wizard-capture{min-height:100vh;background:#f5f5f5;display:flex;flex-direction:column}.progress-bar{height:4px;background:#e0e0e0;position:relative}.progress-fill{height:100%;background:#4285f4;transition:width .3s ease}.step-indicator{background:#fff;padding:.75rem;text-align:center;color:#666;font-size:.9rem;border-bottom:1px solid #e0e0e0}.wizard-step{flex:1;background:#fff;padding:1.5rem;max-width:600px;margin:0 auto;width:100%}.wizard-step h2{font-size:1.5rem;color:#333;margin:0 0 .5rem}.wizard-step .subtitle{color:#666;font-size:.95rem;margin:0 0 2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;color:#333;margin-bottom:.5rem}.text-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;background:#fff;-webkit-appearance:none;appearance:none}.text-input:focus{outline:none;border-color:#4285f4;background:#fff;box-shadow:0 0 0 3px #4285f41a}.photo-capture-box{width:100%;min-height:200px;border:2px dashed #ddd;border-radius:8px;background:#f8f9fa;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:2rem;text-align:center}.photo-capture-box:hover{border-color:#4285f4;background:#f5f5f5}.photo-capture-box .placeholder-content{color:#666}.photo-capture-box .placeholder-content span{display:block;font-size:1.1rem;margin-bottom:.5rem}.photo-capture-box .instruction{font-size:.9rem;color:#999;margin:0}.photo-preview{position:relative;border-radius:8px;overflow:hidden;background:#f8f9fa}.photo-preview.captured{border:2px solid #4caf50}.photo-preview .preview-image{width:100%;height:auto;display:block}.photo-preview .retake-button{position:absolute;bottom:1rem;right:1rem;background:#000000b3;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.gps-display{background:#e8f5e9;padding:.75rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;color:#2e7d32;font-size:.9rem}.capture-gps-button{width:100%;padding:1rem;background:#4285f4;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem}.capture-gps-button:hover{background:#3367d6}.verification-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem}.verification-section h3{font-size:1.1rem;color:#333;margin:0 0 1rem}.checkbox-label{display:flex;align-items:center;padding:1rem;margin:.5rem 0;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.checkbox-label:hover{background:#f8f9fa;border-color:#4285f4}.checkbox-label:active{background:#e8f0fe;transform:scale(.98)}.checkbox-label input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.checkbox-label:before{content:"";width:24px;height:24px;border:2px solid #666;border-radius:4px;margin-right:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.checkbox-label:has(input:checked):before{background:#4285f4;border-color:#4285f4;content:"✓";color:#fff;font-weight:700;font-size:16px}.checkbox-label:has(input:checked){background:#e8f0fe;border-color:#4285f4}.checkbox-label span{flex:1;color:#333;font-size:1rem;-webkit-user-select:none;user-select:none}.checkbox-label.checked:before{background:#4285f4;border-color:#4285f4;content:"✓";color:#fff;font-weight:700;font-size:16px}.checkbox-label.checked{background:#e8f0fe;border-color:#4285f4}.save-status{background:#e8f5e9;color:#2e7d32;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;margin-top:1.5rem;text-align:center;border:1px solid #4caf50}.navigation-buttons{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.btn-secondary{flex:1;padding:.75rem;background:#fff;color:#666;border:1px solid #ddd;border-radius:8px;font-weight:500;cursor:pointer}.btn-secondary:hover{background:#f8f9fa}.btn-primary{flex:1;padding:.75rem;background:#4285f4;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer}.btn-primary:hover{background:#3367d6}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-save{flex:1;padding:.75rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;font-size:.875rem}.btn-save:hover{background:#45a049}.btn-success{flex:2;padding:.75rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-success:hover{background:#45a049}.notes-textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;background:#f8f9fa}.notes-textarea:focus{outline:none;border-color:#4285f4;background:#fff}.summary-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.summary-section h3{font-size:1.1rem;color:#333;margin:0 0 1rem}.summary-items{display:flex;flex-direction:column;gap:.75rem}.summary-item{display:flex;justify-content:space-between;align-items:center}.summary-item .label{color:#666;font-weight:500}.summary-item .value{color:#333}@media (max-width: 768px){.text-input{font-size:16px;padding:1rem;touch-action:manipulation}.checkbox-label{padding:1.25rem;font-size:1.1rem}.checkbox-label span{font-size:1.1rem}}@media (min-width: 768px){.wizard-step{padding:2rem}.dashboard-header h1{font-size:2rem}}input[type=text],input[type=email],input[type=tel],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:16px}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.loading-overlay{position:fixed;inset:0;background-color:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:9999}.loading-spinner{display:inline-block;position:relative;width:80px;height:80px}.spinner-ring{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:6px solid transparent;border-radius:50%;animation:spinner-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--primary-color, #1976d2) transparent transparent transparent}.spinner-ring:nth-child(1){animation-delay:-.45s}.spinner-ring:nth-child(2){animation-delay:-.3s}.spinner-ring:nth-child(3){animation-delay:-.15s}@keyframes spinner-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{margin-top:1rem;font-size:18px;color:var(--text-secondary, #424242);font-weight:500;text-align:center}.network-status{position:fixed;top:0;left:0;right:0;z-index:1000;transform:translateY(-100%);transition:transform .3s ease-in-out;box-shadow:0 2px 8px #0003}.network-status.show{transform:translateY(0)}.network-status-content{padding:1rem 1.5rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:18px;font-weight:600}.network-status.offline{background-color:var(--warning-color, #ff9800);color:#fff}.network-status.online{background-color:var(--success-color, #4caf50);color:#fff}.network-status-icon{font-size:24px;display:flex;align-items:center}@media (max-width: 640px){.network-status-content{font-size:16px;padding:.75rem 1rem}.network-status-text{flex:1}}.sync-status{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:14px;font-weight:600;background-color:#0000000d;transition:all .3s ease}.sync-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.sync-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-status-synced{background-color:#4caf501a;color:var(--success-color, #4caf50)}.sync-status-syncing{background-color:#2196f31a;color:var(--primary-color, #1976d2)}.sync-status-pending{background-color:#ff98001a;color:var(--warning-color, #ff9800)}.sync-status-offline{background-color:#9e9e9e1a;color:#666}.sync-status-error{background-color:#f443361a;color:var(--error-color, #f44336)}.sync-text{white-space:nowrap}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--text-primary, #000000);background-color:var(--background, #ffffff)}#root{min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh;max-width:100%;margin:0 auto}.app-header{background:var(--primary-color, #1976d2);color:#fff;padding:1.5rem 1rem;text-align:center;box-shadow:0 2px 8px #0003;position:relative}.app-header h1{font-size:1.5rem;margin-bottom:.5rem;font-weight:600}.app-header p{font-size:.9rem;opacity:.9}.header-sync-status{position:absolute;top:1rem;right:1rem}.app-content{flex:1;overflow-y:auto;padding-bottom:80px}.app-main{flex:1;padding:1rem;max-width:800px;margin:0 auto;width:100%}.project-section{margin-bottom:1.5rem}.project-selector{display:flex;flex-direction:column;gap:.5rem}.project-selector label{font-weight:600;color:#555}.project-dropdown{padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;background:#fff;transition:border-color .3s}.project-dropdown:focus{outline:none;border-color:#667eea}.tab-navigation{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid #ddd}.tab{flex:1;padding:.75rem 1rem;border:none;background:none;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .3s}.tab.active{color:#667eea;border-bottom-color:#667eea;background:#667eea1a}.tab:hover{background:#667eea0d}.welcome-message{text-align:center;padding:2rem 1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.welcome-message h2{color:#333;margin-bottom:1rem}.feature-list{margin-top:2rem;text-align:left;max-width:300px;margin-left:auto;margin-right:auto}.feature-list ul{list-style:none;padding:0}.feature-list li{padding:.5rem 0;border-bottom:1px solid #eee}.pole-capture{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.resuming-banner{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.resuming-banner p{margin:0;color:#856404}.clear-resume-button{padding:1rem 1.5rem;min-height:48px;background:#6c757d;color:#fff;border:2px solid transparent;border-radius:8px;cursor:pointer;font-size:18px;font-weight:600;transition:all .3s;touch-action:manipulation}.clear-resume-button:hover{background:#545b62}.pole-capture h2{margin-bottom:1.5rem;color:#333;text-align:center}.pole-number-input{margin-bottom:1.5rem}.pole-number-input label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.pole-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s}.pole-input:focus{outline:none;border-color:#667eea}.gps-capture{margin-bottom:1.5rem;padding:1rem;border:2px solid #e3f2fd;border-radius:8px;background:#f8f9ff}.gps-capture h3{margin-bottom:1rem;color:#333}.gps-placeholder{text-align:center;padding:2rem}.gps-icon{font-size:3rem;margin-bottom:1rem;display:block}.capture-gps-button,.recapture-button{padding:1rem 2rem;min-height:56px;min-width:120px;background:var(--primary-color, #1976d2);color:#fff;border:2px solid transparent;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.capture-gps-button:hover,.recapture-button:hover{background:#3367d6}.gps-info{padding:1rem;background:#fff;border-radius:8px;border:1px solid #ddd}.location-display p{margin:.25rem 0}.gps-error{margin-top:1rem;padding:1rem;background:#ffebee;border:1px solid #ffcdd2;border-radius:8px;color:#c62828}.gps-status{margin-top:1rem;padding:1rem;background:#e3f2fd;border-radius:8px;color:#1976d2;text-align:center}.photo-captures{margin-bottom:1.5rem}.photo-captures h3{margin-bottom:1rem;color:#333;text-align:center}.photo-capture{margin-bottom:1rem;border:2px solid #e8f5e8;border-radius:8px;overflow:hidden;background:#fff}.photo-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8fff8;border-bottom:1px solid #e8f5e8}.photo-header h4{margin:0;color:#333}.photo-status.captured{color:#4caf50;font-weight:600}.photo-placeholder{text-align:center;padding:2rem}.placeholder-content{margin-bottom:1rem}.camera-icon{font-size:3rem;display:block;margin-bottom:1rem}.capture-button{padding:1rem 2rem;min-height:56px;min-width:120px;background:var(--success-color, #4caf50);color:#fff;border:2px solid transparent;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.capture-button:hover{background:#45a049}.photo-preview{padding:1rem}.preview-image{width:100%;max-width:300px;height:auto;border-radius:8px;margin-bottom:1rem;display:block;margin-left:auto;margin-right:auto}.photo-info{text-align:center;margin-bottom:1rem;font-size:.9rem;color:#666}.retake-button{display:block;margin:0 auto;padding:.5rem 1rem;background:#ff9800;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .3s}.retake-button:hover{background:#f57c00}.save-section{text-align:center;padding-top:1rem;border-top:2px solid #eee}.save-button{padding:1.25rem 2.5rem;min-height:64px;min-width:200px;font-size:20px;font-weight:700;border:3px solid transparent;border-radius:12px;cursor:pointer;transition:all .3s;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.save-button.complete{background:#4caf50;color:#fff}.save-button.complete:hover{background:#45a049;transform:translateY(-2px)}.save-button.incomplete{background:#ccc;color:#666;cursor:not-allowed}.status-message{margin-top:1rem;padding:.75rem;border-radius:8px;font-weight:500}.save-hint{margin-top:.75rem;padding:.5rem;background:#e3f2fd;border-radius:6px;color:#1976d2;font-size:.9rem;text-align:center;border:1px solid #bbdefb}.incomplete-poles{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.incomplete-poles h3{margin-bottom:1.5rem;color:#333;text-align:center}.no-poles{text-align:center;color:#666;font-style:italic;padding:2rem}.poles-list{display:flex;flex-direction:column;gap:1rem}.pole-item{border:1px solid #ddd;border-radius:8px;padding:1rem;background:#fafafa}.pole-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.pole-header h4{margin:0;color:#333}.pole-date{font-size:.8rem;color:#666}.pole-status{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.status-item{display:flex;align-items:center;gap:.5rem}.status-indicator.complete{color:#4caf50;font-weight:700}.status-indicator.incomplete{color:#ff9800}.pole-actions{display:flex;gap:.5rem}.resume-button{flex:1;padding:.5rem;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s}.resume-button:hover{background:#1976d2}.delete-button{padding:.5rem 1rem;background:#f44336;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s}.delete-button:hover{background:#d32f2f}.app-footer{background:#333;color:#fff;text-align:center;padding:1rem;margin-top:auto}.app-footer p{margin:.25rem 0;font-size:.85rem}@media (min-width: 768px){.app-main{padding:2rem}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.photo-captures{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.photo-captures h3{grid-column:1 / -1}.pole-status{flex-direction:row;justify-content:space-around}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:focus,input:focus,select:focus{outline:2px solid #667eea;outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed}
