@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

    :root {
        --ac-bg: #02070b;
        --ac-bg-2: #040b11;
        --ac-surface: #07111a;
        --ac-surface-2: #0b1824;
        --ac-surface-3: #0d1e2c;
        --ac-border: rgba(0, 188, 255, .18);
        --ac-border-soft: rgba(255, 255, 255, .08);
        --ac-text: #ffffff;
        --ac-text-soft: #c7d7e8;
        --ac-text-muted: #8fa6bd;
        --ac-primary: #00b8ff;
        --ac-primary-2: #00d4ff;
        --ac-primary-dark: #00131d;
        --ac-success: #22c55e;
        --ac-danger: #ef4444;
        --ac-info: #38bdf8;
        --ac-warning: #f59e0b;
        --ac-gradient: linear-gradient(135deg, #00b8ff 0%, #00d4ff 100%);
        --ac-gradient-soft: linear-gradient(135deg, rgba(0, 184, 255, .16) 0%, rgba(0, 212, 255, .08) 100%);
        --ac-shadow: 0 28px 90px rgba(0, 0, 0, .52);
    }

    .acomp-page {
        position: relative;
        min-height: 100vh;
        max-height: 100%;
        font-family: 'Inter', Arial, Helvetica, sans-serif;
        color: var(--ac-text);
        padding: 56px 0 72px;
        overflow: hidden;
        background:
            radial-gradient(circle at 18% 8%, rgba(0, 184, 255, .20), transparent 27%),
            radial-gradient(circle at 82% 14%, rgba(0, 212, 255, .13), transparent 28%),
            radial-gradient(circle at 50% 100%, rgba(0, 184, 255, .08), transparent 36%),
            linear-gradient(180deg, #02070b 0%, #040b11 42%, #02070b 100%);
    }

    .acomp-page::before,
    .acomp-page::after {
        content: "";
        position: absolute;
        border-radius: 999px;
        pointer-events: none;
        filter: blur(30px);
        opacity: .72;
    }

    .acomp-page::before {
        width: 380px;
        height: 380px;
        top: -160px;
        left: 8%;
        background: rgba(0, 184, 255, .15);
    }

    .acomp-page::after {
        width: 460px;
        height: 460px;
        right: 7%;
        bottom: -220px;
        background: rgba(0, 212, 255, .10);
    }

    .acomp-page * {
        box-sizing: border-box;
    }

    .acomp-wrap {
        position: relative;
        z-index: 2;
        width: min(1160px, calc(100% - 32px));
        margin: 0 auto;
    }

    .acomp-card {
        position: relative;
        overflow: hidden;
        border-radius: 32px;
        padding: 0;
        background:
            linear-gradient(180deg, rgba(7, 17, 26, .96) 0%, rgba(3, 10, 16, .96) 100%);
        border: 1px solid var(--ac-border);
        box-shadow:
            var(--ac-shadow),
            inset 0 1px 0 rgba(255, 255, 255, .045);
        backdrop-filter: blur(14px);
    }

    .acomp-card::before {
        content: "";
        position: absolute;
        inset: 0 0 auto;
        height: 3px;
        background: linear-gradient(90deg, transparent, var(--ac-primary), var(--ac-primary-2), transparent);
        opacity: .95;
    }

    .acomp-card::after {
        content: "";
        position: absolute;
        width: 280px;
        height: 280px;
        top: -160px;
        right: -120px;
        border-radius: 50%;
        background: rgba(0, 184, 255, .12);
        filter: blur(14px);
        pointer-events: none;
    }

    .acomp-register-hero {
        position: relative;
        z-index: 2;
        display: grid;
        grid-template-columns: 1.05fr .95fr;
        gap: 28px;
        align-items: center;
        padding: 36px;
        border-bottom: 1px solid var(--ac-border-soft);
        background:
            radial-gradient(circle at 12% 0%, rgba(0, 184, 255, .14), transparent 42%),
            linear-gradient(135deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .012));
    }

    .acomp-register-brand {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        margin-bottom: 20px;
    }

    .acomp-register-brand img {
        display: block;
        width: min(250px, 78vw);
        height: auto;
        object-fit: contain;
        filter: drop-shadow(0 10px 22px rgba(0, 184, 255, .18));
    }

    .acomp-kicker {
        display: inline-flex;
        width: fit-content;
        margin-bottom: 14px;
        padding: 8px 13px;
        border-radius: 999px;
        background: rgba(0, 184, 255, .10);
        border: 1px solid rgba(0, 184, 255, .28);
        color: var(--ac-primary-2);
        font-size: 12px;
        line-height: 1;
        font-weight: 900;
        letter-spacing: .12em;
        text-transform: uppercase;
    }

    .acomp-title {
        margin: 0;
        color: #fff;
        font-size: clamp(34px, 5vw, 58px);
        line-height: .98;
        letter-spacing: -.065em;
        font-weight: 900;
    }

    .acomp-title span {
        color: var(--ac-primary);
    }

    .acomp-text {
        max-width: 650px;
        margin: 18px 0 0;
        color: var(--ac-text-soft);
        font-size: 16px;
        line-height: 1.76;
    }

    .acomp-register-aside {
        position: relative;
        overflow: hidden;
        border-radius: 24px;
        padding: 24px;
        background:
            linear-gradient(180deg, rgba(11, 24, 36, .90), rgba(6, 16, 24, .82));
        border: 1px solid rgba(0, 184, 255, .16);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045);
    }

    .acomp-register-aside::before {
        content: "";
        position: absolute;
        width: 170px;
        height: 170px;
        right: -70px;
        top: -80px;
        border-radius: 50%;
        background: rgba(0, 184, 255, .13);
        filter: blur(12px);
    }

    .acomp-register-aside strong {
        position: relative;
        display: block;
        margin-bottom: 10px;
        color: #fff;
        font-size: 18px;
        line-height: 1.25;
    }

    .acomp-register-aside p {
        position: relative;
        margin: 0;
        color: var(--ac-text-muted);
        font-size: 14px;
        line-height: 1.7;
    }

    .acomp-register-list {
        position: relative;
        display: grid;
        gap: 10px;
        margin: 18px 0 0;
        padding: 0;
        list-style: none;
    }

    .acomp-register-list li {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        color: var(--ac-text-soft);
        font-size: 13px;
        line-height: 1.55;
    }

    .acomp-register-list li::before {
        content: "✓";
        flex: 0 0 22px;
        width: 22px;
        height: 22px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: rgba(34, 197, 94, .14);
        border: 1px solid rgba(34, 197, 94, .25);
        color: #86efac;
        font-size: 12px;
        font-weight: 900;
    }

    .acomp-card > .acomp-alert,
    .acomp-card > .acomp-actions,
    .acomp-card > form {
        position: relative;
        z-index: 2;
        margin-left: 36px;
        margin-right: 36px;
    }

    .acomp-card > form {
        margin-top: 30px;
        margin-bottom: 36px;
    }

    .acomp-card > .acomp-alert {
        margin-top: 28px;
    }

    .acomp-alert {
        padding: 15px 17px;
        border-radius: 18px;
        font-weight: 700;
        line-height: 1.55;
    }

    .acomp-alert.success {
        background: rgba(34, 197, 94, .12);
        border: 1px solid rgba(34, 197, 94, .26);
        color: #bbf7d0;
    }

    .acomp-alert.error {
        background: rgba(239, 68, 68, .12);
        border: 1px solid rgba(239, 68, 68, .26);
        color: #fecaca;
    }

    .acomp-alert.info {
        background: rgba(0, 184, 255, .11);
        border: 1px solid rgba(0, 184, 255, .26);
        color: #bae6fd;
    }

    .acomp-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .acomp-grid > div,
    .acomp-field-full {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .acomp-field-full {
        grid-column: 1/-1;
    }

    .acomp-label {
        display: block;
        margin-bottom: 9px;
        color: var(--ac-text-soft) !important;
        font-size: 13px;
        font-weight: 800;
        line-height: 1.35;
    }

    .acomp-input,
    .acomp-textarea,
    .acomp-select,
    .acomp-page input[type="text"],
    .acomp-page input[type="email"],
    .acomp-page input[type="number"],
    .acomp-page input[type="url"],
    .acomp-page input[type="date"],
    .acomp-page input[type="file"],
    .acomp-page textarea,
    .acomp-page select {
        width: 100% !important;
        display: block;
        min-height: 56px;
        padding: 15px 16px !important;
        border-radius: 18px !important;
        background: rgba(3, 10, 16, .82) !important;
        border: 1px solid rgba(255, 255, 255, .09) !important;
        color: var(--ac-text) !important;
        outline: none !important;
        box-sizing: border-box !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025) !important;
        appearance: none;
        -webkit-appearance: none;
        transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    }

    .acomp-page input[type="date"]::-webkit-calendar-picker-indicator {
        filter: invert(1);
        cursor: pointer;
        opacity: .72;
    }

    .acomp-page input[type="file"] {
        padding: 12px 14px !important;
        line-height: 1.4;
        cursor: pointer;
    }

    .acomp-page input[type="file"]::file-selector-button {
        margin-right: 12px;
        padding: 11px 15px;
        border: none;
        border-radius: 999px;
        background: var(--ac-gradient);
        color: var(--ac-primary-dark);
        cursor: pointer;
        font-weight: 900;
        box-shadow: 0 10px 24px rgba(0, 184, 255, .20);
    }

    .acomp-textarea,
    .acomp-page textarea {
        min-height: 150px !important;
        resize: vertical;
        line-height: 1.65;
    }

    .acomp-input:focus,
    .acomp-textarea:focus,
    .acomp-select:focus,
    .acomp-page input:focus,
    .acomp-page textarea:focus,
    .acomp-page select:focus {
        border-color: rgba(0, 212, 255, .72) !important;
        box-shadow:
            0 0 0 4px rgba(0, 184, 255, .12) !important,
            inset 0 1px 0 rgba(255, 255, 255, .035) !important;
        background: rgba(4, 13, 20, .96) !important;
    }

    .acomp-page input::placeholder,
    .acomp-page textarea::placeholder {
        color: rgba(143, 166, 189, .74) !important;
        opacity: 1;
    }

    .acomp-note {
        color: var(--ac-text-muted);
        font-size: 12.5px;
        line-height: 1.6;
        margin-top: 8px;
    }

    .acomp-tax-box,
    .acomp-consent-box {
        border-radius: 20px;
        background:
            linear-gradient(180deg, rgba(11, 24, 36, .76), rgba(4, 13, 20, .76));
        border: 1px solid rgba(255, 255, 255, .08);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
    }

    .acomp-tax-box {
        padding: 16px;
        max-height: 230px;
        overflow: auto;
    }

    .acomp-tax-box::-webkit-scrollbar {
        width: 9px;
    }

    .acomp-tax-box::-webkit-scrollbar-thumb {
        background: rgba(0, 184, 255, .26);
        border-radius: 999px;
    }

    .acomp-tax-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .acomp-check,
    .acomp-consent-check {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        color: var(--ac-text-soft);
        font-size: 14px;
        line-height: 1.55;
    }

    .acomp-check {
        min-height: 42px;
        align-items: center;
        padding: 9px 10px;
        border-radius: 14px;
        background: rgba(255, 255, 255, .025);
        border: 1px solid transparent;
        transition: background .18s ease, border-color .18s ease;
    }

    .acomp-check:hover {
        background: rgba(0, 184, 255, .055);
        border-color: rgba(0, 184, 255, .16);
    }

    .acomp-check input[type="checkbox"],
    .acomp-consent-check input[type="checkbox"],
    .acomp-consent-check input[type="radio"] {
        flex: 0 0 auto;
        margin-top: 2px;
        width: 17px;
        height: 17px;
        accent-color: var(--ac-primary);
    }

    .acomp-consent-box {
        padding: 17px;
    }

    .acomp-consent-stack {
        display: grid;
        gap: 13px;
    }

    .acomp-consent-check {
        padding: 4px 0;
    }

    .acomp-hidden-cache {
        display: none !important;
    }

    .acomp-actions {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 24px;
    }

    .acomp-btn {
        min-height: 52px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 24px;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, .10);
        text-decoration: none;
        font-weight: 900;
        cursor: pointer;
        transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
    }

    .acomp-btn:hover {
        transform: translateY(-2px);
    }

    .acomp-btn-primary {
        min-width: 220px;
        background: var(--ac-gradient);
        border: none;
        color: var(--ac-primary-dark);
        box-shadow: 0 16px 36px rgba(0, 184, 255, .25);
    }

    .acomp-btn-primary:hover {
        box-shadow: 0 18px 44px rgba(0, 184, 255, .36);
        background: linear-gradient(135deg, #11c3ff 0%, #2de0ff 100%);
    }

    .acomp-toast-wrap {
        position: fixed;
        right: 20px;
        bottom: 20px;
        z-index: 999999;
        display: grid;
        gap: 10px;
        width: min(370px, calc(100vw - 24px));
    }

    .acomp-toast {
        padding: 15px 17px;
        border-radius: 18px;
        box-shadow: 0 18px 42px rgba(0, 0, 0, .36);
        border: 1px solid rgba(255, 255, 255, .08);
        backdrop-filter: blur(12px);
        font-weight: 700;
        line-height: 1.5;
        transform: translateY(20px);
        opacity: 0;
        pointer-events: none;
        transition: .25s ease;
    }

    .acomp-toast.is-visible {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    .acomp-toast.success {
        background: rgba(34, 197, 94, .15);
        border-color: rgba(34, 197, 94, .30);
        color: #bbf7d0;
    }

    .acomp-toast.error {
        background: rgba(239, 68, 68, .15);
        border-color: rgba(239, 68, 68, .30);
        color: #fecaca;
    }

    .acomp-toast.info {
        background: rgba(0, 184, 255, .15);
        border-color: rgba(0, 184, 255, .30);
        color: #bae6fd;
    }

    .acomp-field-error {
        border-color: rgba(239, 68, 68, .82) !important;
        box-shadow: 0 0 0 4px rgba(239, 68, 68, .13) !important;
    }

    .acomp-loading {
        opacity: .68;
        pointer-events: none;
    }

    @media (max-width: 900px) {
        .acomp-register-hero {
            grid-template-columns: 1fr;
        }

        .acomp-register-aside {
            padding: 20px;
        }

        .acomp-grid {
            grid-template-columns: 1fr;
        }

        .acomp-tax-grid {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 767px) {
        .acomp-page {
            padding: 24px 0 44px;
        }

        .acomp-wrap {
            width: min(100% - 18px, 1160px);
        }

        .acomp-card {
            border-radius: 24px;
        }

        .acomp-register-hero {
            padding: 24px 18px;
            gap: 20px;
        }

        .acomp-register-brand img {
            width: min(230px, 82vw);
        }

        .acomp-title {
            font-size: clamp(32px, 11vw, 42px);
        }

        .acomp-text {
            font-size: 15px;
        }

        .acomp-card > .acomp-alert,
        .acomp-card > .acomp-actions,
        .acomp-card > form {
            margin-left: 18px;
            margin-right: 18px;
        }

        .acomp-card > form {
            margin-top: 22px;
            margin-bottom: 24px;
        }

        .acomp-actions {
            flex-direction: column;
        }

        .acomp-btn,
        .acomp-btn-primary {
            width: 100%;
            min-width: 0;
        }

        .acomp-toast-wrap {
            right: 12px;
            left: 12px;
            bottom: 12px;
            width: auto;
        }

        .acomp-page input[name="data_nascimento"].acomp-mobile-date {
            letter-spacing: .04em;
        }
    }
