.counsel-widget,
.counsel-dialog {
  --counsel-ink: var(--color-ink, #101a26);
  --counsel-navy: var(--color-navy, #222f40);
  --counsel-paper: var(--color-paper, #f2efde);
  --counsel-brass: var(--color-brass, #a67e4d);
  font-family: var(--font-body, Arial, sans-serif);
}

.counsel-widget { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 180; display: grid; justify-items: end; gap: 8px; }
.counsel-launch { display: inline-flex; align-items: center; gap: 8px; min-height: 56px; padding: 0; border: 0; background: transparent; color: var(--counsel-ink); cursor: pointer; }
.counsel-avatar { display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid var(--counsel-brass); border-radius: 14px; background: var(--counsel-navy); box-shadow: 0 6px 18px rgb(16 26 38 / 18%); }
.counsel-avatar svg { width: 42px; height: 42px; }
.counsel-label { padding: 7px 10px; border: 1px solid rgb(166 126 77 / 42%); border-radius: 999px; background: var(--counsel-paper); font-size: 12px; font-weight: 700; white-space: nowrap; }
.counsel-invitation { max-width: 260px; padding: 10px 12px; border: 1px solid rgb(166 126 77 / 45%); background: var(--counsel-paper); color: var(--counsel-ink); font-size: 13px; line-height: 1.4; box-shadow: 0 8px 22px rgb(16 26 38 / 14%); }
.counsel-dialog { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 190; display: flex; flex-direction: column; width: min(380px, calc(100vw - 32px)); height: min(680px, calc(100dvh - 32px)); max-height: min(680px, calc(100dvh - 32px)); overflow: hidden; border: 1px solid var(--counsel-brass); border-radius: 26px 12px 24px 12px; background: var(--counsel-paper); color: var(--counsel-ink); box-shadow: 0 16px 40px rgb(16 26 38 / 22%); }
.counsel-dialog[hidden], .counsel-invitation[hidden] { display: none; }
.counsel-header { display: flex; align-items: center; gap: 10px; padding: 12px; background: var(--counsel-navy); color: var(--counsel-paper); }
.counsel-header__avatar { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--counsel-brass); border-radius: 10px; background: var(--counsel-navy); }
.counsel-header__avatar svg { width: 30px; height: 30px; }
.counsel-header__copy { min-width: 0; flex: 1; }
.counsel-header__title { margin: 0; font: 600 18px/1.1 var(--font-display, Georgia, serif); }
.counsel-header__subtitle { margin: 3px 0 0; color: var(--counsel-paper); font-size: 11px; opacity: .82; }
.counsel-icon-button { width: 34px; height: 34px; border: 1px solid rgb(242 239 222 / 50%); background: transparent; color: var(--counsel-paper); cursor: pointer; font-size: 18px; }
.counsel-messages { flex: 1; min-height: 160px; overflow: auto; padding: 14px; }
.counsel-message { width: fit-content; max-width: 88%; margin: 0 0 10px; padding: 10px 13px; border: 1px solid rgb(16 26 38 / 12%); border-radius: 13px 13px 13px 4px; background: #fffdf3; font-size: 14px; line-height: 1.5; }
.counsel-message--visitor { margin-left: auto; border-color: var(--counsel-brass); border-radius: 13px 13px 4px 13px; background: var(--counsel-brass); color: var(--counsel-ink); }
.counsel-message p { margin: 0 0 8px; }.counsel-message p:last-child { margin-bottom: 0; }
.counsel-message h3 { margin: 12px 0 5px; font-size: 14px; }.counsel-message ul { margin: 6px 0 0; padding-left: 20px; }
.counsel-sources { display: grid; gap: 6px; margin-top: 8px; }.counsel-source { padding: 7px; border-left: 2px solid var(--counsel-brass); font-size: 11px; }.counsel-source a { font-weight: 700; }
.counsel-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 14px 10px; }.counsel-action { padding: 8px 10px; border: 1px solid var(--counsel-brass); background: var(--counsel-brass); color: var(--counsel-ink); font-size: 12px; font-weight: 700; text-decoration: none; }
.counsel-composer { display: grid; grid-template-columns: minmax(0, 1fr) 70px; width: min(100%, 380px); gap: 8px; padding: 8px 14px max(8px, env(safe-area-inset-bottom)); border-top: 1px solid rgb(16 26 38 / 14%); }.counsel-composer textarea { height: 42px; min-height: 42px; max-height: 76px; overflow-y: hidden; resize: none; padding: 8px 10px; border: 1px solid rgb(16 26 38 / 38%); border-radius: 10px; background: #fffdf3; color: var(--counsel-ink); font-size: 16px; line-height: 1.25; }.counsel-send { width: 70px; min-width: 70px; height: 42px; align-self: start; border: 1px solid var(--counsel-brass); border-radius: 10px; background: var(--counsel-brass); color: var(--counsel-ink); font-weight: 700; cursor: pointer; }.counsel-status { grid-column: 1 / -1; min-height: 16px; color: var(--counsel-ink); font-size: 11px; }
.counsel-footer { display: flex; justify-content: space-between; gap: 8px; padding: 0 14px 10px; font-size: 10px; }.counsel-footer button { border: 0; padding: 0; background: transparent; color: var(--counsel-ink); text-decoration: underline; cursor: pointer; }
@media (max-width: 639px) { .counsel-widget { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); }.counsel-avatar { width: 52px; height: 52px; }.counsel-label { display: none; }.counsel-dialog { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); width: min(360px, calc(100vw - 24px)); height: min(560px, calc(var(--counsel-viewport-height, 100dvh) - 24px)); max-height: calc(var(--counsel-viewport-height, 100dvh) - 24px); border-radius: 24px 12px 24px 12px; }.counsel-root.counsel-keyboard-open .counsel-dialog { height: min(390px, calc(var(--counsel-viewport-height, 100dvh) - 16px)); max-height: calc(var(--counsel-viewport-height, 100dvh) - 16px); bottom: 8px; }.counsel-composer .counsel-send { height: auto; align-self: stretch; } }
