.olympus-launcher{position:fixed;right:var(--space-5);bottom:max(var(--space-5),env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-4);background:var(--gold,#d6b471);color:#101e2b;border:1px solid #aa8744;border-radius:4px;font:600 var(--text-sm)/1.2 var(--font-body);box-shadow:0 4px 18px #101e2b33;cursor:pointer}
.olympus-chat-mark{font:600 var(--text-lg)/1 var(--font-body);border:1px solid currentColor;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}
.olympus-launcher:hover{background:#e4c88e}.olympus-launcher:focus-visible,.olympus-chat :focus-visible{outline:3px solid var(--accent,#9e7330);outline-offset:3px}
.olympus-chat{position:fixed;inset:auto var(--space-5) var(--space-5) auto;width:min(440px,calc(100vw - 32px));height:min(740px,calc(100dvh - 40px));max-width:none;max-height:none;margin:0;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);box-shadow:0 12px 60px #101e2b40;overflow:hidden;font:400 var(--text-base)/1.5 var(--font-body)}
.olympus-chat::backdrop{background:#07121c38}.olympus-chat[open]{display:flex;flex-direction:column}
.olympus-chat-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--navy,#101e2b);color:#f8f5ed;flex-shrink:0}
.olympus-chat-head h2{font:500 var(--text-xl)/1.15 var(--font-display);margin:0;color:#e4c88e}
.olympus-chat-head p{font-size:var(--text-xs);margin:var(--space-1) 0 0;color:#d4dce3}
.olympus-chat-actions{display:flex;gap:var(--space-1);align-items:center}
.olympus-chat-actions button{background:transparent;border:1px solid #ffffff40;color:#fff;min-width:44px;min-height:44px;padding:var(--space-2);font:600 var(--text-xs)/1.2 var(--font-body);border-radius:3px;cursor:pointer}
.olympus-chat-actions .olympus-close{font-size:var(--text-xl);font-weight:400}
.olympus-chat-context{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:var(--surface2);flex-shrink:0}
.olympus-chat-context label{display:block;font-size:var(--text-xs);font-weight:600;margin-bottom:var(--space-1)}
.olympus-chat select{width:100%;height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:var(--space-2);border-radius:3px;font:400 var(--text-sm)/1.2 var(--font-body)}
.olympus-chat-log{flex:1;overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:var(--space-4);scroll-behavior:smooth}
.olympus-chat-welcome h3{font:600 var(--text-lg)/1.3 var(--font-body);margin:0 0 var(--space-2)}
.olympus-chat-welcome p{font-size:var(--text-sm);margin:0 0 var(--space-4);color:var(--muted)}
.olympus-chat-prompts{display:grid;gap:var(--space-2)}
.olympus-chat-prompts button,.olympus-retry{min-height:44px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);padding:var(--space-2) var(--space-3);text-align:left;font:400 var(--text-sm)/1.35 var(--font-body);border-radius:3px;cursor:pointer}
.olympus-chat-prompts button:hover{border-color:var(--accent)}
.olympus-message{margin-bottom:var(--space-5);max-width:100%;overflow-wrap:anywhere}
.olympus-message-label{font-size:var(--text-xs);font-weight:600;color:var(--muted);display:block;margin-bottom:var(--space-2)}
.olympus-message p{margin:0 0 var(--space-3);white-space:pre-wrap;font-size:var(--text-base);line-height:1.55}
.olympus-message-user{margin-left:var(--space-6);padding:var(--space-3);background:var(--surface2);border-radius:4px}
.olympus-message-user p{margin:0;font-size:var(--text-sm)}
.olympus-message-sources{border-top:1px solid var(--line);padding-top:var(--space-2);font-size:var(--text-xs)}
.olympus-message-sources span{display:block;color:var(--muted)}
.olympus-message-sources a{display:block;color:var(--accent);text-decoration:underline;text-underline-offset:3px;min-height:44px;padding-block:var(--space-2);font-size:var(--text-sm)}
.olympus-chat-status{font-size:var(--text-sm);color:var(--muted);padding:var(--space-2) 0;min-height:24px}
.olympus-chat-form{padding:var(--space-3) var(--space-4) max(var(--space-3),env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}
.olympus-chat-form label{display:block;font-size:var(--text-xs);font-weight:600;margin-bottom:var(--space-2)}
.olympus-chat-compose{display:flex;align-items:stretch;gap:var(--space-2)}
.olympus-chat textarea{resize:none;min-height:64px;max-height:120px;width:100%;min-width:0;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);padding:var(--space-2) var(--space-3);font:400 1rem/1.45 var(--font-body)}
.olympus-chat-send{min-width:64px;min-height:44px;padding:var(--space-2);background:var(--gold,#d6b471);color:#101e2b;border:1px solid #aa8744;border-radius:3px;font:600 var(--text-sm)/1.2 var(--font-body);cursor:pointer}
.olympus-chat-send:disabled{opacity:.5;cursor:wait}
.olympus-chat-notice{font-size:var(--text-xs);line-height:1.4;color:var(--muted);margin:var(--space-2) 0 0}
.olympus-chat-notice a{color:var(--accent);text-decoration:underline}
.olympus-inline-ask{margin:var(--space-3) 0;min-height:44px;background:transparent;color:var(--accent);border:1px solid var(--line);border-radius:3px;padding:var(--space-2) var(--space-4);font:600 var(--text-sm)/1.3 var(--font-body);cursor:pointer}
.olympus-preview-note{padding:var(--space-3);background:var(--surface2);border:1px solid var(--line);font-size:var(--text-sm)}
@media(max-width:600px){.olympus-launcher{right:var(--space-3);bottom:max(var(--space-3),env(safe-area-inset-bottom));min-height:44px}.olympus-chat{inset:auto 0 0;width:100%;height:min(88dvh,760px);border-radius:12px 12px 0 0;border-bottom:0}.olympus-chat-head{padding:var(--space-3)}.olympus-chat-head h2{font-size:var(--text-lg);font-family:var(--font-body);font-weight:600}.olympus-chat-context{padding:var(--space-2) var(--space-3)}.olympus-chat-log{padding:var(--space-3)}.olympus-chat-form{padding-inline:var(--space-3)}html.olympus-chat-open{overflow:hidden}}
@media(max-height:560px){.olympus-chat{height:100dvh;inset:0 0 0 auto}.olympus-chat-context{padding-block:var(--space-1)}.olympus-chat-context label,.olympus-chat-head p{display:none}.olympus-chat textarea{min-height:44px;height:44px}.olympus-chat-head{padding-block:var(--space-1)}}
@media(prefers-reduced-motion:reduce){.olympus-chat-log{scroll-behavior:auto}}
.olympus-upload{margin-bottom:var(--space-2)}
.olympus-upload-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}
.olympus-upload-row>span{font-size:var(--text-xs);color:var(--muted);line-height:1.3}
.olympus-image-add,.olympus-image-remove{min-height:44px;padding:var(--space-2);border:1px solid var(--line);border-radius:3px;background:var(--surface2);color:var(--ink);font:600 var(--text-xs)/1.3 var(--font-body);cursor:pointer;flex-shrink:0}
.olympus-attachment{border:1px solid var(--line);border-radius:3px;padding:var(--space-2);background:var(--surface2)}
.olympus-attachment-row{display:flex;gap:var(--space-2);align-items:center}
.olympus-attachment-row>div{flex:1;min-width:0}
.olympus-attachment strong{font-size:var(--text-sm);font-weight:600}
.olympus-attachment p{font-size:var(--text-xs);line-height:1.3;color:var(--muted);margin:2px 0 0}
.olympus-image-preview{width:52px;height:52px;border:1px solid var(--line);background:var(--bg);border-radius:2px;padding:2px;flex-shrink:0;cursor:zoom-in}
.olympus-image-preview img{width:100%;height:100%;object-fit:contain}
.olympus-chat-form .olympus-image-consent{display:flex;gap:var(--space-2);align-items:center;min-height:44px;font-size:var(--text-xs);font-weight:400;margin:var(--space-1) 0 0;line-height:1.35}
.olympus-image-consent input{width:18px;height:18px;margin:0;accent-color:var(--gold);flex-shrink:0}
.olympus-message-image-label{display:block;font-size:var(--text-xs);color:var(--muted);padding-bottom:var(--space-2)}
.olympus-reading{margin-top:var(--space-2);border-top:1px solid var(--line);font-size:var(--text-sm)}
.olympus-reading summary{min-height:44px;padding-block:var(--space-2);cursor:pointer;font-weight:600}
.olympus-reading p,.olympus-reading li{font-size:var(--text-sm);line-height:1.45}
.olympus-reading ul{padding-left:var(--space-5);list-style:disc}
.olympus-chat.olympus-has-image{height:min(860px,calc(100dvh - 24px))}
.olympus-image-review{inset:0;margin:auto;padding:var(--space-4);width:min(900px,94vw);max-width:94vw;height:90dvh;max-height:90dvh;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;overflow:hidden;font:400 var(--text-sm)/1.4 var(--font-body)}
.olympus-image-review[open]{display:flex;flex-direction:column;gap:var(--space-3)}
.olympus-image-review::backdrop{background:#07121cd9}
.olympus-image-review img{width:100%;min-height:0;flex:1;object-fit:contain}
.olympus-image-review button{align-self:flex-end;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--line);background:var(--surface2);color:var(--ink);font:600 var(--text-sm)/1.3 var(--font-body);border-radius:3px}
.olympus-image-review p{font-size:var(--text-xs);color:var(--muted);flex-shrink:0}
@media(max-width:600px){.olympus-chat.olympus-has-image{height:96dvh}.olympus-upload-row>span{font-size:11px}.olympus-has-image .olympus-chat-context{padding-block:var(--space-1)}}
@media(max-height:560px){.olympus-chat.olympus-has-image{height:100dvh}.olympus-has-image .olympus-chat-context{display:none}.olympus-attachment{padding-block:2px}.olympus-attachment p{display:none}.olympus-image-preview{width:44px;height:44px}.olympus-chat-status:empty{display:none}}
.olympus-compact.olympus-has-image .olympus-chat-context,.olympus-compact.olympus-has-image .olympus-upload-row,.olympus-compact .olympus-chat-head p{display:none}
.olympus-compact .olympus-chat-head{padding-block:var(--space-1)}
.olympus-compact.olympus-has-image .olympus-chat-form{padding-top:var(--space-2)}
.olympus-compact textarea{height:44px;min-height:44px}
.olympus-compact .olympus-chat-status:empty{display:none}
.olympus-short .olympus-chat-context{display:none}
.olympus-short .olympus-chat-form>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.olympus-short .olympus-attachment{padding-block:2px}
.olympus-short .olympus-attachment p{display:none}
.olympus-short .olympus-image-preview{width:44px;height:44px}
.olympus-short .olympus-chat-status{padding-block:2px;max-height:36px;overflow:auto;font-size:var(--text-xs)}
.olympus-short .olympus-chat-notice{margin-top:var(--space-1)}
.olympus-short .olympus-chat-form{padding-bottom:var(--space-1)}
.olympus-short .olympus-chat-log{padding-block:var(--space-2)}
