/* Alapvető reset és globális stílusok */
@import url("https://fonts.googleapis.com/css?family=Work+Sans");
*,
::backdrop,
:after,
:before {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
}

* {
    border-color: var(--border);
    outline-color: var(--ring);
}

@supports (color: color-mix(in lab, red, red)) {
    * {
        outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--background);
    color: var(--foreground);
}

/* Háttér gradiens stílusok */
.login-background {
    background: conic-gradient(
            from 180deg at 50% 0,
            #0e9b9866 -10.8deg 10.8deg,
            #0000 180deg,
            #0e9b9866 0.97turn 370.8deg
        ),
        conic-gradient(
            from 180deg at 50% 0,
            #08615f0d 54deg,
            #0000 180deg,
            #08615f0d 306deg
        ),
        conic-gradient(
            at 50% 100%,
            #08615f0d 54deg,
            #0000 180deg,
            #08615f0d 306deg
        ),
        #181818;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 100vh;
    display: flex;
    position: relative;
}

/* Enhanced Custom Scrollbar Styles */
*::-webkit-scrollbar {
    width: 12px;
}

*::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.1);
    border-radius: 6px;
    margin: 4px 0;
}

*::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #666666 0%, #555555 100%);
    border-radius: 6px;
    border: 2px solid transparent;
    background-clip: content-box;
    transition: all 0.3s ease;
    box-shadow: inset 0 0 0 1px rgba(102, 102, 102, 0.3);
}

*::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #777777 0%, #666666 100%);
    box-shadow: inset 0 0 0 1px rgba(102, 102, 102, 0.5),
        0 2px 8px rgba(102, 102, 102, 0.2);
    transform: scale(1.05);
}

