/* Asistentul virtual „Frigi” — frigiderul din colț, cu mâini (templates/partials/chat_widget.html, static/js/chat.js) */
.cf-fridge { position: fixed; right: 12px; bottom: 20px; width: 84px; height: 80px; border: 0; padding: 0;
             background: none; cursor: pointer; z-index: 60; perspective: 300px; }
.cf-fridge svg { width: 100%; height: 100%; filter: drop-shadow(0 8px 14px rgba(0,0,0,.25)); }
.cf-fridge .cf-door { transform-origin: 6px 50%; transition: transform .45s cubic-bezier(.3,.7,.3,1); }
.cf-fridge.cf-open .cf-door { transform: rotateY(-70deg); }
/* zumzetul e pe buton (element HTML), nu pe SVG — Safari pe iPhone nu animează sigur un <svg> */
.cf-hum { animation: cf-hum 7s ease-in-out infinite; transform-origin: 50% 100%; -webkit-transform-origin: 50% 100%; }
.cf-fridge.cf-open { animation: none; }
@keyframes cf-hum { 0%, 90%, 100% { transform: rotate(0); } 92% { transform: rotate(-3deg); }
                    94% { transform: rotate(3deg); } 96% { transform: rotate(-2deg); } 98% { transform: rotate(1deg); } }
/* prima intrare pe site: ușa se deschide singură o clipă, se aprinde lumina, apoi se închide */
.cf-fridge .cf-inside { opacity: 0; transition: opacity .2s; }
.cf-fridge.cf-open .cf-inside, .cf-fridge.cf-peek .cf-inside { opacity: 1; }
.cf-fridge.cf-peek .cf-door { transform: rotateY(-75deg); }
.cf-fridge.cf-slow .cf-door { transition: transform 1.1s ease-in-out; }
.cf-fridge.cf-slow .cf-inside { transition: opacity .6s; }
.cf-fridge.cf-peek svg { filter: drop-shadow(0 8px 14px rgba(0,0,0,.25)) drop-shadow(0 0 10px rgba(253,230,138,.9)); }
/* Frigi face cu mâna: la fiecare ~7 s (înainte de zumzet) și de 3 ori la salutul de la prima intrare */
.cf-fridge .cf-arm-wave { transform-box: fill-box; transform-origin: 0% 100%;
                          animation: cf-wave 7s ease-in-out infinite; }
.cf-fridge.cf-peek .cf-arm-wave { animation: cf-wave-hello .5s ease-in-out 3; }
@keyframes cf-wave { 0%, 12%, 100% { transform: rotate(0); } 3% { transform: rotate(-22deg); }
                     6% { transform: rotate(14deg); } 9% { transform: rotate(-18deg); } }
@keyframes cf-wave-hello { 0%, 100% { transform: rotate(0); } 33% { transform: rotate(-24deg); } 66% { transform: rotate(14deg); } }
@media (prefers-reduced-motion: reduce) { .cf-hum, .cf-fridge .cf-arm-wave, .cf-fridge .cf-eyes, .cf-hint { animation: none; }
                                          .cf-fridge .cf-door { transition: none; } }
.cf-fridge .cf-eyes { transform-box: fill-box; transform-origin: 50% 50%; animation: cf-blink 4.5s infinite; }
@keyframes cf-blink { 0%, 94%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.1); } }
/* bula de gânduri deasupra lui Frigi (ca în desenele animate): nor + două bulinuțe spre capul lui */
.cf-hint { position: fixed; right: 18px; bottom: 132px; background: #fff; border-radius: 40px; padding: 12px 18px;
           box-shadow: 0 8px 24px rgba(0,0,0,.14); font-size: 14px; line-height: 1.35; color: #1f2937; z-index: 60;
           text-align: center; animation: cf-float 3s ease-in-out infinite; cursor: pointer; }
