.ohm-chat { --chat-green:var(--ohm-green,#193f10); --chat-paper:var(--ohm-paper,#ebebeb); --chat-gold:var(--ohm-gold,#d6b25e); color:#263322; font:16px/1.5 "PT Sans",Arial,sans-serif; letter-spacing:0; }
.ohm-chat *, .ohm-chat *::before, .ohm-chat *::after { box-sizing:border-box; }
.ohm-chat button,.ohm-chat textarea { font:inherit; letter-spacing:0; }
.ohm-chat button { cursor:pointer; }
.ohm-chat button:focus-visible,.ohm-chat a:focus-visible,.ohm-chat textarea:focus-visible,.ohm-chat [tabindex]:focus-visible { outline:3px solid var(--chat-green); outline-offset:3px; }
.ohm-chat-header button:focus-visible { outline-color:var(--chat-gold); }
.ohm-chat ::selection { background:var(--chat-gold); color:#193f10; }
.ohm-chat [hidden] { display:none!important; }
.ohm-chat a { color:var(--chat-green); text-underline-offset:3px; }
.ohm-chat-launcher { position:fixed; z-index:9998; bottom:24px; right:24px; min-height:60px; padding:6px 22px 6px 6px; border:0; border-radius:999px; background:var(--chat-green); color:#fff; display:flex; gap:10px; align-items:center; box-shadow:0 6px 20px #193f1026; }
.ohm-chat-launcher img { width:48px; height:48px; object-fit:cover; object-position:50% 18%; border-radius:50%; background:#e3e8de; }
.ohm-chat-launcher span { font-weight:700; }
.ohm-chat-panel { position:fixed; z-index:9999; right:24px; bottom:96px; display:flex; flex-direction:column; width:416px; max-width:calc(100vw - 32px); height:650px; max-height:calc(100dvh - 120px); background:var(--chat-paper); border-radius:16px; overflow:hidden; box-shadow:0 12px 44px #12220e30; animation:ohm-chat-open .16s ease-out; }
.ohm-chat-header { position:relative; display:flex; flex-shrink:0; align-items:center; min-height:128px; padding:24px; background:var(--chat-green); color:#fff; overflow:hidden; }
.ohm-chat-header h2 { position:relative; z-index:1; margin:0; color:inherit; font:700 28px/1.2 Montserrat,Arial,sans-serif; letter-spacing:0; }
.ohm-chat-header p { margin:6px 0 0; color:#e3ebdf; }
.ohm-chat-portrait { position:absolute; bottom:-2px; right:58px; width:96px; height:120px; object-fit:contain; object-position:bottom; }
.ohm-chat-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; border:0; background:none; padding:10px; }
.ohm-chat-icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ohm-chat-close { position:absolute; right:8px; top:8px; color:#fff; }
.ohm-chat-close:hover { background:#ffffff18; }
.ohm-chat-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:48px; padding:6px 20px; background:#dfe6db; font-size:13px; }
.ohm-chat-reset { flex-shrink:0; min-height:36px; border:0; background:transparent; color:var(--chat-green); padding:4px 2px; text-decoration:underline; text-underline-offset:3px; }
.ohm-chat-messages { flex:1; min-height:0; padding:20px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#8a9c82 #e5e9e1; }
.ohm-chat-message { max-width:100%; margin:0 0 16px; padding:0; overflow-wrap:anywhere; }
.ohm-chat-message p { margin:0; white-space:pre-wrap; }
.ohm-chat-message--user { margin-left:32px; background:var(--chat-green); color:#fff; border-radius:12px 12px 0 12px; padding:12px 16px; }
.ohm-chat-message--assistant { padding-right:16px; }
.ohm-chat-suggestions { display:flex; flex-direction:column; gap:8px; margin:20px 0 0; }
.ohm-chat-suggestions button { border:0; border-radius:4px; padding:10px 12px; text-align:left; color:var(--chat-green); background:#dde6d7; min-height:44px; }
.ohm-chat-suggestions button:hover { background:#d1ddc9; }
.ohm-chat-sources { display:flex; flex-wrap:wrap; gap:8px 16px; margin:10px 0 0; font-size:14px; }
.ohm-chat-feedback { padding:0 20px; min-height:24px; font-size:14px; }
.ohm-chat-feedback button { background:none; border:0; padding:4px 8px; min-height:36px; color:var(--chat-green); text-decoration:underline; }
.ohm-chat-form { flex-shrink:0; margin:0; padding:8px 20px 12px; }
.ohm-chat-form label { display:block; font-size:14px; font-weight:700; margin-bottom:6px; }
.ohm-chat-compose { display:flex; align-items:flex-end; gap:8px; background:#fff; border:1px solid #83947b; border-radius:8px; padding:6px; }
.ohm-chat-compose textarea { width:100%; min-width:0; height:52px; max-height:120px; resize:vertical; border:0; background:transparent; padding:6px 8px; color:#263322; caret-color:var(--chat-green); box-shadow:none; }
.ohm-chat-compose textarea::placeholder { color:#596652; opacity:1; }
.ohm-chat-send { background:var(--chat-green); color:#fff; border-radius:4px; }
.ohm-chat-send:disabled { background:#d6ded1; color:#66745e; cursor:default; }
.ohm-chat-note { margin:8px 0 0; font-size:12px; line-height:1.5; color:#4d5b46; }
.ohm-chat-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-shrink:0; padding:12px 20px; background:#dfe6db; font-size:13px; }
.ohm-chat-footer span { color:#4d5b46; }
.ohm-chat--inline .ohm-chat-panel { position:relative; right:auto; bottom:auto; z-index:auto; width:100%; max-width:100%; height:660px; max-height:none; box-shadow:none; border-radius:12px; }
.ohm-chat--inline .ohm-chat-portrait { right:24px; }
@keyframes ohm-chat-open { from { transform:translateY(8px); } to { transform:translateY(0); } }
@media(max-width:480px) { .ohm-chat-panel { right:12px; bottom:90px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 106px); } .ohm-chat-launcher { right:16px; bottom:16px; } .ohm-chat-header { min-height:112px; padding:20px; } .ohm-chat-portrait { width:84px; height:106px; right:54px; } .ohm-chat-toolbar,.ohm-chat-footer { padding-inline:16px; } .ohm-chat-messages { padding:16px; } .ohm-chat-form { padding-inline:16px; } .ohm-chat-feedback { padding-inline:16px; } }
@media(prefers-reduced-motion:reduce) { .ohm-chat-panel { animation:none; } }
@media(max-height:620px) { .ohm-chat:not(.ohm-chat--inline) .ohm-chat-header { min-height:84px; padding-block:12px; } .ohm-chat:not(.ohm-chat--inline) .ohm-chat-portrait { height:82px; } .ohm-chat:not(.ohm-chat--inline) .ohm-chat-toolbar { min-height:40px; } }
