/* ─── Neumorphic Styles ──────────────────────────────────────────── */

/* Neumorphic surface wrapper */
.neu-surface {
    background: var(--neu-bg);
    border-radius: var(--neu-radius);
}

/* ── Raised neumorphic card ────────────────────────────────────── */
.neu-card {
    background: var(--neu-bg);
    border-radius: var(--neu-radius);
    box-shadow:
        8px 8px 18px var(--neu-dark),
        -8px -8px 18px var(--neu-light);
    transition: box-shadow var(--duration-med) var(--ease-smooth);
}

.neu-card:hover {
    box-shadow:
        4px 4px 10px var(--neu-dark),
        -4px -4px 10px var(--neu-light);
}

/* ── Inset neumorphic input ────────────────────────────────────── */
.neu-field {
    width: 100%;
    background: var(--neu-bg);
    border: none;
    border-radius: 12px;
    padding: 14px 18px;
    color: var(--text-on-light);
    box-shadow:
        inset 4px 4px 10px var(--neu-dark),
        inset -4px -4px 10px var(--neu-light);
    outline: none;
    transition: box-shadow var(--duration-fast);
}

.neu-field:focus {
    box-shadow:
        inset 4px 4px 10px var(--neu-dark),
        inset -4px -4px 10px var(--neu-light),
        0 0 0 3px rgba(26, 78, 138, 0.2);
}

/* ── Neumorphic button ──────────────────────────────────────────── */
.neu-btn {
    background: var(--neu-bg);
    border: none;
    border-radius: 14px;
    padding: 13px 30px;
    color: var(--color-primary);
    font-weight: 600;
    box-shadow:
        6px 6px 14px var(--neu-dark),
        -6px -6px 14px var(--neu-light);
    transition: box-shadow var(--duration-fast), transform var(--duration-fast);
}

.neu-btn:hover {
    transform: translateY(-1px);
}

.neu-btn:active {
    box-shadow:
        inset 4px 4px 10px var(--neu-dark),
        inset -4px -4px 10px var(--neu-light);
    transform: translateY(0);
}

/* ── Neumorphic toggle switch ──────────────────────────────────── */
.neu-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background: var(--neu-bg);
    border-radius: var(--radius-full);
    box-shadow: inset 3px 3px 7px var(--neu-dark), inset -3px -3px 7px var(--neu-light);
    cursor: pointer;
}

.neu-toggle::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    background: var(--color-primary);
    border-radius: 50%;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.25);
    transition: transform var(--duration-fast) var(--ease-smooth);
}

.neu-toggle.is-on::after {
    transform: translateX(24px);
}

/* ── Neumorphic icon circle ────────────────────────────────────── */
.neu-icon-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--neu-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--color-primary);
    box-shadow: 6px 6px 14px var(--neu-dark), -6px -6px 14px var(--neu-light);
    transition: box-shadow var(--duration-med);
}

.neu-icon-circle:hover {
    box-shadow: inset 3px 3px 8px var(--neu-dark), inset -3px -3px 8px var(--neu-light);
}