*{box-sizing:border-box}body{color:#e8e6e3;background:#14131a;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{flex-direction:column;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.site-title{letter-spacing:.02em;margin:0 0 .5rem;font-size:1.4rem;font-weight:600}.load-error{color:#e07a7a}.refresh-button{z-index:5;color:#e8e6e3;letter-spacing:.02em;cursor:pointer;background:#26242e;border:1px solid #4a4757;border-radius:6px;padding:.5rem .9rem;font-size:.85rem;font-weight:600;transition:opacity .15s;position:fixed;top:1.25rem;left:1.25rem}.refresh-button:hover:not(:disabled){background:#322f3d}.refresh-button:disabled{opacity:.45;cursor:default}.borough-map{flex:1;width:min(90vw,82vh,720px)}.borough{cursor:pointer}.borough-shape{opacity:.72;stroke:#14131a;stroke-width:.4px;transition:opacity .15s}.borough:hover .borough-shape,.borough.selected .borough-shape{opacity:1}.borough.selected .borough-shape{stroke:#e8e6e3;stroke-width:.6px}.borough-label{fill:#e8e6e3;text-anchor:middle;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:3px;font-weight:600}.borough-badge circle{fill:#26242e;stroke:#4a4757;stroke-width:.3px}.borough-badge text{fill:#e8e6e3;text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:3px}.borough-card rect{fill:none;stroke:#14131a;stroke-width:.5px}.borough-card image{opacity:.9;transition:opacity .15s}.borough:hover .borough-card image,.borough.selected .borough-card image{opacity:1}.drawer-backdrop{opacity:0;pointer-events:none;z-index:10;background:#0000008c;transition:opacity .28s;position:fixed;inset:0}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{z-index:20;background:#1d1c24;border-left:1px solid #322f3d;width:min(380px,92vw);height:100%;padding:1.25rem;transition:transform .28s;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(105%)}.drawer.open{transform:translate(0)}.drawer-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.drawer-header h2{margin:0;font-size:1.2rem}.drawer-close{color:#e8e6e3;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.drawer-empty{color:#8d8a99}.event-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.event{background:#26242e;border-radius:8px;padding:.9rem}.event-gallery{gap:.4rem;margin-bottom:.5rem;display:flex;overflow-x:auto}.event-image{object-fit:cover;border-radius:6px;flex:none;max-width:280px;height:150px;display:block}.event-title{margin:0 0 .25rem;font-size:1rem}.event-when,.event-venue{color:#c9c5d4;margin:0 0 .15rem;font-size:.85rem}.event-source{color:#8d8a99;margin:.35rem 0 0;font-size:.8rem}.event-source a{color:#9db4e0}.left-drawer{border-left:none;border-right:1px solid #322f3d;flex-direction:column;width:min(440px,92vw);display:flex;left:0;right:auto;overflow-y:hidden;transform:translate(-105%)}.left-drawer.open{transform:translate(0)}.left-drawer .drawer-header{flex:none;gap:.6rem}.run-status{white-space:nowrap;margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.run-status.connecting{color:#8d8a99}.run-status.running{color:#e0b05c}.run-status.done{color:#7fd68a}.run-status.failed{color:#e07a7a}.feed-note{color:#e0b05c;flex:none;margin:-.5rem 0 .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.review-queue{background:#17161d;border:1px solid #322f3d;border-radius:6px;flex:none;max-height:40%;margin-bottom:.6rem;padding:.6rem .7rem;overflow-y:auto}.review-heading{color:#8d8a99;text-transform:lowercase;margin:0 0 .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:600}.review-error{color:#e07a7a;margin:0 0 .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.review-empty{color:#6c6878;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.review-list{margin:0;padding:0;list-style:none}.review-item{align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.review-item+.review-item{border-top:1px solid #232029}.review-item-info{flex-direction:column;flex:1;min-width:0;display:flex}.review-item-title{color:#e8e6ef;overflow-wrap:anywhere;font-size:.85rem}.review-item-meta{color:#8d8a99;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}.review-verdict{cursor:pointer;background:#232029;border:1px solid #322f3d;border-radius:6px;flex:none;padding:.25rem .5rem;font-size:.9rem;transition:transform .1s}.review-verdict:hover{transform:scale(1.12)}.feed-body{background:#17161d;border:1px solid #322f3d;border-radius:6px;flex:1;padding:.6rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.45;overflow-y:auto}.feed{margin:0;padding:0;list-style:none}.feed-line{color:#c9c5d4;overflow-wrap:anywhere;align-items:baseline;gap:.5rem;padding:.1rem 0;display:flex}.feed-ts{color:#5f5b6d;white-space:nowrap;flex:none;font-size:.9em}.feed-glyph{text-align:center;flex:none;width:1.1em}.feed-thumb{object-fit:cover;border-radius:3px;flex:none;align-self:center;width:1.7em;height:1.7em}.feed-msg{min-width:0}.kind-info .feed-glyph{color:#8d8a99}.kind-info .feed-msg{color:#a5a1b2}.kind-skip .feed-glyph{color:#5f5b6d}.kind-skip .feed-msg{color:#6c6878}.kind-classify .feed-glyph{color:#b18ae0}.kind-classify .feed-msg{color:#cdb4ec}.kind-place .feed-glyph{color:#6ac8c0}.kind-place .feed-msg{color:#9ad8d2}.kind-agent_tool .feed-glyph{color:#e0b05c}.kind-agent_tool .feed-msg{color:#e3c48d;font-style:italic}.kind-insert .feed-glyph{color:#7fd68a}.kind-insert .feed-msg{color:#b1e4b7}.kind-merge .feed-glyph{color:#9db4e0}.kind-merge .feed-msg{color:#bccbe9}.kind-error{background:#e07a7a17;border-radius:4px}.kind-error .feed-glyph,.kind-error .feed-msg{color:#e07a7a}.kind-done{border-top:1px solid #4a4757;margin-top:.35rem;padding-top:.45rem;font-weight:700}.kind-done .feed-glyph{color:#7fd68a}.kind-done .feed-msg{color:#e8e6e3}
