/* Production-grade, responsive chat widget */
:root{
  --rea-bg:#ffffff;         /* base background (light) */
  --rea-surface:#ffffff;    /* panel surface */
  --rea-card:#ffffff;       /* cards/bubbles */
  --rea-border:rgba(0,0,0,0.12); /* borders */
  --rea-text:#0b1220;       /* primary text */
  --rea-muted:#475569;      /* muted text */
  --rea-brand:#0ea5e9;      /* primary brand (sky-500) */
  --rea-brand-2:#22c55e;    /* accent (green-500) */
  --rea-radius:14px;
  --rea-radius-sm:10px;
  --rea-shadow:0 18px 50px rgba(0,0,0,.12);
}

*{box-sizing:border-box}
#chatbot-root{font:15px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color:var(--rea-text);position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0));right:calc(20px + env(safe-area-inset-right,0));z-index:2147483000}
.rea-chat-fab{width:76px;height:76px;border-radius:999px;background:linear-gradient(135deg, #0ea5e9, #38bdf8);color:#001;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 32px rgba(14,165,233,0.35), 0 0 0 1px rgba(255,255,255,.12) inset;transition:transform .16s ease,opacity .16s ease, filter .16s ease, box-shadow .16s ease;font-size:30px}
.rea-chat-fab:hover{transform:translateY(-2px) scale(1.02); filter:brightness(1.1);box-shadow:0 16px 40px rgba(14,165,233,0.45), 0 0 0 1px rgba(255,255,255,.16) inset}

.rea-chat-panel{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom,0));right:calc(20px + env(safe-area-inset-right,0));width:560px;max-width:96vw;height:80vh;max-height:92vh;background:rgba(255,255,255,0.98);backdrop-filter:saturate(150%) blur(8px);border:1px solid var(--rea-border);border-radius:var(--rea-radius);display:none;box-shadow:var(--rea-shadow);z-index:9999;overflow:hidden}
.rea-close,.rea-privacy{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,0.35);color:#fff;border-radius:10px;padding:6px}
.rea-chat-panel.open{display:grid;grid-template-rows:auto 1fr auto auto;grid-template-areas:"hdr" "body" "sugs" "input";transform:translateY(0);opacity:1;pointer-events:auto}

