.gkcai { --gkcai-primary:#18584b; box-sizing:border-box; width:100%; max-width:850px; margin:24px auto; padding:clamp(18px,4vw,36px); border:1px solid #d9e3df; border-radius:18px; background:#f8faf8; color:#20382f; font:400 16px/1.55 system-ui,sans-serif; overflow-wrap:anywhere; text-align:left; }
.gkcai *, .gkcai *::before, .gkcai *::after { box-sizing:border-box; }
.gkcai .gkcai-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.gkcai .gkcai-heading h2 { margin:4px 0 0; padding:0; font:650 clamp(24px,4vw,32px)/1.2 system-ui,sans-serif; color:inherit; }
.gkcai .gkcai-eyebrow { display:block; font-size:12px; font-weight:650; letter-spacing:.05em; }
.gkcai p { margin:0 0 12px; padding:0; font-family:inherit; font-size:inherit; font-weight:400; line-height:inherit; color:inherit; }
.gkcai .gkcai-intro { margin-top:22px; font-size:17px; }
.gkcai .gkcai-privacy, .gkcai .gkcai-hint { font-size:12px; color:#50645c; }
.gkcai a { color:var(--gkcai-primary); font-weight:inherit; }
.gkcai button { font:600 14px/1.4 system-ui,sans-serif; cursor:pointer; border:1px solid #b9cdc3; border-radius:8px; padding:10px 14px; color:#20382f; background:#fff; max-width:100%; white-space:normal; overflow-wrap:anywhere; transition:background-color .15s ease; }
.gkcai button:hover { background:#eaf2ed; }
.gkcai button:disabled { opacity:.6; cursor:default; }
.gkcai :is(button,a,textarea):focus-visible { outline:3px solid var(--gkcai-primary); outline-offset:3px; }
.gkcai .gkcai-reset { flex-shrink:0; }
.gkcai .gkcai-controls { display:flex; align-items:center; gap:8px; }
.gkcai .gkcai-examples { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0; }
.gkcai .gkcai-messages { display:grid; gap:16px; }
.gkcai .gkcai-message { min-width:0; border:1px solid #e0e8e2; border-radius:12px; padding:18px; background:#fff; }
.gkcai .gkcai-message-user { background:#eaf0eb; margin-left:clamp(0px,4vw,40px); }
.gkcai .gkcai-message>p { white-space:pre-wrap; }
.gkcai .gkcai-role { display:block; font-size:12px; font-weight:700; margin-bottom:8px; }
.gkcai .gkcai-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.gkcai .gkcai-card { display:flex; flex-direction:column; min-width:0; gap:8px; padding:16px; border-radius:10px; background:#f4f7f4; box-shadow:inset 0 0 0 1px #d7e2da; color:#20382f; text-decoration:none; transition:background-color .15s ease; }
.gkcai a.gkcai-card:hover { background:#e6eee8; box-shadow:inset 0 0 0 1px var(--gkcai-primary); }
.gkcai .gkcai-card-excerpt { font-size:14px; }
.gkcai .gkcai-card-type { display:inline-block; max-width:calc(100% - 4px); margin-inline-start:4px; padding:1px 7px; border:1px solid #d7e2da; border-radius:5px; color:#4b6055; background:#edf2ee; font-size:12px; line-height:1.5; font-weight:500; vertical-align:middle; overflow-wrap:anywhere; }
.gkcai .gkcai-card-action { margin-top:auto; font-weight:650; font-size:13px; }
.gkcai .gkcai-feedback { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; font-size:13px; }
.gkcai .gkcai-feedback button { padding:6px 12px; }
.gkcai .gkcai-status { margin:14px 0; min-height:1.5em; font-size:14px; }
.gkcai .gkcai-status:empty { display:none; }
.gkcai .gkcai-form label { display:block; font-size:14px; font-weight:650; margin-bottom:7px; }
.gkcai .gkcai-compose { display:flex; align-items:stretch; gap:10px; }
.gkcai .gkcai-compose textarea { width:100%; min-width:0; resize:vertical; font:400 16px/1.5 system-ui,sans-serif; color:#20382f; background:#fff; border:1px solid #aabeb3; border-radius:8px; padding:12px; }
.gkcai .gkcai-send { background:var(--gkcai-primary); color:#fff; border-color:var(--gkcai-primary); min-width:80px; }
.gkcai .gkcai-send:hover { background:var(--gkcai-primary); filter:brightness(.94); }
.gkcai .gkcai-hint { margin-top:8px; }
/* Keep component text sizes intact inside high-specificity editorial theme rules. */
:is(#main-content,#page-container) .gkcai .gkcai-intro { font-size:17px; }
:is(#main-content,#page-container) .gkcai :is(.gkcai-privacy,.gkcai-hint) { font-size:12px; }
:is(#main-content,#page-container) .gkcai .gkcai-heading h2 { font:650 clamp(24px,4vw,32px)/1.2 system-ui,sans-serif; text-transform:none; color:inherit; }
@media(max-width:540px) { .gkcai .gkcai-cards { grid-template-columns:1fr; } .gkcai .gkcai-heading { align-items:flex-start; flex-wrap:wrap; } .gkcai .gkcai-heading>div { flex:1 1 100%; } .gkcai .gkcai-reset { padding:8px; font-size:12px; } .gkcai .gkcai-compose { flex-direction:column; } .gkcai .gkcai-message { padding:14px; } }

/* A single footer widget, independent of editorial page and Theme Builder layouts. */
.gkcai-widget { position:fixed; z-index:100000; right:max(20px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); font:400 16px/1.5 system-ui,sans-serif; }
.gkcai-widget [hidden] { display:none !important; }
.gkcai-widget .gkcai-launcher { display:flex; align-items:center; justify-content:center; gap:10px; max-width:calc(100vw - 40px); min-height:52px; padding:14px 20px; margin-left:auto; border:0; border-radius:28px; background:var(--gkcai-primary); color:#fff; box-shadow:0 4px 20px #0003; font:650 15px/1.4 system-ui,sans-serif; cursor:pointer; overflow-wrap:anywhere; }
.gkcai-widget .gkcai-launcher svg { flex-shrink:0; }
.gkcai-widget .gkcai-launcher:hover { filter:brightness(.94); }
.gkcai-widget .gkcai-launcher:focus-visible { outline:3px solid var(--gkcai-primary); outline-offset:4px; }
.gkcai-widget .gkcai-panel { position:absolute; right:0; bottom:calc(100% + 12px); width:min(440px,calc(100vw - 40px)); height:min(700px,calc(100dvh - 140px)); box-shadow:0 8px 40px #0003; border-radius:18px; }
.gkcai-widget .gkcai { display:flex; flex-direction:column; height:100%; max-height:100%; max-width:none; margin:0; padding:0; overflow:hidden; }
.gkcai-widget .gkcai .gkcai-heading { flex:none; padding:18px; gap:12px; border-bottom:1px solid #d9e3df; align-items:center; flex-wrap:nowrap; }
.gkcai-widget .gkcai .gkcai-heading>div { min-width:0; flex:1 1 auto; }
.gkcai-widget .gkcai .gkcai-heading h2 { font:650 20px/1.2 system-ui,sans-serif; text-transform:none; }
.gkcai-widget .gkcai .gkcai-heading .gkcai-controls { flex:0 0 auto; }
.gkcai-widget .gkcai .gkcai-reset { padding:7px; font-size:11px; }
.gkcai-widget .gkcai .gkcai-close { padding:0; width:36px; height:36px; font-size:26px; line-height:1; }
.gkcai-widget .gkcai .gkcai-expand { display:flex; align-items:center; justify-content:center; padding:0; width:36px; height:36px; }
.gkcai-widget .gkcai .gkcai-expand[aria-pressed=true] { background:#eaf2ed; }
.gkcai-widget.gkcai-expanded .gkcai-panel { width:min(900px,calc(100vw - 40px)); height:min(900px,calc(100dvh - 120px)); }
.gkcai-widget.gkcai-expanded .gkcai .gkcai-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gkcai-widget .gkcai .gkcai-body { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 18px 18px; scrollbar-gutter:stable; }
.gkcai-widget .gkcai .gkcai-intro { font-size:16px; margin-top:18px; }
.gkcai-widget .gkcai .gkcai-eyebrow { font-size:10px; }
.gkcai-widget .gkcai .gkcai-form { flex:none; padding:14px 18px; border-top:1px solid #d9e3df; background:#fff; }
.gkcai-widget .gkcai .gkcai-compose { flex-direction:row; gap:8px; }
.gkcai-widget .gkcai .gkcai-compose textarea { max-height:120px; resize:none; padding:9px; }
.gkcai-widget .gkcai .gkcai-send { min-width:60px; padding:9px; }
.gkcai-widget .gkcai .gkcai-hint { margin:6px 0 0; font-size:11px; }
.gkcai-widget .gkcai .gkcai-cards { grid-template-columns:1fr; }
.gkcai-widget .gkcai .gkcai-message { padding:14px; }
@media(max-width:480px) {
 .gkcai-widget { right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); }
 .gkcai-widget .gkcai-panel { width:calc(100vw - 24px); height:calc(100dvh - 124px); }
 .gkcai-widget .gkcai .gkcai-heading { padding:12px; gap:8px; }
 .gkcai-widget .gkcai .gkcai-heading h2 { font-size:18px; }
 .gkcai-widget .gkcai .gkcai-heading .gkcai-eyebrow { display:none; }
 .gkcai-widget .gkcai .gkcai-body { padding:0 12px 12px; }
 .gkcai-widget .gkcai .gkcai-form { padding:10px 12px; }
 .gkcai-widget.gkcai-expanded .gkcai-panel { width:calc(100vw - 24px); height:calc(100dvh - 100px); }
 .gkcai-widget.gkcai-expanded .gkcai .gkcai-cards { grid-template-columns:1fr; }
}
@media(max-height:480px) {
 .gkcai-widget .gkcai-panel { height:calc(100dvh - 100px); }
 .gkcai-widget .gkcai .gkcai-heading { padding:8px 12px; }
 .gkcai-widget .gkcai .gkcai-form { padding:8px 12px; }
 .gkcai-widget .gkcai .gkcai-form label, .gkcai-widget .gkcai .gkcai-hint { display:none; }
}
