/* FAB Container */
.fab-container{position:fixed!important;bottom:40px!important;right:40px!important;z-index:99999!important;display:flex;flex-direction:column-reverse;align-items:center;gap:16px}

/* Main FAB trigger */
@keyframes heartbeat {
    0% { transform: scale(1); box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22); }
    14% { transform: scale(1.1); box-shadow: 0 10px 30px rgba(0, 123, 255, 0.4); }
    28% { transform: scale(1); box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22); }
    42% { transform: scale(1.1); box-shadow: 0 10px 30px rgba(0, 123, 255, 0.4); }
    70% { transform: scale(1); box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22); }
    100% { transform: scale(1); box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22); }
}

.fab-trigger{width:70px;height:70px;border-radius:50%;border:none;background:#fff;cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;padding:0;overflow:hidden;animation: heartbeat 2s infinite ease-in-out;}
.fab-trigger:hover{box-shadow:0 8px 32px rgba(0,0,0,.3);transform:scale(1.08);animation: none;}
.fab-trigger__logo{width:48px;height:48px;object-fit:contain;pointer-events:none;transition:opacity .3s ease,transform .4s cubic-bezier(.4,0,.2,1)}
.fab-trigger__close{position:absolute;width:32px;height:32px;color:#64748b;opacity:0;pointer-events:none;transform:rotate(-90deg) scale(.5);transition:opacity .3s ease,transform .4s cubic-bezier(.4,0,.2,1)}

/* Open state */
.fab-container.fab--open .fab-trigger__logo{opacity:0;transform:rotate(90deg) scale(.5)}
.fab-container.fab--open .fab-trigger__close{opacity:1;transform:rotate(0) scale(1)}
.fab-container.fab--open .fab-trigger{background:#f1f5f9}

/* Sub-actions */
.fab-actions{display:flex;flex-direction:column-reverse;align-items:center;gap:14px}
.fab-action{width:54px;height:54px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;box-shadow:0 4px 16px rgba(0,0,0,.18);opacity:0;transform:translateY(20px) scale(.6);pointer-events:none;transition:all .35s cubic-bezier(.4,0,.2,1);padding:0;overflow:hidden}
.fab-action:nth-child(1){transition-delay:0s}
.fab-action:nth-child(2){transition-delay:.04s}
.fab-action:nth-child(3){transition-delay:.08s}

.fab-container.fab--open .fab-action{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.fab-container.fab--open .fab-action:nth-child(1){transition-delay:.08s}
.fab-container.fab--open .fab-action:nth-child(2){transition-delay:.04s}
.fab-container.fab--open .fab-action:nth-child(3){transition-delay:0s}

.fab-action:hover{transform:scale(1.12)!important;box-shadow:0 6px 24px rgba(0,0,0,.25)}

/* Action Types */
.fab-action--wa{background:#25d366!important;color:#fff!important;text-decoration:none!important}
.fab-action--wa i{font-size:1.7rem!important;color:#fff!important;line-height:1!important;display:block!important;pointer-events:none}
.fab-action--wa:hover,.fab-action--wa:focus,.fab-action--wa:active{color:#fff!important;text-decoration:none!important}

.fab-action--theme{background:#1e293b;color:#fbbf24;font-size:1.25rem}
.dark-mode .fab-action--theme{background:#f1f5f9;color:#334155}
.darkmode-icon-dark{display:none}
.darkmode-icon-light{display:inline}
.dark-mode .darkmode-icon-dark{display:inline}
.dark-mode .darkmode-icon-light{display:none}

.fab-action--accessibility{background:#fff;padding:0}
.fab-action--accessibility img{width:100%;height:100%;object-fit:cover;pointer-events:none}

/* Tooltip labels */
.fab-action{position:relative}
.fab-action::before{content:attr(data-label);position:absolute;right:calc(100% + 12px);white-space:nowrap;background:#1e293b;color:#fff;font-size:.85rem;font-weight:500;padding:6px 14px;border-radius:8px;opacity:0;transform:translateX(8px);transition:all .25s ease;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.fab-container.fab--open .fab-action:hover::before{opacity:1;transform:translateX(0)}
.dark-mode .fab-action::before{background:#f1f5f9;color:#1e293b}

/* Dark mode - FAB trigger */
.dark-mode .fab-trigger{background:#1e293b;box-shadow:0 6px 24px rgba(0,0,0,.45)}
.dark-mode .fab-container.fab--open .fab-trigger{background:#334155}
.dark-mode .fab-trigger__close{color:#e2e8f0}

/* Accessibility Modal Panel */
.a11y-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(4px);z-index:999999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease;padding:20px}
.a11y-modal-overlay.active{opacity:1;pointer-events:auto}

.a11y-modal-card{background:#fff;border-radius:20px;width:100%;max-width:440px;box-shadow:0 20px 50px rgba(0,0,0,.25);transform:scale(.9) translateY(15px);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow:hidden}
.a11y-modal-overlay.active .a11y-modal-card{transform:scale(1) translateY(0)}

.a11y-modal-header{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:20px 24px;display:flex;align-items:center;justify-content:space-between}
.a11y-modal-header h5{margin:0;font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:10px;color:#fff}
.a11y-modal-header h5 img{width:26px;height:26px;border-radius:50%}
.a11y-modal-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:background .2s ease}
.a11y-modal-close:hover{background:rgba(255,255,255,.35)}

.a11y-modal-body{padding:24px;display:flex;flex-direction:column;gap:20px;max-height:75vh;overflow-y:auto}

.a11y-group{display:flex;flex-direction:column;gap:10px}
.a11y-group-label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#64748b}

.a11y-btn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}

.a11y-option-btn{background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:.9rem;font-weight:600;color:#0f172a;cursor:pointer;transition:all .2s ease;text-align:center;}
.a11y-option-btn i{font-size:1.5rem;color:#0f172a}
.a11y-option-btn:hover{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}
.a11y-option-btn:hover i{color:#1d4ed8}
.a11y-option-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}
.a11y-option-btn.active i{color:#fff}

.a11y-reset-btn{background:#0d6efd;border:none;color:#fff;padding:14px;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s ease;margin-top:10px}
.a11y-reset-btn:hover{background:#0b5ed7;color:#fff}

/* Accessibility state classes - filter target page elements, keeping FAB fixed */
body.a11y-font-sm p, body.a11y-font-sm a, body.a11y-font-sm span, body.a11y-font-sm h1, body.a11y-font-sm h2, body.a11y-font-sm h3, body.a11y-font-sm h4, body.a11y-font-sm h5, body.a11y-font-sm h6, body.a11y-font-sm li, body.a11y-font-sm td, body.a11y-font-sm th{font-size:90%!important}
body.a11y-font-lg p, body.a11y-font-lg a, body.a11y-font-lg span, body.a11y-font-lg h1, body.a11y-font-lg h2, body.a11y-font-lg h3, body.a11y-font-lg h4, body.a11y-font-lg h5, body.a11y-font-lg h6, body.a11y-font-lg li, body.a11y-font-lg td, body.a11y-font-lg th{font-size:115%!important}
body.a11y-font-xl p, body.a11y-font-xl a, body.a11y-font-xl span, body.a11y-font-xl h1, body.a11y-font-xl h2, body.a11y-font-xl h3, body.a11y-font-xl h4, body.a11y-font-xl h5, body.a11y-font-xl h6, body.a11y-font-xl li, body.a11y-font-xl td, body.a11y-font-xl th{font-size:130%!important}

body.a11y-grayscale > *:not(.fab-container):not(.a11y-modal-overlay){filter:grayscale(100%)!important}
body.a11y-high-contrast > *:not(.fab-container):not(.a11y-modal-overlay){filter:contrast(150%)!important}
body.a11y-wide-spacing p, body.a11y-wide-spacing a, body.a11y-wide-spacing span, body.a11y-wide-spacing h1, body.a11y-wide-spacing h2, body.a11y-wide-spacing h3, body.a11y-wide-spacing h4, body.a11y-wide-spacing h5, body.a11y-wide-spacing h6, body.a11y-wide-spacing li{letter-spacing:1.5px!important;word-spacing:3px!important}

/* Dark mode modal overrides */
.dark-mode .a11y-modal-card{background:#1e293b;color:#e2e8f0}
.dark-mode .a11y-group-label{color:#94a3b8}
.dark-mode .a11y-option-btn{background:#0f172a;border-color:#334155;color:#cbd5e1}
.dark-mode .a11y-option-btn i{color:#60a5fa}
.dark-mode .a11y-option-btn:hover{background:#1e3a8a;border-color:#3b82f6;color:#fff}
.dark-mode .a11y-option-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}

/* Mobile */
@media(max-width:575px){
.fab-container{bottom:28px;right:28px}
.fab-trigger{width:60px;height:60px}
.fab-trigger__logo{width:40px;height:40px}
.fab-action{width:46px;height:46px}
.fab-action--wa i{font-size:1.4rem!important}
.a11y-modal-card{max-width:92%}
}

