:root{font:15px/1.6 system-ui,sans-serif;color:#dce7e7;background:#0b1419;color-scheme:dark}*{box-sizing:border-box}body{margin:0}header{display:flex;gap:16px;align-items:center;padding:22px 4vw;border-bottom:1px solid #27383c}header b{letter-spacing:3px}small{display:block;color:#92a8ad}.mark{font-size:32px;color:#b9e9ae}.badge{margin-left:auto;color:#d2e9b2;background:#26392a;border:1px solid #496248;border-radius:30px;padding:5px 15px;font-size:12px}main{max-width:1400px;margin:auto;display:grid;grid-template-columns:320px 1fr}aside{padding:30px;border-right:1px solid #27383c;background:#101d23}h1{font-size:32px;line-height:1.4;margin:15px 0 30px;font-weight:500}.eyebrow{font-size:11px;letter-spacing:2px;color:#a3bdbb}label{display:block;font-size:12px;color:#9fb4b9;margin-bottom:15px}input,select,button{font:inherit;border:1px solid #35474b;border-radius:8px;background:#17272d;color:#eef5f1;padding:9px 11px}label input,label select{width:100%;display:block;margin-top:6px}button{cursor:pointer;font-size:13px}button:hover{border-color:#aed2ac;background:#283d3e}button:disabled{opacity:.45;cursor:default}.row{display:flex;gap:12px}.row>label{flex:1;min-width:0}.hint{color:#91a8ad;font-size:12px}.workspace{padding:30px 38px}.topline{display:flex;justify-content:space-between;align-items:center}.preview{border:1px solid #405750;background:radial-gradient(ellipse at top right,#344a3d,#13262d 70%);padding:28px;border-radius:16px;min-height:220px}.preview h2{font-size:28px;font-weight:500;margin:10px 0}.metrics{display:flex;gap:36px;margin:20px 0}.metrics b{display:block;font-size:26px;font-weight:400;color:#d8ebbf}.metrics span{font-size:12px;color:#a1b8b5}#chat p{padding:12px 16px;background:#182b32;border-left:2px solid #b8d8a7;border-radius:4px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.card{padding:18px;background:#192a30;border:1px solid #3b5152;border-radius:12px}.card h3{font-size:16px;margin:7px 0}.card p{color:#a6babe;font-size:13px}.card button{width:100%}.quick{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}form{display:flex;gap:8px}form input{flex:1;min-width:0}#send{background:#c4deb0;color:#15221b}#status{min-height:24px;color:#e7cf95}details{margin-top:22px;color:#8ea8ac;font-size:12px}pre{white-space:pre-wrap;max-height:200px;overflow:auto}.check{display:flex;gap:10px;margin:12px 0}.check input{width:auto}footer{font-size:11px;color:#81989e;margin-top:28px}#slider{width:100%;padding:0;margin-bottom:18px;accent-color:#c4deb0}@media(max-width:800px){main{display:block}aside{border-right:0;padding:22px}h1{font-size:25px}.workspace{padding:22px}.badge{max-width:150px}.metrics{gap:20px}.metrics b{font-size:22px}}[hidden]{display:none!important}
/* Click-to-open assistant. The entry page is an isolated demo, not the main app. */
.entry{max-width:780px;margin:12vh auto;padding:30px}.entry h1{font-size:clamp(38px,6vw,64px);line-height:1.25;margin:20px 0}.entry>p{color:#a9bdbe}.entry #open-chat{background:#c4deb0;color:#15221b;padding:15px 24px;margin:22px 0 12px;font-size:16px}.entry .hint{font-size:12px}#chat-launcher{position:fixed;right:32px;bottom:28px;border-radius:30px;padding:15px 24px;background:#c4deb0;color:#15221b;box-shadow:0 8px 40px #0005}dialog{padding:0;border:1px solid #405750;border-radius:20px;background:#101d23;color:#dce7e7;width:min(760px,calc(100vw - 36px));max-height:90dvh;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#02080dbb;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid #304348;position:sticky;top:0;background:#101d23;z-index:2}.dialog-heading b{font-size:20px}.dialog-heading small{font-size:11px;margin-top:4px}dialog main{display:block}.scene-settings{margin:0;border-bottom:1px solid #304348}.scene-settings>summary{padding:16px 26px;cursor:pointer;color:#b1c9bd}.scene-settings aside{border:0;padding:18px 26px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.scene-settings aside>h1,.scene-settings aside>.eyebrow{display:none}.scene-settings aside>.hint,.scene-settings #slider{grid-column:1/-1}dialog .workspace{padding:18px 26px 24px}.preview-details{margin:0 0 20px}.preview-details>summary{cursor:pointer}.preview-details .preview{padding:18px;min-height:0}.preview-details .preview h2{font-size:24px}dialog #chat{min-height:100px}dialog #chat p{border-left:0;border-radius:12px;padding:16px 18px}dialog .topline .eyebrow{font-size:13px;letter-spacing:0}dialog form{position:sticky;bottom:0;background:#101d23;padding:12px 0}dialog footer{margin-top:18px}@media(max-width:600px){header{padding:18px}.entry{margin:9vh auto;padding:24px}#chat-launcher{right:20px;bottom:20px}dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border:0;border-radius:0}.dialog-heading{padding:16px 20px}dialog .workspace{padding:16px 20px}.scene-settings aside{padding:16px 20px}.scene-settings>summary{padding:16px 20px}.metrics{gap:20px}.dialog-heading small{max-width:240px}}
/* Non-modal floating chat: the underlying page stays interactive. */
#chat-dialog{position:fixed;inset:auto 24px 92px auto;margin:0;width:min(420px,calc(100vw - 32px));height:auto;max-height:min(680px,calc(100dvh - 120px));border:1px solid #405750;border-radius:18px;z-index:20;overflow:auto;overscroll-behavior:contain;box-shadow:0 18px 65px #0007}
#chat-dialog::backdrop{background:transparent;backdrop-filter:none}
#chat-dialog .dialog-heading{padding:16px 18px}#chat-dialog .dialog-heading b{font-size:18px}#chat-dialog .workspace{padding:16px 18px}#chat-dialog .scene-settings>summary{padding:14px 18px}#chat-dialog .scene-settings aside{padding:16px 18px;display:block}#chat-dialog .cards{grid-template-columns:1fr}#chat-dialog .metrics{gap:18px}#chat-dialog .metrics b{font-size:22px}#chat-dialog .preview .badge{display:inline-block;margin:0;max-width:100%}#chat-dialog .quick{gap:6px}#chat-dialog .quick button{font-size:12px;padding:7px 10px}#chat-launcher{z-index:21}.page-note{max-width:440px;color:#a9bdbe}.page-note summary{cursor:pointer}.page-note p{font-size:14px}
@media(max-width:600px){#chat-dialog{inset:auto 12px 86px auto;width:calc(100vw - 24px);height:auto;max-height:65dvh;border-radius:18px}#chat-dialog .dialog-heading small{max-width:220px}}
@media(max-width:600px){#chat-dialog{max-height:52dvh}.entry{margin:16px auto;padding:20px}.entry h1{font-size:32px;margin:14px 0}.entry .eyebrow{font-size:10px}}

/* Original public website remains inside its own styling boundary. */
.website-preview{height:100dvh;overflow:hidden;background:#faf9f4}.website-preview #airport-website{position:fixed;inset:0;width:100%;height:100%;border:0;background:#faf9f4}.website-preview #chat-launcher{background:#147c87;color:white;border-color:#147c87}.website-preview #chat-dialog{box-shadow:0 12px 44px #18394b40}.website-preview #chat-dialog .dialog-heading small{font-size:10px}
/* Floating window and an in-place chat page. */
.chat-view-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-bottom:1px solid #304348}.chat-view-controls label{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap}.chat-view-controls select{width:auto;margin:0;padding:5px 8px}.chat-view-controls button{padding:7px 10px}



.website-preview.chat-page #airport-website{visibility:hidden}.chat-page #chat-launcher{display:none}
.website-preview.chat-page #chat-dialog{inset:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;box-shadow:none;background:#101d23}
.chat-page #chat-dialog main,.chat-page #chat-dialog .chat-view-controls,.chat-page #chat-dialog .dialog-heading{max-width:920px;margin:0 auto;width:100%}.chat-page #chat-dialog .dialog-heading{padding-top:24px}.chat-page #chat-dialog .workspace{padding:24px}.chat-page #chat-dialog #chat{min-height:180px}.chat-page #chat-dialog .cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.chat-page #chat-dialog form{padding:18px 0}.chat-page #prompt{padding:16px}
@media(max-width:600px){.chat-view-controls{gap:8px;padding:10px 12px}.chat-view-controls button{font-size:12px}.chat-page #chat-dialog .workspace{padding:18px}.chat-page #chat-dialog .dialog-heading{padding-top:16px}}
#chat p{white-space:pre-line}#study-results{margin:12px 0}#study-results .card small{line-height:1.5}#study-results .card p{margin:8px 0}
#daily-card{margin-bottom:18px}#daily-card h3{color:#d8ebbf}#weather-content p{line-height:1.7}#daily-card a{color:#b9e9de}#direction-results section{border-top:1px solid #405750;margin-top:12px}#direction-results h4{margin:12px 0 4px}
/* Conversation first. Tools stay in an optional disclosure, composer stays visible. */
#chat-dialog[open]{display:flex;flex-direction:column;height:min(680px,calc(100dvh - 120px));overflow:hidden}


#chat-dialog .dialog-heading,#chat-dialog .chat-view-controls{flex-shrink:0}
#chat-dialog main{display:flex;flex:1;min-height:0;width:100%;overflow:hidden}
#chat-dialog .workspace{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;padding:0 18px 12px;overflow:hidden}
#chat-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 0;scroll-behavior:smooth}
#chat-dialog #chat{min-height:120px;padding:4px 0}
#chat-dialog #chat p{font-size:14px;line-height:1.8;margin:10px 0;padding:10px 12px;background:transparent}
#chat-dialog #chat .message-user{margin-left:28px;background:#23424a;border-radius:16px 16px 4px 16px}
#chat-dialog #chat .message-assistant{padding-left:0;padding-right:6px}
#chat-dialog #status{flex-shrink:0;font-size:12px;margin:3px 0;min-height:0}
#chat-dialog #form{position:static;flex-shrink:0;margin:0;padding:8px 0 0}
#chat-dialog #prompt{padding:12px;min-width:0}
#chat-dialog #chat-extras{margin:20px 0 6px;font-size:12px}
#chat-extras>summary{cursor:pointer;color:#92a8ad;padding:8px 0}
#chat-extras .scene-settings{border:0}
#chat-dialog #starter-prompts{margin:8px 0 14px}
#chat-dialog #starter-prompts button{border-radius:20px;background:transparent}
#chat-dialog #cloud-access{flex-shrink:0;margin:10px 0;padding:10px 12px;font-size:12px}
#chat-dialog #cloud-access p{margin:5px 0}
#chat-dialog #access-form{position:static;padding:4px 0;margin:0}
#chat-dialog #access-form input{min-width:0;width:100%}
#chat-dialog #access-form button{width:auto;flex:0 0 auto}
#chat-dialog #study-detail{margin:8px 0}
.website-preview.chat-page #chat-dialog{height:100dvh;max-height:100dvh}
.chat-page #chat-dialog main{max-height:none}
@media(max-width:600px){#chat-dialog[open]{height:65dvh;max-height:65dvh}.website-preview.chat-page #chat-dialog{height:100dvh;max-height:100dvh}#chat-dialog .dialog-heading{padding:12px 14px}#chat-dialog .workspace{padding:0 14px 10px}}

.message-assistant p{margin:0 0 .75em}.message-assistant p:last-child{margin-bottom:0}.message-assistant ul,.message-assistant ol{padding-left:1.4em;margin:.5em 0}.message-assistant li{margin:.3em 0}.message-assistant code{font-size:.9em;overflow-wrap:anywhere}

/* Chat bubbles: a clear speaker, compact text, and a local robot avatar. */
#chat-dialog #chat .message-assistant,#chat-dialog #chat .message-user{display:flex;align-items:flex-start;gap:9px;margin:16px 0;padding:0;background:none;border-radius:0;min-width:0}
#chat-dialog #chat .message-user{justify-content:flex-end;margin-left:36px}
.message-content{min-width:0;max-width:calc(100% - 41px)}
.message-user .message-content{max-width:92%}
.message-author{display:block;font-size:11px;line-height:1.5;color:#9cb6bc;margin:0 0 5px 2px}
.message-user .message-author{text-align:right;margin-right:3px}
.message-bubble{padding:12px 14px;border:1px solid #3d4b5c;border-radius:4px 16px 16px;background:#252f3d;color:#eaf0f5;font-size:14px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap}
.message-assistant .message-bubble{white-space:normal}
.message-user .message-bubble{background:#a9ded1;border-color:#bee8dd;border-radius:16px 4px 16px 16px;color:#142e31}
.bot-avatar{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border:1px solid #47838a;border-radius:11px;background:#1e565e;color:#d5f0d2;margin-top:19px}
.bot-avatar svg{width:25px;height:25px;display:block}
#chat-dialog #chat .message-bubble p{padding:0;margin:0 0 .7em;background:none;border:0;border-radius:0;font-size:inherit;line-height:inherit}
#chat-dialog #chat .message-bubble p:last-child{margin-bottom:0}
.message-bubble ul,.message-bubble ol{margin:.5em 0;padding-left:1.4em}
.typing-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.typing-dots{display:flex;align-items:center;gap:6px;min-height:20px}
.typing-dots i{width:7px;height:7px;border-radius:50%;background:#c0d0dd;animation:chat-typing-bounce 1.1s ease-in-out infinite}
.typing-dots i:nth-child(2){animation-delay:.14s}
.typing-dots i:nth-child(3){animation-delay:.28s}
@keyframes chat-typing-bounce{0%,60%,100%{transform:translateY(0);opacity:.6}30%{transform:translateY(-4px);opacity:1}}
@media(prefers-reduced-motion:reduce){.typing-dots i{animation:none}}
@media(max-width:600px){#chat-dialog #chat .message-assistant,#chat-dialog #chat .message-user{gap:7px}.bot-avatar{width:28px;height:28px;flex-basis:28px;border-radius:9px}.bot-avatar svg{width:23px;height:23px}.message-content{max-width:calc(100% - 35px)}.message-bubble{padding:10px 12px}}

#plan-results:not(:empty){margin:12px 0}
#photo-source a,.plan-source{color:#a9ded1}
.message-previous .message-bubble{border-style:dashed;color:#aebec8}

/* Pointer handles remain inside the clipped dialog. Only the floating view moves. */
body:not(.chat-page) #chat-dialog{z-index:22}
body:not(.chat-page) #chat-dialog.custom-window{inset:var(--window-y) auto auto var(--window-x);width:var(--window-width);height:var(--window-height);max-width:none;max-height:none}
body:not(.chat-page) .dialog-heading{cursor:grab;touch-action:none;user-select:none}
.dialog-heading button{cursor:pointer}
.window-hint{font-size:11px;color:#9fb4b9;flex:1}
.chat-view-controls{gap:6px;flex-wrap:wrap}
.chat-view-controls button{white-space:nowrap}
.window-resize{position:absolute;z-index:30;touch-action:none}
.window-resize:focus-visible,.dialog-heading:focus-visible{outline:2px solid #a9ded1;outline-offset:-4px}
.window-resize-n,.window-resize-s{left:18px;right:18px;height:8px;cursor:ns-resize}
.window-resize-n{top:0}.window-resize-s{bottom:0}
.window-resize-e,.window-resize-w{top:18px;bottom:18px;width:8px;cursor:ew-resize}
.window-resize-e{right:0}.window-resize-w{left:0}
.window-resize-nw,.window-resize-ne,.window-resize-sw,.window-resize-se{width:20px;height:20px}
.window-resize-nw{top:0;left:0;cursor:nwse-resize}.window-resize-ne{top:0;right:0;cursor:nesw-resize}
.window-resize-sw{bottom:0;left:0;cursor:nesw-resize}.window-resize-se{bottom:0;right:0;cursor:nwse-resize}
.window-resize-se:after{content:"";position:absolute;right:5px;bottom:5px;width:7px;height:7px;border-right:2px solid #91a8ad;border-bottom:2px solid #91a8ad}
.chat-page .window-resize,.chat-page .window-hint{display:none}
.chat-window-dragging,.chat-window-dragging *{user-select:none!important}
.chat-window-dragging #airport-website{pointer-events:none}
.chat-window-dragging .dialog-heading{cursor:grabbing}

.verification-panel{flex:none;padding:10px 14px;border:1px solid var(--line,#385052);border-radius:14px;max-height:220px;overflow:auto}.verification-panel p{margin:0 0 8px;font-size:13px}.verification-panel:has(iframe){min-height:40px}

/* Slightly clearer launcher, same placement, colour and shape. */
.website-preview #chat-launcher { font-size: 16px; font-weight: 600; padding: 17px 26px; }
