/* GeorgienPlus GP03 — unified team chat, callback request and offline draft. */
.gp-entry-card { background: linear-gradient(140deg,#fffdf8,#f5f0e6); border: 1px solid #becbb6; border-radius: 9px; padding: 30px; box-shadow: 0 20px 45px #173c380b; }
.gp-entry-top { display: flex; gap: 16px; align-items: center; margin-bottom: 23px; }
.gp-chat-symbol { width: 53px; height: 53px; flex: 0 0 53px; display: grid; place-items: center; border: 1px solid #acbcaa; background: #e9eee3; color: #a6533b; border-radius: 50%; }
.gp-chat-icon { display: block; width: 24px; height: 24px; }
.gp-chat-symbol .gp-chat-icon { width: 31px; height: 31px; }
.gp-eyebrow { display: block; font-size: 10px; font-weight: 650; letter-spacing: .12em; line-height: 1.6; }
.gp-entry-top h3 { font: 29px/1.15 Georgia,serif; letter-spacing: -.025em; color: #173c38; margin: 5px 0 0; }
.gp-entry-card .gp-entry-intro { color: #52665c; font-size: 14px; line-height: 1.8; }
.gp-entry-questions { display: grid; gap: 9px; margin: 24px 0; }
.gp-entry-question { width: 100%; min-height: 48px; border: 1px solid #d1dbca; border-radius: 5px; background: #fffdf8; color: #173c38; padding: 12px 17px; text-align: left; font-size: 13px; line-height: 1.55; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.gp-entry-question::after { content: '↗'; font-size: 19px; flex: 0 0 auto; color: #a8563c; }
.gp-entry-question:hover { background: #eaf0e5; border-color: #aebbA5; }
.gp-entry-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 21px; }
.gp-entry-note { margin-top: 21px; color: #596c62; font-size: 12px; line-height: 1.7; border-top: 1px solid #d8ded3; padding-top: 17px; }
.gp-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; border: 1px solid #173c38; border-radius: 4px; background: #173c38; color: #fffdf8; padding: 12px 20px; font: 600 13px/1.5 ui-sans-serif,system-ui,sans-serif; text-align: center; }
.gp-button:hover { background: #28554c; }
.gp-text-button,.gp-back { min-height: 44px; background: none; border: 0; color: #173c38; font: 600 12px/1.5 ui-sans-serif,system-ui,sans-serif; padding: 8px 0; text-align: left; }
.gp-text-button:hover,.gp-back:hover { text-decoration: underline; text-underline-offset: 4px; }
.gp-back::before { content:'←'; margin-right: 9px; font-size: 17px; }
.gp-launcher { position: fixed; z-index: 40; right: max(20px,env(safe-area-inset-right)); bottom: max(20px,env(safe-area-inset-bottom)); display: inline-flex; align-items: center; justify-content: center; gap: 12px; max-width: min(350px,calc(100% - 32px)); min-height: 55px; padding: 9px 18px 9px 10px; border: 1px solid #fffdf855; border-radius: 30px; color: #fffdf8; background: #173c38; box-shadow: 0 8px 30px #0c272b30; font: 600 13px/1.4 ui-sans-serif,system-ui,sans-serif; text-align: left; transition: background .2s,transform .2s; }
.gp-launcher:hover { background: #28554c; transform: translateY(-2px); }
.gp-launcher-symbol { width: 35px; height: 35px; flex: 0 0 35px; display: grid; place-items: center; background: #e7b896; color: #173c38; border-radius: 50%; }
.gp-chat-dialog { padding: 0; border: 1px solid #ced9c7; border-radius: 12px; color: #173c38; background: #f6f3ec; box-shadow: 0 20px 80px #061c1c55; width: min(460px,calc(100% - 36px)); height: min(800px,calc(100dvh - 36px)); max-width: none; max-height: calc(100dvh - 36px); margin: auto 18px 18px auto; inset: 0; overflow: hidden; font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.gp-chat-dialog::backdrop { background: #102d2b38; backdrop-filter: blur(3px); }
.gp-chat-shell { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }
.gp-chat-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 20px 21px 17px; background: #173c38; color: #fffdf8; flex-shrink: 0; }
.gp-chat-header-copy { min-width: 0; }
.gp-chat-header .gp-eyebrow { color: #c4d3c3; font-size: 9px; letter-spacing: .17em; }
.gp-chat-header h2 { font: 26px/1.12 Georgia,serif; letter-spacing: -.025em; margin: 5px 0 9px; color: #fffdf8; }
.gp-mode-badge { display: inline-flex; padding: 3px 8px; border: 1px solid #8aa89565; color: #dbe8d9; font-size: 10px; line-height: 1.4; border-radius: 3px; }
.gp-mode-badge[data-mode='ai'] { color: #eed0af; border-color: #e0b18270; }
.gp-mode-badge[data-mode='offline'] { color: #f0d1b9; border-color: #e0b18270; }
.gp-close { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid #d1dfce50; border-radius: 50%; background: transparent; color: #fffdf8; font: 27px/1 ui-sans-serif,system-ui,sans-serif; padding: 0; display: grid; place-items: center; }
.gp-close:hover { background: #ffffff18; }
.gp-connection { background: #e8ede2; padding: 10px 20px; border-bottom: 1px solid #d2dccb; flex-shrink: 0; }
.gp-connection p { font-size: 11px; line-height: 1.55; color: #4b6255; margin: 0; }
.gp-connection .gp-text-button { min-height: 44px; padding-block: 5px; font-size: 11px; }
.gp-chat-view { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.gp-message-log { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px 18px 12px; scroll-behavior: smooth; scrollbar-width: thin; }
.gp-message { width: fit-content; max-width: 93%; padding: 13px 15px; border-radius: 10px; margin: 0 0 13px; overflow-wrap: anywhere; }
.gp-message-assistant { background: #fffdf8; border: 1px solid #d7dfcf; border-bottom-left-radius: 3px; margin-right: auto; }
.gp-message-user { background: #214b42; color: #fffdf8; border: 1px solid #214b42; border-bottom-right-radius: 3px; margin-left: auto; }
.gp-message-author { display: block; font-size: 10px; font-weight: 650; line-height: 1.5; margin-bottom: 6px; color: #5d7363; }
.gp-message-user .gp-message-author { color: #ccdec9; }
.gp-message p { color: inherit; white-space: pre-wrap; font-size: 14px; line-height: 1.75; margin: 0; }
.gp-answer-source { display: block; color: #718373; font-size: 9px; letter-spacing: .04em; line-height: 1.5; margin-top: 9px; }
.gp-quick-questions { display: flex; gap: 7px; padding: 0 0 13px; flex-wrap: wrap; flex-shrink: 0; }
.gp-question-chip { flex: 0 1 auto; min-height: 44px; max-width: 100%; border: 1px solid #bfceb6; border-radius: 20px; color: #274c3e; background: #f3f5ed; padding: 8px 12px; font-size: 11px; line-height: 1.4; text-align: left; }
.gp-question-chip:hover { background: #e1ead8; }
.gp-chat-status-row { padding: 0 18px; flex-shrink: 0; }
.gp-chat-status { font-size: 12px; line-height: 1.55; color: #81533f; margin: 0; }
.gp-chat-status:empty { display: none; }
.gp-chat-status-row .gp-text-button { font-size: 11px; min-height: 44px; padding-block: 5px; }
.gp-composer { margin: 0; padding: 10px 16px 0; display: flex; gap: 8px; align-items: flex-end; border-top: 1px solid #d9e1d2; background: #fffdf8; flex-shrink: 0; }
.gp-composer textarea { width: 100%; min-width: 0; min-height: 55px; max-height: 110px; resize: vertical; font-size: 16px; line-height: 1.45; padding: 10px 12px; color: #173c38; background: #fffdf8; border: 1px solid #b7c7ae; border-radius: 5px; }
.gp-send { flex: 0 0 auto; min-height: 46px; margin-bottom: 4px; border: 1px solid #173c38; border-radius: 5px; background: #173c38; color: #fffdf8; font: 600 12px/1.4 ui-sans-serif,system-ui,sans-serif; padding: 10px 12px; }
.gp-send:hover { background: #2e5a4f; }
.gp-chat-hint { margin: 0; padding: 6px 18px 11px; background: #fffdf8; color: #6b7b6e; font-size: 10px; line-height: 1.5; flex-shrink: 0; }
.gp-chat-footer { padding: 11px 18px; border-top: 1px solid #d7dfcf; background: #ecf0e6; flex-shrink: 0; }
.gp-contact-action { min-height: 44px; width: 100%; background: transparent; border: 1px solid #9faf96; border-radius: 4px; color: #173c38; font-size: 12px; font-weight: 600; line-height: 1.5; padding: 10px 14px; text-align: center; }
.gp-contact-action:hover { background: #dce7d3; }
.gp-callback-view,.gp-success-view { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 11px 23px 25px; scrollbar-width: thin; }
.gp-callback-view h3,.gp-success-view h3 { font: 31px/1.1 Georgia,serif; letter-spacing: -.03em; margin: 10px 0 15px; }
.gp-callback-intro { font-size: 13px; line-height: 1.7; margin: 0 0 23px; color: #53685b; }
.gp-field { min-width: 0; margin: 0 0 18px; }
.gp-field > label { display: block; color: #284c3d; font-size: 12px; line-height: 1.5; font-weight: 550; margin-bottom: 7px; }
.gp-required { color: #9d5439; }
.gp-field input,.gp-field select,.gp-field textarea { display: block; width: 100%; max-width: 100%; min-height: 46px; color: #173c38; background: #fffdf8; border: 1px solid #b7c7ae; border-radius: 4px; font-size: 16px; line-height: 1.5; padding: 10px 12px; }
.gp-field textarea { resize: vertical; min-height: 96px; }
.gp-honeypot { display: none !important; }
.gp-check { min-height: 44px; display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.7; cursor: pointer; margin: 16px 0; }
.gp-check input { accent-color: #173c38; width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; margin: 2px 0 0; padding: 0; }
.gp-check small { display: block; font-size: 10px; line-height: 1.65; color: #6b7d6c; margin-top: 5px; }
.gp-plan-choice { padding: 1px 14px 13px; background: #e7ede0; border: 1px solid #d1ddc9; border-radius: 4px; margin-bottom: 19px; }
.gp-plan-choice .gp-check { margin-bottom: 9px; }
.gp-plan-summary { font-size: 11px; line-height: 1.8; color: #4b6452; white-space: pre-wrap; }
.gp-form-note { font-size: 10px; line-height: 1.7; color: #637766; margin: 11px 0; }
.gp-submit { width: 100%; margin: 7px 0; }
.gp-form-status { white-space: pre-wrap; font-size: 12px; line-height: 1.7; color: #86543d; padding: 12px; border-left: 2px solid #b75f43; background: #f5eadd; margin: 13px 0; }
.gp-form-status:empty { display: none; }
.gp-local-draft { border-top: 1px solid #cbd8c2; margin-top: 19px; padding-top: 6px; }
.gp-local-draft .gp-form-note { margin-top: 0; }
.gp-success-view { padding-top: 33px; }
.gp-success-view p { font-size: 14px; line-height: 1.8; color: #536b5b; }
.gp-success-mark { display: grid; place-items: center; width: 60px; height: 60px; background: #dfebd8; color: #315b44; border: 1px solid #a9c09b; border-radius: 50%; font-size: 27px; margin-bottom: 25px; }
.gp-receipt-box { display: flex; flex-direction: column; gap: 7px; padding: 18px; background: #e5ede0; border: 1px solid #c5d6bb; border-radius: 5px; margin: 24px 0; overflow-wrap: anywhere; }
.gp-receipt-box > span { font-size: 11px; color: #546d59; }
.gp-receipt { font-family: ui-monospace,SFMono-Regular,monospace; color: #173c38; font-size: 20px; line-height: 1.5; }
.gp-success-view .gp-button { width: 100%; margin: 20px 0 5px; }
.gp-success-view p.gp-form-note { font-size: 11px; }
.gp-chat-dialog button:disabled,.gp-entry-card button:disabled { opacity: .55; cursor: not-allowed; }
.gp-chat-dialog input:disabled,.gp-chat-dialog textarea:disabled,.gp-chat-dialog select:disabled { opacity: .75; }
.gp-entry-card :focus-visible,.gp-launcher:focus-visible,.gp-chat-dialog :focus-visible { outline: 3px solid #b75f43; outline-offset: 3px; }
.gp-chat-header :focus-visible { outline-color: #e8bd91; }
@media (max-width: 640px) {
  .gp-entry-card { padding: 24px 21px; }
  .gp-entry-top { gap: 13px; }
  .gp-chat-symbol { width: 45px; height: 45px; flex-basis: 45px; }
  .gp-chat-symbol .gp-chat-icon { width: 27px; height: 27px; }
  .gp-entry-top h3 { font-size: 27px; }
  .gp-entry-actions { flex-direction: column; align-items: stretch; gap: 4px; }
  .gp-entry-actions .gp-text-button { text-align: center; }
  .gp-launcher { right: max(12px,env(safe-area-inset-right)); bottom: max(12px,env(safe-area-inset-bottom)); padding-right: 15px; font-size: 12px; min-height: 52px; gap: 10px; max-width: calc(100% - 24px); }
  .gp-launcher-symbol { width: 31px; height: 31px; flex-basis: 31px; }
  .gp-launcher-symbol .gp-chat-icon { width: 21px; height: 21px; }
  .gp-chat-dialog { width: calc(100% - 16px); height: min(780px,calc(100dvh - 16px)); max-height: calc(100dvh - 16px); margin: auto 8px 8px; border-radius: 10px; }
  .gp-chat-header { padding: 16px 16px 14px; }
  .gp-chat-header h2 { font-size: 24px; }
  .gp-connection { padding-inline: 16px; }
  .gp-message-log { padding-inline: 13px; }
  .gp-message { max-width: 96%; padding: 12px 13px; }
  .gp-message p { font-size: 14px; }
  .gp-quick-questions { gap: 6px; }
  .gp-question-chip { min-height: 44px; padding: 8px 11px; font-size: 11px; }
  .gp-chat-status-row { padding-inline: 14px; }
  .gp-composer { padding-inline: 12px; gap: 7px; }
  .gp-send { font-size: 11px; padding-inline: 9px; }
  .gp-chat-hint { padding-inline: 14px; font-size: 10px; }
  .gp-chat-footer { padding: 9px 13px; }
  .gp-callback-view,.gp-success-view { padding-inline: 19px; }
  .gp-callback-view h3,.gp-success-view h3 { font-size: 30px; }
}
@media (max-width: 370px) {
  .gp-entry-top h3 { font-size: 24px; }
  .gp-entry-card { padding-inline: 18px; }
  .gp-chat-header h2 { font-size: 22px; }
  .gp-chat-header { gap: 9px; }
  .gp-callback-view,.gp-success-view { padding-inline: 16px; }
}
@media (max-height: 620px) {
  .gp-chat-header { padding-block: 10px; }
  .gp-chat-header h2 { font-size: 21px; }
  .gp-connection { padding-block: 7px; }
  .gp-chat-footer { padding-block: 6px; }
  .gp-chat-hint { padding-bottom: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .gp-message-log { scroll-behavior: auto; }
  .gp-launcher { transition: none; }
  .gp-launcher:hover { transform: none; }
}
body[data-motion='off'] .gp-message-log { scroll-behavior: auto; }
body[data-motion='off'] .gp-launcher:hover { transform: none; }

.gp-chat-dialog [hidden],.gp-entry-card [hidden] { display: none !important; }
