/* css/login.css */
:root {
    
    --neon-cyan: #00f0ff;
    --neon-magenta: #ff007f;
    --neon-purple: #9d00ff;
    --card-bg: rgba(13, 16, 28, 0.7);
    --card-border: rgba(0, 240, 255, 0.15);
    --text-main: #f8fafc;
    --text-muted: #8a8f9d;
    --font-head: 'Orbitron', sans-serif;
    --font-body: 'Inter', sans-serif;
}

body {
    margin: 0; padding: 0;
    font-family: var(--font-body);
    color: var(--text-main);
    display: flex; justify-content: center; align-items: center;
    min-height: 100vh;
    overflow-x: hidden;
    user-select: none; -webkit-user-select: none;
}

/* --- MASTER CONTAINER (Responsive Split Logic) --- */
.launchpad-container {
    position: relative; z-index: 5;
    width: 90%; max-width: 420px; 
    display: flex; flex-direction: column; gap: 20px;
    animation: fadeUp 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* DESKTOP SIDE-BY-SIDE SPLIT */
@media (min-width: 850px) {
    .launchpad-container {
        flex-direction: row;
        max-width: 850px;
        align-items: stretch;
    }
    .glass-card {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .mobile-only {
        display: none !important;
    }
}

@keyframes fadeUp {
    0% { transform: translateY(30px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}

/* --- GLASS CARDS --- */
.glass-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 24px;
    padding: clamp(25px, 5vw, 40px);
    text-align: center;
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.6), inset 0 0 20px rgba(0, 240, 255, 0.03);
}

.primary-card {
    border: 1px solid rgba(0, 240, 255, 0.4);
    box-shadow: 0 20px 50px rgba(0,0,0,0.6), 0 0 40px rgba(0, 240, 255, 0.1) inset;
}

/* --- KIBI ANIMATION --- */
.kibi-stage {
    width: clamp(140px, 40vw, 180px);
    height: clamp(160px, 45vw, 200px);
    margin: 0 auto 20px auto;
    position: relative;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.6));
}

.anim-body-hover { transform-origin: center; animation: hoverBody 4s ease-in-out infinite alternate; }
.anim-hand-left { transform-origin: center; animation: hoverHand 3.2s ease-in-out infinite alternate; }
.anim-hand-right { transform-origin: center; animation: hoverHand 3.8s ease-in-out infinite alternate-reverse; }
.anim-pupil { animation: lookAround 6s infinite; }
.anim-blink { transform-origin: center 75px; animation: snapBlink 5s infinite; }
.anim-pulse { animation: glowPulse 2s infinite alternate; }

