/* ============================================================================
 📄 googlebutton.css
 🎨 Google Sign-In + Avatar Badge + Dropdown Menu
 STYLE: Tabs only | Annotated | Z-index hardened
 GOAL: Responsive design with Samsung Galaxy Tab S8 treated as mobile (≤999px)
============================================================================ */

/* ╔══════════════════════════════════╗
   ║           DESIGN TOKENS           ║
   ╚══════════════════════════════════╝ */
:root {
    /* Layout & Spacing */
    --gx-gap: 10px;
    --gx-radius: 12px;
    --gx-shadow: 0 6px 18px rgba(0, 0, 0, .08);
    --gx-border: 1px solid #e6e6e6;
    --gx-bg: #fff;
    --gx-text: #222;
    --gx-muted: #777;

    /* Avatar */
    --avatar-size: 64px;
    --avatar-right-offset: 80px;

    /* Z-Index Scale */
    --z-app: 0;
    --z-header: 1000;
    --z-nav: 2000;
    --z-auth: 30000;
    --z-authMenu: 50000;
}

/* ╔══════════════════════════════════╗
   ║           HEADER ANCHOR          ║
   ╚══════════════════════════════════╝ */
header {
    position: relative;
    z-index: var(--z-header);
    overflow: visible;
}

/* ╔══════════════════════════════════╗
   ║       LOGIN BUTTON + PANEL       ║
   ╚══════════════════════════════════╝ */
#vx-login-controls {
	position: absolute;
	top: 50px;
	right: 50px;
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
	z-index: var(--z-auth);
}

#vx-login-btn {
	padding: clamp(6px, 0.8vw, 12px);
	background: var(--gx-bg);
	color: var(--gx-text);
	border: var(--gx-border);
	border-radius: var(--gx-radius);
	box-shadow: var(--gx-shadow);
	font: inherit;
	cursor: pointer;
}

#vx-login-panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	display: grid;
	gap: 8px;
	padding: 10px;
	background: var(--gx-bg);
	border: var(--gx-border);
	border-radius: var(--gx-radius);
	box-shadow: var(--gx-shadow);
	min-width: 220px;
	z-index: var(--z-authMenu);
}

#vx-login-panel[hidden] {
	display: none;
}

.vx-login-label {
	font-size: 0.85rem;
	color: var(--gx-muted);
}

#vx-login-link {
	display: block;
	padding: 8px 10px;
	border-radius: 8px;
	border: var(--gx-border);
	background: #f8f8f8;
	color: var(--gx-text);
	text-decoration: none;
	text-align: center;
}

#vx-login-link:hover {
	background: #f0f0f0;
}

/* ╔══════════════════════════════════╗
   ║       GOOGLE SIGN-IN BUTTON       ║
   ╚══════════════════════════════════╝ */
#g_id_signin {
    position: absolute;
    top: 50px;
    right: 50px;
    padding: clamp(6px, 0.8vw, 12px);
    background: var(--gx-bg);
    border: var(--gx-border);
    border-radius: var(--gx-radius);
    box-shadow: var(--gx-shadow);
    z-index: var(--z-auth);
    transition: all 0.25s ease;
    transform: translateZ(0);
}

#vx-login-panel #g_id_signin {
	position: static !important;
	top: auto !important;
	right: auto !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	display: block !important;
}

/* ╔══════════════════════════════════╗
   ║           USER BADGE              ║
   ╚══════════════════════════════════╝ */
#user-badge {
    position: absolute;
    top: 50px;
    right: 100px;
    z-index: var(--z-auth);
    padding: 0;
    margin: 0;
    background: none;
    border: none;
    box-shadow: none;
    transform: translateZ(0);
}

#user-badge img {
    width: var(--avatar-size);
    height: var(--avatar-size);
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

#user-badge .vx-avatar-btn {
	width: var(--avatar-size);
	height: var(--avatar-size);
	border-radius: 50%;
	border: none;
	padding: 0;
	margin: 0;
	background: transparent;
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

#user-badge .vx-avatar-btn.vx-avatar-fade {
	opacity: 0;
}

#user-badge .vx-avatar-btn:focus-visible {
	outline: 2px solid rgba(63,107,218,0.6);
	outline-offset: 3px;
}

#user-badge .vx-avatar-image {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

#user-badge .vx-avatar-initials {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: 0.02rem;
	text-transform: uppercase;
}

/* Legacy sign-out button (kept for safety) */
#user-badge button:not(.vx-avatar-btn) {
    margin-left: 6px;
    padding: 6px 10px;
    background: #fafafa;
    border: 1px solid #d0d0d0;
    border-radius: 8px;
    font: inherit;
    cursor: pointer;
}
#user-badge button:not(.vx-avatar-btn):hover { background: #f0f0f0; }
#user-badge button:not(.vx-avatar-btn):active { transform: translateY(1px); }

/* ╔══════════════════════════════════╗
   ║          DROPDOWN MENU            ║
   ╚══════════════════════════════════╝ */
