/* GR Medical Chat Widget v3.0 */
:root{--grm-brand:#00679a;--grm-dark:#00527a;--grm-light:#e8f3f9;--grm-white:#ffffff;--grm-bg:#f4f6f8;--grm-text:#111111;--grm-mid:#424d57;--grm-muted:#8b9aab;--grm-border:rgba(0,0,0,0.08);--grm-shadow:0 2px 8px rgba(0,0,0,0.10);--grm-shadow-md:0 4px 20px rgba(0,0,0,0.14);--grm-shadow-lg:0 8px 32px rgba(0,0,0,0.18)}
#grm-panel *,#grm-launcher *{box-sizing:border-box;font-family:'Raleway',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
#grm-panel h1,#grm-panel p,#grm-panel ul,#grm-panel li{margin:0;padding:0}
#grm-panel button{margin:0}
#grm-launcher{position:fixed;bottom:20px;right:20px;z-index:2147483600;display:flex;align-items:flex-end;gap:8px}
#grm-launcher-col{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
#grm-map-bubble{width:60px;height:60px;background:#31a24c;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(49,162,76,.45);flex-shrink:0;transition:transform .2s,background .2s;text-decoration:none}
#grm-map-bubble:hover{background:#278a3d;transform:scale(1.06)}
#grm-map-bubble svg{width:28px;height:28px}
#grm-bubble{width:60px;height:60px;background:var(--grm-brand);border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,103,154,.45);position:relative;flex-shrink:0;transition:transform .2s,background .2s}
#grm-bubble:hover{background:var(--grm-dark);transform:scale(1.06)}
#grm-bubble svg{width:28px;height:28px}
#grm-unread{position:absolute;top:-2px;right:-2px;width:20px;height:20px;background:#e53935;border-radius:50%;border:2.5px solid #f4f6f8;font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center}

/* ══ TEASER (one-shot) ══ */
#grm-teaser{background:var(--grm-white);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:600;color:var(--grm-text);box-shadow:var(--grm-shadow-md);max-width:188px;line-height:1.4;position:relative;margin-bottom:6px;display:none;opacity:0;transform:translateX(20px)}
#grm-teaser::after{content:'';position:absolute;right:-7px;top:50%;transform:translateY(-50%);border:7px solid transparent;border-left-color:var(--grm-white);border-right:0}
#grm-teaser.grm-teaser-in{animation:grm-teaser-in .5s cubic-bezier(.34,1.4,.64,1) forwards}
#grm-teaser.grm-teaser-out{animation:grm-teaser-out .45s ease forwards}
@keyframes grm-teaser-in{from{opacity:0;transform:translateX(20px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes grm-teaser-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(20px) scale(.9)}}

#grm-panel{position:fixed;bottom:90px;right:20px;z-index:2147483599;width:376px;height:700px;max-height:calc(100vh - 110px);background:var(--grm-white);border-radius:20px;box-shadow:var(--grm-shadow-lg);display:flex;flex-direction:column;overflow:hidden;transform:scale(.88) translateY(30px);opacity:0;pointer-events:none;transform-origin:bottom right;transition:transform .25s cubic-bezier(.34,1.4,.64,1),opacity .2s ease}
#grm-panel.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}
#grm-header{background:var(--grm-brand);padding:16px 18px 0;position:relative;flex-shrink:0;overflow:visible}
#grm-minimize{background:rgba(255,255,255,.15);border:none;border-radius:6px;width:28px;height:28px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .15s;margin-bottom:14px}
#grm-minimize:hover{background:rgba(255,255,255,.28)}
#grm-minimize svg{width:18px;height:6px}
#grm-header h1{font-size:24px;font-weight:700;color:#fff;line-height:1.3;letter-spacing:-.02em;margin:0 0 18px 0}
#grm-agent-card{background:var(--grm-white);border-radius:16px 16px 0 0;box-shadow:var(--grm-shadow-md);position:relative;z-index:2}
.grm-agent-row{display:flex;align-items:center;gap:12px;padding:16px 16px 12px}
.grm-agent-avatar-wrap{position:relative;flex-shrink:0;width:42px;height:42px}
.grm-agent-avatar{width:42px;height:42px;border-radius:50%;background:#f0f4f8;overflow:hidden;display:flex;align-items:center;justify-content:center}
.grm-agent-avatar img{width:100%;height:100%;object-fit:cover}
.grm-agent-online{position:absolute;bottom:1px;right:1px;width:11px;height:11px;background:#31a24c;border-radius:50%;border:2px solid #fff;z-index:1}
.grm-agent-name{font-size:14px;font-weight:700;color:var(--grm-text)}
.grm-agent-sub{font-size:13px;color:var(--grm-mid);margin-top:2px}
.grm-qbtns{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px}
.grm-qbtn{background:var(--grm-white);border:1.5px solid var(--grm-border);border-radius:20px;padding:7px 15px;font-size:13px;font-weight:600;color:var(--grm-text);cursor:pointer;font-family:inherit;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:border-color .15s,background .15s,transform .1s;white-space:nowrap}
.grm-qbtn:hover{border-color:var(--grm-brand);color:var(--grm-brand);background:var(--grm-light);transform:translateY(-1px)}
#grm-cta-wrap{padding:4px 16px 16px}
#grm-cta-btn{display:block;text-align:center;width:100%;padding:13px 16px;background:var(--grm-brand);color:#fff;border:none;border-radius:12px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;transition:background .15s}
#grm-cta-btn:hover{background:var(--grm-dark)}
#grm-scroll{flex:1;overflow-y:auto;background:var(--grm-bg);padding:14px}
#grm-scroll::-webkit-scrollbar{width:4px}
#grm-scroll::-webkit-scrollbar-thumb{background:#c8d8e4;border-radius:4px}
.grm-section{background:var(--grm-white);border-radius:12px;overflow:hidden;margin-bottom:10px;box-shadow:0 1px 6px rgba(0,0,0,.06)}
.grm-section-head{display:flex;align-items:center;gap:8px;padding:13px 15px 12px;border-bottom:1px solid var(--grm-border)}
.grm-section-head svg{color:var(--grm-brand);flex-shrink:0}
.grm-section-head span{font-size:14px;font-weight:700;color:var(--grm-text)}
.grm-faq-item{border-bottom:1px solid var(--grm-border)}
.grm-faq-item:last-child{border-bottom:none}
.grm-faq-q{width:100%;padding:13px 15px;background:none;border:none;text-align:left;font-size:13.5px;font-weight:600;color:var(--grm-text);cursor:pointer;font-family:inherit;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:background .12s}
.grm-faq-q:hover{background:#f8fafb}
.grm-faq-icon{width:22px;height:22px;border-radius:50%;background:var(--grm-light);color:var(--grm-brand);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:800;transition:transform .22s,background .15s}
.grm-faq-item.open .grm-faq-icon{transform:rotate(180deg);background:var(--grm-brand);color:#fff}
.grm-faq-a{font-size:13px;color:var(--grm-mid);line-height:1.65;padding:0 15px;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .2s}
.grm-faq-item.open .grm-faq-a{max-height:400px;padding:8px 15px 16px}
.grm-faq-btn{display:inline-flex;align-items:center;gap:6px;background:var(--grm-brand);color:#fff !important;border:1.5px solid var(--grm-brand);border-radius:20px;padding:7px 15px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;margin-top:10px;text-decoration:none !important;transition:background .15s;line-height:1}
.grm-faq-btn:hover{background:var(--grm-dark);border-color:var(--grm-dark)}
.grm-faq-btn.outline{background:transparent;color:var(--grm-brand) !important}
.grm-faq-btn.outline:hover{background:var(--grm-light)}
.grm-link-item{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;text-decoration:none;color:inherit;border-bottom:1px solid var(--grm-border);transition:background .12s}
.grm-link-item:last-child{border-bottom:none}
.grm-link-item:hover{background:#f8fafb}
.grm-link-left{display:flex;align-items:center;gap:10px}
.grm-link-emoji{font-size:20px;line-height:1}
.grm-link-title{font-size:13.5px;font-weight:600;color:var(--grm-text)}
.grm-link-arr{width:28px;height:28px;border-radius:50%;background:var(--grm-brand);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.grm-link-arr svg{width:14px;height:14px;color:#fff}
.grm-reviews{display:flex;align-items:center;gap:14px;padding:15px;text-decoration:none;transition:background .12s}
.grm-reviews:hover{background:#f8fafb}
.grm-rev-score{font-size:34px;font-weight:800;color:var(--grm-text);line-height:1}
.grm-rev-stars{color:#f4b400;font-size:15px;letter-spacing:1px}
.grm-rev-name{font-size:12.5px;font-weight:700;color:var(--grm-text);margin-top:3px}
.grm-rev-count{font-size:12px;color:var(--grm-muted)}
#grm-tabs{display:flex;border-top:1px solid var(--grm-border);background:var(--grm-white);flex-shrink:0}
.grm-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:11px 0 10px;border:none;background:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;color:var(--grm-muted);border-top:2.5px solid transparent;transition:color .15s,border-color .15s;text-decoration:none}
.grm-tab svg{width:20px;height:20px}
.grm-tab.active{color:var(--grm-brand);border-top-color:var(--grm-brand)}
.grm-tab.wa{color:#25d366;border-top-color:transparent}
.grm-tab.wa:hover{color:#1da851}
#grm-chat-view{display:none;flex-direction:column;flex:1;overflow:hidden;background:var(--grm-bg)}
#grm-chat-view.active{display:flex}
#grm-home-view{display:flex;flex-direction:column;flex:1;overflow:hidden}
#grm-home-view.hidden{display:none}
#grm-chat-hdr{background:var(--grm-brand);padding:14px 16px;display:flex;align-items:center;gap:12px;flex-shrink:0}
#grm-chat-back{background:rgba(255,255,255,.15);border:none;border-radius:7px;width:32px;height:32px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;flex-shrink:0;transition:background .15s}
#grm-chat-back:hover{background:rgba(255,255,255,.28)}
.grm-chat-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.grm-chat-av img{width:100%;height:100%;object-fit:cover}
.grm-chat-hname{font-size:14px;font-weight:700;color:#fff}
.grm-chat-hsub{font-size:11.5px;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:4px;margin-top:2px}
.grm-dot{width:8px;height:8px;background:#69db7c;border-radius:50%;display:inline-block;animation:grm-pulse 2s infinite}
@keyframes grm-pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ══ STEPPER (progress prenotazione) ══ */
#grm-stepper{display:none;padding:10px 14px;background:var(--grm-white);border-bottom:1px solid var(--grm-border);justify-content:space-between;align-items:center;gap:6px;flex-shrink:0}
.grm-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--grm-muted);font-weight:600;position:relative}
.grm-step::before{content:attr(data-n);width:22px;height:22px;border-radius:50%;background:#e2e8ef;color:var(--grm-muted);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;transition:background .25s,color .25s}
.grm-step.active::before{background:var(--grm-brand);color:#fff;box-shadow:0 0 0 4px rgba(0,103,154,.15)}
.grm-step.done::before{content:'✓';background:#31a24c;color:#fff}
.grm-step.active{color:var(--grm-brand)}
.grm-step.done{color:var(--grm-mid)}
.grm-step:not(:last-child)::after{content:'';position:absolute;top:11px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:#e2e8ef;z-index:-1}
.grm-step.done:not(:last-child)::after{background:#31a24c}

#grm-msgs{flex:1;padding:16px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
#grm-msgs::-webkit-scrollbar{width:3px}
#grm-msgs::-webkit-scrollbar-thumb{background:#c8d8e4;border-radius:3px}
.grm-msg{display:flex;flex-direction:column;max-width:82%}
.grm-msg.bot{align-self:flex-start}
.grm-msg.user{align-self:flex-end}
.grm-msg-bub{padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.55;font-weight:400;word-break:break-word}
.grm-msg.bot .grm-msg-bub{background:var(--grm-white);color:var(--grm-text);box-shadow:var(--grm-shadow);border-bottom-left-radius:3px}
.grm-msg.user .grm-msg-bub{background:var(--grm-brand);color:#fff;border-bottom-right-radius:3px}
.grm-msg-time{font-size:10.5px;color:var(--grm-muted);margin-top:4px}
.grm-msg.user .grm-msg-time{text-align:right}
.grm-typing{display:flex;align-items:center;gap:4px;padding:11px 14px;background:var(--grm-white);border-radius:14px;border-bottom-left-radius:3px;box-shadow:var(--grm-shadow);align-self:flex-start;width:fit-content}
.grm-typing span{width:7px;height:7px;background:#c0ccda;border-radius:50%;animation:grm-dot 1.2s infinite}
.grm-typing span:nth-child(2){animation-delay:.2s}
.grm-typing span:nth-child(3){animation-delay:.4s}
@keyframes grm-dot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}

/* ══ SKELETON LOADER ══ */
.grm-skeleton{padding:11px 14px;background:var(--grm-white);border-radius:14px;border-bottom-left-radius:3px;box-shadow:var(--grm-shadow);width:75%;display:flex;flex-direction:column;gap:7px}
.grm-sk-line{height:9px;border-radius:5px;background:linear-gradient(90deg,#e8edf2 0%,#f4f6f8 50%,#e8edf2 100%);background-size:200% 100%;animation:grm-sk 1.3s ease-in-out infinite}
.grm-sk-line.short{width:55%}
@keyframes grm-sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

.grm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.grm-chips-col{flex-direction:column;align-items:stretch}
.grm-chip{background:var(--grm-white);border:1.5px solid #d0dce6;color:var(--grm-brand);border-radius:20px;padding:6px 14px;font-size:12.5px;cursor:pointer;font-weight:600;font-family:inherit;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:background .15s,border-color .15s,transform .1s;text-align:left}
.grm-chip:hover{background:var(--grm-light);border-color:var(--grm-brand);transform:translateY(-1px)}

/* ══ SLOT CHIP ══ */
.grm-slot-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;width:100%}
.grm-slot-inner{display:flex;flex-direction:column;gap:2px;text-align:left;line-height:1.3}
.grm-slot-date{font-weight:700;color:var(--grm-text);font-size:13px}
.grm-slot-doc{font-size:11.5px;color:var(--grm-muted);font-weight:500}

/* ══ YES/NO BUTTONS ══ */
.grm-yn-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.grm-yn-btn{border:1.5px solid var(--grm-brand);border-radius:22px;padding:9px 18px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;line-height:1;transition:transform .1s,background .15s,opacity .15s}
.grm-yn-btn.primary{background:var(--grm-brand);color:#fff;box-shadow:0 2px 8px rgba(0,103,154,.3)}
.grm-yn-btn.primary:hover{background:var(--grm-dark);transform:translateY(-1px)}
.grm-yn-btn.outline{background:transparent;color:var(--grm-brand)}
.grm-yn-btn.outline:hover{background:var(--grm-light)}

/* ══ BOOKING CONFIRM CARD ══ */
.grm-booking-card{border:2px solid #31a24c;border-radius:14px;overflow:hidden;background:#f0faf2}
.grm-booking-head{padding:10px 14px;background:#31a24c;color:#fff;font-size:14px}
.grm-booking-body{padding:12px 14px;display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:var(--grm-text)}
.grm-booking-body > div{display:flex;align-items:center;gap:8px}
.grm-booking-body svg{color:#31a24c;flex-shrink:0}
.grm-booking-foot{padding:9px 14px;background:#e2f4e6;font-size:11.5px;color:var(--grm-mid);border-top:1px solid rgba(49,162,76,.2)}

.grm-human-btns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.grm-hbtn{display:inline-flex;align-items:center;gap:7px;border:none;border-radius:22px;padding:9px 16px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;text-decoration:none;line-height:1;transition:opacity .15s,transform .1s}
.grm-hbtn:hover{opacity:.88;transform:translateY(-1px)}
.grm-hbtn.wa{background:#25d366;color:#fff}
.grm-hbtn.call{background:var(--grm-brand);color:#fff}
.grm-hbtn svg{width:16px;height:16px;flex-shrink:0}
#grm-inp-area{padding:12px 14px 14px;background:var(--grm-white);border-top:1px solid var(--grm-border);display:flex;gap:10px;align-items:flex-end;flex-shrink:0}
#grm-inp{flex:1;border:1.5px solid #d8e4ec;border-radius:22px;padding:10px 16px;font-size:13.5px;font-family:inherit;resize:none;outline:none;line-height:1.4;max-height:80px;background:var(--grm-bg);color:var(--grm-text);transition:border-color .15s}
#grm-inp:focus{border-color:var(--grm-brand);background:var(--grm-white)}
#grm-inp::placeholder{color:var(--grm-muted)}
#grm-send{width:40px;height:40px;border-radius:50%;background:var(--grm-brand);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--grm-shadow);transition:background .15s,transform .1s}
#grm-send:hover{background:var(--grm-dark)}
#grm-send:active{transform:scale(.93)}
#grm-send svg{width:17px;height:17px;margin-left:1px}
@media(max-width:440px){#grm-panel{width:calc(100vw - 16px);right:8px;bottom:82px}#grm-launcher{right:12px;bottom:12px}}
