html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-ui);color:#0f2438;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-ui:"Public Sans", -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;--font-display:"Archivo", "Public Sans", -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg:#eff2f6;--surface:#fff;--surface-2:#f7f9fc;--line:#d5dde6;--line-strong:#adbbcb;--line-control:#7f8c9c;--placeholder:#5f6b7a;--text:#0f2438;--muted:#52657b;--primary:#143c61;--primary-strong:#0d2b49;--primary-soft:#e4ecf5;--accent:#f5a300;--accent-strong:#d88a00;--accent-soft:#fcefd3;--success:#177342;--success-soft:#e1f2e8;--warn-text:#9a5b00;--danger:#b42318;--danger-soft:#fbe9e7;--navy:#0b1d31;--navy-deep:#071527;--navy-text:#b9c7d8;--blueprint:#1d5b93;--vellum:#fbfaf6;--shadow-1:0 1px 2px #0f243812;--shadow-2:0 1px 2px #0f24380f, 0 4px 12px #0f243812;--shadow-menu:0 8px 24px #0f243829, 0 1px 2px #0f24381a;--shadow-drawer:-18px 0 48px #07152747;--radius-control:4px;--radius-panel:6px;--radius-stamp:3px;--hazard-stripe:repeating-linear-gradient(45deg, #f5a300 0 8px, #d88a00 8px 16px);background:#eff2f6}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea,dl,.meter,.readiness-percent,.progress-card strong{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--blueprint);outline-offset:2px}.sidebar :focus-visible{outline-color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#b6c2d0 padding-box content-box;border:2px solid #0000;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#8fa1b5 padding-box content-box;border:2px solid #0000}.sidebar::-webkit-scrollbar-thumb{background:#ffffff40 padding-box content-box}.app-shell{background:var(--bg);grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, var(--navy), var(--navy-deep));color:var(--navy-text);border-right:0;flex-direction:column;align-self:start;gap:15px;height:100vh;padding:18px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;display:grid}.brand-mark{color:#fff;background:0 0;border-radius:0;place-items:center;width:44px;height:44px;display:grid}.brand strong,.brand span{display:block}.brand strong{font-family:var(--font-display);color:#fff;letter-spacing:.02em;text-transform:uppercase;font-size:15px;font-weight:700;line-height:1.2}.brand span{color:var(--navy-text);font-family:var(--font-mono);margin-top:4px;font-size:10px;line-height:1.35}.nav-stack{gap:4px;display:grid}.nav-item,.system-row,.photo-card,.suggestion-footer button,.icon-text-button,.suggestion-footer-button{border:0}.nav-item{width:100%;min-height:44px;color:var(--navy-text);border-radius:var(--radius-control);text-align:left;background:0 0;border-left:3px solid #0000;align-items:center;gap:10px;padding:0 10px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{color:#fff;background:#ffffff0a}.nav-item.active{color:#fff;border-left:3px solid var(--accent);background:#ffffff0f;font-weight:600}.sidebar-section,.sidebar-actions{gap:8px;display:grid}.sidebar-section label,.panel-kicker,.meta-line{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.sidebar-section label{color:var(--navy-text);font-family:var(--font-mono)}.panel-kicker,.meta-line{font-family:var(--font-mono)}.workspace{counter-reset:sec}.workspace .panel-kicker:before{counter-increment:sec;content:"Sec " counter(sec, decimal-leading-zero) " — ";color:var(--primary)}select{width:100%;min-height:44px;color:var(--text);border:1px solid var(--line-control);border-radius:var(--radius-control);appearance:none;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;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 1.5 6 6.5 11 1.5' fill='none' stroke='%230F2438' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding:0 30px 0 10px;font-size:13px;overflow:hidden}input,textarea{width:100%;color:var(--text);border:1px solid var(--line-control);border-radius:var(--radius-control);background:#fff;font-size:13px}input{min-height:44px;padding:0 10px}textarea{resize:vertical;min-height:78px;padding:10px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1d5b9338}@media (pointer:coarse),(width<=820px){html,body{touch-action:pan-x pan-y}button,a,label,input,select,textarea{touch-action:manipulation}input,select,textarea,input[type=date],input[type=datetime-local],input[type=time],input[type=number],.permit-edit-grid input{font-size:16px!important}}input::placeholder,textarea::placeholder{color:var(--placeholder);opacity:1}button,a,input,select,textarea{transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s,transform 80ms}button:not(:disabled):active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}input[type=date],input[type=datetime-local],.permit-edit-grid input{font-family:var(--font-mono);font-size:12.5px}.sidebar select{color:#fff;text-overflow:ellipsis;background-color:#0f2438;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 1.5 6 6.5 11 1.5' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");border:1px solid #ffffff2e;min-width:0;max-width:100%}.sidebar-section{min-width:0}.progress-card{border-radius:var(--radius-panel);background:#ffffff0d;border:1px solid #ffffff1f;padding:14px}.progress-card span,.progress-card strong{display:block}.progress-card span{color:var(--navy-text);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:600}.progress-card strong{color:#fff;font-family:var(--font-mono);margin-top:8px;font-size:30px;font-weight:600;line-height:1}.meter{background:repeating-linear-gradient(90deg,#0000 0 calc(12.5% - 1px),#ffffff2e calc(12.5% - 1px) 12.5%),#12263c;border:1px solid #ffffff24;border-radius:2px;height:10px;margin-top:14px;overflow:hidden}.meter div{background:var(--hazard-stripe);height:100%}.meter.complete div{background:#2e9e63}.save-note{color:var(--navy-text);border-radius:var(--radius-control);font-family:var(--font-mono);background:0 0;border:1px dashed #ffffff38;align-items:center;gap:10px;padding:11px 12px;font-size:11px;font-weight:500;display:flex}.save-note.error{color:#ffd9a8;border-style:solid;border-color:var(--accent-strong);background:#f5a30024}.save-note.error svg{color:var(--accent);flex:none}.account-card{border-radius:var(--radius-panel);background:#ffffff0d;border:1px solid #ffffff1f;gap:10px;padding:12px;display:grid}.account-identity{grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.account-identity img,.account-initial{border:1px solid #ffffff40;border-radius:50%;width:34px;height:34px}.account-initial{color:#fff;background:var(--primary);text-transform:uppercase;place-items:center;font-weight:700;display:grid}.account-identity strong,.account-identity span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.account-identity strong{color:#fff;font-size:12.5px}.account-identity span{color:var(--navy-text);font-family:var(--font-mono);font-size:10px}.account-signout{width:28px;height:28px;color:var(--navy-text);border-radius:var(--radius-control);background:0 0;border:1px solid #ffffff2e;place-items:center;display:grid}.account-signout:hover{color:#fff;border-color:#ffffff73}.account-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.account-signin{width:100%}.account-status{color:var(--navy-text);font-family:var(--font-mono);margin:0;font-size:10.5px;line-height:1.45}.isolation-note{color:#b9c7d8bf;border-top:1px solid #ffffff1a;align-items:flex-start;gap:10px;margin-top:auto;padding:12px 2px 0;font-size:11px;line-height:1.5;display:flex}.isolation-note svg{color:var(--accent);flex:none}.workspace{grid-template-rows:auto auto minmax(0,1fr);gap:18px;min-width:0;padding:20px;display:grid}.topbar{z-index:25;border:1px solid var(--line);border-top:3px solid var(--text);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-2);justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;display:flex;position:sticky;top:0}.topbar h1{font-family:var(--font-display);letter-spacing:-.015em;margin:4px 0 6px;font-size:22px;font-weight:700;line-height:1.15}.topbar p{color:var(--muted);margin:0;font-size:13px}.edit-band{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-2);padding:16px}.setup-stack{gap:16px;display:grid}.intake-panel,.property-research-panel,.permit-panel,.official-fields-panel,.profile-panel{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);gap:13px;padding:14px;display:grid}.official-fields-panel{background:var(--vellum)}.anchor-button{color:var(--primary);text-decoration:none}.research-header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.research-header h2{letter-spacing:-.01em;margin:4px 0 0;font-size:17px;font-weight:700;line-height:1.2}.research-address-search{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:7px;font-size:11px;font-weight:600;display:grid}.research-address-search input{letter-spacing:0;text-transform:none;border-width:2px;border-color:var(--primary);min-height:50px;font-size:15px;font-weight:600}.research-address-search input::placeholder{color:var(--placeholder);font-weight:500}.research-status-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.research-status-row span,.research-state,.source-status{border-radius:var(--radius-stamp);border:1px solid color-mix(in srgb, currentColor 30%, transparent);background:var(--surface-2);color:#405060;min-height:24px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.research-state.complete,.source-status.verified{color:var(--success);background:var(--success-soft)}.research-state.partial,.source-status.link_only,.source-status.skipped,.source-status.not_found{color:var(--warn-text);background:var(--accent-soft)}.research-state.failed,.source-status.blocked,.source-status.failed{color:var(--danger);background:var(--danger-soft)}.research-status-text,.research-address{color:var(--primary);margin:0;font-size:12px;font-weight:600}.research-address{color:var(--muted)}.research-facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0;display:grid}.research-facts div{border:1px solid var(--line);border-radius:var(--radius-control);background:#fff;min-width:0;padding:10px}.research-facts dt{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.research-facts dd{color:var(--text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin:6px 0 0;font-size:12.5px;font-weight:500;overflow:hidden}.research-grid{grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);align-items:start;gap:14px;display:grid}.research-grid h3{margin:0 0 9px;font-size:13px;font-weight:700}.research-suggestion-list,.source-list{gap:8px;display:grid}.research-suggestion{border:1px solid var(--line);border-left:3px solid var(--success);border-radius:var(--radius-control);background:#fff;gap:5px;padding:10px;display:grid}.research-suggestion div{justify-content:space-between;gap:10px;display:flex}.research-suggestion strong,.source-link strong{color:var(--text);font-size:12px}.research-suggestion span,.research-suggestion small,.source-link small{color:var(--muted);font-size:11px}.research-suggestion small{font-family:var(--font-mono);font-size:10.5px}.research-suggestion p{color:#2a3c50;margin:0;font-size:12px;line-height:1.35}.source-link{color:inherit;border:1px solid var(--line);border-radius:var(--radius-control);background:#fff;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:10px;padding:10px;text-decoration:none;display:grid}.source-link:hover{border-color:var(--primary)}.source-link span:first-child{gap:3px;min-width:0;display:grid}.source-link small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.source-link svg{color:var(--primary)}.source-list.compact{max-height:none}.research-notes{color:var(--muted);gap:6px;margin:0;padding-left:18px;font-size:12px;line-height:1.4;display:grid}.calendar-event-picker{border:1px solid var(--primary);border-left:3px solid var(--accent);border-radius:var(--radius-control);background:var(--surface-2);gap:8px;padding:12px;display:grid}.calendar-picker-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.calendar-picker-header h3{margin:0;font-size:13px;font-weight:700}.calendar-event{color:var(--text);border:1px solid var(--line);border-radius:var(--radius-control);text-align:left;background:#fff;gap:3px;padding:9px 10px;display:grid}.calendar-event:hover{border-color:var(--primary);background:var(--primary-soft)}.calendar-event-time{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:10.5px;font-weight:600}.calendar-event-title{font-size:13px;font-weight:600}.calendar-event-location{color:var(--muted);font-size:12px}.intake-grid{grid-template-columns:repeat(6,minmax(120px,1fr));align-items:end;gap:12px;display:grid}.intake-grid label,.permit-edit-grid label,.official-field-grid label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:7px;font-size:11px;font-weight:600;display:grid}.intake-grid .wide-field{grid-column:span 3}.intake-footer{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;font-weight:500;display:flex}.permit-summary{flex-wrap:wrap;gap:8px;display:flex}.permit-summary span{min-height:24px;color:var(--primary);border:1px solid color-mix(in srgb, currentColor 30%, transparent);border-radius:var(--radius-stamp);background:var(--primary-soft);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.permit-list{gap:10px;display:grid}.permit-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-panel);background:#fff;gap:10px;padding:12px;display:grid}.permit-card.selected{border-color:#9cc7ae;border-left:3px solid var(--success);background:#fbfefc;box-shadow:0 0 0 2px #1773421f}.permit-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.permit-card-header strong,.permit-card-header span{display:block}.permit-card-header strong{font-size:13px}.permit-card-header span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:10.5px;font-weight:500}.source-mini-link{color:var(--primary);align-items:center;gap:5px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.permit-edit-grid{grid-template-columns:repeat(4,minmax(100px,1fr));gap:10px;display:grid}.official-field-sections{gap:12px;display:grid}.official-field-sections fieldset{border:1px solid var(--line-strong);border-radius:var(--radius-stamp);background:var(--vellum);box-shadow:inset 0 0 0 3px var(--vellum), inset 0 0 0 4px var(--line);margin:0;padding:12px}.official-field-sections legend{color:var(--primary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:0 6px;font-size:11px;font-weight:600}.official-field-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;display:grid}.profile-grid{grid-template-columns:repeat(6,minmax(120px,1fr));align-items:end;gap:12px;display:grid}.profile-grid label,.finding-form label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:7px;font-size:11px;font-weight:600;display:grid}.address-autocomplete-field{grid-column:span 2;position:relative}.address-autocomplete{position:relative}.address-autocomplete input{padding-right:32px}.address-suggestion-menu{z-index:20;border:1px solid var(--line-strong);border-radius:var(--radius-control);box-shadow:var(--shadow-menu);background:#fff;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}.address-suggestion{min-height:44px;color:var(--text);border:0;border-bottom:1px solid var(--line);text-align:left;background:#fff;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:grid}.address-suggestion:last-child{border-bottom:0}.address-suggestion svg{color:var(--primary)}.address-suggestion span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.address-suggestion.active,.address-suggestion:hover{background:var(--primary-soft)}.address-search-status,.address-match-note{color:var(--muted);letter-spacing:0;text-transform:none;font-size:11px;font-weight:500;line-height:1.35}.address-match-note{color:var(--success);font-family:var(--font-mono);font-size:10.5px}.wide-field{grid-column:span 3}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.status-pill,.primary-button,.ghost-button{border-radius:var(--radius-control);white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.button-pair,.form-row,.report-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-pill{border-radius:var(--radius-stamp);border:1px solid color-mix(in srgb, currentColor 35%, transparent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}.status-pill.review{color:var(--warn-text);background:var(--accent-soft)}.status-pill.ready{color:var(--success);background:var(--success-soft)}.primary-button{color:#fff;background:var(--primary);border:0;box-shadow:inset 0 -2px #0000002e}.primary-button:hover{background:var(--primary-strong)}.scan-button{background:var(--primary)}.topbar .primary-button,.signoff-box .primary-button,.report-actions .primary-button{color:var(--text);background:var(--accent);box-shadow:inset 0 -2px #00000038}.topbar .primary-button:hover,.signoff-box .primary-button:hover,.report-actions .primary-button:hover{background:var(--accent-strong)}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.5;filter:saturate(.6)}.ghost-button{color:var(--primary);border:1px solid var(--line-control);background:#fff}.ghost-button:hover{border-color:var(--primary);background:var(--surface-2)}.sidebar .ghost-button{color:#e7edf4;background:0 0;border:1px solid #ffffff38}.sidebar .ghost-button:hover{background:#ffffff0d;border-color:#ffffff73}.workgrid{grid-template-columns:minmax(240px,.9fr) minmax(380px,1.4fr) minmax(340px,1.1fr);gap:18px;min-height:0;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);min-width:0;box-shadow:var(--shadow-2);overflow:hidden}.panel-header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.panel-header h2{letter-spacing:-.01em;margin:4px 0 0;font-size:17px;font-weight:700;line-height:1.2}.system-list,.checkpoint-list,.suggestion-list,.finding-list,.report-summary,.export-blocker{padding:16px}.system-list{border-bottom:1px solid var(--line);gap:4px;display:grid}.system-row{min-height:40px;color:var(--text);border-radius:var(--radius-control);text-align:left;background:0 0;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 10px;font-weight:500;display:grid}.system-row:hover{background:var(--surface-2)}.system-row.selected{background:var(--primary-soft);font-weight:600}.system-row small{color:var(--muted);font-family:var(--font-mono);font-size:11px}.system-dot{background:#b3c0cd;border-radius:50%;width:8px;height:8px}.system-dot.complete{background:var(--success)}.checkpoint-list h3,.suggestion-list h3,.finding-list h3{margin:0 0 12px;font-size:13px;font-weight:700}.checkpoint{color:#223449;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:32px;font-size:13px;display:grid}.checkpoint input{accent-color:var(--primary)}.photo-panel{flex-direction:column;display:flex}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;position:absolute;inset:0}.photo-slot-strip{border-bottom:1px solid var(--line);background:var(--surface-2);grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;padding:12px 16px;display:grid}.photo-slot{min-height:56px;color:var(--text);border:1px dashed var(--line-strong);border-radius:var(--radius-control);text-align:left;background:#fff;gap:4px;padding:9px 10px;display:grid;position:relative}.photo-slot span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.photo-slot small{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:600}.photo-slot.active{border:1px solid var(--primary);background:var(--primary-soft)}.photo-slot.complete{background:var(--success-soft);border:1px solid #9cc7ae}.photo-slot.complete:after{content:"✓";color:var(--success);font-size:11px;font-weight:700;position:absolute;top:6px;right:8px}.photo-slot-thumb{object-fit:cover;background:var(--surface-2);border-radius:4px;width:100%;height:42px}.photo-slot-plus{color:var(--muted);opacity:.7}.photo-slot:hover{border-color:var(--primary)}.photo-hint{color:var(--muted);margin:0;padding:10px 16px 0;font-size:12px;line-height:1.5}.photo-hint strong{color:var(--text)}.visually-hidden-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.edit-photo-button{margin-top:8px}.image-editor{gap:18px;display:grid}.editor-stage{touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid var(--line);border-radius:var(--radius-stamp);background:repeating-conic-gradient(#eceff3 0% 25%,#f6f8fa 0% 50%) 50%/20px 20px;max-width:100%;margin:0 auto;position:relative}.editor-canvas{border-radius:var(--radius-stamp);width:100%;height:100%;display:block}.crop-box{box-sizing:border-box;cursor:move;border:1.5px solid #fff;outline:1px solid #141e2d8c;position:absolute;box-shadow:0 0 0 4000px #0f172357}.crop-handle{border:1.5px solid var(--primary);background:#fff;border-radius:50%;width:12px;height:12px;position:absolute}.crop-nw{cursor:nwse-resize;top:-7px;left:-7px}.crop-ne{cursor:nesw-resize;top:-7px;right:-7px}.crop-sw{cursor:nesw-resize;bottom:-7px;left:-7px}.crop-se{cursor:nwse-resize;bottom:-7px;right:-7px}.crop-n{cursor:ns-resize;margin-left:-6px;top:-7px;left:50%}.crop-s{cursor:ns-resize;margin-left:-6px;bottom:-7px;left:50%}.crop-e{cursor:ew-resize;margin-top:-6px;top:50%;right:-7px}.crop-w{cursor:ew-resize;margin-top:-6px;top:50%;left:-7px}.editor-controls{gap:12px;display:grid}.editor-tool-row{flex-wrap:wrap;gap:8px;display:flex}.editor-slider{grid-template-columns:130px 1fr 44px;align-items:center;gap:12px;font-size:13px;font-weight:600;display:grid}.editor-slider>span{align-items:center;gap:6px;display:inline-flex}.editor-slider input[type=range]{width:100%}.editor-slider em{font-family:var(--font-mono);color:var(--muted);text-align:right;font-size:12px;font-style:normal}.editor-resize select{width:100%}.editor-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.editor-error{color:var(--danger,#b4232a);font-size:13px}.defect-rec-count{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.defect-rec-empty{color:var(--muted);margin:0;padding:16px;font-size:13px;line-height:1.5}.defect-rec-list{gap:12px;margin:0;padding:16px;list-style:none;display:grid}.defect-rec-item{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:14px;display:grid}.defect-rec-thumb{border:1px solid var(--line);border-radius:var(--radius-stamp);background:var(--surface-2);cursor:pointer;width:96px;height:72px;padding:0;display:block;overflow:hidden}.defect-rec-thumb img{object-fit:cover;width:100%;height:100%}.defect-rec-thumb span{width:100%;height:100%;color:var(--muted);place-items:center;font-size:10px;display:grid}.defect-rec-body{gap:4px;display:grid}.defect-rec-body strong{font-size:13px}.defect-rec-body small{color:var(--muted);font-size:11px}.defect-rec-body textarea{resize:vertical;min-height:60px;margin-top:4px}.selected-photo{border-bottom:1px solid var(--line);background:var(--surface-2);grid-template-columns:150px minmax(0,1fr);gap:14px;padding:16px;display:grid}.selected-photo img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius-stamp);background:#fff;width:100%;padding:3px;display:block}.selected-photo-noimg{aspect-ratio:4/3;width:100%;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius-stamp);background:var(--surface-2);place-items:center;font-size:11px;display:grid}.selected-photo strong,.selected-photo span{display:block}.selected-photo strong{font-size:15px}.selected-photo span{color:var(--muted);margin-top:6px;font-size:13px}.photo-meta-form{gap:8px;display:grid}.photo-meta-form label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:5px;font-size:11px;font-weight:600;display:grid}.photo-meta-form input{min-height:38px}.tag-row{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tag-row span,.issue,.review-chip{border-radius:var(--radius-stamp);border:1px solid color-mix(in srgb, currentColor 30%, transparent);min-height:24px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.tag-row span{color:var(--primary);background:var(--primary-soft)}.assign-slot-button{width:auto;margin-top:12px}.scan-result,.scan-placeholder,.scan-error{border-radius:var(--radius-control);margin-top:12px;padding:12px}.scan-result{border:1px solid var(--line);border-left:3px solid var(--accent);background:#fff}.scan-result-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.scan-result-header span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin-top:0;font-size:10.5px;font-weight:600}.scan-result-header strong{color:var(--text);margin-top:4px;line-height:1.25}.scan-severity{border-radius:var(--radius-stamp);border:1px solid color-mix(in srgb, currentColor 30%, transparent);min-height:24px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex:none;align-items:center;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.scan-severity.safety{color:var(--danger);background:var(--danger-soft)}.scan-severity.repair{color:var(--warn-text);background:var(--accent-soft)}.scan-severity.monitor,.scan-severity.maintenance{color:var(--primary);background:var(--primary-soft)}.scan-result p{color:#3a4c60;margin:10px 0 0;font-size:12px;line-height:1.45}.scan-metrics,.scan-signal-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.scan-metrics span,.scan-signal-row span{color:#405060;border-radius:var(--radius-stamp);border:1px solid var(--line);background:var(--surface-2);min-height:22px;font-family:var(--font-mono);align-items:center;padding:0 7px;font-size:10.5px;font-weight:500;display:inline-flex}.scan-signal-row.compact{margin-top:10px}.scan-placeholder{color:var(--muted);border:1px dashed var(--line-strong);background:var(--surface-2);align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;display:flex}.scan-placeholder svg{color:var(--primary);flex:none}.scan-error{color:var(--danger);background:var(--danger-soft);font-size:12px;font-weight:600}.photo-empty{min-height:210px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--surface-2);text-align:center;place-items:center;gap:8px;margin:16px;padding:24px;display:grid}.photo-empty svg{color:var(--primary)}.photo-empty strong{color:var(--text);font-size:15px}.photo-empty span{max-width:260px;font-size:13px;line-height:1.4}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid;overflow:auto}.photo-card{border:1px solid var(--line);border-radius:var(--radius-panel);text-align:left;background:#fff;padding:4px;overflow:hidden}.photo-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px #143c6140}.photo-card img{aspect-ratio:16/10;object-fit:cover;border-radius:2px;width:100%;display:block}.photo-card span{min-height:42px;color:var(--text);border-top:1px solid #e4eaf1;margin-top:4px;padding:9px 6px 5px;font-size:12px;font-weight:500;line-height:1.25;display:block}.review-panel{flex-direction:column;display:flex;overflow-y:auto}.spark-icon{color:var(--accent)}.readiness-box{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:16px 16px 0;padding:14px;display:grid}.readiness-box strong,.readiness-box span{display:block}.readiness-box strong{font-size:14px}.readiness-box span{color:var(--muted);margin-top:5px;font-size:12px}.readiness-percent{color:var(--warn-text);font-family:var(--font-mono);font-size:26px;font-weight:600}.readiness-percent.ready{color:var(--success)}.issue-list{flex-wrap:wrap;gap:8px;padding:14px 16px 0;display:flex}.issue.warn{color:var(--warn-text);background:var(--accent-soft)}.issue.danger{color:var(--danger);background:var(--danger-soft)}.suggestion-list,.finding-list,.finding-form{gap:10px;display:grid}.finding-form{border-bottom:1px solid var(--line);padding:16px}.finding-form h3{margin:0;font-size:13px;font-weight:700}.finding-form .form-row select{flex:1}.suggestion-card,.finding-card{border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff;padding:12px}.suggestion-card{border-left:3px solid var(--line)}.suggestion-card:has(.review-chip.needs_review){border-left-color:var(--accent)}:is(.suggestion-card:has(.review-chip.approved),.suggestion-card:has(.review-chip.edited)){border-left-color:var(--success)}.suggestion-card:has(.review-chip.rejected){border-left-color:var(--line-strong);opacity:.55}.suggestion-title,.suggestion-footer,.finding-card div{justify-content:space-between;align-items:center;gap:12px;display:flex}.suggestion-title strong,.finding-card strong{font-size:13px}.suggestion-title span{color:var(--muted);font-family:var(--font-mono);font-size:11px;font-weight:600}.suggestion-card p,.finding-card p{color:#3a4c60;margin:8px 0 0;font-size:12px;line-height:1.45}.suggestion-source{color:var(--muted);font-family:var(--font-mono);margin-top:8px;font-size:10.5px;font-weight:500}.recommendation-text strong{color:var(--text)}.suggestion-footer{margin-top:12px}.suggestion-footer div{gap:6px;display:flex}.suggestion-footer button{width:34px;height:34px;color:var(--text);border-radius:var(--radius-control);background:var(--bg);place-items:center;display:grid}.suggestion-footer button:hover{color:#fff;background:var(--primary)}.suggestion-footer button[title=Approve]:hover,.suggestion-footer button[title=Approve\ field]:hover{background:var(--success)}.suggestion-footer button[title=Reject]:hover,.suggestion-footer button[title=Reject\ field]:hover{background:var(--danger)}.review-chip.needs_review{color:var(--warn-text);background:var(--accent-soft)}.review-chip.approved,.review-chip.edited{color:var(--success);background:var(--success-soft)}.review-chip.rejected{color:var(--danger);background:var(--danger-soft)}.finding-card{border-left:3px solid var(--primary)}.finding-card.safety{border-left-color:var(--danger)}.finding-card.repair{border-left-color:var(--accent-strong)}.finding-card span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:600}.finding-card.safety span{color:var(--danger)}.finding-card.monitor span,.finding-card.maintenance span{color:var(--primary)}.finding-card.repair span{color:var(--warn-text)}.empty-state{color:var(--muted);margin:0;font-size:12px}.icon-text-button{color:var(--danger);background:0 0;align-items:center;gap:6px;margin-top:10px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.signoff-box{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);gap:10px;margin:0 16px 16px;padding:14px;display:grid}.signoff-box.finalized{outline-offset:3px;background:var(--success-soft);border:1px solid #9cc7ae;outline:1px solid #9cc7ae}.signoff-box h3,.signoff-box p{margin:0}.signoff-box h3{font-size:13px;font-weight:700}.signoff-box p{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.4}.report-summary{border-top:1px solid var(--line)}.report-summary summary{color:var(--primary);cursor:pointer;font-size:13px;font-weight:700}.report-summary pre{color:#22364c;border-radius:var(--radius-control);background:var(--surface-2);font-family:var(--font-mono);white-space:pre-wrap;border:1px solid #e4eaf1;margin:12px 0 0;padding:12px;font-size:11.5px;line-height:1.5;overflow:auto}.export-blocker{color:var(--warn-text);border:1px solid color-mix(in srgb, var(--warn-text) 25%, transparent);border-left:3px solid var(--accent);border-radius:var(--radius-control);background:var(--accent-soft);align-items:flex-start;gap:9px;margin:auto 16px 16px;padding:12px;font-size:12px;line-height:1.4;display:flex}.report-drawer{z-index:30;background:#0715278c;justify-content:flex-end;display:flex;position:fixed;inset:0}.report-panel{border-left:4px solid var(--text);width:min(720px,100%);height:100%;box-shadow:var(--shadow-drawer);background:#fff;flex-direction:column;gap:14px;padding:22px;display:flex;overflow:auto}.report-header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:start;gap:12px;padding-bottom:12px;display:flex}.report-header h2{font-family:var(--font-display);letter-spacing:-.015em;margin:4px 0 0;font-size:22px;font-weight:700}.suggestion-footer-button{border-radius:var(--radius-control);background:var(--bg);place-items:center;width:36px;height:36px;display:grid}.report-state{border-radius:var(--radius-stamp);border:1px solid color-mix(in srgb, currentColor 35%, transparent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;font-size:11.5px;font-weight:600}.report-state.ready{color:var(--success);background:var(--success-soft)}.report-state.review{color:var(--warn-text);background:var(--accent-soft)}.report-pre{border-radius:var(--radius-control);background:var(--surface-2);font-family:var(--font-mono);white-space:pre-wrap;border:1px solid #e4eaf1;margin:0;padding:14px;font-size:11.5px;line-height:1.55}.report-section{gap:10px;display:grid}.report-section h3{border-bottom:1px solid var(--line);letter-spacing:.01em;margin:0;padding-bottom:6px;font-size:14px;font-weight:700}.report-section article{border:1px solid var(--line);border-radius:var(--radius-panel);padding:12px}.report-section article p{color:#3a4c60;margin:6px 0 0;font-size:13px}.report-section>p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.report-facts dl,.audit-list{gap:8px;margin:0;display:grid}.report-facts dl div,.audit-list div{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);grid-template-columns:130px minmax(0,1fr);gap:10px;padding:10px;display:grid}.report-facts dt,.audit-list dt{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:600}.report-facts dd,.audit-list dd{min-width:0;color:var(--text);overflow-wrap:anywhere;margin:0;font-size:13px}.audit-list dd{font-family:var(--font-mono);font-size:12px}.report-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.report-photo-grid figure{border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff;margin:0;padding:4px;overflow:hidden}.report-photo-grid img{aspect-ratio:16/10;object-fit:cover;border-radius:2px;width:100%;display:block}.report-photo-grid figcaption{color:var(--muted);padding:8px 6px 4px;font-size:12px}.compact-list,.field-list{color:#3a4c60;gap:8px;margin:0;padding-left:18px;font-size:13px;line-height:1.45;display:grid}.compliance-list{gap:12px;display:grid}.compliance-list article{gap:8px;display:grid}.field-list{padding-left:0;list-style:none}.field-list li{border-radius:var(--radius-control);background:var(--surface-2);border:1px solid #e4eaf1;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.field-list small{color:var(--muted);font-family:var(--font-mono);white-space:nowrap;font-size:10.5px}.report-actions{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;padding-top:12px;position:sticky;bottom:0}.official-form-section{border:1px solid var(--line-strong);outline:1px solid var(--line-strong);outline-offset:3px;border-radius:var(--radius-stamp);background:var(--vellum);margin:4px;padding:14px}.official-form-actions{flex-wrap:wrap;gap:8px;display:flex}.customer-share-section{border:1px solid var(--line-strong);outline:1px solid var(--line-strong);outline-offset:3px;border-radius:var(--radius-stamp);background:var(--surface-2);margin:4px;padding:14px}.share-actions{gap:10px;display:grid}.share-link-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.share-link-row input{min-height:40px;font-family:var(--font-mono);font-size:11.5px}.share-status{font-family:var(--font-mono);font-weight:600;color:var(--success)!important;margin:0!important;font-size:11.5px!important}.library-note{color:var(--muted);margin:0;font-size:13px}.library-list{gap:10px;display:grid}.library-item{border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:var(--radius-panel);background:#fff;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.library-item strong,.library-item span{display:block}.library-item strong{font-size:13px}.library-item span{color:var(--muted);font-family:var(--font-mono);margin-top:4px;font-size:10.5px}.official-form-status{font-family:var(--font-mono);font-weight:600;color:var(--success)!important;font-size:12px!important}.email-doc-list{gap:6px;margin:10px 0 14px;padding:0;list-style:none;display:grid}.email-doc-option{cursor:pointer;align-items:center;gap:9px;font-size:13px;display:flex}.email-doc-option input{width:16px;height:16px;accent-color:var(--primary)}.email-reports-note{color:var(--muted);margin:10px 0 0;font-size:12px}.pdf-viewer{gap:12px;display:grid}.pdf-viewer-actions{flex-wrap:wrap;gap:8px;display:flex}.pdf-viewer-note{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.pdf-viewer-frame{border:1px solid var(--line);border-radius:var(--radius-stamp);background:var(--surface-2);width:100%;height:72vh;min-height:420px}.report-photo-noimg{aspect-ratio:4/3;width:100%;color:var(--muted);border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:4px;place-items:center;font-size:11px;display:grid}@media (width<=1180px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:3px solid var(--accent);height:auto;min-height:auto;position:static;overflow:visible}.nav-stack{grid-template-columns:repeat(4,minmax(0,1fr))}.workgrid{grid-template-columns:1fr}.profile-grid,.intake-grid,.official-field-grid,.permit-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-slot-strip{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid;overflow-x:visible}.photo-slot{flex:none}.research-facts,.research-grid{grid-template-columns:1fr}.wide-field,.intake-grid .wide-field,.address-autocomplete-field{grid-column:span 2}}@media (width<=720px){.workspace,.sidebar{padding:14px}.topbar,.selected-photo{grid-template-columns:1fr}.topbar{display:grid;position:static}.topbar-actions,.nav-stack,.photo-grid,.intake-grid,.permit-edit-grid,.official-field-grid,.profile-grid,.report-photo-grid,.share-link-row,.permit-core-grid{grid-template-columns:1fr}.report-panel{padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right));padding-bottom:max(20px, env(safe-area-inset-bottom))}.photo-slot-strip{grid-template-columns:1fr;display:grid}.photo-slot{flex:none}.topbar-actions{justify-content:stretch}.button-pair,.form-row,.report-actions{flex-direction:column;align-items:stretch}.report-actions{padding-top:0;position:static}.status-pill,.primary-button,.ghost-button{width:100%}.wide-field,.intake-grid .wide-field,.address-autocomplete-field{grid-column:span 1}.report-facts dl div,.audit-list div{grid-template-columns:1fr}.field-list li{flex-direction:column}.topbar h1{font-size:20px}}@media print{.sidebar,.workspace,.report-header button,.report-actions{display:none!important}.report-drawer{background:#fff;display:block;position:static}.report-panel{width:100%;height:auto;box-shadow:none;border-left:0}}.field-letter{font:600 11px var(--font-mono);letter-spacing:.04em;color:var(--warn-text);margin-top:4px}.label-inline{flex-wrap:wrap;align-items:baseline;gap:10px;display:inline-flex}.inline-link-button{color:var(--blueprint);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:10.5px;font-weight:600;text-decoration:underline}.signature-pad{gap:4px;width:100%;display:grid}.signature-pad-canvas{border:1px solid var(--line-control);border-radius:var(--radius-control);background:#fff;background-image:linear-gradient(var(--line) 1px, transparent 1px);touch-action:none;cursor:crosshair;background-position:0 100%;background-size:100% 33px;width:100%}.signature-pad-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.signature-pad-hint{color:var(--muted);font-size:11px}.signoff-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.signoff-fields label{gap:4px;min-width:0;display:grid}@media (width<=720px){.signoff-fields{grid-template-columns:1fr}}.permit-add-hint{color:var(--muted);margin:0 16px 6px;font-size:12px}.permit-url-row{gap:8px;margin:8px 16px 0;display:flex}.permit-url-row input{flex:1;min-width:0}.permit-url-row .ghost-button{white-space:nowrap;flex:none}.sidebar-profile-button{justify-content:center;width:100%}.profile-note{color:var(--muted);max-width:60ch;margin:0 0 14px;font-size:13px}.profile-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.profile-form label{gap:4px;min-width:0;display:grid}.profile-signature{gap:6px;max-width:420px;margin:16px 0 4px;display:grid}@media (width<=720px){.profile-form{grid-template-columns:1fr}}.permit-add-row{flex-wrap:wrap;gap:6px;padding:0 16px 10px;display:flex}.permit-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.permit-core-grid .permit-scope{grid-column:1/-1}.permit-more{margin:8px 0}.permit-more>summary{cursor:pointer;color:var(--muted);padding:4px 0;font-size:12px}.permit-more[open]>summary{margin-bottom:8px}.permit-card-tools{align-items:center;gap:8px;display:inline-flex}.icon-button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:26px;height:26px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.icon-button.danger{border-color:var(--danger-soft);color:var(--danger)}.icon-button.danger:hover{background:var(--danger-soft)}.photo-slot-groups{border-bottom:1px solid var(--line);background:var(--surface-2);gap:12px;padding:12px 16px;display:grid}.photo-slot-group{gap:6px;display:grid}.photo-slot-group-head{font:600 11px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.photo-slot-group .photo-slot-strip{background:0 0;border:none;padding:0}.photo-slot-wrap{display:block;position:relative}.photo-slot-wrap .photo-slot{width:100%}.slot-remove{border-radius:var(--radius-stamp);background:var(--danger-soft);width:18px;height:18px;color:var(--danger);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:4px;right:4px}.photo-slot.add-slot{min-height:56px;color:var(--primary);font:600 12px var(--font-ui);cursor:pointer;border-style:dashed;flex-direction:row;justify-content:center;align-items:center;gap:6px;display:inline-flex}.labeled-slot-add{align-items:center;gap:8px;display:flex}.labeled-slot-add input{flex:1}.custom-source-add{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.custom-source-add input{flex:120px;min-width:0}.source-link.custom{justify-content:space-between;align-items:center;gap:8px;display:flex}.source-link.custom>a{min-width:0;color:inherit;flex:1;justify-content:space-between;align-items:center;gap:8px;text-decoration:none;display:flex}.source-link.custom small{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.app-loading{min-height:100vh;font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);background:var(--bg);justify-content:center;align-items:center;font-size:13px;display:flex}.app-loading--error{text-align:center;color:var(--ink);flex-direction:column;gap:18px;padding:32px 20px}.app-loading__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.login-screen{background:radial-gradient(1200px 600px at 50% -10%, #123049, var(--navy-deep));background-color:var(--navy-deep);justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.login-inner{gap:18px;width:100%;max-width:400px;display:grid}.login-brand{color:#fff;align-items:center;gap:12px;display:flex}.login-mark{border-radius:var(--radius-stamp);background:#ffffff0f;border:1px solid #ffffff24;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.login-brand strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;display:block}.login-brand span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--navy-text);font-size:10.5px}.login-card{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius-panel);box-shadow:var(--shadow-menu);padding:22px 22px 24px}.login-plan{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:16px;display:flex}.plan-chip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-soft);border-radius:var(--radius-stamp);border:1px solid #e3c27e;padding:4px 9px;font-size:10px;font-weight:600}.plan-price{color:var(--muted);font-size:13px}.plan-price strong{color:var(--text);font-size:18px}.login-tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-control);grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;display:grid}.login-tabs button{border-radius:var(--radius-stamp);font-family:var(--font-ui);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px;font-size:13px;font-weight:600}.login-tabs button.active{background:var(--surface);color:var(--primary-strong);box-shadow:var(--shadow-1)}.login-form{gap:12px;display:grid}.login-form label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);gap:5px;font-size:10px;font-weight:600;display:grid}.login-form input{font-family:var(--font-ui);letter-spacing:normal;text-transform:none;font-size:14px;font-weight:400}.login-form .primary-button{justify-content:center;margin-top:4px}.login-lead{color:var(--muted);margin:0 0 4px;font-size:12.5px;line-height:1.5}.login-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-stamp);border:1px solid #eab8b2;margin:0;padding:8px 10px;font-size:12.5px}.login-subscribed{text-align:center;color:var(--success);justify-items:center;gap:8px;padding:8px 0;display:grid}.login-subscribed h3{color:var(--text);margin:0;font-size:15px}.login-subscribed p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.login-note{text-align:center;font-family:var(--font-mono);letter-spacing:.05em;color:var(--navy-text);margin:0;font-size:10px}.plan-picker{border:0;gap:8px;margin:0;padding:0;display:grid}.plan-picker legend{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;padding:0;font-size:10px;font-weight:600}.login-form label.plan-option,.plan-option{border:1px solid var(--line-control);border-radius:var(--radius-stamp);cursor:pointer;background:var(--surface);align-items:center;gap:10px;padding:10px 12px;display:flex}.plan-option.selected{border-color:var(--accent-strong,#d88a00);box-shadow:inset 0 0 0 1px var(--accent-strong,#d88a00)}.plan-option input{appearance:auto;-webkit-appearance:radio;width:16px;height:16px;min-height:0;box-shadow:none;accent-color:var(--accent,#f5a300);border:0;flex:none;margin:0;padding:0}.plan-option-main{flex:1;gap:2px;min-width:0;display:grid}.plan-option-main strong{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text);font-size:13px}.plan-option-main span{font-family:var(--font-ui);letter-spacing:normal;text-transform:none;color:var(--muted);font-size:12px}.plan-option-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--accent,#f5a300);color:var(--navy,#0b1d31);border-radius:2px;flex:none;padding:3px 6px;font-size:9px;font-weight:600}.login-alt{color:var(--muted);text-align:center;margin:2px 0 0;font-size:11.5px}.brand-mark-logo{background:#fff;border-radius:6px;place-items:center;display:grid;overflow:hidden}.brand-mark-logo img{object-fit:contain;width:44px;height:44px}.plan-usage{font-family:var(--font-mono);letter-spacing:.05em;color:var(--navy-text,#b9c7d8);margin-top:2px;font-size:9.5px;display:block}.profile-logo-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.profile-logo-preview{object-fit:contain;border:1px solid var(--line-control);border-radius:var(--radius-stamp);background:#fff;width:88px;height:88px;padding:6px}.profile-logo-empty{font-family:var(--font-mono);color:var(--muted);border:1px dashed var(--line-control);border-radius:var(--radius-stamp);padding:18px 16px;font-size:11px}.photo-library{border-top:1px dotted var(--line-control);gap:12px;padding:16px;display:grid}.photo-library-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.photo-library-day{gap:8px;display:grid}.photo-library-day .photo-grid{padding:0}.photo-library-date{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:1px dotted var(--line-control);padding-bottom:4px;font-size:10px;font-weight:600}.photo-card .photo-card-img{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.photo-card .photo-card-img img{object-fit:cover;width:100%;height:110px;display:block}.photo-card-tools{align-items:center;gap:6px;padding:6px;display:flex}.photo-card-tools select{flex:1;min-width:0;font-size:11.5px}.research-ref-photo{border:1px solid var(--line-control);border-radius:6px;max-width:380px;margin:12px 0 0;overflow:hidden}.research-ref-photo img{object-fit:cover;width:100%;max-height:220px;display:block}.research-ref-photo figcaption{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--warn-text,#9a5b00);background:var(--accent-soft,#fcefd3);padding:5px 10px;font-size:9.5px;font-weight:600}.research-collapse{border:1px solid var(--line-control);background:var(--surface);border-radius:6px;padding:0 14px}.research-collapse summary{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 0;list-style:none;display:flex}.research-collapse summary::-webkit-details-marker{display:none}.research-collapse summary:after{content:"+";font-family:var(--font-mono);color:var(--muted);font-size:16px}.research-collapse[open] summary:after{content:"–"}.research-collapse summary h3{margin:0}.research-collapse>:not(summary){margin-bottom:12px}.profile-email-template{width:100%;font-family:var(--font-ui);font-size:13px;line-height:1.5}.admin-panel{gap:14px;max-width:720px;display:grid}.admin-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-panel-head p{color:var(--muted);max-width:52ch;margin:0;font-size:13px}.admin-status{font-family:var(--font-mono);color:var(--warn-text,#9a5b00);background:var(--accent-soft,#fcefd3);border-radius:var(--radius-stamp);border:1px solid #e3c27e;margin:0;padding:7px 10px;font-size:11.5px}.admin-list{gap:12px;display:grid}.admin-card{border:1px solid var(--line-control);background:var(--surface);border-radius:6px;gap:10px;padding:14px;display:grid}.admin-card-id{gap:2px;display:grid}.admin-card-id strong{font-size:14.5px}.admin-mono{font-family:var(--font-mono);color:var(--muted);letter-spacing:.02em;font-size:10.5px}.admin-card-state{flex-wrap:wrap;gap:6px;display:flex}.admin-chip{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-control);color:var(--text);border-radius:2px;padding:3px 7px;font-size:10px;font-weight:600}.admin-chip.status-active{background:var(--success-soft,#e1f2e8);border-color:var(--success,#177342);color:var(--success,#177342)}.admin-chip.status-pending{background:var(--accent-soft,#fcefd3);border-color:var(--accent-strong,#d88a00);color:var(--warn-text,#9a5b00)}.admin-card-actions{border-top:1px dotted var(--line-control);flex-wrap:wrap;align-items:end;gap:8px;padding-top:10px;display:flex}.admin-card-actions label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);gap:4px;font-size:9.5px;font-weight:600;display:grid}.admin-card-actions select{min-width:170px}.tour-overlay{z-index:60;position:fixed;inset:0;overflow:hidden}.tour-dim{background:#071527a8;position:absolute;inset:0}.tour-spotlight{border:2px solid var(--accent,#f5a300);pointer-events:none;border-radius:8px;transition:top .22s,left .22s,width .22s,height .22s;position:absolute;box-shadow:0 0 0 200vmax #071527a8}.tour-card{background:var(--surface);border:1px solid var(--line-control);border-top:3px solid var(--accent,#f5a300);border-radius:8px;outline:none;width:min(560px,100vw - 24px);max-height:min(72vh,640px);padding:18px;position:absolute;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 18px 48px #07152773}.tour-card-bottom{bottom:max(14px, env(safe-area-inset-bottom))}.tour-card-top{top:14px}.tour-card-center{top:50%;transform:translate(-50%,-50%)}.onboarding-image{border:1px solid var(--line-control);background:var(--navy,#0b1d31);border-radius:6px;margin:0;overflow:hidden}.onboarding-image img{object-fit:cover;object-position:top;width:100%;max-height:180px;display:block}.onboarding-image figcaption{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--navy-text,#b9c7d8);background:var(--navy,#0b1d31);padding:5px 10px;font-size:9.5px;font-weight:600}.onboarding{gap:14px;display:grid}.onboarding-head{align-items:flex-start;gap:14px;display:flex}.onboarding-icon{border:1px solid var(--line-control);border-radius:var(--radius-stamp);background:var(--accent-soft,#fcefd3);width:44px;height:44px;color:var(--accent-strong,#d88a00);flex:none;place-items:center;display:grid}.onboarding-kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong,#d88a00);margin:0 0 4px;font-size:10.5px;font-weight:600}.onboarding-head h3{margin:0;font-size:19px;line-height:1.2}.onboarding-body{color:var(--text);gap:10px;font-size:14px;line-height:1.55;display:grid}.onboarding-body p{margin:0}.onboarding-body ul{gap:7px;margin:0;padding-left:18px;display:grid}.onboarding-body li{color:var(--muted)}.onboarding-body li strong,.onboarding-body p strong{color:var(--text)}.onboarding-progress{justify-content:center;gap:7px;padding-top:4px;display:flex}.onboarding-dot{border:1px solid var(--line-control);background:var(--surface);cursor:pointer;border-radius:50%;width:10px;height:10px;padding:0}.onboarding-dot.active{background:var(--accent,#f5a300);border-color:var(--accent-strong,#d88a00)}.onboarding-nav{border-top:1px dotted var(--line-control);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;display:flex}.onboarding-nav-steps{gap:8px;display:flex}.account-bar{border-radius:var(--radius-control);background:#ffffff0d;border:1px solid #ffffff1f;align-items:center;gap:10px;padding:10px 12px;display:flex}.account-bar .account-initial{background:var(--accent);width:30px;height:30px;color:var(--navy-deep);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.account-bar-id{flex:1;min-width:0}.account-bar-id strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.plan-badge{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--navy-text);font-size:9.5px;font-weight:600}.plan-badge.active{color:#7bd7a3}.account-bar .account-signout{border-radius:var(--radius-stamp);width:30px;height:30px;color:var(--navy-text);cursor:pointer;background:0 0;border:1px solid #ffffff24;flex:none;justify-content:center;align-items:center;display:inline-flex}.account-bar .account-signout:hover{color:#fff;background:#ffffff14}.property-switcher{border-radius:var(--radius-control);background:#ffffff0a;border:1px solid #ffffff1f;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px;display:grid}.property-switcher>label{gap:5px;min-width:0;display:grid}.property-switcher select{text-overflow:ellipsis;width:100%;min-width:0;max-width:100%}.switcher-label{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--navy-text);font-size:9.5px;font-weight:600}.switcher-actions{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.switcher-actions .ghost-button{text-overflow:ellipsis;min-width:0;padding:0 10px;overflow:hidden}.property-count{font-family:var(--font-mono);letter-spacing:.04em;color:var(--navy-text);opacity:.8;font-size:9.5px}@media (width<=820px){.app-shell[data-nav=workspace] #photo-evidence-panel,.app-shell[data-nav=workspace] .defect-rec-panel,.app-shell[data-nav=photos] .edit-band,.app-shell[data-nav=photos] .system-panel,.app-shell[data-nav=photos] .review-panel{display:none}.sidebar{gap:10px;padding:10px 12px 12px}.account-bar{padding:8px 10px}.property-switcher{gap:8px;padding:10px}.nav-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.nav-item{padding:10px 8px;font-size:12.5px}.progress-card{grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:8px 12px;display:grid}.progress-card .meter{grid-column:1/-1}.topbar{gap:10px;padding:12px}.topbar h1{font-size:17px}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.topbar-actions .status-pill{grid-column:1/-1;justify-content:center}.sidebar .isolation-note{display:none}.sidebar .save-note{padding:6px 10px;font-size:11px}.property-switcher .property-count{margin-top:2px;font-size:10.5px}.progress-card strong{font-size:18px}.photo-slot-strip{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.capture-bar{background:var(--navy-050,#eef3f8);border:1px solid var(--line-control);border-left:3px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 16px 6px;padding:10px 12px;display:flex}.capture-bar-progress{gap:2px;min-width:0;display:grid}.capture-bar-progress strong{font-size:13px}.capture-bar-progress span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.capture-next-button{flex:none;max-width:100%}.whats-left{grid-column:1/-1;margin-top:6px}.whats-left summary{cursor:pointer;letter-spacing:.05em;text-transform:uppercase;color:var(--navy-muted,#b8c5d4);font-size:11.5px}.whats-left ul{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.whats-left li button{text-align:left;width:100%;color:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;padding:6px 8px;font-size:12px}.whats-left li button:hover{border-color:var(--accent)}.whats-left-done{color:var(--ok,#7fc98b);grid-column:1/-1;margin-top:6px;font-size:11.5px}.bottom-tabs{display:none}@media (width<=820px){.bottom-tabs{z-index:24;background:var(--navy,#0b1d31);border-top:3px solid var(--accent);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-tabs button{color:#b8c5d4;background:0 0;border:0;justify-items:center;gap:2px;width:100%;padding:8px 4px 9px;font-size:11px;display:grid}.bottom-tabs button.active{color:#fff;box-shadow:inset 0 3px 0 var(--accent)}.workspace{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}
