/* Variables */

:root {
    --primary: #FDB515;         /* CSULB Gold */
    --primary-dark: #E5A100;    /* Dark Gold */
    --primary-soft: #FDB51526;  /* CSULB Gold transparent */
    --error-color: #dc2626;     /* Error color */
    --background: #f4f4f4;      /* Light Gray */
    --card: #ffffff;            /* Card Background */
    --text: #2B2B2B;            /* CSULB Dark Gray */
    --border: #d6d6d6;          /* Border Color */
    --nav-height: 65px;         /* Navigation Bar Height */
    --max-page-width: 1000px;   /* The widest our pages should be */
}

/* Basics */

* {
    scrollbar-width: thin;
    scrollbar-color: var(--primary) transparent;
    scroll-behavior: smooth;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

*::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

*::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 10px;
    border: 2px solid transparent;
    background-clip: content-box;
}

*::-webkit-scrollbar-thumb:hover {
    background: var(--primary-dark);
}

html {
    height: 100%;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

body {
    display: flex;
    height: 100dvh;
    width: 100%;
    justify-content: center;
    align-items: center;
    min-height: 100dvh;
    margin: 0;
    background: var(--background);
    overscroll-behavior: contain;
    font-family: -apple-system, Roboto, Arial, sans-serif;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Universal */

button {
    width: 100%;
    padding: 12px;
    margin-top: 6px;
    border-radius: 8px;
    border: none;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, transform 0.05s;
}

button:hover {
    transform: translateY(-1px);
}

button:active {
    transform: scale(0.97);
}

button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.button-row {
    display: flex;
    gap: 10px;
    margin: 6px;
}

.button-row button {
    flex: 1;
    margin: 0;
}

.oauth-buttons {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    margin: 6px;
}

.primary-button {
    background: var(--primary);
    color: white;
}

.primary-button:hover {
    background: var(--primary-dark);
}

.secondary-button {
    background: transparent;
    color: var(--primary);
    border: 2px solid var(--primary);
}

.secondary-button:hover {
    background: var(--primary-soft);
}

.oauth-button {
    background: transparent;
    color: deepskyblue;
    border: 2px solid deepskyblue;
}

.oauth-button:hover {
    background: skyblue;
}

.tertiary-button {
    background: #2B2B2B;
    color: white;
}

.tertiary-button:hover {
    background: #3B3B3B;
}

.danger-button {
    background: var(--error-color);
    color: white;
}

.danger-button:hover {
    filter: brightness(0.8);
}

.error {
    margin: 10px;
    font-size: 14px;
    text-align: center;
    color: var(--error-color);
    min-height: 18px;
}

.spinner {
    width: 16px;
    height: 16px;
    border: 2px solid transparent;
    border-top: 2px solid white;
    border-radius: 50%;
    display: inline-block;
    animation: spin 0.6s linear infinite;
}

.fade-out {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
}

/* Animations */

@keyframes spin {
    to { transform: rotate(360deg); }
}
