/* ── Insurance Fun Zone ─────────────────────────────────────── */
.fz-hero-sub{font-size:17px;color:hsla(0,0%,100%,.85);margin-bottom:12px;max-width:680px;margin-left:auto;margin-right:auto}
.fz-disclaimer{font-size:12px;color:rgba(255,255,255,.5);margin-top:4px}

/* Game grid */
.fz-game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:24px}
.fz-game-card{background:#fff;border-radius:14px;padding:22px 20px;box-shadow:0 2px 12px rgba(0,0,0,.08);border:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,transform .2s}
.fz-game-card:hover{box-shadow:0 8px 28px rgba(21,101,192,.15);transform:translateY(-2px)}
.fz-game-icon{font-size:36px;line-height:1}
.fz-game-title{font-size:16px;font-weight:700;color:#1f2933;margin:0}
.fz-game-desc{font-size:13px;color:#6b7280;flex:1;margin:0}
.fz-game-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#9ca3af}
.fz-play-btn{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;width:100%;transition:background .15s}
.fz-play-btn:hover{background:var(--primary-dark)}
.fz-play-btn:disabled,.fz-coming-btn{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;border:none;padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;width:100%}
.fz-badge-new{background:#dcfce7;color:#166534;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase}
.fz-badge-soon{background:#fef3c7;color:#92400e;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase}

/* Modal */
.fz-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .2s}
.fz-modal-overlay.open{opacity:1;pointer-events:all}
.fz-modal-box{background:#fff;border-radius:18px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 24px 64px rgba(0,0,0,.25)}
.fz-modal-close{position:sticky;top:12px;float:right;margin:12px 12px 0 0;background:none;border:none;font-size:22px;cursor:pointer;color:#6b7280;line-height:1;z-index:1}
.fz-modal-close:hover{color:#1f2933}
.fz-modal-inner{padding:32px 28px 28px;clear:both}

/* Game UI */
.fz-game-header{margin-bottom:20px}
.fz-game-header h2{font-size:20px;margin:0 0 6px}
.fz-game-header p{font-size:14px;color:#6b7280;margin:0}
.fz-progress-bar{height:6px;background:#e5e7eb;border-radius:3px;margin-bottom:20px;overflow:hidden}
.fz-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}
.fz-q-num{font-size:12px;color:#9ca3af;margin-bottom:8px;font-weight:600;text-transform:uppercase}
.fz-q-text{font-size:17px;font-weight:600;color:#1f2933;margin-bottom:16px;line-height:1.4}
.fz-choices{display:flex;flex-direction:column;gap:10px}
.fz-choice-btn{background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:14px 16px;text-align:left;font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit;color:#1f2933}
.fz-choice-btn:hover{border-color:var(--primary);background:#eff6ff;color:var(--primary)}
.fz-choice-btn.selected{border-color:var(--primary);background:#eff6ff;color:var(--primary);font-weight:600}
.fz-choice-btn.correct{border-color:#16a34a;background:#dcfce7;color:#166534}
.fz-choice-btn.wrong{border-color:#dc2626;background:#fee2e2;color:#991b1b}
.fz-next-btn{margin-top:20px;background:var(--primary);color:#fff;border:none;padding:12px 28px;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;width:100%}
.fz-next-btn:hover{background:var(--primary-dark)}

/* Result screen */
.fz-result{text-align:center;padding:8px 0}
.fz-result-icon{font-size:56px;margin-bottom:12px}
.fz-result-label{font-size:13px;color:#9ca3af;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.fz-result-title{font-size:26px;font-weight:800;color:#1f2933;margin:0 0 10px}
.fz-result-desc{font-size:15px;color:#4b5563;margin-bottom:20px;line-height:1.6}
.fz-result-coverage{background:#f0f9ff;border-radius:10px;padding:14px 16px;text-align:left;margin-bottom:20px}
.fz-result-coverage strong{display:block;font-size:12px;color:#0369a1;font-weight:700;text-transform:uppercase;margin-bottom:8px}
.fz-result-coverage ul{margin:0;padding-left:18px;font-size:13px;color:#1f2933;line-height:1.8}
.fz-score-ring{width:90px;height:90px;border-radius:50%;background:conic-gradient(var(--primary) var(--pct), #e5e7eb 0);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;position:relative}
.fz-score-ring::after{content:'';position:absolute;inset:12px;background:#fff;border-radius:50%}
.fz-score-num{position:relative;z-index:1;font-size:22px;font-weight:800;color:var(--primary)}
.fz-play-again-btn{background:var(--secondary);color:#1b1b1b;border:none;padding:12px 28px;border-radius:8px;font-weight:700;font-size:15px;cursor:pointer;margin-top:4px}
.fz-play-again-btn:hover{background:var(--secondary-dark)}
.fz-cta-link{display:block;margin-top:14px;font-size:13px;color:#6b7280}
.fz-cta-link a{color:var(--primary);font-weight:600}

/* Leaderboard */
.fz-leaderboard-list{list-style:none;padding:0;margin:16px 0 0}
.fz-lb-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;font-size:14px}
.fz-lb-row:nth-child(odd){background:#f9fafb}
.fz-lb-rank{width:24px;font-weight:700;color:#9ca3af;text-align:center;flex-shrink:0}
.fz-lb-rank.gold{color:#d97706}
.fz-lb-rank.silver{color:#64748b}
.fz-lb-rank.bronze{color:#92400e}
.fz-lb-name{flex:1;font-weight:600;color:#1f2933}
.fz-lb-xp{font-weight:700;color:var(--primary)}
.fz-lb-empty{color:#9ca3af;font-size:14px;padding:20px 0}

/* Polls */
.fz-poll-list{display:flex;flex-direction:column;gap:16px;margin-top:16px}
.fz-poll-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px 20px}
.fz-poll-q{font-weight:600;font-size:15px;color:#1f2933;margin:0 0 14px}
.fz-poll-opts{display:flex;flex-direction:column;gap:8px}
.fz-poll-opt-btn{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:10px 14px;text-align:left;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s;color:#1f2933}
.fz-poll-opt-btn:hover{border-color:var(--primary);background:#eff6ff}
.fz-poll-bar-wrap{margin-top:4px}
.fz-poll-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:13px}
.fz-poll-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}
.fz-poll-bar-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .5s}
.fz-poll-pct{width:36px;text-align:right;color:#6b7280;font-weight:600}

/* ── Animations ─────────────────────────────────────────────────────────────── */
@keyframes fz-slide-in{from{transform:translateX(22px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fz-scale-reveal{from{transform:scale(0.82);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes fz-stamp{0%{transform:scale(1.3);opacity:0}65%{transform:scale(0.93);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes fz-pop{0%{transform:scale(0.78);opacity:0}60%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}
@keyframes fz-flame{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.12) rotate(2deg)}}
.fz-slide-in{animation:fz-slide-in .25s ease-out both}
.fz-scale-reveal{animation:fz-scale-reveal .35s ease-out both}
.fz-stamp{animation:fz-stamp .4s cubic-bezier(.175,.885,.32,1.275) both}
.fz-pop{animation:fz-pop .3s ease-out both}

/* Streak badge (Myth Buster) */
.fz-streak{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-weight:700;font-size:13px;margin-bottom:10px;transition:all .2s}
.fz-streak-0{background:#f3f4f6;color:#9ca3af}
.fz-streak-hot3{background:#fff7ed;color:#c2410c}
.fz-streak-hot5{background:#fef2f2;color:#dc2626}
.fz-streak-hot7{background:#fef2f2;color:#991b1b;animation:fz-flame .45s ease-in-out infinite}

/* Level meter (Adulting Test) */
.fz-meter-wrap{height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;margin:14px 0 18px}
.fz-meter-fill{height:100%;background:var(--primary);border-radius:6px;width:0;transition:width 1.1s ease-out}

/* Slam animation (Wheel result card) */
@keyframes fz-slam{from{transform:scale(0.7) translateY(16px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
.fz-slam{animation:fz-slam .35s cubic-bezier(0.175,.885,.32,1.275) both}

/* Wheel of Misfortune */
.fz-wheel-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}
.fz-whl-container{position:relative;display:inline-block;padding-top:18px}
.fz-whl-ptr{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:26px;color:var(--primary);z-index:2;line-height:1;filter:drop-shadow(0 2px 4px rgba(21,101,192,.3))}
#fz-whl-rot{display:inline-block;border-radius:50%;box-shadow:0 8px 32px rgba(0,0,0,.12)}
.fz-whl-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px;text-align:center}
.fz-whl-yes{display:inline-block;background:#dcfce7;color:#166534;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700;margin-bottom:8px}
.fz-whl-no{display:inline-block;background:#fee2e2;color:#991b1b;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700;margin-bottom:8px}

/* Savings Calculator */
.fz-calc-label{font-size:14px;color:#6b7280;margin:0 0 6px;text-align:center}
.fz-calc-value{font-size:34px;font-weight:800;color:var(--primary);text-align:center;margin:6px 0 12px}
.fz-calc-slider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer}
.fz-calc-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--primary);cursor:pointer;box-shadow:0 2px 6px rgba(21,101,192,.3)}
.fz-calc-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--primary);cursor:pointer;border:none}
.fz-savings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 6px}
.fz-savings-tile{background:#f0f9ff;border-radius:10px;padding:12px 8px;text-align:center}
.fz-savings-tile .smt{font-size:20px;font-weight:800;color:var(--primary);min-height:28px}
.fz-savings-tile .slbl{font-size:11px;color:#6b7280;margin-top:2px}
.fz-equiv-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.fz-equiv-item{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 10px;text-align:center;opacity:0}
.fz-equiv-item.shown{animation:fz-pop .3s ease-out forwards}
.fz-equiv-item .eico{font-size:28px;display:block;margin-bottom:6px;line-height:1}
.fz-equiv-item .etxt{font-size:12px;color:#92400e;font-weight:600;line-height:1.35}

/* XP badge and initials form */
.fz-xp-badge{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;color:var(--primary);font-weight:700;font-size:14px;padding:6px 16px;border-radius:20px;margin:8px 0 16px}
.fz-initials-wrap{margin-bottom:20px}
.fz-initials-input{width:70px;text-align:center;padding:8px;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;font-weight:700;text-transform:uppercase;font-family:inherit;outline:none;transition:border-color .15s}
.fz-initials-input:focus{border-color:var(--primary)}
.fz-save-score-btn{background:var(--primary);color:#fff;border:none;padding:9px 18px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;transition:background .15s}
.fz-save-score-btn:hover{background:var(--primary-dark)}
.fz-save-score-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}

/* Leaderboard + polls grid */
.fz-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}

/* ── Announcer Commentary ────────────────────────────────────────────────────── */
.fz-commentary{background:#1e293b;border-radius:10px;padding:14px 16px;margin:14px 0;font-size:13px;line-height:1.55}
.fz-commentary-row{margin-bottom:10px}
.fz-commentary-row:last-child{margin-bottom:0}
.fz-commentary-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.fz-commentary-cash .fz-commentary-name{color:#fbbf24}
.fz-commentary-penny .fz-commentary-name{color:#94a3b8}
.fz-commentary-line{color:#f1f5f9}
@keyframes fz-commentary-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.fz-commentary{animation:fz-commentary-in .35s ease-out both}

/* ── Life Event Simulator ─────────────────────────────────────────────────────── */
.fz-le-avatar-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.fz-le-avatar-btn{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:18px 12px;cursor:pointer;text-align:center;transition:all .15s;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:6px}
.fz-le-avatar-btn:hover{border-color:var(--primary);background:#eff6ff}
.fz-le-av-emoji{display:block;font-size:34px;line-height:1}
.fz-le-av-label{font-size:13px;font-weight:600;color:#1f2933}
.fz-le-impact{border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.5}

/* ── Coverage Puzzle Builder ─────────────────────────────────────────────────── */
.fz-puz-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-bottom:4px}
.fz-puz-slot{border:2px dashed #d1d5db;border-radius:10px;padding:12px 8px;text-align:center;cursor:pointer;transition:all .2s;min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.fz-puz-slot:hover{border-color:var(--primary);background:#eff6ff}
.fz-puz-slot.filled{border-style:solid;border-color:#16a34a;background:#f0fdf4;cursor:default}
.fz-puz-slot-emoji{font-size:20px;line-height:1}
.fz-puz-slot-label{font-size:10px;color:#6b7280;font-weight:600;text-align:center;line-height:1.3}
.fz-puz-placed{font-size:10px;color:#166534;font-weight:700;margin-top:2px;text-align:center}
.fz-puz-tiles{display:flex;flex-wrap:wrap;gap:8px}
.fz-puz-tile{background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:10px 12px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;color:#1f2933;transition:all .15s;text-align:center;min-width:80px}
.fz-puz-tile:hover,.fz-puz-tile.selected{border-color:var(--primary);background:#eff6ff;color:var(--primary)}
@keyframes fz-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.fz-shake{animation:fz-shake .4s ease-in-out both}
@keyframes fx-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.fx-pulse{animation:fx-pulse .3s ease-out both}

/* ── Spot the Risk ────────────────────────────────────────────────────────────── */
.fz-sr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fz-sr-obj{background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:10px 4px;cursor:pointer;text-align:center;transition:all .15s;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:3px}
.fz-sr-obj:hover:not(:disabled){border-color:var(--primary);background:#eff6ff}
.fz-sr-obj.risk-found{border-color:#16a34a;background:#dcfce7;cursor:not-allowed}
.fz-sr-obj.safe-found{border-color:#d97706;background:#fef3c7;cursor:not-allowed}
.fz-sr-obj:disabled{opacity:.85}
.fz-sr-emoji{font-size:26px;line-height:1}
.fz-sr-label{font-size:9px;color:#6b7280;font-weight:600;line-height:1.2;text-align:center}
.fz-sr-timer{font-size:22px;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums;min-width:52px;text-align:right}

/* ── Escape Room ──────────────────────────────────────────────────────────────── */
.fz-er-task{display:flex;align-items:center;gap:12px;width:100%;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:13px 14px;cursor:pointer;text-align:left;font-family:inherit;font-size:14px;transition:all .15s;margin-bottom:8px}
.fz-er-task.required{border-left:4px solid var(--primary)}
.fz-er-task:hover:not([disabled]){border-color:var(--primary);background:#eff6ff}
.fz-er-task.done{background:#dcfce7;border-color:#16a34a;cursor:not-allowed}
.fz-er-task-emoji{font-size:20px;flex-shrink:0;width:24px;text-align:center}
.fz-er-task-text{flex:1;color:#1f2933;font-size:13px}
.fz-er-task-pts{font-weight:700;color:var(--primary);font-size:12px;flex-shrink:0}

/* ── Theme Music Player ──────────────────────────────────────────────────── */
.fz-music-player{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;align-items:center;gap:6px;background:#1a1a2e;border:1px solid rgba(255,255,255,.18);border-radius:40px;padding:7px 10px 7px 12px;box-shadow:0 4px 24px rgba(0,0,0,.4);backdrop-filter:blur(10px);transition:box-shadow .2s}
.fz-music-player:hover{box-shadow:0 6px 30px rgba(0,0,0,.5)}
.fz-music-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.55);white-space:nowrap;user-select:none;letter-spacing:.04em;padding-right:2px}
.fz-music-btn{background:rgba(255,255,255,.1);border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;color:#fff;flex-shrink:0;padding:0}
.fz-music-btn:hover:not(:disabled){background:rgba(255,255,255,.25);transform:scale(1.12)}
.fz-music-btn:active:not(:disabled){transform:scale(.95)}
.fz-music-btn:disabled{opacity:.32;cursor:not-allowed}
.fz-music-playing .fz-music-label{color:#4ade80}
.fz-music-playing #fz-music-play{background:rgba(74,222,128,.22)}
@media(max-width:560px){.fz-music-player{bottom:12px;right:12px;padding:6px 8px 6px 10px}.fz-music-label{display:none}.fz-music-btn{width:28px;height:28px}}

@media(max-width:768px){.fz-bottom-grid{grid-template-columns:1fr}}
@media(max-width:560px){.fz-modal-inner{padding:24px 18px 20px}.fz-game-grid{grid-template-columns:1fr}.fz-le-avatar-grid{grid-template-columns:1fr 1fr}}
