/*
 * The glass look shared by the web UI and the Keycloak login theme: docker-compose mounts this very file into the
 * theme (docker/keycloak/themes/ecommerce), so the sign-in pages match the app. Keep it free of app-only selectors.
 */

:root {
    /* "Aurora softer": very clear, strongly blurred glass over faint pastel light */
    --bg: #f6f7fc;
    --text: #1e1b4b;
    --text-muted: rgba(30, 27, 75, 0.62);
    --accent: #4f46e5;
    --accent-strong: #4338ca;
    --on-accent: #ffffff;
    --danger: #dc2626;
    --success: #15803d;
    --warning: #b45309;
    --info: #2563eb;

    --glass-bg: rgba(255, 255, 255, 0.4);
    --glass-bg-strong: rgba(255, 255, 255, 0.65);
    --glass-border: rgba(255, 255, 255, 0.85);
    --glass-blur: blur(28px) saturate(180%);
    --glass-shadow: 0 10px 30px rgba(79, 70, 229, 0.14);

    /* denser surfaces on top of the page: dialogs, toasts, error messages */
    --surface: rgba(255, 255, 255, 0.82);
    --backdrop: rgba(30, 27, 75, 0.25);
    --divider: rgba(30, 27, 75, 0.1);
    /* a light wash over a transparent element on hover (nav buttons, rows) */
    --hover: rgba(30, 27, 75, 0.06);
    /* a glass button on hover */
    --hover-strong: rgba(255, 255, 255, 0.95);

    --input-bg: rgba(255, 255, 255, 0.7);
    --input-bg-focus: rgba(255, 255, 255, 0.9);
    --input-border: rgba(30, 27, 75, 0.16);
    --input-placeholder: rgba(30, 27, 75, 0.4);
    --danger-border: rgba(220, 38, 38, 0.45);

    /* the main action of a screen: a solid indigo, a step lighter than the accent */
    --primary-bg: #6366f1;
    --primary-bg-hover: #4f46e5;
    --primary-border: transparent;
    --on-primary: #ffffff;

    --radius: 16px;
    --radius-small: 10px;
    --font: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

body {
    background-color: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.5;
}

/* coloured light behind the glass: without something to blur, glass is just grey */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(40vmax 40vmax at 12% 18%, rgba(240, 171, 252, 0.24), transparent 70%),
        radial-gradient(36vmax 36vmax at 88% 10%, rgba(103, 232, 249, 0.22), transparent 70%),
        radial-gradient(44vmax 44vmax at 70% 92%, rgba(190, 242, 100, 0.17), transparent 70%),
        radial-gradient(30vmax 30vmax at 22% 85%, rgba(253, 164, 175, 0.19), transparent 70%);
}

.glass {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius);
    box-shadow: var(--glass-shadow);
    -webkit-backdrop-filter: var(--glass-blur);
    backdrop-filter: var(--glass-blur);
}

a {
    color: var(--accent);
}

label {
    display: block;
    margin-bottom: 6px;
    color: var(--text-muted);
    font-size: 13px;
}

.input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-small);
    background: var(--input-bg);
    color: var(--text);
    font: inherit;
    transition: border-color 0.15s, background 0.15s;
}

.input::placeholder {
    color: var(--input-placeholder);
}

.input:focus {
    outline: none;
    border-color: var(--accent);
    background: var(--input-bg-focus);
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 16px;
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-small);
    background: var(--glass-bg-strong);
    color: var(--text);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.05s;
}

.button:hover:not(:disabled) {
    background: var(--hover-strong);
}

.button:active:not(:disabled) {
    transform: translateY(1px);
}

.button:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.button-primary {
    border-color: var(--primary-border);
    background: var(--primary-bg);
    color: var(--on-primary);
}

.button-primary:hover:not(:disabled) {
    background: var(--primary-bg-hover);
}

.button-danger {
    border-color: var(--danger-border);
    color: var(--danger);
}