#user-badge .dropdown,
#user-badge .dropdown-menu,
#user-badge .menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 220px;
    padding: 10px 0;
    margin: 0;
    background: var(--gx-bg);
    border: var(--gx-border);
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
    z-index: var(--z-authMenu);
    transform: translateZ(0);
    overflow: visible;
}

#user-badge .dropdown-item,
#user-badge .menu a,
#user-badge .menu button {
    display: block;
    padding: 10px 14px;
    color: #000;
    text-decoration: none;
    white-space: nowrap;
}
#user-badge .dropdown-item:hover,
#user-badge .menu a:hover,
#user-badge .menu button:hover {
    background: rgba(0, 0, 0, .05);
    color: #000;
}

/* ╔══════════════════════════════════╗
   ║     MOBILE NAV SIGN-IN SLOT       ║
   ╚══════════════════════════════════╝ */
.mobile-nav .signin-slot {
    padding: 12px 16px;
    border-top: 1px solid #eee;
    text-align: center;
}
.mobile-nav .signin-slot > div {
    display: inline-block;
    max-width: 100%;
}

/* ╔══════════════════════════════════╗
   ║        RESPONSIVE BREAKPOINTS      ║
   ╚══════════════════════════════════╝
   Breakpoints:
   • ≤480px     → Small Mobile
   • 481–999px  → Mobile (includes Tab S8)
   • 1000–1399px → Desktop
   • 1400–1799px → Large Desktop
   • ≥1800px    → Ultra-wide
*/

/* — Small Mobile (≤480px) — */
@media (max-width: 480px) {
    :root {
        --avatar-size: 48px;
        --gx-gap: 8px;
    }

    header { min-height: calc(var(--avatar-size) + 16px); }

    #g_id_signin { display: none !important; }

	#vx-login-controls {
		top: 20px;
		right: 16px;
	}

	#vx-login-btn {
		padding: 6px 10px;
		font-size: 0.85rem;
	}

	#vx-login-panel {
		min-width: 200px;
	}

    #user-badge {
        top: 27px !important;
        right: 40px !important;
    }

    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        min-width: 180px;
    }

    .mobile-nav .signin-slot { padding: 8px 12px; }
}

/* — Mobile (481px–999px) — */
@media (min-width: 481px) and (max-width: 999px) {
    :root { --avatar-size: 58px; }

    header { min-height: calc(var(--avatar-size) + 20px); }

    #g_id_signin { display: none !important; }

	#vx-login-controls {
		top: 22px;
		right: 18px;
	}

	#vx-login-btn {
		padding: 6px 12px;
		font-size: 0.9rem;
	}

	#vx-login-panel {
		min-width: 210px;
	}

     #user-badge {
        top: 27px !important;
        right: 40px !important;
    }

    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        min-width: 200px;
    }

    .mobile-nav .signin-slot { padding: 10px 14px; }
}

/* — Desktop (1000px–1399px) — */
@media (min-width: 1000px) and (max-width: 1399px) {
    #g_id_signin {
        top: 50px;
        right: 50px;
    }

    #user-badge {
        top: 50px;
        right: 100px;
    }

    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        min-width: 220px;
    }
}

/* — Large Desktop (1400px–1799px) — */
@media (min-width: 1400px) and (max-width: 1799px) {
    :root {
        --avatar-size: 70px;
        --avatar-right-offset: 100px;
    }

    #g_id_signin {
        top: 50px;
        right: 50px;
        padding: 10px;
    }

    #user-badge {
        top: 50px;
        right: 100px;
    }

    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        min-width: 240px;
    }
}

/* — Ultra-wide (≥1800px) — */
@media (min-width: 1800px) {
    :root {
        --avatar-size: 76px;
        --avatar-right-offset: 120px;
    }

    #g_id_signin {
        top: 50px;
        right: 50px;
        padding: 12px;
    }

    #user-badge {
        top: 50px;
        right: 100px;
    }

    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        min-width: 260px;
    }
}

/* ╔══════════════════════════════════╗
   ║            DARK THEME             ║
   ╚══════════════════════════════════╝ */
@media (prefers-color-scheme: dark) {
    :root {
        --gx-bg: #121212;
        --gx-text: #f3f3f3;
        --gx-muted: #aaa;
        --gx-border: 1px solid #2a2a2a;
        --gx-shadow: 0 6px 18px rgba(0, 0, 0, .5);
    }

    #g_id_signin,
    #user-badge .dropdown,
    #user-badge .dropdown-menu,
    #user-badge .menu {
        background: var(--gx-bg);
        border-color: #2a2a2a;
        box-shadow: var(--gx-shadow);
    }

	#vx-login-link {
		background: #1a1a1a;
		border-color: #333;
		color: var(--gx-text);
	}

	#vx-login-link:hover {
		background: #222;
	}

    #user-badge button {
        background: #1a1a1a;
        border-color: #333;
    }
    #user-badge button:hover {
        background: #222;
    }

    #user-badge .dropdown-item,
    #user-badge .menu a,
    #user-badge .menu button {
        color: var(--gx-text);
    }
    #user-badge .dropdown-item:hover,
    #user-badge .menu a:hover,
    #user-badge .menu button:hover {
        background: rgba(255, 255, 255, .06);
    }
}
