/* Fav Hideout Accounts structural styles only. Override these freely in Elementor/theme CSS. */
.fh-auth-page,.fh-recovery-page,.fh-onboarding,.fh-profile-page,.fh-settings-page,.fh-security-page,.fh-connections-page,.fh-privacy-page,.fh-discord-verify,.fh-auth-required{box-sizing:border-box;max-width:100%;}
.fh-auth-page *, .fh-recovery-page *, .fh-onboarding *, .fh-profile-page *, .fh-settings-page *, .fh-security-page *, .fh-connections-page *, .fh-privacy-page *, .fh-discord-verify *{box-sizing:border-box;}
.fh-auth-form,.fh-settings-form{display:grid;gap:1rem;max-width:100%;}
.fh-auth-label{display:grid;gap:.35rem;min-width:0;}
.fh-auth-input{display:block;max-width:100%;width:100%;}
.fh-auth-check{display:flex;align-items:flex-start;gap:.55rem;}
.fh-password-field{display:flex;align-items:stretch;position:relative;min-width:0;}
.fh-password-field .fh-auth-input{flex:1;min-width:0;}
.fh-password-toggle{flex:none;cursor:pointer;}
.fh-password-eye-closed{display:none;}
.fh-password-is-visible .fh-password-eye-open{display:none;}
.fh-password-is-visible .fh-password-eye-closed{display:inline;}
.fh-auth-providers{display:flex;flex-wrap:wrap;gap:.65rem;margin-block:1rem;}
.fh-btn,.fh-auth-provider{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;text-decoration:none;}
.fh-btn:disabled{opacity:.6;cursor:not-allowed;}
.fh-form-message:empty{display:none;}
.fh-form-message.fh-has-error,.fh-auth-error,.fh-search-error{color:#b42318;}
.fh-form-message.fh-has-success{color:#067647;}
.fh-is-loading{cursor:progress;}
.fh-auth-form [hidden],.fh-totp-setup[hidden]{display:none!important;}
.fh-profile-card{display:grid;gap:1rem;min-width:0;}
.fh-profile-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center;position:relative;}
.fh-profile-cover{grid-column:1/-1;width:100%;max-height:16rem;object-fit:cover;}
.fh-profile-cover-placeholder{min-height:5rem;}
.fh-profile-avatar{width:5rem;height:5rem;object-fit:cover;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;}
.fh-profile-identity{min-width:0;overflow-wrap:anywhere;}
.fh-profile-username{opacity:.75;}
.fh-profile-bio{overflow-wrap:anywhere;}
.fh-profile-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem;}
.fh-profile-stats{display:flex;flex-wrap:wrap;gap:1rem;}
.fh-profile-stats a{display:inline-flex;align-items:baseline;gap:.35rem;text-decoration:none;}
.fh-profile-stats span{opacity:.75;}
.fh-profile-owner-links,.fh-settings-navigation{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;}
.fh-settings-section,.fh-security-method{display:grid;gap:.75rem;margin-block:1.5rem;min-width:0;}
.fh-recovery-codes{white-space:pre-wrap;word-break:break-word;padding:1rem;border:1px solid currentColor;}
.fh-session-item,.fh-social-result{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;min-width:0;}
.fh-session-item{justify-content:space-between;flex-wrap:wrap;}
.fh-social-result img,.fh-search-result img{width:2.5rem;height:2.5rem;object-fit:cover;border-radius:50%;flex:none;}
.fh-social-result small,.fh-search-result small{display:block;opacity:.75;}
.fh-social-result span,.fh-search-result-copy{min-width:0;overflow-wrap:anywhere;}
.fh-search{position:relative;min-width:0;}
.fh-search-input{width:100%;}
.fh-search-results{display:grid;gap:.15rem;}
.fh-search-result{display:flex;gap:.65rem;align-items:center;text-decoration:none;min-width:0;padding:.45rem;}
.fh-search-empty,.fh-search-error{padding:.5rem;}
.fh-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:1rem;}
.fh-is-hidden{display:none!important;}
.fh-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.fh-modal-dialog{position:relative;z-index:1;width:min(100%,32rem);max-height:90vh;overflow:auto;padding:1.25rem;background:var(--fh-modal-background,#fff);color:var(--fh-modal-color,#222);border-radius:var(--fh-modal-radius,1rem);box-shadow:0 1rem 3rem rgba(0,0,0,.2);}
.fh-modal-close{position:absolute;right:.5rem;top:.5rem;}
.fh-modal-footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;}
.fh-totp-secret{display:inline-block;overflow-wrap:anywhere;padding:.75rem;border:1px solid currentColor;}
.fh-security-event{display:grid;gap:.25rem;}
@media(max-width:520px){.fh-profile-header{grid-template-columns:1fr;}.fh-profile-avatar{width:4.5rem;height:4.5rem;}.fh-modal-dialog{padding:1rem;}}

/* Social request inbox: structure only; theme styling remains under user control. */
.fh-request-list{display:grid;gap:.75rem;min-width:0}
.fh-request-item{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-width:0}
.fh-request-avatar{width:2.5rem;height:2.5rem;object-fit:cover;border-radius:50%;flex:0 0 auto}
.fh-request-name{font-weight:600}
.fh-request-username{color:inherit;opacity:.72}
.fh-request-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-inline-start:auto}
.fh-request-actions .fh-btn{cursor:pointer}

