/* Чат сверху, стрелка «наверх» под ним (та: 52px, right:40, bottom:24). */
.sw-fab{position:fixed;right:40px;bottom:88px;z-index:1001;width:52px;height:52px;border-radius:50%;
display:flex;align-items:center;justify-content:center;padding:0;
background:#222;color:#fff;border:none;cursor:pointer;
box-shadow:0 4px 16px rgba(0,0,0,.25);transition:transform .2s, background .2s;}
.sw-fab:hover{background:#000;transform:translateY(-2px);}
.sw-fab i{font-size:24px;line-height:1;transition:font-size .2s;}
/* Непрочитанное: меняем значок, делаем чуть меньше и пульсируем красным. */
.sw-fab.has-unread{background:#e53935;animation:sw-pulse 1.6s infinite;}
.sw-fab.has-unread:hover{background:#c62828;}
.sw-fab.has-unread i{font-size:22px;}
@keyframes sw-pulse{0%{box-shadow:0 4px 16px rgba(0,0,0,.25),0 0 0 0 rgba(229,57,53,.5);}
70%{box-shadow:0 4px 16px rgba(0,0,0,.25),0 0 0 12px rgba(229,57,53,0);}
100%{box-shadow:0 4px 16px rgba(0,0,0,.25),0 0 0 0 rgba(229,57,53,0);}}
.sw-panel{position:fixed;right:20px;bottom:20px;z-index:9401;width:340px;max-width:calc(100vw - 32px);
max-height:calc(100vh - 40px);
background:#fff;border:1px solid #e6e6e6;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;
box-shadow:0 8px 30px rgba(0,0,0,.18);}
.sw-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#222;color:#fff;}
.sw-title{font-size:14px;font-weight:600;}
.sw-sub{font-size:11px;opacity:.75;margin-top:2px;}
.sw-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1;}
.sw-product{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #eee;font-size:12px;color:#555;}
.sw-product img{width:34px;height:34px;object-fit:cover;border-radius:4px;}
.sw-body{padding:14px 16px;height:250px;flex:1 1 auto;min-height:0;overflow-y:auto;background:#fafafa;-webkit-overflow-scrolling:touch;}
.sw-msg{max-width:82%;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.5;margin-bottom:10px;}
.sw-msg.client{background:#222;color:#fff;margin-left:auto;border-bottom-right-radius:3px;}
.sw-msg.admin{background:#fff;color:#222;border:1px solid #e6e6e6;border-bottom-left-radius:3px;}
.sw-msg .t{display:block;font-size:10px;opacity:.6;margin-top:3px;}
.sw-date{text-align:center;font-size:11px;color:#999;margin:6px 0 12px;}
.sw-form{display:flex;flex-direction:column;gap:10px;padding:12px 16px;border-top:1px solid #eee;}
.sw-field{display:flex;flex-direction:column;}
.sw-form input,.sw-form textarea,.sw-form select{border:1px solid #ddd;border-radius:6px;padding:9px 11px;font-size:13px;
outline:none;resize:vertical;font-family:inherit;width:100%;background:#fff;color:#222;}
.sw-form select{height:38px;cursor:pointer;}
.sw-form input.bad,.sw-form textarea.bad,.sw-form select.bad{border-color:#c62828;}
.sw-err{color:#c62828;font-size:11px;margin-top:4px;display:none;}
.sw-err.on{display:block;}
.sw-form button[type=submit]{background:#222;color:#fff;border:none;border-radius:20px;height:38px;font-size:12px;
text-transform:uppercase;letter-spacing:1px;cursor:pointer;}
.sw-form button[type=submit]:disabled{background:#9a9a9a;cursor:not-allowed;}
.sw-rate-title{font-size:13px;color:#333;}
.sw-stars{display:flex;gap:6px;}
.sw-star{background:none;border:none;font-size:26px;line-height:1;color:#ddd;cursor:pointer;padding:0;transition:color .15s;}
.sw-star.on{color:#f5b301;}
.sw-thanks{padding:22px 16px;text-align:center;font-size:13px;color:#333;border-top:1px solid #eee;}
@media(max-width:767px){
/* Стрелка «наверх»: 48px, bottom:16 → чат ровно над ней. */
.sw-fab{right:16px;bottom:76px;width:52px;height:52px;}
.sw-fab i{font-size:24px;}
.sw-fab.has-unread i{font-size:22px;}
/* Панель почти на весь экран, скруглён только верх. */
.sw-panel{right:0;left:0;bottom:0;top:0;width:auto;max-width:none;max-height:none;
    border:none;border-radius:0;}
.sw-head{padding:16px 16px;padding-top:calc(16px + env(safe-area-inset-top));}
.sw-title{font-size:16px;}
.sw-sub{font-size:12px;}
.sw-close{font-size:26px;padding:4px;}
.sw-body{padding:16px;}
.sw-msg{max-width:85%;font-size:14px;}
.sw-form{padding:14px 16px;padding-bottom:calc(14px + env(safe-area-inset-bottom));gap:12px;}
.sw-form input,.sw-form textarea,.sw-form select{font-size:16px;padding:12px 14px;}
.sw-form select{height:46px;}
.sw-form button[type=submit]{height:46px;font-size:13px;}
}
