:root{color-scheme:dark;--bg: #111418;--surface: #1a1f26;--text: #e8eaed;--text-dim: #9aa0a6;--accent: #f5a623;--danger: #e05d44}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{max-width:480px;margin:0 auto;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);min-height:100dvh}h1{font-size:1.5rem;margin:24px 0 8px}.card{background:var(--surface);border-radius:12px;padding:16px;margin:12px 0}.muted{color:var(--text-dim);font-size:.9rem}button,input{font-size:1.05rem;border-radius:10px;border:1px solid #2c333c}input{width:100%;padding:14px;background:var(--bg);color:var(--text);margin:8px 0}button{min-height:52px;width:100%;padding:14px;background:var(--accent);color:#111;font-weight:600;cursor:pointer;margin:8px 0}button:disabled{opacity:.5}.error{color:var(--danger)}.row{display:flex;gap:10px}button.secondary{background:var(--surface);color:var(--text);border:1px solid #2c333c}.crumb{color:var(--text-dim);font-size:.85rem;margin:16px 0 4px}.req{color:var(--accent)}.prompt-text{font-size:1.35rem;line-height:1.35;margin:8px 0 16px}.chip-row{display:flex;gap:8px;margin:8px 0;overflow-x:auto}.chip-row.wrap{flex-wrap:wrap}button.chip{width:auto;min-height:48px;padding:10px 16px;background:var(--surface);color:var(--text);border:1px solid #2c333c;white-space:nowrap;margin:0}button.chip-on{background:var(--accent);color:#111;border-color:var(--accent)}.capture-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0 8px}button.capture-btn{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:68px;font-size:1.4rem;background:var(--surface);color:var(--text);border:1px solid #2c333c;margin:0}button.capture-btn span{font-size:.75rem;font-weight:500}button.capture-btn.recording{background:var(--danger);color:#fff;border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.7}}.photo-nudge{color:var(--accent);font-size:.9rem}.note-editor textarea{width:100%;padding:12px;font-size:1rem;border-radius:10px;border:1px solid #2c333c;background:var(--bg);color:var(--text)}.captured{margin:12px 0}.captured-line{font-size:.95rem;margin:6px 0}button.inline-x,button.inline-link{width:auto;min-height:0;display:inline;padding:4px 8px;margin:0 0 0 6px;background:none;border:none;color:var(--text-dim);font-size:.9rem}button.inline-link{color:var(--accent);padding:4px 0}.thumb-row{display:flex;gap:8px;overflow-x:auto}.thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;flex-shrink:0}.thumb-empty{background:var(--surface)}button.transcript{width:auto;min-height:0;display:inline;padding:0;margin:0;background:none;border:none;color:var(--text);font-size:inherit;text-align:left;cursor:text}.skip-banner{color:var(--accent)}.prompt-footer{position:sticky;bottom:0;background:var(--bg);padding:8px 0 12px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{width:100%;max-width:480px;background:var(--surface);border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.measure-display{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:12px 0}.measure-value{font-size:2.2rem;font-weight:700}.measure-unit{color:var(--text-dim);font-size:1.1rem}button.measure-field{width:auto;min-height:56px;padding:10px 18px;font-size:1.4rem;background:var(--bg);color:var(--text);margin:0}button.measure-field-on{border-color:var(--accent);color:var(--accent)}.measure-sf{text-align:center;font-size:1.2rem;color:var(--accent);margin:4px 0 8px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}button.key{min-height:60px;font-size:1.4rem;background:var(--bg);color:var(--text);margin:0}.sketch-hint{min-height:2.6em;margin:4px 0}.sketch-canvas{width:100%;aspect-ratio:15 / 11;background:var(--bg);border:1px solid #2c333c;border-radius:12px;touch-action:none}.sketch-dot{fill:#2c333c}.sketch-wall{stroke:var(--text-dim);stroke-width:.12}.sketch-wall-on{stroke:var(--accent);stroke-width:.2}.sketch-corner{fill:var(--text)}.sketch-corner-start{fill:var(--accent)}.sketch-len{fill:var(--accent);font-size:.7px;text-anchor:middle}.floorplan-thumb{vertical-align:middle;margin-right:6px}.floorplan-thumb polygon{fill:#f5a62326;stroke:var(--accent);stroke-width:1.5}.annotator{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#000000eb;display:flex;flex-direction:column}.annotator-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px}.annotator-frame{position:relative;max-width:100%;max-height:100%}.annotator-frame img{display:block;max-width:100%;max-height:calc(100dvh - 140px);width:auto;height:auto;user-select:none;-webkit-user-select:none}.annotator-frame svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.annotation-stroke,.annotation-stroke line,.annotation-stroke polyline{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.annotator-bar{display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));overflow-x:auto}button.thumb-btn{position:relative;width:auto;min-height:0;padding:0;margin:0;background:none;border:none;flex-shrink:0}.thumb-badge{position:absolute;right:2px;bottom:2px;background:var(--accent);color:#111;border-radius:6px;font-size:.65rem;padding:1px 4px;pointer-events:none}.runner-header{display:flex;justify-content:space-between;align-items:center;padding-top:12px}.progress-track{height:6px;background:var(--surface);border-radius:3px;margin:8px 0;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}button.area-card{text-align:left;background:var(--surface);color:var(--text);display:block}.sync-badge{position:fixed;top:calc(8px + env(safe-area-inset-top));right:12px;width:auto;min-height:0;padding:6px 12px;font-size:.75rem;border-radius:999px;margin:0;z-index:5}.sync-badge.sync-online{background:var(--surface);color:var(--text-dim)}.sync-badge.sync-offline{background:var(--accent);color:#111}.flag-card-red{border-left:4px solid var(--danger)}.flag-card-yellow{border-left:4px solid var(--accent)}.yellow-flag{margin:10px 0}.assumption{color:var(--text-dim);font-style:italic;font-size:.9rem;margin:2px 0 0}.review-line{margin:8px 0;font-size:.95rem}body.wide-page #root{max-width:1100px}.bid-page select,.bid-page textarea,.sheet textarea{font-size:1rem;border-radius:10px;border:1px solid #2c333c;background:var(--bg);color:var(--text);padding:12px;margin:8px 0;width:100%}.bid-division{padding:12px 16px}.bid-division-head{display:flex;justify-content:space-between;align-items:baseline}.bid-division-head h2{font-size:1.05rem;margin:4px 0}.bid-division-total{color:var(--text-dim);font-variant-numeric:tabular-nums}.bid-line{border-top:1px solid #2c333c;padding:8px 0}.bid-line-excluded{opacity:.65}.bid-line-grid{display:grid;grid-template-columns:1fr 76px 84px 44px;grid-template-areas:"desc desc desc more" "qty unit price ext";gap:6px;align-items:center}.bid-line-grid .bid-desc{grid-area:desc}.bid-line-grid .bid-qty{grid-area:qty}.bid-line-grid .bid-unit{grid-area:unit}.bid-line-grid .bid-price{grid-area:price}.bid-line-grid .bid-ext{grid-area:ext}.bid-line-grid .bid-more{grid-area:more;justify-self:end}@media(min-width:720px){.bid-line-grid{grid-template-columns:1fr 90px 80px 110px 110px 40px;grid-template-areas:"desc qty unit price ext more"}}.bid-line-grid input,.bid-line-grid select{margin:0;padding:10px;font-size:.95rem}.bid-ext{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.bid-qty.bid-needs{border-color:var(--accent)}.bid-line-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px}.bid-hint{color:var(--accent);font-size:.8rem}button.chip.bid-suggest{margin:0;font-size:.85rem;min-height:0;padding:6px 10px}.chip-static{font-size:.8rem;color:var(--text-dim);border:1px solid #2c333c;border-radius:999px;padding:3px 10px}.bid-orphan{color:var(--danger);font-size:.8rem}.bid-totals{position:sticky;bottom:0;background:var(--surface);border:1px solid #2c333c;border-radius:12px 12px 0 0;padding:12px 16px calc(10px + env(safe-area-inset-bottom));margin-top:16px}.bid-totals-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;font-variant-numeric:tabular-nums}.bid-totals-grand{font-size:1.15rem;font-weight:700;border-top:1px solid #2c333c;margin-top:6px;padding-top:8px}input.bid-markup-input{width:64px;margin:0 4px;padding:6px 8px;font-size:.95rem;display:inline-block}.bid-margin{color:var(--accent);margin:6px 0 0;font-size:.9rem}button.secondary.bid-delete{color:var(--danger)}input.pct-input{width:72px;flex:0 0 auto}.proposal-link{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all;background:#171c22;border:1px solid #2c333c;border-radius:6px;padding:8px 10px}