.rea-chat-body{grid-area:body;display:flex;flex-direction:column;gap:8px;min-height:0;padding:12px;overflow:hidden;position:relative}
.rea-chat-header{grid-area:hdr;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--rea-border);background:linear-gradient(135deg, #0ea5e9, #38bdf8); color:#fff}
.rea-chat-title{font-weight:700;letter-spacing:.2px;font-size:16px}
.rea-chat-actions{display:flex;gap:8px;align-items:center}
.rea-close:hover,.rea-privacy:hover{background:rgba(255,255,255,.12)}
.rea-lang{background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.35);color:#fff;border-radius:10px;padding:6px}

.rea-messages{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;padding-right:2px;padding-bottom:140px;-webkit-overflow-scrolling:touch}
.rea-messages::-webkit-scrollbar{display:none}

.rea-msg{display:flex;margin:8px 0}
.rea-msg.user{justify-content:flex-end}
.rea-msg .bubble{padding:12px 14px;border-radius:14px;max-width:88%;border:1px solid rgba(0,0,0,.12);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.rea-msg.user .bubble{background:linear-gradient(135deg, rgba(0,232,218,0.15), rgba(128,21,232,0.15)); color:var(--rea-text); border-color:rgba(0,0,0,.12);font-weight:500}
.rea-msg.ai .bubble{background:var(--rea-card);white-space:pre-wrap}
.rea-msg.ai .bubble p{margin:6px 0}
.rea-msg.ai .bubble ul{margin:8px 0;padding-left:1.2em;list-style:disc}
.rea-msg.ai .bubble li{margin:4px 0}
.rea-msg.ai .bubble a{color:var(--rea-brand);text-decoration:underline}
.rea-msg.sys .bubble{background:transparent;color:var(--rea-text);border-style:dashed;border-color:var(--rea-border)}

.cits{margin-top:6px;color:var(--rea-muted);font-size:12px}

/* Typing indicator */
.rea-msg.typing .bubble{background:var(--rea-card);display:inline-flex;gap:6px;align-items:center}
.rea-msg.typing .dot{width:6px;height:6px;border-radius:50%;background:var(--rea-muted);display:inline-block;animation:rea-typing 1.4s infinite both}
.rea-msg.typing .dot:nth-child(2){animation-delay:.2s}
.rea-msg.typing .dot:nth-child(3){animation-delay:.4s}
@keyframes rea-typing{0%{opacity:.2;transform:translateY(0)}20%{opacity:1;transform:translateY(-2px)}40%{opacity:.2;transform:translateY(0)}100%{opacity:.2}}

.rea-input-row{grid-area:input;display:flex;gap:8px;padding:10px;border-top:1px solid var(--rea-border);background:var(--rea-surface);flex:0 0 auto;position:absolute;left:0;right:0;bottom:0;z-index:2}
.rea-input{flex:1;background:var(--rea-surface);border:1px solid var(--rea-border);border-radius:12px;padding:14px 16px;color:var(--rea-text);outline:none}
.rea-input::placeholder{color:var(--rea-muted)}
.rea-input:focus{box-shadow:0 0 0 2px rgba(14,165,233,.35) inset;border-color:rgba(14,165,233,.5)}
.rea-send{background:linear-gradient(135deg, #0ea5e9, #38bdf8);border:none;color:#001;border-radius:12px;padding:14px 18px;cursor:pointer;font-weight:700;transition:filter .14s ease, transform .14s ease}
.rea-send:hover{filter:brightness(1.08);transform:translateY(-1px)}
.rea-enquiry{background:transparent;border:1px solid var(--rea-border);color:var(--rea-text);border-radius:12px;padding:12px 16px;cursor:pointer}
.rea-enquiry:hover{background:rgba(255,255,255,.06)}

/* Enquiry panel */
.rea-enquiry-panel{display:none;position:absolute;top:12px;left:12px;right:12px;bottom:120px;background:var(--rea-surface);border:1px solid var(--rea-border);border-radius:12px;padding:12px;overflow:auto;z-index:3}
.rea-enquiry-panel.open{display:block}
.enq-title{font-weight:600;margin-bottom:8px}
.enq-form .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.enq-form input{background:var(--rea-card);border:1px solid var(--rea-border);border-radius:10px;padding:10px 12px;color:var(--rea-text);width:100%;min-width:0}
.enq-form textarea{width:100%;min-height:140px;max-height:260px;resize:vertical;background:var(--rea-card);border:1px solid var(--rea-border);border-radius:10px;padding:10px 12px;color:var(--rea-text);margin-top:8px;min-width:0}
.enq-form .row{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.enq-form button{background:transparent;border:1px solid var(--rea-border);color:var(--rea-text);border-radius:10px;padding:8px 12px;cursor:pointer}
.enq-form button.primary{background:linear-gradient(135deg, #0ea5e9, #38bdf8);border:none;color:#001;font-weight:600;transition:filter .14s ease}
.enq-form button.primary:hover{filter:brightness(1.08)}

/* Privacy panel */
.rea-privacy-panel{display:none;margin-top:8px;background:var(--rea-surface);border:1px solid var(--rea-border);border-radius:12px;padding:12px;max-height:60%;overflow:auto;flex:0 0 auto}
.rea-privacy-panel.open{display:block}
.privacy-title{font-weight:600;margin-bottom:8px}
.privacy-content p{margin:6px 0}
.privacy-content ul{margin:6px 0 8px 18px;list-style:disc}
.privacy-note{margin-top:6px}

/* Suggestion chips */
.rea-starters{grid-area:sugs;flex:0 0 auto;overflow-x:auto;overflow-y:hidden;margin-top:0;display:flex;flex-wrap:nowrap;gap:8px;padding:8px 12px;background:var(--rea-surface);position:absolute;left:0;right:0;bottom:64px;z-index:2;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.starter-chip{background:rgba(14,165,233,0.12);border:1px solid rgba(14,165,233,0.24);color:var(--rea-text);border-radius:12px;padding:8px 10px;cursor:pointer;text-align:left;white-space:nowrap;flex:0 0 auto;display:inline-block}
.starter-chip:hover{background:rgba(14,165,233,0.18)}

/* Utility text colors/sizes within widget scope */
#chatbot-root .muted{color:var(--rea-muted)}
#chatbot-root .small{font-size:12px}

.hidden{display:none}

@media (max-width:480px){
  .rea-chat-panel{width:100%;height:72vh;right:0;left:0;margin:0 auto;border-radius:var(--rea-radius)}
  .enq-form .grid{grid-template-columns:1fr}
}
