*,*: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%}.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:var(--color-accent);color:#fff;font-size:.75rem;font-weight:900;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;flex-shrink:0}.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%}.new-job-form{display:flex;flex-direction:column;gap:20px;max-width:480px}.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-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{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.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: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}.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}
