/* Optional DEV service assistant. Native dialog provides focus containment. */
.tc-chat-launcher { position:fixed; right:24px; bottom:24px; z-index:1040; display:flex; align-items:center; gap:10px; min-height:48px; padding:12px 18px; border:1px solid #80d4ae; border-radius:28px; background:#0d3047; color:#fff; box-shadow:0 4px 20px #071b3029; font:600 15px Montserrat,"Open Sans",sans-serif; }
.tc-chat-launcher[hidden] { display:none; }
body:has([data-tc-chat]) a.back-top { right:24px; bottom:88px; }
.tc-chat-dialog { position:fixed; inset:0; margin:auto; width:min(560px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:0; border:1px solid #cbdde4; border-radius:16px; background:#fff; color:#1d3546; box-shadow:0 20px 80px #071b304d; font:400 16px/1.6 "Open Sans",sans-serif; }
.tc-chat-dialog::backdrop { background:#071b3099; }
.tc-chat-dialog:not([open]) { display:none; }
.tc-chat-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; background:#071b30; color:#fff; }
.tc-chat-header h2 { margin:0; color:#fff; font:600 20px/1.3 Montserrat,sans-serif; }
.tc-chat-header button { flex:0 0 44px; min-height:44px; border:1px solid #8299a8; border-radius:6px; background:transparent; color:#fff; font-size:26px; }
.tc-chat-body { padding:20px; overflow-y:auto; max-height:calc(100dvh - 120px); overscroll-behavior:contain; }
.tc-chat-body p { margin:0 0 14px; font-size:15px; line-height:1.6; }
.tc-chat-log { display:grid; gap:12px; margin:20px 0; }
.tc-chat-message { padding:14px 16px; border:1px solid #d6e3e9; border-radius:12px; background:#f0f7f6; overflow-wrap:anywhere; }
.tc-chat-message.is-user { margin-left:24px; background:#fff; }
.tc-chat-message strong { display:block; margin-bottom:6px; color:#176449; font-size:13px; }
.tc-chat-message p { margin:0; white-space:pre-wrap; }
.tc-chat-dialog a { color:#145d49; text-decoration:underline; text-underline-offset:3px; }
.tc-chat-message a { display:inline-flex; align-items:center; min-height:44px; margin-top:6px; font-weight:600; }
.tc-chat-examples { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.tc-chat-examples button, .tc-chat-footer button { min-height:44px; padding:8px 12px; border:1px solid #cbdde4; border-radius:8px; background:#fff; color:#0d3047; font-size:14px; line-height:1.4; }
.tc-chat-dialog label { display:block; margin-bottom:8px; font-weight:600; font-size:15px; }
.tc-chat-dialog textarea { display:block; width:100%; min-height:90px; padding:12px; border:1px solid #8aa8b7; border-radius:8px; background:#fff; color:#1d3546; font:400 16px/1.5 "Open Sans",sans-serif; resize:vertical; }
.tc-chat-dialog .tc-chat-consent { display:flex; align-items:flex-start; gap:10px; margin:16px 0 10px; }
.tc-chat-consent input { flex:0 0 20px; width:20px; height:20px; margin-top:3px; accent-color:#176449; }
.tc-chat-body .tc-chat-note { font-size:13px; color:#435c6c; }
.tc-chat-send { min-height:48px; padding:12px 18px; border:0; border-radius:8px; background:#0d3047; color:#fff; font-weight:700; font-size:16px; }
.tc-chat-dialog button:disabled { opacity:.55; cursor:not-allowed; }
.tc-chat-body .tc-chat-status { margin:12px 0 0; font-weight:600; }
.tc-chat-status:empty { display:none; }
.tc-chat-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-top:20px; padding-top:16px; border-top:1px solid #cbdde4; }
.tc-chat-footer a { display:inline-flex; align-items:center; min-height:44px; }
.tc-chat-dialog :focus-visible, .tc-chat-launcher:focus-visible { outline:3px solid #80d4ae; outline-offset:3px; }
@media(max-width:575px) { .tc-chat-launcher { right:16px; bottom:16px; } .tc-chat-dialog { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:12px; } .tc-chat-header { padding:12px 16px; } .tc-chat-body { padding:16px; max-height:calc(100dvh - 100px); } .tc-chat-send { width:100%; } }
