/* ── PAGE LOADER ── */
.page-loader{position:fixed;inset:0;background:var(--primary);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .5s ease}
.page-loader.hidden{opacity:0;pointer-events:none}
.loader-logo{font-size:56px;animation:pulse 1s ease-in-out infinite}
.loader-bar{width:200px;height:4px;background:rgba(255,255,255,.2);border-radius:4px;overflow:hidden;margin-top:20px}
.loader-bar-fill{height:100%;background:var(--accent);border-radius:4px;animation:loadbar 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes loadbar{0%{width:0%}50%{width:70%}100%{width:100%}}

/* ── SKELETON LOADING ── */
.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-text{height:14px;margin-bottom:8px}
.skeleton-title{height:22px;width:60%;margin-bottom:12px}
.skeleton-card{height:180px;border-radius:12px;margin-bottom:20px}

/* ── SCROLL ANIMATIONS ── */
.fade-up{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.fade-left{opacity:0;transform:translateX(-30px);transition:opacity .6s ease,transform .6s ease}
.fade-left.visible{opacity:1;transform:translateX(0)}
.fade-right{opacity:0;transform:translateX(30px);transition:opacity .6s ease,transform .6s ease}
.fade-right.visible{opacity:1;transform:translateX(0)}
.scale-in{opacity:0;transform:scale(.92);transition:opacity .5s ease,transform .5s ease}
.scale-in.visible{opacity:1;transform:scale(1)}

/* ── CARD HOVER ── */
.visa-card,.action-card,.stat-card,.info-card{transition:transform .25s ease,box-shadow .25s ease}
.visa-card:hover,.action-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px rgba(0,38,100,.15)}

/* ── BUTTON RIPPLE ── */
.btn-sm,.btn-hero-primary,.btn-hero-secondary{position:relative;overflow:hidden}
.btn-sm::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.2);transform:scale(0);border-radius:inherit;transition:transform .4s ease,opacity .4s ease;opacity:0}
.btn-sm:active::after{transform:scale(2);opacity:1;transition:none}

/* ── NUMBER COUNTER ANIMATION ── */
.count-up{display:inline-block}

/* ── PAGE TRANSITION ── */
.page-transition{animation:pageIn .4s ease}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── NOTIFICATION TOAST ── */
#toast-container{position:fixed;top:20px;right:20px;z-index:3000;display:flex;flex-direction:column;gap:10px}
.toast{background:#fff;border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.15);padding:14px 20px;display:flex;align-items:center;gap:12px;min-width:280px;max-width:360px;animation:toastIn .3s ease;border-left:4px solid var(--secondary)}
.toast.success{border-left-color:var(--success)}
.toast.error{border-left-color:var(--accent)}
.toast.warning{border-left-color:var(--warning)}
@keyframes toastIn{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}
.toast-icon{font-size:20px}
.toast-msg{flex:1;font-size:14px;color:var(--text)}
.toast-close{background:none;border:none;font-size:18px;cursor:pointer;color:#aaa;padding:0 4px}

/* ── COUNTRY FLAG CARDS ── */
.country-card{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:28px 20px;text-align:center;transition:.3s ease;cursor:pointer}
.country-card:hover{border-color:var(--secondary);transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,38,100,.12);text-decoration:none}
.country-flag{font-size:52px;margin-bottom:12px;display:block}
.country-card h3{color:var(--primary);font-size:16px;margin-bottom:6px}
.country-card p{font-size:13px;color:#666}

/* ── SEARCH PORTAL ── */
.search-portal-wrap{background:linear-gradient(135deg,var(--primary),var(--secondary));padding:60px 20px;text-align:center}
.search-portal-wrap h1{color:#fff;font-size:36px;margin-bottom:10px}
.search-portal-wrap p{color:rgba(255,255,255,.8);margin-bottom:28px}
.search-portal-input{display:flex;max-width:640px;margin:0 auto;gap:0;border-radius:50px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.search-portal-input input{flex:1;padding:16px 24px;border:none;font-size:15px;outline:none}
.search-portal-input button{background:var(--accent);color:#fff;border:none;padding:0 32px;font-size:15px;font-weight:700;cursor:pointer}
.search-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:24px}
.search-tab{padding:10px 20px;cursor:pointer;font-size:14px;font-weight:500;color:#666;border-bottom:3px solid transparent;margin-bottom:-2px;background:none;border-top:none;border-left:none;border-right:none;transition:.2s}
.search-tab.active{color:var(--primary);border-bottom-color:var(--accent)}

/* ── AUDIT LOG ── */
.audit-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid #f0f0f0}
.audit-item:last-child{border-bottom:none}
.audit-dot{width:10px;height:10px;border-radius:50%;background:var(--secondary);margin-top:5px;flex-shrink:0}
.audit-content{flex:1}
.audit-action{font-size:14px;color:var(--text)}
.audit-meta{font-size:12px;color:#999;margin-top:2px}

/* ── SPONSORSHIP CARD ── */
.sponsor-card{background:#fff;border:1.5px solid var(--border);border-radius:12px;padding:20px;transition:.25s ease}
.sponsor-card:hover{border-color:var(--secondary);box-shadow:var(--shadow)}
.sponsor-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase}
.sponsor-badge.active{background:#d4edda;color:#155724}
.sponsor-badge.suspended{background:#f8d7da;color:#721c24}
