.assistant-widget { position: relative; z-index: 45; }
.assistant-launch { position: fixed; right: max(1rem,env(safe-area-inset-right)); bottom: max(1rem,env(safe-area-inset-bottom)); border: 1px solid #ffffff50; background: #07334f; color: #fff; padding: .8rem 1.1rem; border-radius: 99px; display: flex; align-items: center; gap: .65rem; min-height: 52px; box-shadow: 0 6px 24px #00375830; }
.assistant-launch svg { width: 24px; height: 24px; flex-shrink: 0; }
.assistant-dialog { position: fixed; inset: auto 1rem 1rem auto; margin: 0; width: min(440px,calc(100vw - 2rem)); height: min(680px,calc(100dvh - 2rem)); max-width: none; max-height: none; padding: 0; border: 1px solid #d6e4ed; border-radius: .85rem; color: #11263a; background: #f5f8fb; box-shadow: 0 16px 60px #002b4b35; overflow: hidden; }
.assistant-dialog[open] { display: flex; flex-direction: column; }
.assistant-dialog::backdrop { background: #08253624; }
.assistant-head { background: #07334f; color: #fff; padding: 1.1rem; display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-shrink: 0; }
.assistant-head h2 { font-size: 1.1rem; color: #fff; margin: 0; letter-spacing: -.01em; }
.assistant-head p { color: #c4ddeb; font-size: .78rem; margin: .3rem 0 0; }
.assistant-close { border: 1px solid #ffffff35; background: transparent; color: #fff; border-radius: .35rem; width: 44px; height: 44px; font-size: 1.4rem; flex-shrink: 0; }
.assistant-notice { font-size: .75rem; color: #475e6f; padding: .8rem 1rem; margin: 0; background: #e8f0f5; flex-shrink: 0; }
.assistant-notice a { text-decoration: underline; }
.assistant-log { overflow-y: auto; flex: 1; min-height: 0; padding: 1rem; display: flex; flex-direction: column; gap: .8rem; scroll-padding: 1rem; }
.assistant-message { background: #fff; padding: .9rem 1rem; border: 1px solid #dce6ee; border-radius: .6rem .6rem .6rem 0; font-size: .9rem; line-height: 1.55; overflow-wrap: anywhere; }
.assistant-message p { color: #243f52; margin: 0; white-space: pre-wrap; }
.assistant-message ul { padding-left: 1.2rem; margin: .6rem 0 0; }
.assistant-message--user { background: #dfeef6; border-color: #c6dfea; margin-left: 1.5rem; border-radius: .6rem .6rem 0 .6rem; }
.assistant-link { display: inline-block; padding: .6rem .8rem; margin: .75rem .4rem 0 0; border: 0; border-radius: .3rem; background: #07334f; color: #fff; font-size: .82rem; min-height: 44px; text-decoration: none; text-align: left; }
.assistant-link--secondary { background: #e8f0f5; color: #07334f; }
.assistant-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.assistant-actions .assistant-link { display: inline-flex; align-items: center; margin: 0; max-width: 100%; }
.assistant-form { padding: .75rem 1rem 1rem; display: grid; gap: .5rem; background: #fff; border-top: 1px solid #dce6ee; flex-shrink: 0; }
.assistant-form label { font-size: .78rem; font-weight: 600; }
.assistant-input-row { display: flex; gap: .5rem; align-items: stretch; }
.assistant-form textarea { min-width: 0; min-height: 62px; max-height: 120px; border: 1px solid #c6d9e5; border-radius: .35rem; padding: .6rem .75rem; font-size: .9rem; resize: none; }
.assistant-form button[type=submit] { background: #07334f; color: #fff; border: 0; border-radius: .35rem; padding: .65rem; min-width: 52px; font-size: .85rem; }
.assistant-form button:disabled { opacity: .6; cursor: wait; }
.assistant-status { margin: 0; min-height: 1.25rem; font-size: .75rem; }
.assistant-reset { border: 0; background: transparent; color: #405c70; justify-self: start; text-decoration: underline; font-size: .75rem; padding: .4rem 0; min-height: 32px; }
.enquiry-preview { font-family: inherit; white-space: pre-wrap; overflow-wrap: anywhere; padding: .75rem; background: #edf4f8; border-radius: .3rem; }
@media(max-width:520px) {
 .assistant-launch { padding: .75rem; }
 .assistant-launch span { font-size: .8rem; }
 .assistant-dialog { inset: auto 0 0; width: 100%; height: min(760px,100dvh); border-radius: .75rem .75rem 0 0; padding-bottom: env(safe-area-inset-bottom); }
 .assistant-notice { padding: .6rem 1rem; }
}
