:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e14;--bg-elevated:#0f1520;--bg-panel:#101722;--border:#1e2a3a;--text:#e6edf3;--text-dim:#8a919e;--accent:#ffb454;--accent-dim:#8a6a3d;--success:#7fd962;--danger:#f26d78;--info:#59c2ff;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--radius:10px;--radius-sm:6px;--radius-pill:999px;--fast:.16s ease;--glow-amber:0 0 0 3px #ffb45438, 0 0 18px #ffb4542e;--glow-success:0 0 0 3px #7fd96233, 0 0 18px #7fd96229;--glow-danger:0 0 0 3px #f26d7838, 0 0 18px #f26d7829;font-size:16px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button,select,textarea,input{color:inherit;font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}#app{grid-template-rows:56px 1fr auto 32px;grid-template-areas:"header""main""trace""footer";height:100vh;display:grid}.shell-header{padding:0 var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-elevated);grid-area:header;justify-content:space-between;align-items:center;display:flex}.brand{align-items:baseline;gap:var(--space-3);min-width:0;display:flex}.wordmark{letter-spacing:.12em;color:var(--text);white-space:nowrap;font-size:1.05rem;font-weight:700}.sun-glyph{color:var(--accent);filter:drop-shadow(0 0 6px #ffb4548c)}.subtitle{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.header-row{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.header-chips{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.chip{font-family:var(--font-mono);border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-dim);background:var(--bg-panel);transition:color var(--fast), border-color var(--fast), box-shadow var(--fast), background var(--fast);white-space:nowrap;align-items:center;gap:.4em;padding:.3rem .7rem;font-size:.75rem;display:inline-flex}.chip[hidden]{display:none}button.chip{border-width:1px}.chip-warm-offline{color:var(--accent);border-color:var(--accent-dim);cursor:pointer}.chip-warm-offline:disabled{opacity:.6;cursor:default}.pack-picker-select{appearance:none;color:var(--accent);border-color:var(--accent-dim);letter-spacing:.03em;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%);background-position:calc(100% - .9rem) 55%,calc(100% - .6rem) 55%;background-repeat:no-repeat;background-size:.3rem .3rem,.3rem .3rem;padding-right:1.6rem;font-weight:700}.pack-picker-select:disabled{opacity:.6;cursor:default}.chip-offline[data-state=ready]{color:var(--success);border-color:var(--success);box-shadow:var(--glow-success)}.chip-offline[data-state=pending]{color:var(--text-dim)}.chip-tier{color:var(--accent);border-color:var(--accent-dim)}.chip-tier[data-switching=true]{animation:.9s ease-in-out infinite chip-pulse}.chip-tier .tier-degrade{color:var(--text-dim)}.chip-tps{font-variant-numeric:tabular-nums;justify-content:flex-end;min-width:6.5ch}.chip-mute[data-muted=true]{color:var(--danger);border-color:var(--danger)}.shell-main{grid-area:main;min-height:0;display:flex}.chat-col{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:0 0 420px;width:420px;min-height:0;display:flex;position:relative}.chat-messages{min-height:0;padding:var(--space-4) var(--space-3);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-jump-pill{background:var(--accent);color:#1a1206;border-radius:var(--radius-pill);box-shadow:var(--glow-amber);z-index:5;border:none;padding:.35rem .9rem;font-size:.75rem;font-weight:700;position:absolute;bottom:5.5rem;left:50%;transform:translate(-50%)}.chat-input-row{align-items:flex-end;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;display:flex}.chat-input{resize:none;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;max-height:6rem;color:var(--text);transition:border-color var(--fast), box-shadow var(--fast);flex:1;padding:.55rem .75rem;font-size:.95rem;line-height:1.4}.chat-input:focus{border-color:var(--accent-dim);box-shadow:var(--glow-amber);outline:none}.chat-send-btn{background:var(--accent);color:#1a1206;border-radius:var(--radius);transition:transform var(--fast), box-shadow var(--fast);border:none;flex-shrink:0;padding:.6rem .9rem;font-size:.85rem;font-weight:700}.chat-send-btn:hover:not(:disabled){box-shadow:var(--glow-amber)}.chat-send-btn:active:not(:disabled){transform:scale(.96)}.msg{flex-direction:column;max-width:90%;display:flex}.msg-user{align-self:flex-end;align-items:flex-end}.msg-assistant{align-self:flex-start;align-items:flex-start}.msg-bubble{border-radius:var(--radius);word-wrap:break-word;white-space:pre-wrap;padding:.6rem .85rem;font-size:.95rem;line-height:1.5}.msg-user .msg-bubble{border:1px solid var(--accent-dim);color:var(--text);background:#ffb45424}.msg-assistant .msg-bubble{background:var(--bg-panel);border:1px solid var(--border);color:var(--text)}.msg-bubble strong{color:var(--accent)}.msg-bubble ul{margin:.3em 0;padding-left:1.2em}.msg-refusal .msg-bubble{border-left:3px solid var(--danger);background:#f26d7814}.shield-glyph{margin-right:.4em}.msg-meta{color:var(--text-dim);font-size:.7rem;font-family:var(--font-mono);margin-top:.3rem}.mic-tag{color:var(--info)}.cursor{color:var(--accent);animation:1s step-end infinite cursor-blink;display:inline-block}.msg-thinking .msg-bubble{align-items:center;gap:.3rem;padding:.7rem 1rem;display:flex}.thinking-dot{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite thinking-bounce}.thinking-dot:nth-child(2){animation-delay:.15s}.thinking-dot:nth-child(3){animation-delay:.3s}.mic-btn{border:1px solid var(--border);background:var(--bg-panel);width:2.5rem;height:2.5rem;transition:box-shadow var(--fast), border-color var(--fast), background var(--fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.mic-btn[data-recording=true]{border-color:var(--accent);box-shadow:var(--glow-amber);background:#ffb45429;animation:1.1s ease-in-out infinite chip-pulse}.mic-waveform{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);position:absolute;bottom:calc(100% + .5rem);right:0}.camera-btn{border:1px solid var(--border);background:var(--bg-panel);width:2.5rem;height:2.5rem;transition:box-shadow var(--fast), border-color var(--fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.camera-btn:hover:not(:disabled){border-color:var(--accent-dim)}.camera-overlay{z-index:9980;cursor:pointer;justify-content:center;align-items:center;gap:var(--space-3);background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-overlay[hidden]{display:none}.camera-preview{border:2px solid var(--accent);border-radius:var(--radius);max-width:92%;max-height:75vh;box-shadow:var(--glow-amber)}.camera-hint{font-family:var(--font-mono);color:var(--accent);text-align:center;padding:0 var(--space-4);font-size:1.05rem;font-weight:700}.camera-close{top:var(--space-3);right:var(--space-3);border:1px solid var(--border);background:var(--bg-panel);width:2.25rem;height:2.25rem;color:var(--text-dim);cursor:pointer;border-radius:50%;font-size:1.2rem;line-height:1;position:absolute}.camera-error{color:var(--danger);font-family:var(--font-mono);font-size:.85rem}.map-col{background:var(--bg-elevated);flex:1;min-width:0;position:relative}.map-canvas{background-color:var(--bg-elevated);background-image:repeating-linear-gradient(0deg,#e6edf309 0 1px,#0000 1px 32px),repeating-linear-gradient(90deg,#e6edf309 0 1px,#0000 1px 32px);position:absolute;inset:0}.map-placeholder{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.04em;text-align:center;padding:0 var(--space-4);justify-content:center;align-items:center;margin:0;font-size:.85rem;display:flex;position:absolute;inset:0}.route-toast-layer{pointer-events:none;position:absolute;inset:0}.route-toast{top:var(--space-4);background:var(--bg-panel);border:1px solid var(--success);box-shadow:var(--glow-success);color:var(--text);font-family:var(--font-mono);border-radius:var(--radius);pointer-events:auto;padding:.6rem 1.2rem;font-size:1.0625rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.tool-trace-rail{border-top:1px solid var(--border);background:var(--bg-elevated);grid-area:trace;transition:opacity .8s;overflow:auto hidden}.tool-trace-rail[hidden]{display:none}.tool-trace-rail.is-dimmed{opacity:.35}.trace-rail-inner{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);width:max-content;min-height:3.25rem;display:flex}.trace-chip{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel);transition:border-color var(--fast), box-shadow var(--fast), background var(--fast);font-family:var(--font-mono);flex-direction:column;gap:.15rem;padding:.4rem .8rem;display:flex}.trace-chip-name{color:var(--text-dim);font-size:1rem;font-weight:700}.trace-chip-summary{color:var(--text-dim);font-size:.7rem}.trace-chip-ms{color:var(--text-dim);font-size:.65rem}.trace-chip[data-state=running]{border-color:var(--accent);box-shadow:var(--glow-amber);animation:1s ease-in-out infinite chip-pulse}.trace-chip[data-state=running] .trace-chip-name{color:var(--accent)}.trace-chip[data-state=done]{border-color:var(--success)}.trace-chip[data-state=done] .trace-chip-name{color:var(--success)}.trace-chip[data-state=done] .trace-chip-summary{color:var(--text)}.trace-chip[data-state=error]{border-color:var(--danger);box-shadow:var(--glow-danger)}.trace-chip[data-state=error] .trace-chip-name{color:var(--danger)}.trace-arrow{color:var(--text-dim);opacity:.3;transition:opacity var(--fast), color var(--fast);font-size:1rem}.trace-arrow.is-lit{opacity:1;color:var(--accent)}.shell-footer{padding:0 var(--space-4);border-top:1px solid var(--border);background:var(--bg-elevated);font-family:var(--font-mono);color:var(--text-dim);grid-area:footer;align-items:center;font-size:.75rem;display:flex}.boot-overlay{z-index:9999;background:var(--bg);justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.boot-overlay[hidden]{display:none}.boot-overlay.is-fading{opacity:0;pointer-events:none}.boot-card{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;width:min(28rem,90vw);display:flex}.boot-sun{color:var(--accent);filter:drop-shadow(0 0 22px #ffb45473);font-size:3.5rem;animation:2.4s ease-in-out infinite boot-sun-pulse}.boot-title{letter-spacing:.16em;font-size:1.4rem;font-weight:700}.boot-state-label{color:var(--text-dim);font-family:var(--font-mono);min-height:1.2em;font-size:.85rem}.boot-progress{border-radius:var(--radius-pill);background:var(--bg-panel);border:1px solid var(--border);width:100%;height:8px;overflow:hidden}.boot-progress-fill{background:var(--accent);width:0%;height:100%;transition:width .3s;box-shadow:0 0 12px #ffb45480}.boot-progress-meta{font-family:var(--font-mono);color:var(--text-dim);font-size:.75rem}.boot-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:2rem;height:2rem;animation:.9s linear infinite spin}.boot-footnote{color:var(--text-dim);font-size:.75rem}.boot-error{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius);box-shadow:var(--glow-danger);background:#f26d7814;flex-direction:column;align-items:center;display:flex}.boot-error[hidden]{display:none}.boot-error-message{color:var(--danger);font-family:var(--font-mono);font-size:.85rem}.boot-retry-btn{background:var(--danger);color:#260a0d;border-radius:var(--radius-sm);border:none;padding:.5rem 1rem;font-weight:700}.beacon-armed-card{bottom:var(--space-4);right:var(--space-4);z-index:600;background:var(--bg-panel);border:1px solid var(--accent);box-shadow:var(--glow-amber);color:var(--accent);font-family:var(--font-mono);border-radius:var(--radius);max-width:16rem;padding:.7rem 1rem;font-size:.8rem;font-weight:700;animation:2s ease-in-out infinite chip-pulse;position:fixed}.beacon-strobe-overlay{z-index:9990;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.beacon-strobe-overlay[hidden]{display:none}.beacon-strobe-text{font-family:var(--font-mono);color:#000;mix-blend-mode:difference;text-align:center;padding:0 var(--space-4);font-size:1.5rem;font-weight:700}.devloc-panel{bottom:var(--space-3);left:var(--space-3);z-index:500;font-family:var(--font-mono);font-size:.75rem;position:fixed}.devloc-toggle{border:1px solid var(--border);background:var(--bg-panel);width:2rem;height:2rem;color:var(--text-dim);border-radius:50%}.devloc-body{margin-top:var(--space-2);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);gap:var(--space-2);flex-direction:column;width:15rem;display:none}.devloc-panel[data-open=true] .devloc-body{display:flex}.devloc-label{color:var(--text-dim);letter-spacing:.05em;font-size:.68rem}.devloc-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.35rem}.devloc-coords{color:var(--info)}@keyframes chip-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes thinking-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes boot-sun-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=720px){.shell-main{flex-direction:column}.chat-col{border-right:none;border-bottom:1px solid var(--border);flex:50%;width:100%}.map-col{flex:50%}.subtitle{display:none}}@media (prefers-reduced-motion:reduce){.chip-tier[data-switching=true],.mic-btn[data-recording=true],.trace-chip[data-state=running],.beacon-armed-card,.thinking-dot,.boot-sun,.boot-spinner,.cursor{animation:none!important}}