.cf-hint b { color: #dc2626; }
.cf-hint::before, .cf-hint::after, .cf-hint i { content: ""; position: absolute; background: #fff; border-radius: 50%;
                                                box-shadow: 0 4px 10px rgba(0,0,0,.12); }
.cf-hint::before { width: 30px; height: 26px; top: -9px; left: 22%; box-shadow: none; }   /* umflătura norului */
.cf-hint::after  { width: 13px; height: 13px; bottom: -17px; right: 46px; }
.cf-hint i       { width: 7px;  height: 7px;  bottom: -28px; right: 40px; }
@keyframes cf-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

.cf-panel { position: fixed; right: 20px; bottom: 116px; width: 370px; height: min(560px, calc(100vh - 140px));
            border-radius: 22px; z-index: 59; background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
            border: 6px solid #dc2626; box-shadow: 0 24px 60px rgba(0,0,0,.25); display: flex; flex-direction: column;
            overflow: hidden; transform-origin: bottom right; animation: cf-pop .35s cubic-bezier(.3,.7,.3,1.2);
            font-family: inherit; color: #1f2937; }
.cf-panel[hidden] { display: none; }
@keyframes cf-pop { from { transform: scale(.2); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.cf-head { position: relative; background: #dc2626; color: #fff; padding: 11px 44px 11px 16px; }
.cf-head b { font-size: 15px; display: block; }
.cf-head small { opacity: .85; font-size: 12px; }
.cf-close { position: absolute; right: 10px; top: 10px; width: 28px; height: 28px; border: 0; border-radius: 50%;
            background: rgba(255,255,255,.2); color: #fff; font-size: 18px; line-height: 28px; cursor: pointer; }
.cf-msgs { flex: 1; overflow-y: auto; padding: 18px 16px 8px; display: flex; flex-direction: column; gap: 16px; }
.cf-note { position: relative; align-self: flex-start; max-width: 85%; background: #fffbea; padding: 13px 14px 11px;
           border-radius: 4px; font-size: 14px; line-height: 1.5; box-shadow: 0 3px 8px rgba(0,0,0,.08);
           transform: rotate(-1deg); white-space: pre-wrap; overflow-wrap: anywhere; }
.cf-note.cf-alt { transform: rotate(1deg); background: #fff; }
.cf-note::before { content: ""; position: absolute; top: -7px; left: 50%; width: 14px; height: 14px; margin-left: -7px;
                   border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f87171, #b91c1c);
                   box-shadow: 0 2px 3px rgba(0,0,0,.25); }
.cf-note a { color: #b91c1c; text-decoration: underline; }
.cf-me { align-self: flex-end; max-width: 80%; background: #dc2626; color: #fff; padding: 9px 13px;
         border-radius: 16px 16px 4px 16px; font-size: 14px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.cf-typing { align-self: flex-start; color: #6b7280; font-size: 13px; padding-left: 4px; }
.cf-quick { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 16px 10px; }
.cf-quick button { border: 1px solid #fecaca; background: #fff; color: #b91c1c; border-radius: 999px; padding: 6px 12px;
                   font-size: 13px; cursor: pointer; }
.cf-form { display: flex; gap: 8px; padding: 10px 12px 12px; background: #fff; border-top: 1px solid #e5e7eb; }
.cf-form input { flex: 1; min-width: 0; border: 1px solid #d1d5db; border-radius: 999px; padding: 10px 14px;
                 font-size: 16px; outline: none; }
.cf-form button { background: #dc2626; color: #fff; border: 0; border-radius: 999px; width: 42px; font-size: 18px; cursor: pointer; }
.cf-form button:disabled, .cf-form input:disabled { opacity: .5; cursor: not-allowed; }

@media (max-width: 520px) {
  .cf-panel { inset: 0; width: auto; height: auto; border-radius: 0; border-width: 0; }
  .cf-hint { right: 14px; bottom: 130px; max-width: calc(100vw - 28px); font-size: 13px; padding: 10px 15px; }
  .cf-fridge.cf-open { display: none; }
}
