:root{--hi-vis: #FFD400;--hi-vis-deep: #F5C500;--ink: #0A0A0A;--ink-2: #1A1A1A;--concrete: #2A2A2A;--steel: #4A4A4A;--slate: #6B6B6B;--paper: #FAF7EE;--paper-2: #F2EFE6;--line: #E5E0D2;--line-2: #D4CEB9;--white: #FFFFFF;--signal: #E63946;--signal-deep: #C12A36;--safe: #2D7A3E;--display: "Archivo Black", "Arial Black", sans-serif;--body: "Archivo", system-ui, sans-serif;--mono: "JetBrains Mono", "Courier New", monospace;--radius: 14px;--radius-sm: 8px;--radius-lg: 22px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;width:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv01"}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}img{max-width:100%;display:block}.shell{width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--paper)}.phone{width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;background:var(--paper);position:relative;overflow:hidden;display:flex;flex-direction:column;border-radius:0;box-shadow:none;margin:0}@media (min-width: 600px){.shell{background:radial-gradient(ellipse at 20% 10%,rgba(255,212,0,.06),transparent 60%),radial-gradient(ellipse at 80% 90%,rgba(255,212,0,.04),transparent 50%),#0a0a0a}.phone{height:100%;max-width:440px;max-height:920px;border-radius:44px;border:8px solid #1a1a1a;margin:20px;box-shadow:0 0 0 1px #ffffff08,0 30px 80px #0009,0 10px 30px #0006}}.hazard{height:8px;flex-shrink:0;background:repeating-linear-gradient(-45deg,var(--hi-vis) 0 12px,var(--ink) 12px 24px)}.hazard-thin{height:4px;flex-shrink:0;background:repeating-linear-gradient(-45deg,var(--hi-vis) 0 8px,var(--ink) 8px 16px)}.topbar{background:var(--paper);padding:14px 20px 12px;padding-top:max(14px,env(safe-area-inset-top));padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);flex-shrink:0}.topbar.topbar-minimal{padding-bottom:4px;border-bottom:none}.page.page-safe-top{padding-top:max(16px,calc(env(safe-area-inset-top) + 8px))}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.topbar-back{width:38px;height:38px;border-radius:10px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;transition:transform .15s}.topbar-back:active{transform:scale(.94)}.back-link{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:transparent;border:none;padding:6px 8px 6px 4px;margin-left:-4px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.back-link:active{opacity:.6}.topbar-title{font-family:var(--display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media (max-width: 380px){.topbar-title{font-size:12px;letter-spacing:.06em}}.topbar-right{display:flex;gap:8px}.topbar-icon-btn{width:38px;height:38px;border-radius:10px;background:transparent;border:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:all .15s}.topbar-icon-btn:active{transform:scale(.94);background:var(--line)}.chippy-logo{display:inline-flex;align-items:center;gap:9px;color:var(--ink)}.chippy-mark{width:30px;height:30px;display:block;flex-shrink:0}.chippy-wordmark{font-family:var(--display);font-size:18px;letter-spacing:-.02em;line-height:1;padding-top:1px}.chippy-logo.lg{gap:13px}.chippy-logo.lg .chippy-mark{width:46px;height:46px}.chippy-logo.lg .chippy-wordmark{font-size:28px}.chippy-logo.on-dark{color:var(--paper)}.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.scroll::-webkit-scrollbar{width:0}.page{padding:16px 20px 24px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));min-height:100%}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);font-weight:600}.eyebrow-dot:before{content:"●";margin-right:6px;color:var(--signal);font-size:8px;vertical-align:middle}h1.display{font-family:var(--display);font-size:38px;line-height:.95;letter-spacing:-.02em;color:var(--ink)}h1.display .accent{background:var(--hi-vis);padding:0 6px;display:inline-block}h2.section{font-family:var(--display);font-size:22px;line-height:1;letter-spacing:-.01em;color:var(--ink);margin-bottom:14px}h3.minor{font-family:var(--display);font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.stat-card{background:var(--white);color:var(--ink);border:2px solid var(--ink);border-radius:var(--radius-lg);padding:22px 22px 24px;position:relative;overflow:hidden;margin-bottom:22px}.stat-card.yellow{background:var(--hi-vis)}.stat-card.yellow .stat-unit{color:var(--ink)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:repeating-linear-gradient(-45deg,var(--hi-vis) 0 6px,var(--ink) 6px 12px)}.stat-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.stat-figure{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.stat-num{font-family:var(--display);font-size:64px;line-height:.85;letter-spacing:-.04em;color:var(--ink)}.stat-unit{font-family:var(--display);font-size:22px;letter-spacing:-.02em;color:var(--hi-vis)}.stat-label{font-size:13px;color:var(--slate);font-weight:500}.stat-row{display:flex;gap:0;margin-top:18px;padding-top:18px;border-top:1px dashed rgba(10,10,10,.18)}.stat-mini{flex:1;padding:0 12px;border-right:1px dashed rgba(10,10,10,.18)}.stat-mini:first-child{padding-left:0}.stat-mini:last-child{border-right:none;padding-right:0}.stat-mini-num{font-family:var(--display);font-size:22px;color:var(--ink);line-height:1}.stat-mini-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-top:4px}.cta-primary{width:100%;background:var(--ink);color:var(--hi-vis);padding:16px 18px;border-radius:var(--radius);border:2px solid var(--ink);font-family:var(--display);font-size:15px;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:transform .15s}.cta-primary:active{transform:scale(.98)}.cta-primary .arrow{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--hi-vis);color:var(--ink);border-radius:6px;font-weight:900;flex-shrink:0}.cta-secondary{width:100%;background:transparent;color:var(--ink);padding:14px 18px;border-radius:var(--radius);border:2px solid var(--ink);font-family:var(--display);font-size:13px;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .15s}.cta-secondary:active{background:var(--ink);color:var(--paper)}.cta-yellow{background:var(--hi-vis);color:var(--ink)}.cta-yellow .arrow{background:var(--ink);color:var(--hi-vis)}.cta-primary:disabled,.cta-secondary:disabled{opacity:.45;cursor:not-allowed}.cta-primary:disabled:active,.cta-secondary:disabled:active{transform:none}.offline-hint{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);text-align:center;margin-top:8px;line-height:1.4}.sync-warn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--signal, #C0392B)}.offline-banner{display:flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;background:var(--hi-vis);color:var(--ink);border-bottom:2px solid var(--ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:calc(6px + env(safe-area-inset-top)) 12px 7px;z-index:50}.offline-banner svg{width:14px;height:14px;display:block;flex-shrink:0}@media (max-width: 380px){.offline-banner{font-size:10px;letter-spacing:.07em}}.phone.has-offline-banner .topbar{padding-top:14px}.job-list-header{display:flex;align-items:center;justify-content:space-between;margin:28px 0 12px}.job-list-header .count{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--slate);background:var(--paper-2);padding:4px 8px;border-radius:4px}.job-card{background:var(--white);border:2px solid var(--ink);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;display:flex;gap:12px;align-items:center;transition:transform .15s;position:relative;text-align:left;width:100%}.job-card:active{transform:scale(.99)}.job-card-marker{width:4px;background:var(--ink);border-radius:4px;flex-shrink:0}.job-card.completed .job-card-marker{background:var(--safe)}.job-card.draft .job-card-marker{background:var(--hi-vis-deep)}.job-card-body{flex:1;min-width:0}.job-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.job-card-ref{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--slate);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-card-status{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:var(--paper-2);color:var(--steel)}.job-card.completed .job-card-status{background:#2d7a3e1f;color:var(--safe)}.job-card.draft .job-card-status{background:#e5be002e;color:#8b6f00}.job-card-title{font-family:var(--display);font-size:15px;line-height:1.15;color:var(--ink);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-card-sub{font-size:12px;color:var(--slate);font-weight:500;overflow-wrap:anywhere}.job-card-arrow{align-self:center;color:var(--ink);font-size:18px;font-weight:800;flex-shrink:0}.status-pill{flex-shrink:0;align-self:center;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px 5px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);white-space:nowrap}.status-pill.draft{color:var(--steel);border-color:var(--line-2)}.status-pill.completed:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--hi-vis-deep);margin-right:6px;vertical-align:1px}.status-pill.sent{background:var(--hi-vis);color:var(--ink)}.form-group{margin-bottom:14px}.form-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;font-weight:600}.form-input,.form-textarea,.form-select{width:100%;background:var(--white);border:1.5px solid var(--line-2);border-radius:var(--radius-sm);padding:14px;font-size:15px;color:var(--ink);font-weight:500;transition:border-color .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--ink);background:var(--white)}.form-textarea{min-height:100px;resize:vertical;font-family:var(--body)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-divider{height:1px;background:var(--line);margin:18px 0 14px;position:relative}.form-divider:after{content:attr(data-label);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--paper);padding:0 12px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:600}.pill-yellow{display:inline-flex;align-items:center;background:var(--hi-vis);color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px 6px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap;flex-shrink:0}@media (max-width: 380px){.pill-yellow{font-size:10px;letter-spacing:.08em;padding:4px 8px 5px}}.ref-badge{display:inline-flex;align-items:center;background:var(--hi-vis);color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px 6px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap;flex-shrink:0;margin-bottom:18px}.hazard-vertical{flex-shrink:0;align-self:stretch;width:18px;background:repeating-linear-gradient(45deg,var(--hi-vis) 0 12px,var(--ink) 12px 24px)}.record-page{display:flex;flex-direction:column;align-items:center;text-align:center}.record-address{width:100%;text-align:left;margin-bottom:18px}.record-address-line{font-family:var(--display);font-size:20px;line-height:1.2;color:var(--ink);letter-spacing:-.01em}.record-ref{font-family:var(--mono);font-size:11px;color:var(--slate);letter-spacing:.08em;text-transform:uppercase;margin-top:4px}.record-status-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}.record-timer{font-family:var(--display);font-size:44px;line-height:1;letter-spacing:-.04em;color:var(--ink);margin-bottom:14px}.record-mic-wrap{margin:0 auto 8px;width:168px;height:168px}.record-mic-wrap .recorder-mic{width:120px;height:120px;font-size:44px}.mic-dots{display:inline-flex;gap:5px;margin:0 0 18px}.mic-dots span{width:6px;height:6px;border-radius:50%;background:var(--hi-vis-deep)}.transcript-card{width:100%;min-height:110px;background:var(--white);border:1.5px solid var(--ink);border-radius:var(--radius);padding:16px 18px;text-align:left;display:flex;align-items:center;justify-content:center}.transcript-card .placeholder{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);text-align:center;margin:0}.transcript-card .text{font-size:14px;line-height:1.55;color:var(--ink-2);white-space:pre-wrap;width:100%}.record-banner{margin:12px 16px 0;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4;border:1px solid;flex-shrink:0}.record-banner.info{background:#ffd4001a;border-color:var(--hi-vis-deep);color:var(--ink)}.record-banner.error{background:#e639461a;border-color:var(--signal);color:var(--signal-deep)}.record-banner b{font-weight:800}.recorder-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:20px 24px 24px;background:radial-gradient(circle at 50% 35%,rgba(255,212,0,.12),transparent 60%),var(--paper)}.recorder-status{text-align:center;margin-top:12px}.recorder-status-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;display:flex;align-items:center;justify-content:center;gap:6px}.recorder-status-label.live{color:var(--signal)}.recorder-status-label .pulse{width:8px;height:8px;border-radius:50%;background:var(--signal);animation:pulse 1s infinite ease-in-out}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}.recorder-time{font-family:var(--display);font-size:56px;letter-spacing:-.04em;color:var(--ink);line-height:1}.recorder-mic-wrap{width:220px;height:220px;position:relative;display:flex;align-items:center;justify-content:center}.recorder-mic-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid var(--line)}.recorder-mic-ring.live{border-color:var(--signal);animation:ring-pulse 2s infinite ease-out}.recorder-mic-ring.live-2{border-color:var(--signal);animation:ring-pulse 2s infinite ease-out;animation-delay:1s}@keyframes ring-pulse{0%{transform:scale(.85);opacity:1}to{transform:scale(1.4);opacity:0}}.recorder-mic{width:140px;height:140px;border-radius:50%;background:var(--hi-vis);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:56px;position:relative;z-index:1;transition:all .2s;box-shadow:0 12px 32px #00000040}.recorder-mic.live{background:var(--signal);color:var(--white)}.recorder-mic:active{transform:scale(.96)}.recorder-tip{text-align:center;font-size:13px;color:var(--slate);font-weight:500;max-width:280px;line-height:1.4}.waveform{display:flex;align-items:center;justify-content:center;gap:3px;height:32px;margin-top:14px}.waveform-bar{width:3px;background:var(--ink);border-radius:2px;transition:height .1s}.recorder-bottom-actions{width:100%;display:flex;flex-direction:column;gap:10px}.snap-add-full{width:100%;border:2px dashed var(--ink);border-radius:var(--radius);background:transparent;padding:56px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--ink);cursor:pointer;transition:background .15s}.snap-add-full:active{background:var(--paper-2)}.snap-add-full .plus{font-size:52px;font-weight:300;color:var(--steel);line-height:1}.snap-add-full .label{font-family:var(--display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.snap-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.snap-tile{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;position:relative}.snap-tile.photo{background:var(--paper-2)}.snap-tile.photo img{width:100%;height:100%;object-fit:cover}.snap-tile.add{border:2px dashed var(--ink);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .15s}.snap-tile.add:active{background:var(--paper-2)}.snap-tile.add .plus{font-size:40px;font-weight:300;color:var(--steel);line-height:1}.snap-tile.add .label{font-family:var(--display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.snap-tile-delete{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#000000b8;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;cursor:pointer;z-index:1}.snap-tile-pill{position:absolute;bottom:8px;left:8px;background:var(--white);color:var(--ink);font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:3px}.tag-photo-large{width:100%;height:36vh;max-height:280px;min-height:200px;border-radius:var(--radius);overflow:hidden;background:var(--paper);margin-bottom:8px}.tag-photo-large img{width:100%;height:100%;object-fit:cover}.tag-meta{text-align:center;margin-bottom:4px}.tag-options{display:flex;flex-direction:column;gap:6px}.tag-option{display:flex;align-items:center;gap:12px;width:100%;padding:9px 14px;background:var(--white);border:1.5px solid var(--ink);border-radius:var(--radius);color:var(--ink);cursor:pointer;transition:background .15s,color .15s;text-align:left}.tag-option:active{background:var(--paper-2)}.tag-option .radio{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);background:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.tag-option .radio .indicator{width:12px;height:12px;border-radius:50%;opacity:0;transition:opacity .15s}.tag-option.before .radio .indicator{background:var(--signal)}.tag-option.progress .radio .indicator{background:var(--hi-vis-deep)}.tag-option.completed .radio .indicator{background:var(--safe)}.tag-option-label{font-family:var(--display);font-size:13px;letter-spacing:.06em;text-transform:uppercase}.tag-option.selected{background:var(--ink);color:var(--paper)}.tag-option.selected:active{background:var(--ink-2)}.tag-option.selected .radio{background:var(--paper);border-color:var(--paper)}.tag-option.selected .radio .indicator{opacity:1}.tag-thumb-strip{display:flex;gap:8px;overflow-x:auto;margin-top:8px;padding:2px 2px 4px;-webkit-overflow-scrolling:touch}.tag-thumb-strip::-webkit-scrollbar{height:0}.tag-thumb{width:42px;height:42px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;border:2px solid transparent;position:relative;cursor:pointer;background:var(--paper-2);padding:0}.tag-thumb img{width:100%;height:100%;object-fit:cover}.tag-thumb.current{border-color:var(--hi-vis)}.tag-thumb.tagged:after{content:"✓";position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:var(--safe);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.photo-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.photo-section-title{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px}.photo-section-title .dot{width:8px;height:8px;border-radius:2px;background:var(--ink)}.photo-section.before .dot{background:var(--signal)}.photo-section.progress .dot{background:var(--hi-vis-deep)}.photo-section.completed .dot{background:var(--safe)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-cell{aspect-ratio:1;background:var(--paper-2);border:1.5px dashed var(--line-2);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--slate);font-size:24px;position:relative;overflow:hidden;transition:all .15s}.photo-cell.add{cursor:pointer}.photo-cell.add:active{background:var(--line)}.photo-cell img{width:100%;height:100%;object-fit:cover}.photo-cell .delete{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#000000b3;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.review-meta{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}.review-headline{font-size:26px;line-height:1.1;margin-bottom:12px}.report-card{display:flex;align-items:stretch;background:var(--white);border:2px solid var(--ink);border-radius:var(--radius);overflow:hidden;margin-bottom:22px}.report-card .hazard-vertical{width:18px}.report-card-inner{flex:1;min-width:0;padding:20px 18px}.report-biz-name{font-family:var(--display);font-size:18px;letter-spacing:-.01em;color:var(--ink);margin-bottom:2px}.report-biz-tag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}.report-biz-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--steel)}.report-divider{height:1px;background:var(--line);margin:14px 0}.report-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:700}.pill-ink{display:inline-flex;align-items:center;background:var(--ink);color:var(--hi-vis);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px 5px;border-radius:999px;white-space:nowrap}.report-date{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--slate);margin-top:8px}.report-job-title{font-family:var(--display);font-size:22px;line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin:8px 0 4px;cursor:pointer}.report-job-sub{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}.report-twocol-new{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-twocol-new .report-cell-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:700;margin-bottom:6px}.report-twocol-new .report-cell-value{font-size:12px;color:var(--ink);line-height:1.45}.report-twocol-new .report-cell-value strong{font-weight:800}.report-twocol-new .kv-key{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-right:4px}.report-num-section{padding:14px 0 6px;border-top:1px solid var(--line)}.report-num-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.num-circle{width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--hi-vis);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:13px;font-weight:700;flex-shrink:0}.num-title{flex:1;font-family:var(--display);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.report-prose{font-size:13px;line-height:1.55;color:var(--ink-2);white-space:pre-wrap}.report-empty{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--slate);font-style:normal}.materials-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:2px}.materials-table th{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:8px 10px;text-align:left}.materials-table th:last-child{text-align:right}.materials-table td{padding:9px 10px;border-bottom:1px solid var(--line);color:var(--ink)}.materials-table tr:nth-child(2n) td{background:var(--paper-2)}.materials-table tr:last-child td{border-bottom:none}.materials-table td:last-child{font-family:var(--mono);font-size:11px;color:var(--steel);white-space:nowrap;text-align:right}.report-photo-group{margin-bottom:12px}.report-photo-stage{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:6px}.photo-cell.editable{overflow:hidden}.photo-cell.editable>img{border-radius:10px}.photo-cell .photo-x{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--hi-vis);border:2px solid var(--hi-vis);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;line-height:1;padding:0;cursor:pointer;box-shadow:0 1px 2px #00000059;transition:transform .12s}.photo-cell .photo-x:active{transform:scale(.92)}.photo-cell.draggable{cursor:grab;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.photo-cell.draggable img,.drag-overlay-cell img{pointer-events:none;-webkit-user-drag:none;user-drag:none}.photo-cell.dragging{opacity:.28}.report-photo-group.drop-target .photo-grid{outline:2.5px dashed var(--hi-vis-deep);outline-offset:4px;border-radius:12px;background:#ffd4001a}.drag-overlay-cell{width:100%;height:100%;cursor:grabbing;transform:scale(1.04);opacity:.96;border:1.5px solid var(--ink);box-shadow:0 10px 24px #00000059}.photo-thumb-loading,.photo-thumb-error,.photo-thumb-missing{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--slate);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:6px}.photo-thumb-error{background:repeating-linear-gradient(-45deg,var(--paper-2) 0 8px,var(--line) 8px 16px);color:var(--steel)}.photo-thumb-overlay.pending{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000040;display:flex;align-items:center;justify-content:center}.thumb-spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(0,0,0,.18);border-top-color:var(--ink);animation:ring-spin .8s linear infinite}.photo-thumb-overlay.pending .thumb-spinner{border-color:#ffd40059;border-top-color:var(--hi-vis)}.photo-cell.add-tile{background:var(--hi-vis);border:2px dashed var(--ink);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:transform .12s,background .12s}.photo-cell.add-tile:active{transform:scale(.97);background:var(--hi-vis-deep)}.add-tile-plus{font-family:var(--display);font-size:28px;line-height:1;color:var(--ink)}.add-tile-label{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.report-stamp{margin-top:14px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);text-align:center;padding-top:12px;border-top:1px dashed var(--line)}.report-edit-btn{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);padding:3px 8px;border:1px solid var(--line-2);border-radius:4px;font-weight:600;transition:all .15s;background:transparent}.report{background:var(--white);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;margin-bottom:18px;box-shadow:0 2px 8px #0000000a}.report-header{background:var(--ink);color:var(--paper);padding:16px 18px 14px;position:relative}.report-header:before{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:repeating-linear-gradient(-45deg,var(--hi-vis) 0 6px,var(--ink) 6px 12px)}.report-business-name{font-family:var(--display);font-size:18px;letter-spacing:-.01em;margin-bottom:2px}.report-business-tag{font-size:11px;color:#faf8f3b3;margin-bottom:8px}.report-business-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--hi-vis)}.report-title-block{padding:18px 18px 14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.report-title-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:4px}.report-title{font-family:var(--display);font-size:16px;line-height:1.15;color:var(--ink)}.report-ref{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--ink);color:var(--hi-vis);padding:4px 8px;border-radius:4px;letter-spacing:.06em;white-space:nowrap}.report-twocol{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.report-twocol>div{padding:14px 16px}.report-twocol>div:first-child{border-right:1px solid var(--line)}.report-cell-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:6px;font-weight:600}.report-cell-value{font-size:13px;color:var(--ink);line-height:1.35;font-weight:500}.report-section{padding:16px 18px;border-bottom:1px solid var(--line)}.report-section:last-child{border-bottom:none}.report-section-num{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--slate);margin-bottom:4px}.report-section-title{font-family:var(--display);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.report-section-body{font-size:13px;color:var(--ink-2);line-height:1.55;white-space:pre-wrap}.report-list{list-style:none;padding:0}.report-list li{padding:6px 0;border-bottom:1px dotted var(--line);font-size:13px;display:flex;justify-content:space-between;gap:12px}.report-list li:last-child{border-bottom:none}.report-list .item{color:var(--ink);font-weight:500;flex:1}.report-list .qty{font-family:var(--mono);font-size:11px;color:var(--steel);white-space:nowrap}.report-footer{background:var(--ink);color:var(--paper);padding:12px 18px;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.08em}.report-footer .left{color:var(--hi-vis)}.report-footer .right{color:#faf8f399}.report-edit-btn{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);padding:3px 8px;border:1px solid var(--line-2);border-radius:4px;font-weight:600;transition:all .15s}.report-edit-btn:active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.generating-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;background:var(--paper);text-align:center}.generating-logo-card{background:var(--hi-vis);border:2px solid var(--ink);border-radius:var(--radius-lg);padding:22px 28px;margin-bottom:36px;box-shadow:0 6px 0 var(--ink)}.generating-ring{width:56px;height:56px;border-radius:50%;border:4px solid var(--line-2);border-top-color:var(--ink);animation:ring-spin .9s linear infinite;margin-bottom:28px}@keyframes ring-spin{to{transform:rotate(360deg)}}.generating-status{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);min-height:28px}.generating-caption{margin-top:12px;font-size:13px;line-height:1.5;color:var(--steel);max-width:280px}.retry-page{display:flex;align-items:center;justify-content:center;min-height:70vh}.retry-card{width:100%;max-width:360px;background:var(--hi-vis);border:2px solid var(--ink);border-radius:var(--radius-lg);padding:26px 24px 22px;text-align:center;box-shadow:0 6px 0 var(--ink);display:flex;flex-direction:column}.retry-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-weight:700;margin-bottom:10px;opacity:.85}.retry-title{font-family:var(--display);font-size:24px;line-height:1.15;color:var(--ink);margin-bottom:10px;text-transform:none;letter-spacing:0}.retry-copy{font-size:14px;line-height:1.5;color:var(--ink);opacity:.85}.retry-card .cta-primary{background:var(--ink);color:var(--hi-vis)}.retry-card .cta-primary .arrow{background:var(--hi-vis);color:var(--ink)}.sig-block{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:12px}.sig-block-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.sig-canvas{background:var(--paper);border:1.5px dashed var(--line-2);border-radius:8px;width:100%;height:110px;touch-action:none;display:block}.sig-meta{margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--slate);letter-spacing:.04em;display:flex;justify-content:space-between}.sig-clear{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--signal)}.action-bar{background:var(--paper);padding:12px 20px 16px;padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:10px;flex-shrink:0}.onboarding{flex:1;display:flex;flex-direction:column;background:var(--hi-vis);position:relative;overflow:hidden}.onboarding-hero{flex:1;display:flex;flex-direction:column;justify-content:center;padding:32px 28px;padding-top:max(32px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom));padding-left:max(28px,env(safe-area-inset-left));padding-right:max(28px,env(safe-area-inset-right));position:relative}.onboarding-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:12px;font-weight:700}.onboarding-title{font-family:var(--display);font-size:44px;line-height:.95;letter-spacing:-.025em;color:var(--ink);margin-bottom:16px}.onboarding-sub{font-size:15px;line-height:1.4;color:var(--ink-2);max-width:320px;margin-bottom:36px;font-weight:500}.toast{position:absolute;top:70px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:8px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;z-index:100;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px #0003;animation:toast-in .25s ease-out}.toast.error{background:var(--signal)}.toast .toast-dot{width:6px;height:6px;border-radius:50%;background:var(--hi-vis)}@keyframes toast-in{0%{transform:translate(-50%,-10px);opacity:0}to{transform:translate(-50%);opacity:1}}.empty{text-align:center;padding:40px 24px;color:var(--slate)}.empty-icon{width:60px;height:60px;border-radius:50%;background:var(--paper-2);border:2px dashed var(--line-2);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:24px;color:var(--slate)}.empty-title{font-family:var(--display);font-size:16px;color:var(--ink);margin-bottom:6px}.empty-body{font-size:13px;line-height:1.4}.fade-in{animation:fade-in .25s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.success-paper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;padding-top:max(32px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));background:var(--paper);text-align:center;gap:22px}.success-card{width:100%;max-width:320px;background:var(--hi-vis);border:2px solid var(--ink);border-radius:var(--radius-lg);padding:28px 24px;text-align:center;box-shadow:0 6px 0 var(--ink)}.success-tick-block{width:64px;height:64px;border-radius:50%;background:var(--ink);color:var(--hi-vis);display:inline-flex;align-items:center;justify-content:center;margin:0 auto 18px}.success-title{font-family:var(--display);font-size:38px;letter-spacing:-.02em;color:var(--ink);line-height:1;margin-bottom:8px}.success-sub{font-size:13px;color:var(--ink);opacity:.78;max-width:240px;margin:0 auto;line-height:1.45}.success-ref{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-top:14px}.success-cta{max-width:320px}.hero{flex:1;min-height:0;display:flex;flex-direction:column}.hero-top{flex:0 0 auto;padding:26px 22px 0;padding-top:max(26px,env(safe-area-inset-top));padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}.hero-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:24px 22px 60px;padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}@media (max-height: 700px){.hero-body{padding-bottom:24px}}.auth-msg{width:100%;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;line-height:1.35;margin-bottom:14px}.auth-msg-error{background:#e639461a;border:1px solid var(--signal);color:var(--signal-deep)}.auth-msg-ok{background:#2d7a3e1a;border:1px solid var(--safe);color:var(--safe)}.auth-tabs{display:flex;width:100%;gap:4px;padding:4px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius)}.auth-tab{flex:1;padding:11px 0;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--body);font-size:14px;font-weight:700;letter-spacing:.01em;color:var(--slate);cursor:pointer;transition:background .12s ease,color .12s ease}.auth-tab:hover{color:var(--ink)}.auth-tab.active{background:var(--hi-vis);color:var(--ink);box-shadow:0 1px 0 var(--hi-vis-deep)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0a0a8c;display:flex;align-items:center;justify-content:center;padding:22px;z-index:50;animation:modal-fade .14s ease-out}.modal-card{width:100%;max-width:360px;background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);padding:22px 22px 18px;display:flex;flex-direction:column;gap:10px;box-shadow:0 18px 40px #00000059;animation:modal-rise .18s ease-out}.modal-title{font-size:26px;line-height:1.05;margin:0 0 2px}.modal-sub{font-size:14px;color:var(--slate);line-height:1.45;margin:0 0 10px}.modal-btn{margin-top:0}.modal-btn-discard{border-color:var(--signal);color:var(--signal)}.modal-btn-discard:active{background:var(--signal);color:var(--paper)}.modal-cancel{background:none;border:none;color:var(--slate);font-family:var(--body);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:center;margin-top:6px;padding:6px 8px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.upgrade-copy{font-size:15px;line-height:1.55;color:var(--steel);margin-bottom:24px}.upgrade-plan{background:var(--ink);border-radius:var(--radius);padding:20px 22px 22px;margin-bottom:22px;box-shadow:0 5px 0 var(--hi-vis-deep)}.upgrade-plan-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1.5px solid rgba(255,255,255,.14)}.upgrade-plan-name{font-family:var(--display);font-size:20px;color:var(--paper);letter-spacing:-.02em}.upgrade-plan-price{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--hi-vis);white-space:nowrap}.upgrade-features{list-style:none;display:flex;flex-direction:column;gap:9px}.upgrade-features li{font-size:14px;color:var(--paper-2);display:flex;align-items:center;gap:10px}.upgrade-features li:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--hi-vis);flex-shrink:0}.upgrade-cta{display:flex;align-items:center;justify-content:space-between;text-decoration:none}.upgrade-note{font-family:var(--mono);font-size:11px;line-height:1.5;color:var(--slate);text-align:center;margin-top:12px}.quota-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);background:var(--paper-2);border:1.5px solid var(--line);border-radius:999px;padding:7px 13px;margin-bottom:18px}.quota-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--safe);flex-shrink:0}.quota-pill.is-out{color:var(--signal);border-color:var(--signal);background:transparent}.quota-pill.is-out:before{background:var(--signal)}.quota-pill-action{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