/* User-customizable setting controls: structure only; put card backgrounds, borders and spacing on Elementor containers. */
.fh-setting-toggle{display:flex;align-items:center;gap:.7rem;cursor:pointer;min-width:0}
.fh-setting-toggle-label{flex:1;min-width:0}
.fh-setting-toggle-input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.fh-setting-toggle-control{display:inline-flex;align-items:center;position:relative;flex:0 0 auto;width:2.45rem;height:1.4rem;border:1px solid currentColor;border-radius:999px;opacity:.72;transition:opacity .15s ease}
.fh-setting-toggle-control:after{content:"";position:absolute;left:.16rem;width:.9rem;height:.9rem;border-radius:50%;background:currentColor;transition:transform .15s ease}
.fh-setting-toggle-input:checked+.fh-setting-toggle-control{opacity:1}
.fh-setting-toggle-input:checked+.fh-setting-toggle-control:after{transform:translateX(1.02rem)}
.fh-setting-toggle-input:focus-visible+.fh-setting-toggle-control{outline:2px solid currentColor;outline-offset:3px}
.fh-setting-toggle-input:disabled+.fh-setting-toggle-control{opacity:.4}
.fh-setting-field{display:grid;gap:.35rem;min-width:0}
.fh-setting-field-input{width:100%;max-width:100%;box-sizing:border-box}
.fh-setting-field-status{font-size:.85em;opacity:.72}
.fh-setting-toggle.fh-is-saving{opacity:.7}
.fh-settings-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-block:1rem}
.fh-settings-tab{cursor:pointer}
.fh-settings-tab-active{font-weight:600}
.fh-settings-section[hidden],[hidden]{display:none!important}
.fh-discord-auth-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.fh-discord-loading-indicator{width:1.8rem;height:1.8rem;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:fh-discord-spin .75s linear infinite}
@keyframes fh-discord-spin{to{transform:rotate(360deg)}}

/* ===== Discord verification page (v0.3.6) =====
   State visibility is decided by a class on <body> (fh-dstate-start|account|loading|ready|invalid): the server sets it
   before any JS runs and the script updates it. Nothing here touches Elementor's own display/flex/grid values for the
   ACTIVE state, and nothing at all is hidden inside the Elementor editor. */
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-start) .fh-discord-state-start,
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-account) .fh-discord-state-account,
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-loading) .fh-discord-state-loading,
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-ready) .fh-discord-state-ready,
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-ready) .fh-discord-verified,
body.fh-discord-verification-page:not(.elementor-editor-active):not(.fh-dstate-invalid) .fh-discord-state-invalid { display:none !important; }
.fh-discord-flow-controller { display:none !important; }
.fh-discord-progress { width:100%; height:8px; border-radius:999px; background:rgba(127,127,127,.25); overflow:hidden; }
.fh-discord-progress-bar { height:100%; width:var(--fh-progress,0%); border-radius:inherit; background:currentColor; transition:width .6s ease; }