*::-webkit-scrollbar-thumb:active {
    background: linear-gradient(180deg, #555555 0%, #444444 100%);
    transform: scale(0.95);
}

*::-webkit-scrollbar-corner {
    background: rgba(0, 0, 0, 0.1);
}

/* Firefox scrollbar */
* {
    scrollbar-width: thin;
    scrollbar-color: #666666 rgba(0, 0, 0, 0.1);
}

/* Flexbox utility osztályok */
.flex {
    display: flex;
}

.flex-1 {
    flex: 1;
}

.flex-col {
    flex-direction: column;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.gap-4 {
    gap: 1rem;
}

.w-full {
    width: 100%;
}

.h-full {
    height: 100%;
}

.relative {
    position: relative;
}

.z-10 {
    z-index: 10;
}

.text-center {
    text-align: center;
}

.mb-8 {
    margin-bottom: 2rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

/* Kártya wrapper és kártya stílusok */
.card-wrapper {
    background: conic-gradient(
        from 180deg,
        #333 -36deg,
        #999 0.07deg,
        #333 36deg 144deg,
        #999 180deg,
        #333 216deg 324deg,
        #999 360.07deg
    );
    border-radius: 29.4px;
    order: 1;
    justify-content: flex-end;
    gap: 10px;
    width: 470px;
    padding: 2px;
    flex-direction: column;
    flex: none;
    align-items: center;
    height: auto;
    display: flex;
}

.card {
    background: radial-gradient(
        49.85% 23.23% at 50.15% 0,
        #383838 0,
        #242424 100%
    );
    border-radius: 28px;
    order: 0;
    align-self: stretch;
    gap: 22px;
    width: 100%;
    padding: 22px 25px;
    box-shadow: 0 5.6px 140px 28px #9999990d;
    flex-direction: column;
    flex: none;
    align-items: center;
    height: auto;
    display: flex;
}

/* Címsor stílusok */
.reg-title {
    letter-spacing: -0.08em;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    background: linear-gradient(#fff 30.49%, #ffffff4d 100.67%);
    -webkit-background-clip: text;
    background-clip: text;
    order: 0;
    width: 100%;
    max-width: 420px;
    height: auto;
    font-size: 42px;
    font-weight: 600;
    line-height: 48px;
    margin-bottom: 8px !important;
    font-family: "Work Sans", sans-serif;
    text-align: center;
}

.pre-reg-text {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 2rem;
    line-height: 1.4;
    text-align: center;
    font-size: 14px;
    max-width: 380px;
}

/* Input mezők stílusai */
.input-wrapper {
    background: conic-gradient(
        from 90deg,
        #383838 -61.36deg,
        #9e9e9e 54deg,
        #383838 0.38turn 298.64deg,
        #9e9e9e 414deg
    );
    border-radius: 11px;
    align-items: flex-start;
    gap: 0;
    padding: 1px;
    box-shadow: inset 0 4px 8px #1f1f1f;
    flex-direction: column;
    flex: none;
    order: 0;
    width: 100%;
    height: 61px;
    display: flex;
}

.input-field {
    background: radial-gradient(
        50% 50% at 50% 100.37%,
        #292929 0,
        #212121 100%
    );
    border-radius: 10px;
    justify-content: center;
    padding: 8px;
    box-shadow: inset 0 4px 4px #1f1f1f;
    flex-direction: column;
    flex: none;
    order: 0;
    width: 100%;
    height: 59px;
    display: flex;
}

.input-field input {
    box-shadow: none !important;
    color: #fff !important;
    border: none !important;
    outline: none !important;
    background-color: transparent;
    border-radius: 0;
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    opacity: 1;
    font-size: 16px;
    line-height: 1.4;
    font-family: Work Sans, sans-serif;
}

.input-field input::placeholder {
    color: rgba(255, 255, 255, 0.178);
    font-family: Work Sans, sans-serif;
    font-size: 16px;
    font-weight: 100;
    letter-spacing: -0.06em;
}

.input-field input[type="email"]::placeholder {
    letter-spacing: -0.06em;
}

.input-label {
    letter-spacing: -0.06em;
    color: #fff;
    flex: none;
    order: 0;
    font-family: Work Sans, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    display: block;
}

/* Gomb stílusok */
.button-wrapper {
    background: conic-gradient(
        from 180deg,
        #085e5c 54deg,
        #a1f7f5 180deg,
        #085e5c 306deg
    );
    border-radius: 11px;
    flex-direction: column;
    flex: none;
    order: 1;
    align-items: flex-start;
    height: auto;
    padding: 1px;
    cursor: pointer;
    align-self: stretch;
    gap: 10px;
    width: 100%;
    display: flex;
}

.button-custom {
    letter-spacing: -0.06em;
    color: #ffffff !important;
    background: radial-gradient(
        50% 50% at 50% 100.37%,
        #11c0bc 0,
        #0d9592 100%
    );
    border-radius: 10px !important;
    flex-direction: row;
    flex: none;
    order: 0;
    justify-content: center;
    align-items: center;
    height: 36px;
    padding: 8px 16px;
    font-family: Work Sans, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 19px;
    box-shadow: 0 0 15px 0.5px #0dbcb815, inset 0 4px 4px #11c0bc;
    cursor: pointer;
    align-self: stretch;
    gap: 10px;
    width: 100%;
    display: inline-flex;
    border: none;
    appearance: button;
    white-space: nowrap;
    transition: all 0.15s ease;
    outline: none;
    flex-shrink: 0;
}

.button-custom:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-custom:focus-visible {
    border-color: var(--ring, #0e9b98);
    box-shadow: 0 0 0 3px rgba(14, 155, 152, 0.5);
}

.button-custom:hover {
    transform: translateY(-1px);
    background: radial-gradient(
        50% 50% at 50% 100.37%,
        #0f9d9a 0,
        #0b7b78 100%
    );
    box-shadow: 0px 0px 30px 1px #0dbcb833, 0px 2px 3px 0px #11c0bc inset;
}

.button-custom:active {
    transform: translateY(0);
}

/* Auth linkek stílusai */
.auth-links {
    width: 100%;
    height: auto;
    min-height: 19px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    opacity: 1;
    align-self: stretch;
    margin-top: 1rem;
    padding: 0 8px;
    box-sizing: border-box;
}

.auth-link {
    font-family: Work Sans, sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    line-height: 100%;
    letter-spacing: -0.06em;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s ease;
}

.auth-link:hover {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: underline;
}

/* Tailwind-kompatibilis utility osztályok */
.outline-none {
    --tw-outline-style: none;
    outline-style: none;
}

.transition-all {
    transition-property: all;
    transition-timing-function: var(
        --tw-ease,
        var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.shadow-xs {
    --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
        var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

.text-primary-foreground {
    color: var(--primary-foreground);
}

.text-card-foreground {
    color: var(--card-foreground);
}

.bg-transparent {
    background-color: transparent;
}

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

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

.border-none {
    --tw-border-style: none;
    border-style: none;
}

.border {
    border-style: var(--tw-border-style);
    border-width: 1px;
}

.rounded-md {
    border-radius: calc(var(--radius) - 2px);
}

.whitespace-nowrap {
    white-space: nowrap;
}

.font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
}

.inline-flex {
    display: inline-flex;
}

/* Responsive design */
@media (max-width: 768px) {
    .card-wrapper {
        width: 95%;
        max-width: 400px;
        padding: 1px;
        margin: 1rem;
    }

    .card {
        padding: 1.5rem;
        gap: 16px;
    }

    .reg-title {
        font-size: 1.75rem;
        width: auto;
        height: auto;
    }

    .input-wrapper {
        height: 55px;
    }

    .input-field {
        height: 53px;
        padding: 6px;
    }

    .input-field input {
        font-size: 14px;
    }

    .button-custom {
        height: 44px;
        font-size: 16px;
        padding: 10px 16px;
    }

    .auth-links {
        margin-top: 1.5rem;
        flex-direction: column;
        gap: 0.5rem;
        height: auto;
        align-items: center;
        padding: 0 4px;
    }

    .auth-link {
        font-size: 14px;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .login-background {
        padding: 1rem 0.5rem;
    }

    .card-wrapper {
        width: 98%;
        margin: 0.5rem;
        padding: 1px;
    }

    .card {
        padding: 1rem;
        gap: 12px;
    }

    .reg-title {
        font-size: 1.5rem;
        margin-bottom: 4px !important;
    }

    .input-wrapper {
        height: 50px;
    }

    .input-field {
        height: 48px;
        padding: 4px 6px;
    }

    .input-field input {
        font-size: 14px;
    }

    .input-label {
        font-size: 14px;
    }

    .button-custom {
        height: 40px;
        font-size: 15px;
        padding: 8px 12px;
    }

    .auth-links {
        margin-top: 1rem;
        gap: 0.75rem;
        padding: 0 2px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .auth-link {
        font-size: 13px !important;
        text-align: center;
        flex: 0 0 auto;
        white-space: nowrap;
    }
}
