/* ---------- modal ---------- */
  .modal-overlay{position:fixed;inset:0;z-index:80;background:rgba(11,27,46,.55);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .35s ease}
  .modal-overlay.show{opacity:1;pointer-events:auto}
  .modal-card{position:relative;width:100%;max-width:420px;background:#fff;border-radius:18px;padding:26px;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);transform:translateY(14px) scale(.98);transition:transform .4s cubic-bezier(.16,1,.3,1)}
  .modal-overlay.show .modal-card{transform:none}
  .modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:9px;border:none;background:var(--paper);color:var(--slate);font-size:18px;line-height:1;cursor:pointer}
  .modal-close:hover{background:var(--line);color:var(--ink)}
  .modal-card h3{font-size:19px;margin:10px 0 4px}
  .modal-card .sub{font-size:13px;color:var(--slate);margin-bottom:16px}
  .modal-card .field{margin-bottom:12px}
  .modal-card .field label{display:block;font-size:12px;font-weight:600;margin-bottom:5px}
  .modal-card .field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit;background:var(--paper)}
  .modal-card .field input:focus{outline:none;border-color:var(--teal);background:#fff}
  .modal-card .fine{font-size:10.5px;color:var(--slate-2);text-align:center;margin-top:9px}
  .modal-card .ok{display:none;text-align:center;padding:6px 4px}
  .modal-card .ok.show{display:block}

  .wa-float{position:fixed;right:22px;bottom:22px;z-index:55;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -8px rgba(37,211,102,.55);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1)}
  .wa-float:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 18px 36px -10px rgba(37,211,102,.65)}
  .wa-float svg{width:29px;height:29px;fill:#fff}
  .wa-float::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #25D366;opacity:.5;animation:waPulse 2.2s ease-out infinite}
  @keyframes waPulse{0%{transform:scale(.9);opacity:.55}70%{transform:scale(1.35);opacity:0}100%{transform:scale(1.35);opacity:0}}
  @media(prefers-reduced-motion:reduce){.wa-float::before{animation:none;display:none}}
  @media(max-width:600px){.wa-float{right:16px;bottom:16px;width:50px;height:50px}.wa-float svg{width:26px;height:26px}}
