.oauth-login-buttons-container {
    margin: 20px auto;
    text-align: center;
    max-width: 400px;
    /* Constrain width for better column look */
}

.oauth-separator {
    display: flex;
    align-items: center;
    text-align: center;
    color: #666;
    margin-bottom: 20px;
    font-size: 14px;
    font-weight: 500;
}

.oauth-separator::before,
.oauth-separator::after {
    content: '';
    flex: 1;
    border-bottom: 1px solid #e0e0e0;
}

.oauth-separator::before {
    margin-right: .5em;
}

.oauth-separator::after {
    margin-left: .5em;
}

.oauth-login-buttons {
    display: flex;
    flex-direction: column;
    /* Vertical stack */
    gap: 12px;
}

/* Use high specificity to override theme styles */
a.tpl-oauth-button {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    /* Align text left-ish with icon */
    padding: 12px 20px;
    text-decoration: none !important;
    border-radius: 6px;
    color: white !important;
    font-weight: 600;
    font-size: 15px;
    border: 1px solid transparent;
    width: 100%;
    box-sizing: border-box;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    position: relative;
    line-height: normal;
    /* Fix theme line-height override */
}

a.tpl-oauth-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    color: white !important;
    /* Ensure hover text stays white */
}

.btn-text {
    flex-grow: 1;
    text-align: center;
}

/* Icons */
.oauth-icon {
    width: 20px;
    height: 20px;
    display: block;
    /* SVG handling */
    margin-right: 12px;
}

/* Google - White with border */
a.tpl-oauth-button.button-google {
    background-color: #ffffff !important;
    border: 1px solid #dadce0 !important;
    color: #3c4043 !important;
    /* Dark grey text */
}

a.tpl-oauth-button.button-google:hover {
    background-color: #f7f8f8 !important;
    border-color: #d2e3fc !important;
}

/* For Google on White, we need the icon to support color? Dashicons are monotonic.
   If using Dashicons-google, it will be the text color.
   So icon will be dark grey. That's fine. */

/* GitHub - Black */
a.tpl-oauth-button.button-github {
    background-color: #24292e !important;
    color: white !important;
    border: 1px solid transparent !important;
}

a.tpl-oauth-button.button-github:hover {
    background-color: #2c3238 !important;
}

/* Microsoft - White with border (Best for Colorful Logo) */
a.tpl-oauth-button.button-microsoft {
    background-color: #ffffff !important;
    border: 1px solid #8c8c8c !important;
    /* Microsoft grey border */
    color: #5e5e5e !important;
}

a.tpl-oauth-button.button-microsoft:hover {
    background-color: #f7f7f7 !important;
    border-color: #0078d4 !important;
    /* Hover blue border */
}