*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #1a1a2e;--color-primary-light: #2a2a4e;--color-accent: #e63946;--color-bg: #f5f5f5;--color-surface: #ffffff;--color-border: #d0d0d0;--color-text: #1a1a1a;--color-text-muted: #666666;--color-yes: #2d6a2d;--color-no: #8b1a1a;--color-toggle-active-bg: #1a1a2e;--color-toggle-active-text: #ffffff;--radius: 8px;--tap-min: 44px}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;background:var(--color-bg);color:var(--color-text);-webkit-text-size-adjust:100%;overscroll-behavior-y:contain}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.85rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.03em}.field-unit{font-weight:400;color:var(--color-text-muted);margin-left:4px}.field-input{width:100%;min-height:var(--tap-min);padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:1rem;background:var(--color-surface);color:var(--color-text);-moz-appearance:none;appearance:none;-webkit-appearance:none}.field-input:focus{outline:none;border-color:var(--color-primary)}.field-textarea{width:100%;min-height:100px;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);resize:vertical}.field-textarea:focus{outline:none;border-color:var(--color-primary)}.yn-toggle{display:flex;gap:8px}.yn-btn{flex:1;min-height:var(--tap-min);border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;font-weight:600;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.yn-btn.active-yes{background:var(--color-yes);border-color:var(--color-yes);color:#fff}.yn-btn.active-no{background:var(--color-no);border-color:var(--color-no);color:#fff}.toggle-multi{display:flex;flex-wrap:wrap;gap:8px}.toggle-btn{flex:1;min-height:var(--tap-min);min-width:60px;border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;font-weight:600;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.toggle-btn.active{background:var(--color-toggle-active-bg);border-color:var(--color-toggle-active-bg);color:var(--color-toggle-active-text)}.field-select{width:100%;min-height:var(--tap-min);padding:10px 36px 10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:1rem;background:var(--color-surface);color:var(--color-text);-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.field-select:focus{outline:none;border-color:var(--color-primary)}.form-renderer{display:flex;flex-direction:column;gap:24px}.form-section{background:var(--color-surface);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px #00000014}.section-title{background:var(--color-primary);color:#fff;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:10px 16px}.section-fields{display:flex;flex-direction:column;gap:16px;padding:16px}.coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:60px 24px;color:var(--color-text-muted);font-size:1.2rem;font-weight:600}.coming-soon-sub{font-size:.9rem;font-weight:400}.landing{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-primary)}.landing-header{display:flex;align-items:center;gap:14px;padding:24px 20px 20px}.landing-logo{width:52px;height:52px;border-radius:10px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.landing-logo img{width:100%;height:100%;object-fit:contain;display:block}.landing-brand{display:flex;flex-direction:column;gap:2px}.landing-brand-name{color:#fff;font-size:1.15rem;font-weight:700;line-height:1.2}.landing-brand-sub{color:#fff9;font-size:.8rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.landing-main{flex:1;display:flex;flex-direction:column;gap:20px;padding:8px 16px 40px}.landing-prompt{color:#ffffff80;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding:0 4px}.trade-list{display:flex;flex-direction:column;gap:12px}.trade-btn{position:relative;width:100%;min-height:72px;background:var(--color-surface);border:none;border-radius:var(--radius);display:flex;align-items:center;padding:0 20px;cursor:pointer;text-align:left;box-shadow:0 2px 8px #00000040}.trade-btn--disabled{background:#ffffff14;cursor:default;box-shadow:none}.trade-btn-label{font-size:1.15rem;font-weight:700;color:var(--color-text);letter-spacing:.01em}.trade-btn--disabled .trade-btn-label{color:#ffffff59}.trade-btn-badge{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:#ffffff1a;color:#fff6;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:4px 8px;border-radius:4px}.save-btn{width:100%;min-height:var(--tap-min);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer;letter-spacing:.03em}.save-btn:disabled{opacity:.6;cursor:default}.form-page{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.form-page-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-primary);box-shadow:0 2px 6px #0000004d}.back-btn{min-width:var(--tap-min);min-height:var(--tap-min);background:transparent;border:none;color:#fffc;font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);flex-shrink:0}.back-btn:active{background:#ffffff1a}.form-page-title{color:#fff;font-size:1rem;font-weight:700;letter-spacing:.02em}.form-page-body{flex:1;padding:16px 16px 120px}.form-page-actions{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;gap:10px;padding:12px 16px;background:var(--color-surface);box-shadow:0 -2px 8px #0000001f}.form-page-actions .save-btn{flex:2}.export-btn{flex:1;min-height:var(--tap-min);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:700;cursor:pointer}.export-btn:disabled{opacity:.4;cursor:default}.sketch-section{margin-top:24px;background:var(--color-surface);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px #00000014}.sketch-section-body{padding:12px}.sketch-pad-wrapper{display:flex;flex-direction:column;gap:8px}.sketch-pad-controls{display:flex;gap:8px}.sketch-ctrl-btn{min-height:var(--tap-min);padding:0 20px;border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:.9rem;font-weight:600;cursor:pointer}.sketch-ctrl-btn:disabled{opacity:.4;cursor:default}.sketch-ctrl-btn--danger:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.sketch-canvas-container{position:relative;width:100%}.sketch-canvas{display:block;width:100%;border:1px solid var(--color-border);border-radius:4px;cursor:crosshair}.sketch-sticker-strip{display:flex;gap:6px}.sketch-sticker-btn{flex:1;min-height:var(--tap-min);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font-size:.7rem;font-weight:600;color:var(--color-text);cursor:pointer;padding:4px;line-height:1}.sketch-sticker-btn:active{background:var(--color-bg)}.sketch-label-overlay{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:8px;box-shadow:0 4px 16px #00000038;min-width:190px}.sketch-color-row{display:flex;gap:6px}.sketch-color-btn{flex:1;min-height:40px;border-radius:6px;border:2px solid;font-size:.82rem;font-weight:700;cursor:pointer;background:transparent}.sketch-color-btn--black{border-color:#1a1a2e;color:#1a1a2e}.sketch-color-btn--black.active{background:#1a1a2e;color:#fff}.sketch-color-btn--red{border-color:#d32f2f;color:#d32f2f}.sketch-color-btn--red.active{background:#d32f2f;color:#fff}.sketch-lf-row{display:flex;align-items:center;gap:6px}.sketch-delete-line-btn{min-height:38px;width:100%;background:transparent;border:1.5px solid var(--color-accent);color:var(--color-accent);border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer}.sketch-delete-line-btn:active{background:var(--color-accent);color:#fff}.sketch-label-input{width:80px;height:38px;font-size:16px;padding:4px 8px;border:1.5px solid var(--color-border);border-radius:4px;text-align:center}.sketch-label-input:focus{outline:none;border-color:var(--color-primary)}.sketch-hint{font-size:.75rem;color:var(--color-text-muted);text-align:center}.sketch-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:.78rem;color:var(--color-text)}.sketch-legend-item{display:inline-flex;align-items:center;gap:6px}.sketch-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sketch-legend-dot--black{background:#1a1a2e}.sketch-legend-dot--red{background:#d32f2f}.history-link-btn{margin-top:8px;background:transparent;border:none;color:#ffffff80;font-size:.85rem;text-decoration:underline;cursor:pointer;padding:8px 0;min-height:var(--tap-min)}.history-link-btn:active{color:#fffc}.history-page{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.history-body{flex:1;padding:16px 16px 100px}.history-hint{font-size:.8rem;color:var(--color-text-muted);margin-bottom:12px}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:60px 24px;color:var(--color-text-muted);font-size:1rem;font-weight:600;text-align:center}.history-empty-sub{font-size:.85rem;font-weight:400}.history-select-count{margin-left:auto;color:#ffffffbf;font-size:.8rem;font-weight:600}.job-list{display:flex;flex-direction:column;gap:10px}.job-card{display:flex;align-items:center;gap:12px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);padding:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.job-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px #1a1a2e26}.job-card-select{flex-shrink:0}.job-checkbox{width:22px;height:22px;border:2px solid var(--color-border);border-radius:4px;background:var(--color-surface)}.job-checkbox--checked{background:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M2 7l4 4 6-6' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.job-card-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.job-trade-badge{display:inline-block;color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:3px;align-self:flex-start}.job-customer{font-size:.95rem;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-address{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-date{font-size:.75rem;color:var(--color-text-muted)}.job-card-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.job-action-btn{min-height:36px;min-width:52px;padding:0 10px;border:1.5px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:.8rem;font-weight:700;cursor:pointer}.job-action-btn:disabled{opacity:.4;cursor:default}.job-action-btn--delete{border-color:var(--color-accent);color:var(--color-accent)}.history-aggregate-bar{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;background:var(--color-surface);box-shadow:0 -2px 8px #0000001f;z-index:10}.aggregate-btn{width:100%;min-height:var(--tap-min);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.aggregate-btn:disabled{opacity:.6;cursor:default}.elevation-grid{display:flex;flex-direction:column;gap:10px}.elevation-row-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px}.elevation-row-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text);margin-bottom:8px}.elevation-row-inputs{display:flex;gap:6px}.elevation-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.elevation-cell-label{font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.elevation-input{width:100%;min-height:var(--tap-min);border:1.5px solid var(--color-border);border-radius:6px;font-size:1rem;text-align:center;background:var(--color-surface);color:var(--color-text);-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0 4px}.elevation-input:focus{outline:none;border-color:var(--color-primary)}.elevation-cell--total .elevation-input--total{background:#eef2ff;border-color:#c7d2fe;font-weight:700;color:var(--color-primary)}.landing-new-job-btn{width:100%;min-height:64px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:1.15rem;font-weight:700;cursor:pointer;letter-spacing:.02em;box-shadow:0 2px 8px #00000040}.landing-new-job-btn:active{opacity:.9}.landing-section-label{color:#ffffff80;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:0 4px;margin-bottom:8px}.landing-recent{display:flex;flex-direction:column}.landing-recent-list{display:flex;flex-direction:column;gap:8px}.landing-session-btn{width:100%;min-height:56px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:10px 16px;gap:2px;cursor:pointer;text-align:left}.landing-session-btn:active{background:#ffffff2e}.landing-session-name{color:#fff;font-size:.95rem;font-weight:700}.landing-session-addr{color:#ffffff8c;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.landing-build-stamp{margin-top:2rem;margin-bottom:max(48px,calc(env(safe-area-inset-bottom,0px) + 16px));text-align:center;font-size:.7rem;color:#9aa0a6;letter-spacing:.02em;position:relative;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.landing-build-stamp:before{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--tap-min)}.new-job-form{display:flex;flex-direction:column;gap:20px;max-width:480px}.new-job-location{max-width:480px}.new-job-prompt{color:var(--color-text);font-size:1.1rem;font-weight:700;margin-bottom:16px}.location-choices{display:flex;flex-direction:column;gap:14px}.location-btn{width:100%;min-height:72px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-size:1.25rem;font-weight:700;cursor:pointer;letter-spacing:.02em;box-shadow:0 2px 8px #0003}.location-btn:active{opacity:.9}.new-job-search{display:flex;flex-direction:column;gap:16px;max-width:480px}.new-job-location-tag{color:var(--color-text-muted);font-size:.85rem}.job-search-form{display:flex;flex-direction:column;gap:6px}.job-search-row{display:flex;gap:8px}.job-search-row .field-input{flex:1}.job-search-btn{width:auto;flex-shrink:0;padding:0 18px}.job-search-status{color:var(--color-text-muted);font-size:.9rem}.job-search-error{color:var(--color-danger, #c0392b);font-size:.9rem;font-weight:600}.job-results{display:flex;flex-direction:column;gap:10px;list-style:none}.job-result{width:100%;display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px 14px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);cursor:pointer}.job-result:active{border-color:var(--color-primary)}.job-result:disabled{opacity:.6;cursor:default}.job-result-name{font-weight:700;color:var(--color-text)}.job-result-contact,.job-result-addr{font-size:.85rem;color:var(--color-text-muted)}.job-result-milestone{align-self:flex-start;margin-top:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);background:#0000000d;padding:2px 8px;border-radius:4px}.manual-toggle-btn{align-self:flex-start;background:transparent;border:none;color:var(--color-primary);font-size:.95rem;font-weight:600;cursor:pointer;padding:8px 0;min-height:var(--tap-min)}.manual-entry{margin-top:4px;padding-top:16px;border-top:1px solid var(--color-border)}.job-page-session-card{background:var(--color-primary);border-radius:var(--radius);padding:14px 16px;margin-bottom:20px;display:flex;flex-direction:column;gap:4px}.job-page-customer{color:#fff;font-size:1rem;font-weight:700}.job-page-address{color:#fff9;font-size:.85rem}.job-page-trades{margin-bottom:20px}.trade-btn-done{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:4px}.job-page-pdf-btn{width:100%;min-height:var(--tap-min);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.job-page-pdf-btn:disabled{opacity:.4;cursor:default}.history-section{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.history-section--legacy{margin-top:8px}.history-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:0 4px}.session-group{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.session-group-header{display:flex;align-items:flex-start;gap:12px;padding:12px}.session-group-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.session-trade-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.session-group-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.session-group-body{border-top:1px solid var(--color-border);display:flex;flex-direction:column}.session-job-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--color-border)}.session-job-row:last-child{border-bottom:none}.session-job-date{flex:1;font-size:.75rem;color:var(--color-text-muted);min-width:0}.session-job-actions{display:flex;gap:6px;flex-shrink:0}.photo-capture{display:flex;flex-direction:column;gap:8px;margin-top:4px}.photo-capture-toggle-btn{min-height:var(--tap-min);padding:0 14px;border:1.5px dashed var(--color-border);border-radius:var(--radius);background:transparent;color:var(--color-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;text-align:left}.photo-capture-toggle-btn:active{background:#0000000a}.photo-capture-toggle-btn:disabled{opacity:.5;cursor:default}.photo-capture-busy{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.photo-capture-input-area{display:flex;flex-direction:column;gap:8px}.photo-file-label{display:flex;align-items:center;justify-content:center;min-height:52px;border:2px dashed var(--color-border);border-radius:var(--radius);cursor:pointer;background:#00000005;color:var(--color-text-muted);font-size:.9rem;font-weight:600}.photo-file-label:active{background:#0000000f}.photo-file-label-text{pointer-events:none}.photo-file-input,.photo-library-input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.photo-thumb-grid-title{margin:4px 0 0;font-size:.9rem;font-weight:700;color:var(--color-text-muted)}.photo-thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.photo-thumb-wrap{position:relative;aspect-ratio:1;overflow:hidden;border-radius:6px;background:var(--color-border)}.photo-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb-remove{position:absolute;top:4px;right:4px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;background:#000000a6;color:#fff;border:none;border-radius:50%;font-size:1rem;line-height:1;cursor:pointer;padding:0}.photo-thumb-remove:disabled{opacity:.4;cursor:default}.photo-thumb-remove:active{background:#000000d9}.window-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:68px;z-index:9}.window-nav-btn{min-width:var(--tap-min);min-height:var(--tap-min);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.window-nav-btn:disabled{opacity:.3;cursor:default}.window-nav-center{display:flex;flex-direction:column;align-items:center;gap:2px}.window-nav-label{font-size:.95rem;font-weight:700;color:var(--color-text)}.window-nav-location{font-size:.75rem;color:var(--color-text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-block{display:flex;flex-direction:column;gap:16px;background:var(--color-surface);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #00000014}.window-block-field{display:flex;flex-direction:column;gap:6px}.window-add-btn{width:100%;min-height:var(--tap-min);margin-top:16px;border:2px dashed var(--color-border);border-radius:var(--radius);background:transparent;color:var(--color-text-muted);font-size:.95rem;font-weight:600;cursor:pointer}.window-add-btn:active{background:#0000000a}.siding-elevations{display:flex;flex-direction:column;gap:10px}.siding-elevation{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px #00000014}.siding-elevation-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:0 16px;background:transparent;border:none;cursor:pointer;text-align:left}.siding-elevation-header.open{border-bottom:1.5px solid var(--color-border)}.siding-elevation-header:active{background:#00000008}.siding-elevation-label{font-size:1rem;font-weight:600;color:var(--color-text)}.siding-elevation-meta{display:flex;align-items:center;gap:10px}.siding-elevation-badge{font-size:.72rem;font-weight:600;color:#fff;background:#b8862f;padding:3px 8px;border-radius:999px;white-space:nowrap}.siding-elevation-chevron{font-size:1.4rem;line-height:1;color:var(--color-text-muted);width:1ch;text-align:center}.siding-elevation-body{display:flex;flex-direction:column;gap:8px;padding:16px}.accessory-help{font-size:.85rem;color:var(--color-text-muted)}.accessory-row{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--color-border)}.accessory-name{font-size:.95rem;font-weight:600;color:var(--color-text)}.accessory-controls{display:flex;flex-wrap:wrap;gap:8px}.accessory-controls>.toggle-btn{flex:1 1 auto}.accessory-controls>.photo-capture{display:contents}.accessory-controls .photo-capture-toggle-btn{flex:1 1 auto;padding:0 10px;text-align:center;white-space:nowrap}.accessory-controls .photo-thumb-grid,.accessory-controls .photo-capture-note,.accessory-controls .photo-capture-busy{flex-basis:100%}.photo-dump-card{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius)}.photo-dump-help{margin-bottom:4px;font-size:.85rem;color:var(--color-text-muted)}.photo-dump-guard{padding:10px 12px;border-left:3px solid var(--color-accent);border-radius:var(--radius);background:var(--color-bg);color:var(--color-accent);font-size:.9rem;font-weight:600;line-height:1.35}.select-other{display:flex;flex-direction:column;gap:8px}.sketch-label-enter-btn{min-height:44px;padding:0 12px;background:var(--color-yes);color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:700;cursor:pointer;white-space:nowrap}.sketch-label-enter-btn:active{opacity:.85}.job-name-card{background:var(--color-surface);border-radius:var(--radius);padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 3px #00000014;border-left:3px solid var(--color-accent)}.trade-job-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.trade-job-item{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);padding:12px 16px;cursor:pointer;text-align:left;box-shadow:0 1px 3px #0000000f}.trade-job-item:active{background:#00000008}.trade-job-item-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.trade-job-name{font-size:1rem;font-weight:700;color:var(--color-text)}.trade-job-date{font-size:.8rem;color:var(--color-text-muted)}.trade-job-arrow{font-size:1.4rem;color:var(--color-text-muted);flex-shrink:0}.passcode-gate{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--color-primary)}.passcode-card{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:28px 24px;background:var(--color-surface);border-radius:var(--radius)}.passcode-logo{align-self:center;width:96px;height:96px;object-fit:contain}.passcode-label{text-align:center;font-size:1rem;font-weight:600;color:var(--color-text)}.passcode-input{width:100%;min-height:var(--tap-min);padding:12px 16px;font-size:1.6rem;text-align:center;letter-spacing:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.passcode-input:focus{outline:2px solid var(--color-primary-light);outline-offset:1px}.passcode-submit{min-height:var(--tap-min);padding:12px 16px;font-size:1.1rem;font-weight:700;color:var(--color-toggle-active-text);background:var(--color-primary);border:none;border-radius:var(--radius);cursor:pointer}.passcode-submit:disabled{opacity:.6}.passcode-error{text-align:center;font-size:.9rem;color:var(--color-no)}.job-page-export{display:flex;flex-direction:column;gap:10px;margin-top:12px}.job-page-export-btn{background:var(--color-primary-light)}.export-note{font-size:.9rem;color:var(--color-text-light, #555);text-align:center}.export-sending{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--color-text-light, #555);text-align:center}.export-spinner{width:16px;height:16px;border:2px solid var(--color-border, #ddd);border-top-color:var(--color-yes, #2e7d32);border-radius:50%;animation:export-spin .8s linear infinite;flex-shrink:0}@keyframes export-spin{to{transform:rotate(360deg)}}.export-ack{font-size:.95rem;font-weight:700;color:var(--color-yes);text-align:center}.export-progress{border:1px solid var(--color-border, #ddd);border-radius:var(--radius);padding:10px 12px}.export-progress-count{font-size:.85rem;font-weight:700;margin-bottom:6px}.export-item-list{list-style:none;display:flex;flex-direction:column;gap:4px}.export-item{display:flex;justify-content:space-between;font-size:.9rem}.export-item-status{font-weight:700}.export-item--sent .export-item-status{color:var(--color-yes)}.export-item--failed .export-item-status{color:var(--color-no)}.export-item--unknown .export-item-status{color:#7b4f12}.export-banner{font-size:.95rem;font-weight:700;text-align:center}.export-banner--ok{color:var(--color-yes)}.export-banner--warn{color:var(--color-no)}.export-retry-btn{width:100%;min-height:var(--tap-min);background:var(--color-no);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.burst-camera{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000;display:flex;flex-direction:column;--burst-top: calc(env(safe-area-inset-top, 0px) + 12px) ;--burst-count-h: 24px}.burst-camera-video{flex:1;min-height:0;width:100%;object-fit:cover}.burst-camera-count{position:absolute;top:var(--burst-top);left:0;right:0;text-align:center;color:#fff;font-size:1.1rem;font-weight:700;line-height:var(--burst-count-h);text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none}.burst-camera-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px calc(env(safe-area-inset-bottom,0px) + 16px);background:#000}.burst-camera-cancel,.burst-camera-done,.burst-camera-spacer{min-width:88px;min-height:var(--tap-min)}.burst-camera-cancel,.burst-camera-done{border:0;border-radius:var(--radius);font-size:1rem;font-weight:700}.burst-camera-cancel{background:transparent;color:#fff}.burst-camera-done{background:#fff;color:#000}.burst-camera-shutter{width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:#fff;box-shadow:inset 0 0 0 4px #000}.burst-camera-shutter:active{transform:scale(.92)}.burst-camera-shutter:disabled{opacity:.4}.burst-camera-view{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.burst-camera-zoom{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:12px}.burst-camera-zoom button{width:var(--tap-min);height:var(--tap-min);padding:0;border:0;border-radius:50%;background:#0000008c;color:var(--color-surface);font-size:.85rem;font-weight:700}.burst-camera-zoom button[aria-pressed=true]{background:var(--color-surface);color:var(--color-text)}.burst-camera-zoom button:disabled{opacity:.5}.burst-camera-phone{position:absolute;top:calc(var(--burst-top) + var(--burst-count-h) + 8px);right:calc(env(safe-area-inset-right,0px) + 12px);min-width:var(--tap-min);min-height:var(--tap-min);padding:0 14px;border:0;border-radius:var(--radius);background:#0000008c;color:var(--color-surface);font-size:1rem;font-weight:700}.burst-camera-info{position:absolute;top:calc(var(--burst-top) + var(--burst-count-h) + 8px + var(--tap-min) + 8px);left:calc(env(safe-area-inset-left,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);width:fit-content;padding:6px 8px;border-radius:var(--radius);background:#0000008c;color:var(--color-surface);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none}.photo-capture-note{margin:6px 0 0;font-size:.85rem;font-weight:600;color:var(--color-accent)}.repeat-group{display:flex;flex-direction:column;gap:12px}.repeat-entry{display:flex;flex-direction:column;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.repeat-entry-title{font-size:.85rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.repeat-add-btn{width:100%;min-height:var(--tap-min);border:2px dashed var(--color-border);border-radius:var(--radius);background:transparent;color:var(--color-text-muted);font-size:.95rem;font-weight:600;cursor:pointer}.repeat-add-btn:active{background:#0000000a}.photo-capture-note{margin:8px 0 0;padding:10px 12px;background:#fff4c2;color:#3d2e00;border-left:4px solid #e0a800;border-radius:6px;font-size:1rem;font-weight:500;line-height:1.35}.field-input-suffix{display:flex;align-items:center;gap:8px}.field-input-suffix .field-input{flex:1 1 auto;min-width:0}.field-suffix{font-weight:700;font-size:1.05rem;color:var(--color-text-muted);white-space:nowrap}.version-status{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;line-height:1.35}.version-status p{margin:0}.version-status-icon{flex:0 0 24px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.version-status-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.version-status-title{font-size:1.05rem;font-weight:700}.version-status-build,.version-status-line{font-size:1rem}.version-status-build{color:var(--color-text-muted)}.version-status--current .version-status-icon{color:#1d6b45}.version-status--ready{background:#fff4c2;color:#3d2e00;border-color:#e0a800;border-left:4px solid #e0a800}.version-status--ready .version-status-icon{color:#3d2e00}.version-status--offline{background:#eceef1;border-left:4px solid var(--color-border)}.version-status-btn{align-self:flex-start;margin-top:4px;min-height:var(--tap-min);padding:8px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.version-status-btn:active{opacity:.85}.version-status-spin{animation:version-status-spin 1s linear infinite}@keyframes version-status-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.version-status-spin{animation:none}}.version-status-bare{margin:0;text-align:center;font-size:1rem;color:#9aa0a6}.history-update{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px}.history-update-btn{min-height:var(--tap-min);padding:8px 18px;background:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--color-primary);border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.history-update-btn:disabled{opacity:.6;cursor:default}.history-update-result{margin:0;font-size:1rem;color:var(--color-text)}.storage-banner{margin:0 0 12px;padding:10px 12px;border:1.5px solid var(--color-accent);border-radius:var(--radius);background:#fff4f4;color:var(--color-accent);font-size:.9rem;font-weight:600;line-height:1.35}.form-page-header+.storage-banner{margin:12px 16px}.save-error{position:fixed;left:0;right:0;bottom:calc(var(--tap-min) + 24px);z-index:10;margin:0;padding:10px 16px;border-top:1.5px solid var(--color-accent);background:#fff4f4;color:var(--color-accent);font-size:.9rem;font-weight:600;line-height:1.35}.leave-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000008c}.leave-dialog{width:100%;max-width:400px;padding:20px 16px 16px;background:var(--color-surface);border-radius:var(--radius);box-shadow:0 8px 24px #0000004d}.leave-dialog-title{margin-bottom:8px;font-size:1.15rem;font-weight:700;color:var(--color-text)}.leave-dialog-text{margin-bottom:16px;font-size:1rem;line-height:1.4;color:var(--color-text)}.leave-dialog-actions{display:flex;flex-direction:column;gap:10px}.leave-dialog-btn{width:100%;min-height:var(--tap-min);border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer}.leave-dialog-btn--save{background:var(--color-accent);color:#fff;border:none}.leave-dialog-btn--save:disabled{opacity:.6;cursor:default}.leave-dialog-btn--leave{background:var(--color-surface);color:var(--color-accent);border:1.5px solid var(--color-accent)}.leave-dialog-btn--keep{background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border)}