@keyframes hoverBody { 0% { transform: translateY(0px) rotate(-1deg); } 100% { transform: translateY(-12px) rotate(1deg); } }
@keyframes hoverHand { 0% { transform: translateY(4px); } 100% { transform: translateY(-8px); } }
@keyframes snapBlink { 0%, 93%, 97%, 100% { transform: scaleY(0); } 94%, 96% { transform: scaleY(1); } 95% { transform: scaleY(1.1); } }
@keyframes lookAround { 0%, 20% { transform: translateX(0); } 25%, 45% { transform: translateX(4px); } 50%, 70% { transform: translateX(-4px); } 75%, 100% { transform: translateX(0); } }
@keyframes glowPulse { 0% { fill: var(--neon-cyan); filter: drop-shadow(0 0 5px var(--neon-cyan)); } 100% { fill: #ffffff; filter: drop-shadow(0 0 10px var(--neon-cyan)); } }

/* --- CTA BUTTONS --- */
.btn-launch {
    width: 100%;
    background: linear-gradient(135deg, var(--neon-cyan), #0088ff);
    border: none; border-radius: 16px; padding: 20px 10px;
    cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center;
    box-shadow: 0 8px 30px rgba(0, 240, 255, 0.4); transition: all 0.2s ease;
}
.btn-launch:active { transform: scale(0.96); box-shadow: 0 4px 15px rgba(0, 240, 255, 0.3); }

.btn-main-text {
    font-family: var(--font-head); font-size: clamp(1.2rem, 4vw, 1.4rem); font-weight: 800; color: #000; letter-spacing: 1px;
}
.btn-sub-text {
    font-family: var(--font-body); font-size: 0.85rem; color: rgba(0,0,0,0.8); font-weight: 700; margin-top: 5px; text-transform: uppercase;
}

/* --- DIVIDER (Mobile Stack) --- */
.divider {
    position: relative; text-align: center; margin: 0;
}
.divider::before {
    content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: rgba(255,255,255,0.1); z-index: 1;
}
.divider span {
    position: relative; z-index: 2;  padding: 0 15px; font-size: 0.8rem; font-weight: 700; color: #62677b; letter-spacing: 2px;
}

/* --- LOGIN PANEL UI --- */
.login-title {
    font-family: var(--font-head);
    font-size: 1.3rem;
    color: var(--neon-purple);
    margin-bottom: 5px;
    letter-spacing: 1px;
}
.login-subtitle {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-bottom: 25px;
}

.input-stack { 
    display: flex; 
    flex-direction: column; 
    gap: 15px; 
    margin-bottom: 25px; 
}
.input-group { text-align: left; width: 100%; }
.input-group label { display: block; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); margin-bottom: 8px; letter-spacing: 1px; text-transform: uppercase;}

.input-group input {
    width: 100%; box-sizing: border-box; background: rgba(0,0,0,0.6);
    border: 2px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 16px;
    font-size: 1.1rem; color: #fff; transition: all 0.3s; font-family: var(--font-body);
    letter-spacing: 1px;
}
.input-group input:focus { 
    outline: none; border-color: var(--neon-purple); background: #000; 
    box-shadow: 0 0 15px rgba(157, 0, 255, 0.3);
}
.input-group input::placeholder { color: #4a4d59; font-weight: 400; letter-spacing: normal;}

.btn-secondary {
    width: 100%;
    background: linear-gradient(135deg, rgba(157, 0, 255, 0.8), rgba(89, 0, 255, 0.8));
    border: 1px solid rgba(157, 0, 255, 0.5);
    border-radius: 14px; padding: 18px; color: #fff; font-size: 1.1rem; font-weight: 800;
    cursor: pointer; transition: all 0.2s; font-family: var(--font-head); letter-spacing: 1px;
    box-shadow: 0 8px 20px rgba(157, 0, 255, 0.2);
}
.btn-secondary:hover { border-color: var(--neon-purple); box-shadow: 0 8px 30px rgba(157, 0, 255, 0.4); }
.btn-secondary:active { transform: scale(0.96); }

/* --- ALERTS & LOADERS --- */
.error-box { border-radius: 12px; padding: 15px; font-size: 0.9rem; margin-bottom: 20px; font-weight: 500; text-align: left; line-height: 1.4; }
.alert-box { background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.3); color: #ef4444; }
.success-box { background: rgba(57, 255, 20, 0.1); border: 1px solid rgba(57, 255, 20, 0.3); color: #39ff14; }
.warning-box { background: rgba(255, 170, 0, 0.1); border: 1px solid rgba(255, 170, 0, 0.3); color: #ffaa00; }
.hidden { display: none !important; }

.system-loader {
    position: fixed; inset: 0; background: rgba(3, 5, 10, 0.95); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; backdrop-filter: blur(5px);
}
.radar-spinner { width: 50px; height: 50px; border: 3px solid rgba(0, 240, 255, 0.1); border-left-color: var(--neon-cyan); border-right-color: var(--neon-purple); border-radius: 50%; animation: spin 1s linear infinite; }
.loader-text { margin-top: 15px; font-weight: 700; letter-spacing: 2px; color: var(--neon-cyan); font-size: 0.8rem; text-transform: uppercase; }
@keyframes spin { 100% { transform: rotate(360deg); } }