:root{--bg:#f4f0e8;--surface:#fbfaf6;--soft:#eef1e8;--border:#d9d4c8;--heading:#18362d;--text:#44544d;--text-soft:#697970;--muted:#5f766d;--accent:#287a54;--shadow:0 18px 40px #24302914;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#f4f0e84d,#f4f0e8eb),#f4f0e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}#root{min-height:100svh}.app-shell{width:min(1180px,100%);margin:0 auto;padding:22px;position:relative}.version-badge{z-index:20;color:#44544db8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbfaf6c7;border:1px solid #18362d1f;padding:3px 7px;font-size:.72rem;font-weight:750;line-height:1.2;position:fixed;top:8px;right:10px}.field-panel{border:1px solid var(--border);color:#f8fffb;background:linear-gradient(90deg,#104343d6,#1043432e),url(https://images.unsplash.com/photo-1772915023437-3d82340cacba?auto=format&fit=crop&w=1600&q=80) 50%/cover;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);align-items:end;gap:28px;min-height:420px;padding:34px;display:grid}.hero-copy{max-width:720px}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 10px;font-size:.78rem;font-weight:750;display:inline-flex}.field-panel .eyebrow,.field-panel p{color:#f8fffbdb}.field-panel h1{color:#fff;letter-spacing:0;max-width:760px;margin:0 0 18px;font-size:clamp(2.2rem,7vw,5.6rem);line-height:.95}.field-panel p{max-width:660px;font-size:1.05rem}.recording-panel,.work-surface,.metric-card,.auth-surface,.observation-log{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.recording-panel{color:var(--text);padding:20px}.recording-header,.sensor-row,.section-heading,.risk-list span,.candidate-row,.confirm-button,.leader-row,.log-row,.metric-card{align-items:center;display:flex}.recording-header{color:var(--text-soft);justify-content:space-between;font-weight:700}.recording-dot{background:#83918b;border-radius:50%;width:11px;height:11px}.recording-dot.recording{background:#d83a3a;box-shadow:0 0 0 8px #d83a3a24}.recording-dot.analyzing{background:#c18a17;box-shadow:0 0 0 8px #c18a1729}.record-button{background:var(--accent);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;border:0;justify-content:center;align-items:center;gap:12px;width:100%;min-height:112px;margin:18px 0;font-size:1.2rem;font-weight:850;display:flex}.record-button:disabled{cursor:wait;opacity:.78}.record-button:active{transform:translateY(1px)}.sensor-row{flex-wrap:wrap;gap:8px}.sensor-row span,.risk-list span{background:var(--soft);color:var(--text);gap:6px;padding:7px 9px;font-size:.82rem;display:inline-flex}.error-text{color:#a92929;margin-top:10px;font-weight:700}.permission-help{color:#704010;text-align:left;background:#fff1df;border:1px solid #a929293d;margin-top:12px;padding:12px}.permission-help strong{color:#8a2a24;margin-bottom:8px;display:block}.permission-help ol{margin:0;padding-left:20px}.permission-help li{margin:5px 0}.metric-grid,.content-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.status-strip{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);align-items:center;gap:10px;margin-top:16px;padding:12px 14px;display:flex}.analysis-strip{border:1px solid var(--border);color:var(--text);background:#eef1e8;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;display:flex}.analysis-strip strong{color:var(--heading);white-space:nowrap}.analysis-strip span{color:var(--text-soft);font-weight:750}.permission-strip{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.permission-pill{border:1px solid var(--border);background:var(--surface);min-height:30px;color:var(--text-soft);align-items:center;padding:6px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.permission-pill.granted{color:#1f6847;background:#e5f3e8;border-color:#287a5447}.permission-pill.prompt,.permission-pill.unknown{color:#754f0e;background:#f8edcf;border-color:#c18a173d}.permission-pill.denied{color:#8a2a24;background:#f7d9d4;border-color:#a929293d}.login-warning{color:#704010;box-shadow:var(--shadow);background:#fff1df;border:1px solid #a9292942;align-items:center;gap:12px;margin-top:12px;padding:13px 14px;display:flex}.login-warning strong{color:#8a2a24;white-space:nowrap}.login-warning span{font-size:.92rem;font-weight:700}.status-strip span{background:#a7a29a;border-radius:50%;width:12px;height:12px}.status-strip span.live{background:#287a54;box-shadow:0 0 0 6px #287a541f}.status-strip span.fallback{background:#c18a17;box-shadow:0 0 0 6px #c18a171f}.status-strip strong{color:var(--heading)}.status-strip small{color:var(--text-soft)}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary{align-items:stretch}.metric-card{gap:14px;padding:16px}.metric-card>span{background:var(--soft);width:42px;height:42px;color:var(--accent);place-items:center;display:grid}.metric-card svg{width:21px;height:21px}.metric-card strong{color:var(--heading);font-size:1.3rem;display:block}.metric-card small,.leader-row small,.quest-row small,.log-row span,.candidate-row small{color:var(--text-soft);font-size:.82rem}.work-surface,.auth-surface,.observation-log{padding:18px}.auth-surface{border-width:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.auth-surface h2{color:var(--heading);margin:0;font-size:1.38rem}.auth-help{color:var(--text-soft);margin:6px 0 0;font-weight:700}.auth-form{grid-template-columns:minmax(130px,1fr) minmax(170px,1.2fr) auto;align-items:end;gap:10px;display:grid}.auth-form label,.code-form label{color:var(--text-soft);gap:5px;font-size:.78rem;font-weight:800;display:grid}.auth-form input,.code-form input{border:1px solid var(--border);min-height:42px;color:var(--heading);background:#fff;padding:8px 10px}.code-form{background:#eef8f2;grid-template-columns:minmax(160px,1fr) auto;align-items:end;gap:10px;padding:10px;display:grid}.code-form input{letter-spacing:0;font-size:1.2rem;font-weight:850}.auth-form button,.code-form button,.signed-in button,.magic-link{background:var(--heading);color:#fff;cursor:pointer;border:0;min-height:42px;padding:0 14px;font-weight:800}.magic-link{align-items:center;text-decoration:none;display:inline-flex}.open-browser-link{color:var(--accent);font-weight:850}.auth-form button:disabled{cursor:wait;opacity:.7}.code-form button:disabled{cursor:not-allowed;opacity:.62}.dev-code{color:var(--heading);grid-column:1/-1}.signed-in{color:var(--text-soft);align-items:center;gap:10px;font-weight:700;display:flex}.signed-in strong{color:#1f6847;background:#e5f3e8;padding:6px 9px}.status-text{color:var(--accent);margin:0;font-weight:750}.section-heading{justify-content:space-between;gap:18px;margin-bottom:16px}.section-heading h2{color:var(--heading);margin:0;font-size:1.28rem}.empty-state{background:var(--soft);text-align:center;align-content:center;place-items:center;gap:12px;min-height:220px;padding:20px;display:grid}.empty-state.compact{min-height:92px}.empty-state p{max-width:360px}.candidate-list,.quest-list,.leaderboard,.log-list{gap:10px;display:grid}.analysis-result{color:var(--heading);background:#eef8f2;gap:3px;padding:11px 12px;display:grid}.analysis-result span{color:var(--text-soft);font-size:.84rem;font-weight:750}.weak-signals{color:#754f0e;background:#f8edcf;gap:6px;margin-top:10px;padding:10px;display:grid}.weak-signals strong{color:#704010}.weak-signals span{color:#754f0e;font-size:.86rem;font-weight:800}.candidate-row{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#fff;justify-content:space-between;gap:12px;padding:12px}.candidate-row.selected{border-color:var(--accent);background:#eef8f2}.candidate-row strong,.candidate-row small{display:block}.confidence{background:var(--soft);color:var(--heading);padding:6px 9px;font-weight:850}.confirm-button{background:var(--heading);color:#fff;cursor:pointer;border:0;justify-content:center;gap:8px;min-height:48px;font-weight:800}.confirm-button:disabled{cursor:not-allowed;opacity:.62}.score-card{background:#eff7ed;gap:6px;margin-bottom:16px;padding:18px;display:grid}.score-card span{color:var(--heading);font-size:3rem;font-weight:900;line-height:1}.score-card p{color:var(--text-soft);margin:0}.breakdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.breakdown div{background:var(--soft);padding:11px}.breakdown dt{color:var(--text-soft);font-size:.76rem}.breakdown dd{color:var(--heading);margin:0;font-weight:850}.risk-list{flex-wrap:wrap;gap:8px;display:flex}.coordinate-note{background:var(--soft);color:var(--text-soft);align-items:center;gap:6px;margin-bottom:14px;padding:8px 10px;font-size:.84rem;font-weight:800;display:inline-flex}.status-badge{color:#164332;background:#dff2e6;justify-content:center;align-items:center;min-width:92px;padding:6px 9px;font-size:.76rem;font-weight:850;display:inline-flex}.status-badge.pending{color:#69440d;background:#f8e7bd}.status-badge.needs_review{color:#802f22;background:#f7d2cb}.status-badge.rejected{color:#6b1d1d;background:#f0c5c5}.quest-row{background:var(--soft);grid-template-columns:minmax(0,1fr) 120px 42px;align-items:center;gap:12px;padding:12px;display:grid}.quest-row strong,.quest-row span{display:block}progress{width:100%;height:9px;accent-color:var(--accent)}.leader-row,.log-row{background:var(--soft);gap:12px;padding:12px}.leader-row>span{width:28px;height:28px;color:var(--heading);background:#fff;place-items:center;font-weight:850;display:grid}.leader-row strong{flex:1}.leader-row b,.log-row b{color:var(--heading)}.observation-log{margin-top:16px}.map-toggle{background:var(--heading);color:#fff;cursor:pointer;border:0;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-weight:850;display:inline-flex}.observation-map{grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:12px;display:grid}.map-canvas{border:1px solid var(--border);background:#eef1e8;min-height:360px;position:relative;overflow:hidden}.map-canvas:before{content:"OpenStreetMap";z-index:2;color:#1643329e;text-transform:uppercase;font-size:.78rem;font-weight:850;position:absolute;top:10px;left:12px}.map-frame{filter:saturate(.86)contrast(.98);pointer-events:none;border:0;width:100%;height:100%;position:absolute;inset:0}.map-marker{z-index:3;background:var(--accent);color:#fff;white-space:nowrap;border:2px solid #fff;align-items:center;gap:5px;max-width:170px;padding:6px 8px;font-size:.76rem;font-weight:850;text-decoration:none;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 24px #12261f29}.map-marker.pending{background:#c18a17}.map-marker.needs_review,.map-marker.rejected{background:#a92929}.map-marker.sensitive{border-style:dashed}.map-marker span{text-overflow:ellipsis;overflow:hidden}.map-list{align-content:start;gap:8px;display:grid}.map-list a{background:var(--soft);color:var(--heading);gap:3px;padding:10px;text-decoration:none;display:grid}.map-list span{color:var(--text-soft);font-size:.8rem;font-weight:800}.log-row{grid-template-columns:minmax(180px,1.2fr) minmax(120px,.9fr) auto auto;display:grid}.log-row strong,.log-row span{display:block}.log-row small{color:var(--text-soft);margin-top:3px;font-size:.76rem;font-weight:800;display:block}button:focus-visible{outline-offset:2px;outline:3px solid #29735852}@media (width<=860px){.app-shell{padding:12px}.field-panel,.auth-surface,.content-grid,.metric-grid{grid-template-columns:1fr}.auth-surface{flex-direction:column;align-items:stretch}.auth-form,.code-form{grid-template-columns:1fr}.status-strip,.analysis-strip,.login-warning{flex-direction:column;align-items:flex-start}.observation-map{grid-template-columns:1fr}.field-panel{align-items:start;min-height:auto;padding:22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.log-row{grid-template-columns:1fr;align-items:start}}@media (width<=520px){.metric-grid,.breakdown,.quest-row{grid-template-columns:1fr}.field-panel h1{font-size:2.45rem}.record-button{min-height:92px}}
