#top-bar{position:fixed;top:0;left:0;right:0;height:56px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--space-3) var(--space-3) 0;z-index:var(--z-topbar);pointer-events:none}#top-bar .bar-slot{display:flex;align-items:center;gap:var(--space-2)}#top-bar .bar-slot>*{pointer-events:auto}#top-bar .bar-slot.left{justify-content:flex-start}#top-bar .bar-slot.center{justify-content:center;flex-direction:column;gap:4px}#top-bar .bar-slot.right{justify-content:flex-end}.rail-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--hairline);border-radius:var(--radius-m);background:var(--surface-2);backdrop-filter:var(--blur-pill);color:var(--text-1);font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s ease,background .15s ease}.rail-btn:hover{border-color:var(--hairline-strong);background:var(--surface-hover)}.rail-btn[aria-pressed=true]{border-color:var(--accent-border);background:var(--accent-soft)}#connection-indicator{background:var(--surface-2);backdrop-filter:var(--blur-pill);border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:5px 14px;display:flex;align-items:center;gap:6px;font-size:var(--fs-s);font-weight:500;color:var(--text-3)}#connection-dot{width:8px;height:8px;border-radius:50%;background:#666}#connection-dot.connected{background:var(--ok)}#connection-dot.connecting{background:var(--warn)}#connection-dot.disconnected{background:var(--err)}#variant-badge-slot:empty{display:none}#variant-badge-slot{padding:4px 14px;background:var(--surface-2);backdrop-filter:var(--blur-pill);border:1px solid var(--hairline);border-radius:var(--radius-m);color:#ccc;font-size:var(--fs-m);text-align:center;pointer-events:none}.app-panel{position:fixed;top:56px;width:320px;max-height:calc(100dvh - 128px);display:flex;flex-direction:column;background:var(--surface-1);backdrop-filter:var(--blur-panel);border:1px solid var(--hairline);border-radius:var(--radius-l);color:var(--text-2);font-size:var(--fs-m);box-shadow:var(--shadow-1);z-index:var(--z-chrome);transition:transform .3s ease,opacity .3s ease;overflow:hidden}.app-panel[data-side=left]{left:var(--space-3)}.app-panel[data-side=right]{right:var(--space-3);width:320px}.app-panel[data-side=left].desktop-hidden{transform:translate(calc(-100% - 24px));opacity:0;pointer-events:none}.app-panel[data-side=right].desktop-hidden{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.panel-grabber{display:none}.panel-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:1px solid var(--hairline);flex-shrink:0}.panel-header h2{margin:0;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;letter-spacing:.02em;color:var(--text-1);flex:1}.panel-actions{display:flex;align-items:center;gap:var(--space-1)}.panel-actions a{color:var(--text-dim);font-size:var(--fs-xs);text-decoration:none}.panel-actions a:hover{color:var(--text-2)}.panel-close{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-s);color:var(--text-3);font-size:14px;cursor:pointer}.panel-close:hover{color:var(--text-1);background:var(--surface-hover)}.panel-body{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-3) var(--space-3);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0}#chat-panel .panel-body{display:flex;flex-direction:column}#bottom-bar{position:fixed;bottom:var(--space-3);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);z-index:var(--z-topbar)}#bottom-bar .bar-overflow{display:flex;gap:var(--space-1)}#bottom-bar .bar-overflow button{background:none;border:none;color:var(--text-muted-aa);font-size:calc(var(--fs-chat-meta) * var(--text-scale));font-family:var(--font-ui);cursor:pointer;padding:4px 8px;min-height:32px}#bottom-bar .bar-overflow button:hover{color:var(--text-2)}#spacebar-hint{padding:10px 24px;background:var(--surface-2);backdrop-filter:var(--blur-panel);border:1px solid var(--hairline-strong);border-radius:var(--radius-l);color:#ccc;font-size:calc(15px * var(--text-scale));font-weight:500;text-align:center;transition:all .2s ease;position:relative;min-height:var(--tap-min)}#spacebar-hint:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--text-dim);vertical-align:middle;transition:background .2s ease}@keyframes state-pulse{0%,to{opacity:1}50%{opacity:.35}}#spacebar-hint.recording{border-color:var(--err);color:var(--err-soft)}#spacebar-hint.recording:before{background:var(--err);animation:state-pulse 1s ease-in-out infinite}#spacebar-hint.processing{border-color:var(--warn);color:var(--warn-soft)}#spacebar-hint.processing:before{background:var(--warn);animation:state-pulse 1.4s ease-in-out infinite}#spacebar-hint.speaking{border-color:var(--ok);color:var(--ok-soft)}#spacebar-hint.speaking:before{background:var(--ok);animation:state-pulse .7s ease-in-out infinite}#spacebar-hint.realtime{border-color:var(--err);color:var(--err-soft);box-shadow:0 0 8px #ef44444d}#spacebar-hint.realtime:before{background:var(--err);animation:state-pulse 1s ease-in-out infinite}#spacebar-hint.realtime.muted{border-color:#666;color:var(--text-3);box-shadow:none}#spacebar-hint.realtime.muted:before{background:var(--text-dim);animation:none}#mute-btn,#reset-view-btn,#map-btn{background:var(--surface-2);backdrop-filter:var(--blur-pill);border:1px solid var(--hairline-strong);border-radius:var(--radius-m);color:#aaa;font-size:16px;padding:6px 10px;min-width:var(--tap-min);min-height:var(--tap-min);cursor:pointer;transition:all .2s}#mute-btn:hover,#reset-view-btn:hover,#map-btn:hover{border-color:#ffffff40;color:var(--text-1)}#mute-btn.muted{color:var(--err-soft);border-color:var(--err-soft)}#mobile-text-input{display:none}#status{position:fixed;bottom:var(--space-3);left:var(--space-3);max-width:300px;padding:4px 10px;background:var(--surface-2);backdrop-filter:var(--blur-pill);border:1px solid var(--hairline);border-radius:var(--radius-m);color:var(--text-3);font-size:var(--fs-s);font-family:var(--font-mono);z-index:var(--z-chrome)}#status:empty{display:none}#transcript{position:fixed;bottom:90px;left:50%;transform:translate(-50%);width:500px;max-width:calc(100vw - 700px);max-height:200px;overflow-y:auto;background:var(--surface-1);backdrop-filter:var(--blur-panel);border:1px solid var(--hairline);border-radius:var(--radius-l);padding:10px 14px;color:var(--text-2);font-size:calc(var(--fs-chat) * var(--text-scale));z-index:var(--z-chrome);display:flex;flex-direction:column;gap:6px}#transcript:empty{display:none}#transcript .transcript-toggle{position:absolute;top:4px;right:6px;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px;line-height:1;z-index:1}#transcript .transcript-toggle:hover{color:var(--text-2)}#transcript.minimized{min-height:28px;max-height:28px;overflow:hidden;padding:4px 14px;cursor:pointer}#transcript.minimized:after{content:var(--t-transcript-title, "Transcript");font-size:calc(var(--fs-chat-meta) * var(--text-scale));color:var(--text-muted-aa)}#transcript.minimized .msg{display:none}#transcript.minimized .transcript-toggle{top:4px}#transcript .msg{padding:4px 0;line-height:var(--lh-chat)}#transcript .msg.user{color:var(--role-user)}#transcript .msg.user:before{content:var(--t-transcript-you, "You: ");font-weight:600}#transcript .msg.assistant{color:var(--role-assistant)}#transcript .msg.assistant:before{content:var(--t-transcript-assistant, "Assistant: ");font-weight:600}#drop-zone{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:40px 60px;border:2px dashed var(--hairline-strong);border-radius:16px;color:var(--text-3);font-size:16px;font-weight:500;text-align:center;z-index:5;pointer-events:none;background:#0a0a1480;backdrop-filter:var(--blur-pill)}#drop-zone.hidden{display:none}#sheet-backdrop{position:fixed;inset:0;background:#00000080;z-index:var(--z-backdrop)}#sheet-backdrop[hidden]{display:none}@media(max-width:768px){.app-panel,.app-panel[data-side=left],.app-panel[data-side=right]{inset:auto 0 0;width:auto;height:calc(100dvh - 56px);max-height:none;border-radius:var(--radius-l) var(--radius-l) 0 0;border-bottom:none;transform:translateY(100%);opacity:1;pointer-events:auto;z-index:var(--z-sheet);padding-bottom:env(safe-area-inset-bottom)}.app-panel.desktop-hidden{transform:translateY(100%);opacity:1;pointer-events:auto}.app-panel.open.half{transform:translateY(45%)}.app-panel.open.full{transform:translateY(0)}.app-panel.dragging{transition:none}.panel-grabber{display:block;flex-shrink:0;padding:10px 0 4px;touch-action:none;cursor:grab}.panel-grabber:before{content:"";display:block;width:44px;height:4px;margin:0 auto;border-radius:2px;background:var(--hairline-strong)}#bottom-bar{flex-wrap:wrap;justify-content:center;gap:var(--space-2);bottom:calc(16px + env(safe-area-inset-bottom));width:calc(100% - 24px)}#bottom-bar #mobile-text-input{order:10}#bottom-bar .bar-overflow{display:none}#spacebar-hint{padding:0;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}#spacebar-hint kbd{display:none}#spacebar-hint:before{display:none}@keyframes mic-ring{0%{box-shadow:0 0 0 0 var(--ring-color, rgba(255,255,255,.25))}70%{box-shadow:0 0 0 14px transparent}to{box-shadow:0 0 0 0 transparent}}#spacebar-hint.recording{--ring-color: rgba(239, 68, 68, .5);animation:mic-ring 1.1s ease-out infinite}#spacebar-hint.processing{--ring-color: rgba(234, 179, 8, .45);animation:mic-ring 1.5s ease-out infinite}#spacebar-hint.speaking{--ring-color: rgba(34, 197, 94, .45);animation:mic-ring .9s ease-out infinite}#spacebar-hint.realtime{--ring-color: rgba(239, 68, 68, .5);animation:mic-ring 1.1s ease-out infinite}#spacebar-hint.realtime.muted{animation:none}@keyframes mic-pulse{0%,to{box-shadow:0 0 #fff3}50%{box-shadow:0 0 0 10px #fff0}}#spacebar-hint:not(.recording):not(.processing):not(.speaking):not(.realtime){animation:mic-pulse 2.5s ease-in-out infinite}#spacebar-hint:not(.recording):not(.processing):not(.speaking):not(.realtime):after{content:var(--t-hint-touch, "Hold to talk");position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap;pointer-events:none}#mobile-text-input{display:block!important;width:100%;max-width:280px;padding:10px 14px;background:var(--surface-2);backdrop-filter:var(--blur-panel);border:1px solid var(--hairline-strong);border-radius:var(--radius-l);color:#ccc;font-size:calc(var(--fs-chat) * var(--text-scale));font-family:var(--font-ui);min-height:var(--tap-min)}#mobile-text-input:focus{border-color:#ffffff40}#mobile-text-input::placeholder{color:var(--text-dim)}}@media(max-width:768px){#map-btn,#reset-view-btn{display:none!important}#status{display:none}#transcript{width:auto;left:var(--space-3);right:var(--space-3);transform:none;max-width:calc(100vw - 24px);bottom:160px;max-height:140px;font-size:calc(var(--fs-chat) * var(--text-scale))}#top-bar{padding-top:calc(var(--space-3) + env(safe-area-inset-top));height:auto}.rail-btn{width:var(--tap-min);height:var(--tap-min);font-size:20px}}@media(min-width:769px)and (max-width:950px){.app-panel{width:min(360px,70vw)}}.ui-prefs{display:flex;align-items:center;gap:var(--space-2)}.ui-prefs select,.ui-prefs-size button{height:36px;border:1px solid var(--hairline);border-radius:var(--radius-m);background:var(--surface-2);backdrop-filter:var(--blur-pill);color:var(--text-1);font-family:var(--font-ui);cursor:pointer}.ui-prefs select{padding:0 10px;font-size:14px;max-width:180px}.ui-prefs-size{display:flex;gap:2px}.ui-prefs-size button{min-width:36px;padding:0 6px;font-weight:600}.ui-prefs-size button[aria-pressed=true]{border-color:var(--accent-border);background:var(--accent-soft)}.ui-prefs select:hover,.ui-prefs-size button:hover{border-color:var(--hairline-strong)}.ui-prefs select:focus-visible,.ui-prefs-size button:focus-visible,.rail-btn:focus-visible,#mobile-text-input:focus-visible,.chat-input:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:768px){.ui-prefs select,.ui-prefs-size button{height:var(--tap-min)}.ui-prefs select{max-width:132px;font-size:13px}.ui-prefs-size button{min-width:var(--tap-min)}}html:is(:lang(zh),:lang(yue)) body *{letter-spacing:normal!important}html:is(:lang(zh),:lang(yue)){--lh-chat: 1.75;--fs-chat-meta: 13px}html:is(:lang(zh),:lang(yue)) :is(.chat-text,#transcript .msg){line-break:strict;overflow-wrap:anywhere}#connection-label{white-space:nowrap}#mobile-panel-dock,.app-panel[hidden],.panel-expand,.panel-switch{display:none}.access-status{margin:8px 0;padding:10px;border:1px solid var(--hairline);border-radius:8px;font-size:12px;overflow-wrap:anywhere}.access-status summary{cursor:pointer;font-weight:600}.access-status p{margin:8px 0;line-height:1.5}.access-status .btn{margin:4px 6px 4px 0;min-height:36px}#guest-access-notice{position:fixed;top:calc(56px + env(safe-area-inset-top));left:12px;right:12px;max-width:620px;margin:auto;padding:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface-1,#15151e);color:var(--text-1,#fff);border:1px solid var(--hairline,#666);border-radius:10px;z-index:45;font-size:13px;line-height:1.5}#guest-access-notice[hidden],body[data-mobile-panel] #guest-access-notice{display:none}#guest-access-notice button{min-height:44px}.people-access-dialog{background:var(--surface-1,#15151e);color:var(--text-1,#fff);border:1px solid var(--hairline,#555);border-radius:12px;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:18px;overflow:auto;z-index:2000}.people-access-dialog::backdrop{background:#000000a6}.people-access-dialog p{line-height:1.5}.people-access-dialog input{width:100%;box-sizing:border-box;font-size:16px;padding:8px}.people-access-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0;border-bottom:1px solid var(--hairline)}.people-access-row span{width:100%;overflow-wrap:anywhere}.people-access-row select,.people-access-dialog button{min-height:44px}@media(max-width:950px){body.compact-shell #top-bar{display:flex!important;justify-content:center;padding-top:env(safe-area-inset-top);height:48px;box-sizing:border-box}body.compact-shell #top-bar .bar-slot:empty{display:none}body.compact-shell #top-bar .bar-slot.center{min-width:0;max-width:100%}#mobile-panel-dock{display:flex;gap:8px;align-items:center}#bottom-bar{bottom:calc(8px + env(safe-area-inset-bottom) + var(--keyboard-inset,0px));width:calc(100% - 20px);display:flex;flex-wrap:wrap;justify-content:center;gap:8px}#bottom-bar #spacebar-hint{width:56px;height:56px;min-height:44px;padding:0;border-radius:50%;font-size:13px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}#bottom-bar #spacebar-hint kbd,#bottom-bar #spacebar-hint:before,#bottom-bar #spacebar-hint:after{display:none}#bottom-bar #mobile-text-input{display:block!important;order:10;max-width:none;width:100%;font-size:16px;box-sizing:border-box}#bottom-bar>.bar-overflow{display:none}.rail-btn,.panel-close,.panel-expand{min-width:44px;min-height:44px;flex-shrink:0}#mobile-panel-dock .rail-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:18px;gap:2px}#mobile-panel-dock .rail-btn:after{content:attr(data-label);font-size:10px;line-height:1}.panel-expand,.panel-switch{display:block;background:none;color:inherit;border:1px solid var(--hairline);border-radius:6px;min-width:44px;min-height:44px;flex-shrink:0}.app-panel{top:calc(8px + env(safe-area-inset-top));max-height:calc(var(--visible-height,100dvh) - 16px - env(safe-area-inset-top));bottom:auto}.app-panel:not(.open){transform:translateY(120vh)!important;pointer-events:none!important;visibility:hidden}.app-panel.open{visibility:visible;pointer-events:auto!important;opacity:1}#mobile-more .panel-body>div{margin:16px 0}#mobile-secondary-slot,.mobile-panel-links{display:flex;flex-wrap:wrap;gap:10px}#mobile-secondary-slot button,.mobile-panel-links button{min-height:44px;padding:8px 12px}#mobile-more .ui-prefs{flex-wrap:wrap}#mobile-more #auth-menu{position:relative;right:auto;max-width:100%;width:100%;box-sizing:border-box}body[data-mobile-panel] #bottom-bar{visibility:hidden;pointer-events:none}body[data-mobile-panel=chat] #transcript{display:none}.panel-header{flex-wrap:wrap}.panel-header h2{min-width:70px}.panel-body{min-width:0;overflow-x:hidden}.panel-body input,.panel-body select,.panel-body textarea{max-width:100%;min-width:0}}@media(max-width:768px){.app-panel,.app-panel[data-side=left],.app-panel[data-side=right]{top:auto;bottom:var(--keyboard-inset,0px);height:calc(var(--visible-height,100dvh) - 48px - env(safe-area-inset-top));max-height:calc(var(--visible-height,100dvh) - 48px);box-sizing:border-box}.app-panel.open.full{transform:translateY(0)!important}.app-panel.open.half{transform:translateY(35%)!important}#mobile-secondary-slot #map-btn,#mobile-secondary-slot #reset-view-btn{display:block!important}}@media(min-width:769px)and (max-width:950px){.app-panel.open{transform:translate(0)!important;z-index:var(--z-sheet);height:calc(var(--visible-height,100dvh) - 16px);max-width:calc(100vw - 16px)}}.app-panel .section{margin-bottom:var(--space-3)}.app-panel .section-header{cursor:pointer;padding:6px 0;font-weight:600;font-family:var(--font-display);font-size:var(--fs-m);letter-spacing:.03em;user-select:none;display:flex;justify-content:space-between;align-items:center;color:#ccc;transition:color .15s ease}.app-panel .section-header:hover{color:var(--text-1)}.app-panel .section-header:after{content:"▼";font-size:9px;color:#666}.app-panel .section-header.collapsed:after{content:"▶"}.app-panel .section-body{padding-top:var(--space-1)}.app-panel .section-body.hidden{display:none}.app-panel .group-label{margin:var(--space-4) 0 var(--space-1);padding-bottom:3px;border-bottom:1px solid var(--hairline);font-family:var(--font-display);font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.btn{padding:6px 14px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-s);background:#ffffff14;color:var(--text-1);cursor:pointer;font-size:var(--fs-m);font-family:var(--font-ui);margin-right:4px;transition:all .15s ease}.btn:hover{background:var(--surface-hover);border-color:#fff3}.btn.active{background:var(--accent-soft);border-color:var(--accent-border)}.slider-row{display:flex;align-items:center;gap:6px;margin-bottom:2px}.slider-row label{width:150px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex-shrink:0}.slider-row input[type=range]{flex:1;height:14px;accent-color:var(--accent-bright)}.slider-row .val{width:32px;text-align:right;font-variant-numeric:tabular-nums}.panel-body::-webkit-scrollbar,#transcript::-webkit-scrollbar{width:5px}.panel-body::-webkit-scrollbar-track,#transcript::-webkit-scrollbar-track{background:transparent}.panel-body::-webkit-scrollbar-thumb,#transcript::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.panel-body::-webkit-scrollbar-thumb:hover{background:#ffffff40}kbd{display:inline-block;padding:2px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:5px;font-family:var(--font-display);font-size:var(--fs-m);color:var(--text-1)}@media(max-width:768px){.btn{min-height:var(--tap-min);padding:10px 14px}.slider-row input[type=range]{height:24px;padding:6px 0}.slider-row{margin-bottom:6px}*{-webkit-tap-highlight-color:transparent}}