/* Hide any header / footer on the verification page (theme, Elementor Pro, Royal Elementor Addons, etc.). The bare PHP template already omits them. */
body.fh-discord-verification-page:not(.elementor-editor-active) [data-elementor-type="header"],
body.fh-discord-verification-page:not(.elementor-editor-active) [data-elementor-type="footer"],
body.fh-discord-verification-page:not(.elementor-editor-active) [data-elementor-type="wpr-theme-builder"],
body.fh-discord-verification-page:not(.elementor-editor-active) .elementor-location-header,
body.fh-discord-verification-page:not(.elementor-editor-active) .elementor-location-footer,
body.fh-discord-verification-page:not(.elementor-editor-active) [class*="wpr-header"],
body.fh-discord-verification-page:not(.elementor-editor-active) [class*="wpr-footer"],
body.fh-discord-verification-page:not(.elementor-editor-active) [id*="royal-elementor-header"],
body.fh-discord-verification-page:not(.elementor-editor-active) [id*="royal-elementor-footer"],
body.fh-discord-verification-page:not(.elementor-editor-active) [class*="royal-header"],
body.fh-discord-verification-page:not(.elementor-editor-active) [class*="royal-footer"],
body.fh-discord-verification-page:not(.elementor-editor-active) .site-header,
body.fh-discord-verification-page:not(.elementor-editor-active) .site-footer,
body.fh-discord-verification-page:not(.elementor-editor-active) #masthead,
body.fh-discord-verification-page:not(.elementor-editor-active) #colophon,
body.fh-discord-verification-page:not(.elementor-editor-active) #wpadminbar { display:none !important; }
html:has(body.fh-discord-verification-page:not(.elementor-editor-active)) { margin-top:0 !important; }
body.fh-discord-verification-page { margin-top:0 !important; padding-top:0; top:0 !important; }

/* Language picker: minimal, black & white, rounded. */
.fh-lang { position:fixed; z-index:2147483000; top:16px; right:16px; font:500 14px/1.35 "Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:#000; }
.fh-lang-btn { width:42px; height:42px; display:grid; place-items:center; padding:0; border:1.5px solid #000; border-radius:14px; background:#fff; color:#000; cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.12); transition:transform .15s ease; }
.fh-lang-btn:hover { transform:scale(1.06); }
.fh-lang-btn svg { width:20px; height:20px; display:block; }
.fh-lang-menu { position:absolute; top:50px; right:0; width:210px; max-height:min(60vh,420px); overflow-y:auto; margin:0; padding:6px; list-style:none; border:1.5px solid #000; border-radius:18px; background:#fff; box-shadow:0 12px 36px rgba(0,0,0,.2); }
.fh-lang-menu[hidden] { display:none !important; }
.fh-lang-menu button { display:block; width:100%; padding:8px 12px; border:0; border-radius:12px; background:transparent; color:#000; font:inherit; text-align:left; cursor:pointer; }
.fh-lang-menu button:hover, .fh-lang-menu button:focus-visible { background:#000; color:#fff; outline:0; }
.fh-lang-menu button[aria-current="true"] { font-weight:700; }
#fh-lang-google { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame, .goog-tooltip { display:none !important; }
.goog-text-highlight { background:none !important; box-shadow:none !important; }

/* Hide Google Translate's top banner / popups only by CSS (never remove its elements: the translation engine lives in them). */
.goog-te-banner-frame, .VIpgJd-ZVi9od-ORHb-OEVmcd, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf, #goog-gt-tt, .goog-te-balloon-frame, .goog-tooltip { display:none !important; }
html, body { top:0 !important; }
.goog-text-highlight { background:none !important; box-shadow:none !important; }
