.glass { background: rgba(18,18,22,0.7); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,0.06); }
.inp { background: #111; border: 1px solid #333; border-radius: 0.5rem; padding: 0.6rem 1rem; color: #fff; outline: none; transition: border 0.2s; }
.inp:focus { border-color: #10b981; }
.btn-primary { background: linear-gradient(135deg,#10b981,#047857); color: #fff; font-weight: 600; padding: 0.75rem; border-radius: 0.5rem; border: none; cursor: pointer; transition: opacity 0.2s; }
.btn-primary:hover { opacity: 0.9; }
.nav-btn { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 1.25rem; color: #737373; border-left: 3px solid transparent; transition: all 0.15s; text-decoration: none; }
.nav-btn:hover { color: #e5e5e5; background: rgba(255,255,255,0.03); }
.nav-btn.active { color: #34d399; background: rgba(16,185,129,0.08); border-left-color: #10b981; }
.badge-green { background: rgba(16,185,129,0.1); color: #34d399; border: 1px solid rgba(16,185,129,0.3); font-size: 0.7rem; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.badge-amber { background: rgba(245,158,11,0.1); color: #fbbf24; border: 1px solid rgba(245,158,11,0.3); font-size: 0.7rem; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.badge-blue { background: rgba(59,130,246,0.1); color: #93c5fd; border: 1px solid rgba(59,130,246,0.3); font-size: 0.7rem; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.badge-purple { background: rgba(168,85,247,0.1); color: #d8b4fe; border: 1px solid rgba(168,85,247,0.3); font-size: 0.7rem; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.badge-cyan { background: rgba(34,211,238,0.1); color: #67e8f9; border: 1px solid rgba(34,211,238,0.3); font-size: 0.7rem; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.flash-red { background: #7f1d1d; color: #fca5a5; font-size: 0.65rem; padding: 0.15rem 0.5rem; border-radius: 0.25rem; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; }
.flash-green { background: #14532d; color: #86efac; font-size: 0.65rem; padding: 0.15rem 0.5rem; border-radius: 0.25rem; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; }
.flash-blue { background: #1e3a5f; color: #93c5fd; font-size: 0.65rem; padding: 0.15rem 0.5rem; border-radius: 0.25rem; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; }
.flash-purple { background: #3b0764; color: #d8b4fe; font-size: 0.65rem; padding: 0.15rem 0.5rem; border-radius: 0.25rem; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; }
.advisor-card { transition: transform 0.2s, border-color 0.2s; }
.advisor-card:hover { transform: translateY(-2px); border-color: rgba(16,185,129,0.3); }
.step-card { transition: all 0.2s; cursor: pointer; }
.step-card:hover { background: rgba(16,185,129,0.05); border-color: rgba(16,185,129,0.3); }
.view { animation: fadeIn 0.3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse-glow { 0%,100% { box-shadow: 0 0 5px rgba(16,185,129,0.3); } 50% { box-shadow: 0 0 20px rgba(16,185,129,0.6); } }

#sidebar { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
@media (max-width: 767px) {
    #sidebar.open { transform: translateX(0); }
}

/* ===== MOBILE FIXES ===== */
@media (max-width: 767px) {
    .btn-primary { font-size: 0.75rem; padding: 0.6rem 0.9rem; }
    #landing-screen header { padding-top: 3rem; padding-bottom: 3rem; }
    #landing-screen header h1 { font-size: 2.25rem; }
    .glass { backdrop-filter: blur(8px); }
    #residency-widget { margin-top: 1.5rem; }
}

/* Ensure auth overlay never blocks when hidden */
#auth-screen[style*="display: none"],
#auth-screen[style*="display:none"] { pointer-events: none !important; }

/* pub-res-result always blockable */
#pub-res-result { display: none; }
