:root{--ink:#1c272f;--muted:#75818b;--line:#e5e9ed;--blue:#4a82d7;--paper:#fbfcfd;font-family:"Avenir Next","PingFang SC","Helvetica Neue",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:transparent;color:inherit}button:disabled{opacity:.45;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7caeee;outline-offset:4px}[hidden]{display:none!important}.top{height:84px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:3}.brand{font-size:20px;letter-spacing:-.5px;display:flex;align-items:center;gap:6px}.brand b{font-weight:550}.brand-mark{font-size:35px;margin-right:7px;color:#5286bd}.top nav{display:flex;gap:5px;background:#f4f6f8;border-radius:50px;padding:5px}.top nav button{font-size:13px;padding:10px 24px;border-radius:30px;color:#6e7b85}.top nav .selected{color:#142837;background:white;box-shadow:0 2px 8px #22334409}.workspace-link{font-size:12px;color:#7c858c}.eyebrow{font-size:10px;letter-spacing:2.1px;color:#84919c;font-weight:500}.voice-view{min-height:calc(100dvh - 84px);display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 24px 22px}.voice-heading p{font-size:13px;color:#8d969d;margin:10px 0 0}.orb-stage{width:min(330px,65vw);height:min(300px,27vh);min-height:210px;margin-top:16px}#voice-orb{width:100%;height:100%}.voice-copy h1{font-size:30px;letter-spacing:2px;font-weight:450;margin:9px 0 18px}.voice-copy p{font-size:14px;color:#7f8b94;line-height:1.95;margin:0;max-width:560px}#answer{max-height:105px;overflow:auto}#transcript{font-size:12px;color:#316dad;min-height:24px;margin-top:10px}.suggestions{display:flex;gap:10px;margin:15px 0 22px;flex-wrap:wrap;justify-content:center}.suggestions button{font-size:12px;padding:11px 16px;border:1px solid #e7ecf1;border-radius:30px;background:#fff}#chat-form{width:360px;max-width:100%;border:1px solid var(--line);border-radius:20px;display:flex;background:#fff;padding:5px 7px 5px 17px}#chat-form input{border:0;outline:0;background:transparent;min-width:0;flex:1;padding:8px 0;font-size:12px;color:#485869}#chat-form button{font-size:22px;width:34px;height:34px;border-radius:50%;background:#f1f4f8}.voice-controls{display:flex;align-items:center;gap:28px;margin:26px 0 12px}.round{border-radius:50%;display:grid;place-items:center}.secondary{width:42px;height:42px;background:#f0f3f6;font-size:24px;color:#697983}.microphone{width:64px;height:64px;background:#19242c;box-shadow:0 6px 14px #253b4618;color:white}.microphone.active{background:#457cd6}.microphone svg{width:23px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7}.status{font-size:11px;color:#8e989f;margin:2px 0 0;max-width:500px}.spatial-view{display:grid;grid-template-columns:minmax(0,1fr) 356px;height:calc(100dvh - 84px)}.scene-shell{position:relative;min-width:0;overflow:hidden;background:#e9edf0}#map{width:100%;height:100%;display:block;touch-action:none}.map-caption{position:absolute;top:30px;left:34px;pointer-events:none;max-width:70%}.map-caption h1{font-size:28px;font-weight:450;letter-spacing:-1px;margin:11px 0}.map-caption p{font-size:12px;color:#6d7d88;margin:0}.floors{position:absolute;left:30px;bottom:76px;display:flex;gap:3px;padding:5px;background:#ffffffdd;backdrop-filter:blur(12px);border-radius:30px;max-width:calc(100% - 40px);overflow:auto;white-space:nowrap}.floors button{font-size:11px;padding:10px 15px;border-radius:20px}.floors .selected{background:#23313b;color:white}.map-bottom{position:absolute;bottom:24px;left:32px;right:24px;display:flex;align-items:center;gap:15px;font-size:10px;color:#6e7b86;flex-wrap:wrap}.map-bottom button{font-size:11px;background:#ffffffbd;border-radius:20px;padding:9px 12px}#map-loading{position:absolute;inset:48% 0;text-align:center;font-size:14px;color:#71859b}.detail-panel{overflow:auto;background:#fff;border-left:1px solid var(--line);padding:29px 24px 40px}h2{font-size:23px;font-weight:450;line-height:1.5;letter-spacing:-.5px;margin:9px 0 12px}.muted{font-size:12px;line-height:1.8;color:#81909b}.zones{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:22px 0}.zones button{text-align:left;border:1px solid var(--line);padding:12px 10px;border-radius:13px;font-size:11px}.zone-dot{display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:6px}.zones small{display:block;font-size:9px;color:#94a0aa;margin:7px 0 0 14px}.parking-card{padding:20px;background:#f5f8fc;border:1px solid #e4ecf6;border-radius:20px}.parking-card h3{font-size:20px;font-weight:500;line-height:1.4;margin:9px 0}.parking-card p{font-size:11px;color:#8a98a6;line-height:1.8}.primary{width:100%;border-radius:13px;padding:12px 15px;color:#fff;background:#4c81c8;font-size:12px}.primary.dark{background:#23343b;margin-top:13px}.outline{width:100%;border:1px solid #dce5ee;border-radius:13px;padding:12px 15px;font-size:12px;margin:8px 0;background:#fff}.field-label{display:block;font-size:10px;color:#8694a0;margin:19px 0 0}select{display:block;width:100%;padding:10px;border:1px solid #dfe6ed;background:white;border-radius:9px;font-size:12px;color:#536575;margin:10px 0}.route-steps{font-size:12px;line-height:1.9;color:#5d7284;margin-top:13px}.route-steps p{padding:10px 12px;border-left:2px solid #8cb6ee;background:#f8fafc}.text-button{font-size:10px;color:#8896a1;text-decoration:underline;padding:9px 0}.evidence{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.evidence-images{display:flex;gap:8px;margin-top:15px}.evidence-images img{width:calc(50% - 4px);height:150px;object-fit:cover;border-radius:8px}summary{font-size:11px;cursor:pointer;color:#6b7a86}details p,details a{font-size:10px;line-height:1.8;color:#84919b}.mood{display:flex;border:1px solid var(--line);border-radius:30px;padding:4px;margin-top:20px}.mood button{width:50%;border-radius:24px;padding:10px 7px;font-size:11px;color:#8593a0}.mood .selected{background:#eaf1fb;color:#38689f}.recommendation{padding:15px;background:#f4f7fa;border-radius:16px;font-size:12px;line-height:1.8;color:#586b7d}.region-card{display:grid;grid-template-columns:1fr auto;gap:5px;padding:13px 0;border-bottom:1px solid #eff2f4;font-size:12px}.region-card small{font-size:9px;color:#95a0a9}.region-card b{font-size:19px;font-weight:450}.source-note{font-size:10px;line-height:1.8;color:#93a0aa}.video-header{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.video-header h3{font-size:14px;font-weight:500}.tag{font-size:9px;color:#a8794b;background:#fbf4e9;padding:5px 9px;border-radius:8px}.video-shell{position:relative;background:#15212b;border-radius:13px;overflow:hidden}#crowd-video{display:block;width:100%;max-height:330px;object-fit:contain}#crowd-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.visible-count{position:absolute;top:9px;left:9px;font-size:9px;color:white;background:#122335aa;padding:5px 8px;border-radius:7px}.check{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#7a8b9b;margin:8px 4px 0 0}.check input{accent-color:#4c80b8}.density-legend{display:flex;align-items:center;gap:7px;font-size:9px;color:#8693a0;margin:15px 0 25px}.density-legend i{width:100%;height:5px;border-radius:4px;background:linear-gradient(90deg,#fceeea,#e16d62,#c64a52)}#live-video,#live-overlay{width:100%;border-radius:10px}#live-video{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10;padding:14px 22px;background:#23323bed;color:white;border-radius:16px;font-size:12px;max-width:90vw;box-shadow:0 6px 30px #13253722}#proposal{padding:16px;border-radius:15px;background:#f7f1e3;font-size:13px;max-width:450px}#proposal button{padding:10px 18px;background:white;border-radius:10px;margin:10px 7px 0}body.native .top{height:58px;padding:0 15px}body.native .brand,body.native .workspace-link{display:none}body.native .top nav{width:100%;justify-content:center}body.native .spatial-view{height:calc(100dvh - 58px)}
@media(min-height:1000px){.voice-view{padding-top:60px}.orb-stage{margin-top:25px;height:330px}.voice-controls{margin-top:40px}}@media(max-width:900px){.top{padding:0 22px;height:72px}.workspace-link{display:none}.spatial-view{grid-template-columns:minmax(0,1fr) 305px;height:calc(100dvh - 72px)}.detail-panel{padding:22px 18px}.map-caption{left:22px;top:25px}.map-caption h1{font-size:23px}.top nav button{padding:9px 15px}}@media(max-width:650px){.top{height:65px;padding:0 16px}.brand{font-size:16px;gap:2px}.brand-mark{display:none}.top nav button{padding:9px 11px;font-size:11px}.voice-view{min-height:calc(100dvh - 65px);padding-top:27px}.orb-stage{height:26vh;min-height:175px}.voice-copy h1{font-size:27px}.suggestions{gap:7px;margin:12px 0 16px}.suggestions button{padding:10px 12px;font-size:10px}.voice-controls{margin:22px 0 12px}.voice-copy p{font-size:13px}.spatial-view{height:auto;display:flex;flex-direction:column}.scene-shell{height:49dvh;min-height:340px}.map-caption{top:20px;left:20px}.map-caption h1{font-size:23px}.map-caption p{font-size:10px}.map-caption .eyebrow{font-size:8px}.floors{left:15px;bottom:54px}.floors button{font-size:9px;padding:9px 11px}.map-bottom{left:20px;bottom:13px;gap:7px;font-size:8px}.map-bottom button{font-size:9px;padding:7px 10px}.detail-panel{overflow:visible;border:0;padding:24px 22px}body.native .spatial-view{height:auto}#crowd-video{max-height:420px}.voice-heading .eyebrow{font-size:9px}.status{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-height:800px){.voice-view{padding-top:18px;padding-bottom:12px}.voice-heading p{margin:6px 0 0}.orb-stage{height:178px;min-height:150px;margin-top:3px}.voice-copy h1{font-size:26px;margin:4px 0 10px}.voice-copy p{font-size:12px;line-height:1.75}.voice-copy #transcript{margin-top:4px;min-height:15px}.suggestions{margin:9px 0 13px}.suggestions button{padding:9px 13px}.voice-controls{margin:16px 0 9px}.microphone{width:58px;height:58px}.status{margin:0}}

.video-shell.expanded{position:fixed;inset:12vh 5vw auto;z-index:30;border:12px solid white;box-shadow:0 0 0 100vmax #13202bee;width:90vw;border-radius:18px}.video-shell.expanded #crowd-video{max-height:72vh;width:100%;height:72vh}.video-shell.expanded .visible-count{font-size:14px;top:18px;left:18px}#expand-video.close-video{position:fixed;right:6vw;top:6vh;z-index:31;color:white;font-size:15px}

#parking-panel .parking-card{background:color-mix(in srgb,var(--zone-accent,#4c81c8) 6%,white);border-color:color-mix(in srgb,var(--zone-accent,#4c81c8) 20%,white)}#parking-panel .primary:not(.dark){background:var(--zone-accent,#4c81c8)}.zones button.selected{border-color:var(--zone-accent);box-shadow:0 0 0 1px var(--zone-accent)}
