/**
 * FT public auth — shared with Main Home and GSI header (FTPublicAuth).
 * Load before public-auth-nav.js for no-FOUC on internal pages.
 */
.ft-drawer-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(15,23,42,.28);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .22s ease;border:0;padding:0;cursor:pointer}
.ft-drawer-backdrop.open{opacity:1;pointer-events:auto}
.ft-drawer{position:fixed;top:0;right:0;z-index:2010;height:100%;height:100dvh;width:min(100vw,380px);background:#fff;border-left:1px solid rgba(15,23,42,.1);box-shadow:-12px 0 40px rgba(15,23,42,.16);transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.ft-drawer.open{transform:translateX(0)}
.ft-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid rgba(15,23,42,.08)}
.ft-drawer-head span{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#64748b}
.ft-drawer-close{border:0;background:transparent;font-size:1.2rem;cursor:pointer;padding:.35rem .5rem;border-radius:999px;color:#64748b}
.ft-drawer-close:hover{background:#f1f5f9;color:#0f172a}
.ft-drawer-profile{padding:1rem;border-bottom:1px solid rgba(15,23,42,.08)}
.ft-drawer-profile-row{display:flex;gap:.75rem;align-items:center}
.ft-drawer-avatar{width:44px;height:44px;border-radius:999px;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden;flex-shrink:0;font-size:.78rem;letter-spacing:.04em}
.ft-drawer-avatar img{width:100%;height:100%;object-fit:cover}
.ft-drawer-profile strong{display:block;font-size:.92rem;color:#0f172a}
.ft-drawer-profile small{display:block;color:#64748b;font-size:.78rem}
.ft-drawer-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}
.ft-drawer-actions a.ft-hub-cta{justify-content:center;width:100%;text-align:center}
.ft-drawer-validating{display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:.5rem 0;color:#64748b;font-size:.82rem}
.ft-drawer-spinner{width:28px;height:28px;border-radius:50%;border:2px solid rgba(37,99,235,.15);border-top-color:#2563eb;animation:ft-drawer-spin .9s linear infinite}
@keyframes ft-drawer-spin{to{transform:rotate(360deg)}}
.ft-drawer-body{flex:1;overflow:auto;padding:.75rem .5rem 1rem;-webkit-overflow-scrolling:touch}
.ft-drawer-sec{margin-bottom:1rem}
.ft-drawer-sec h4{margin:0;padding:.25rem .75rem;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:#94a3b8}
.ft-drawer-sec a{display:block;padding:.55rem .75rem;border-radius:.65rem;color:#334155;text-decoration:none;font-size:.9rem}
.ft-drawer-sec a:hover{background:#f1f5f9;color:#1d4ed8}
body.ft-drawer-open{overflow:hidden}
.ft-nav-actions .ft-menu-trigger,.ft-nav-actions .ft-menu-trigger--icon{display:inline-flex;align-items:center;justify-content:center;gap:0;border:1px solid #dbe3ef;background:#fff;color:#0f172a;border-radius:999px;padding:.55rem .75rem;min-width:44px;min-height:44px;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;font:inherit;line-height:1;appearance:none;-webkit-appearance:none}
.ft-nav-actions .ft-menu-trigger:hover,.ft-nav-actions .ft-menu-trigger--icon:hover{border-color:#2563eb;color:#2563eb}
.ft-enter-cta{display:inline-flex;align-items:center;border-radius:999px;padding:.55rem .95rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1px solid #dbe3ef;background:#fff;color:#0f172a !important}
.ft-enter-cta:hover{border-color:#2563eb;color:#2563eb !important}
.ft-hub-cta{display:inline-flex;align-items:center;border-radius:999px;padding:.55rem 1rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;background:#2563eb;color:#fff !important;box-shadow:0 6px 18px rgba(37,99,235,.28)}
.ft-hub-cta:hover{background:#1d4ed8}
.ft-drawer-actions a.ft-hub-cta small{display:block;font-size:.68rem;font-weight:600;opacity:.9;margin-top:.2rem}
.ft-auth-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:1px solid #dbeafe;white-space:nowrap}
.ft-auth-spin{width:.65rem;height:.65rem;border:2px solid #93c5fd;border-top-color:#2563eb;border-radius:999px;animation:ftSpinAuth .7s linear infinite;flex-shrink:0}
@keyframes ftSpinAuth{to{transform:rotate(360deg)}}
.ft-nav-skel{display:inline-block;border-radius:999px;height:38px;width:11.8rem;max-width:42vw;background:linear-gradient(90deg,#e2e8f0 0%,#f8fafc 45%,#e2e8f0 100%);background-size:200% 100%;animation:ftSkelAuth 1.15s ease-in-out infinite;box-shadow:0 6px 18px rgba(37,99,235,.08)}
@keyframes ftSkelAuth{0%{background-position:100% 0}100%{background-position:-100% 0}}
/* Session validate topbar — injected by ft-public-header.js (fixed header = positioning context) */
.ft-auth-topbar{position:absolute;left:0;right:0;top:0;height:2px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:2}
.ft-platform-header.navbar.ft-auth-busy .ft-auth-topbar{opacity:1}
.ft-auth-topbar-run{display:block;height:100%;width:38%;background:linear-gradient(90deg,transparent,#2563eb,#93c5fd,transparent);animation:ftAuthTopbarSlide 1.05s ease-in-out infinite}
@keyframes ftAuthTopbarSlide{0%{transform:translateX(-130%)}100%{transform:translateX(340%)}}
@media (max-width:720px){.ft-nav-actions .ft-hub-cta,.ft-nav-actions > a.ghost,.ft-nav-actions .ft-enter-cta,.ft-nav-actions .ft-auth-chip,.ft-nav-actions .ft-nav-skel,.ft-nav-actions .ft-profile-badge,.ft-nav-actions a.ft-nav-erp{display:none!important}.ft-nav-actions{width:auto;flex:0 0 auto;flex-wrap:nowrap}.navbar nav.ft-nav-actions{justify-content:flex-end}}
@media (prefers-reduced-motion:reduce){.ft-drawer-spinner,.ft-auth-spin,.ft-nav-skel{animation:none}}
