*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
        html { scroll-behavior:smooth; }
        * { scrollbar-width:thin; scrollbar-color:#65067c transparent; }
        *::-webkit-scrollbar { width:5px; height:5px; }
        *::-webkit-scrollbar-thumb { background:#65067c; border-radius:10px; }

        :root {
            --purple-deep:#3d1c75;
            --purple-mid:#52168a;
            --purple-vivid:#65067c;
            --purple-glow:#8b2fc9;
            --purple-light:#c084fc;
            --gradient:linear-gradient(135deg, var(--purple-deep) 0%, var(--purple-vivid) 100%);
            --gradient-text:linear-gradient(90deg, #65067c, #9937f5, #7c3aed, #65067c);
            --glow:0 0 40px rgba(101,6,124,0.5), 0 0 80px rgba(61,28,117,0.3);
            --glow-sm:0 0 20px rgba(101,6,124,0.4);
            --success:#4caf80;
            --danger:#e05555;
            --warning:#f5a623;
            --info:#3a9de0;
            --font-display:'Kanit', monospace;
            --font-body:'Syne', sans-serif;
            --font-mono:'Syne', monospace;
            --bg:#f4f5f8;
            --bg-card:#ffffff;
            --bg-3:#e8eaf2;
            --bg-4:#dde0ec;
            --border:rgba(61,28,117,0.15);
            --border-s:rgba(61,28,117,0.3);
            --grey:#2b2b2b;
            --grey-dim:#5c6478;
            --grey-ghost:rgba(0,0,0,0.06);
            --deep:#0d0b18;
        }
        [data-theme="dark"] {
            --bg:#06060b;
            --bg-card:#0d0b18;
            --bg-3:#12101f;
            --bg-4:#1a1e26;
            --border:rgba(101,6,124,0.2);
            --border-s:rgba(101,6,124,0.4);
            --grey:#f4f0ff;
            --grey-dim:#9aa0b0;
            --grey-ghost:rgba(255,255,255,0.05);
        }

        body {
            background:
                radial-gradient(circle at top left, rgba(101,6,124,0.18), transparent 24%),
                radial-gradient(circle at 80% 0%, rgba(61,28,117,0.16), transparent 24%),
                var(--bg);
            color:var(--grey);
            font-family:var(--font-body);
            overflow-x:hidden;
            min-height:100vh;
            transition:background 0.3s, color 0.3s;
        }
        body::after {
            content:'';
            position:fixed;
            inset:0;
            z-index:0;
            pointer-events:none;
            background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
            opacity:0.45;
        }

        nav {
            position:fixed;
            top:0;
            left:0;
            right:0;
            z-index:200;
            display:flex;
            align-items:center;
            justify-content:space-between;
            padding:0 6%;
            height:72px;
            background:var(--purple-mid);
            backdrop-filter:blur(20px);
            border-bottom:1px solid rgba(255,255,255,0.12);
        }
        .nav-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
        .logo-img { height:60px; width:auto; }
        .nav-links { display:flex; align-items:center; gap:2.2rem; list-style:none; }
        .nav-links a {
            color:#fff;
            text-decoration:none;
            font-size:0.8rem;
            font-weight:600;
            letter-spacing:0.12em;
            text-transform:uppercase;
            transition:color 0.2s;
        }
        .nav-links a:hover,
        .nav-links a.active { color:var(--purple-light); }
        .nav-actions { display:flex; align-items:center; gap:0.8rem; }
        .btn-icon-nav {
            background:none;
            border:1px solid rgba(255,255,255,0.2);
            color:#fff;
            width:40px;
            height:40px;
            border-radius:12px;
            display:flex;
            align-items:center;
            justify-content:center;
            cursor:pointer;
            transition:all 0.2s;
            font-size:0.95rem;
        }
        .btn-icon-nav:hover { border-color:var(--purple-light); color:var(--purple-light); }
        .nav-login-link {
            padding:9px 18px;
            border-radius:12px;
            border:1px solid rgba(255,255,255,0.18);
            color:#fff;
            text-decoration:none;
            font-family:var(--font-display);
            font-size:0.72rem;
            letter-spacing:0.09em;
            text-transform:uppercase;
            transition:all 0.2s;
        }
        .nav-login-link:hover { border-color:var(--purple-light); color:var(--purple-light); }
        .hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
        .hamburger span { width:24px; height:1px; background:#fff; display:block; transition:all 0.3s; }
        .mobile-menu {
            display:none;
            position:fixed;
            top:72px;
            left:0;
            right:0;
            z-index:199;
            background:var(--purple-mid);
            flex-direction:column;
            border-bottom:1px solid rgba(255,255,255,0.12);
        }
        .mobile-menu.open { display:flex; }
        .mobile-menu a {
            padding:1rem 6%;
            color:#fff;
            text-decoration:none;
            font-size:0.88rem;
            font-weight:600;
            letter-spacing:0.1em;
            text-transform:uppercase;
            border-bottom:1px solid rgba(255,255,255,0.08);
        }

        .user-chip {
            display:flex;
            align-items:center;
            gap:0.6rem;
            padding:0.4rem 0.8rem 0.4rem 0.4rem;
            border:1px solid rgba(255,255,255,0.2);
            border-radius:50px;
            cursor:pointer;
            transition:0.2s;
            background:rgba(255,255,255,0.08);
            position:relative;
        }
        .user-chip:hover { border-color:var(--purple-light); }
        .user-avatar-sm {
            width:32px;
            height:32px;
            border-radius:50%;
            background:var(--bg-4);
            display:flex;
            align-items:center;
            justify-content:center;
            font-size:0.75rem;
            font-weight:700;
            color:var(--purple-light);
            overflow:hidden;
            flex-shrink:0;
        }
        .user-avatar-sm img { width:100%; height:100%; object-fit:cover; }
        .user-chip-name { font-size:0.8rem; font-weight:600; color:#fff; }
        .user-dropdown {
            position:absolute;
            right:0;
            top:calc(100% + 8px);
            min-width:220px;
            background:var(--bg-card);
            border:1px solid var(--border);
            border-radius:12px;
            padding:0.5rem;
            box-shadow:var(--glow-sm);
            display:none;
            z-index:999;
        }
        .user-dropdown.open { display:block; animation:fadeDown 0.15s ease; }
        @keyframes fadeDown {
            from { opacity:0; transform:translateY(-6px); }
            to { opacity:1; transform:translateY(0); }
        }
        .dropdown-item {
            display:flex;
            align-items:center;
            gap:0.7rem;
            width:100%;
            padding:0.6rem 0.8rem;
            border:none;
            background:none;
            border-radius:8px;
            color:var(--grey-dim);
            text-align:left;
            font-size:0.85rem;
            cursor:pointer;
            transition:0.15s;
        }
        .dropdown-item:hover { background:var(--bg-3); color:var(--grey); }
        .dropdown-item i { width:16px; color:var(--purple-light); }
        .dropdown-divider { height:1px; background:var(--border); margin:0.3rem 0; }
        .dropdown-item.danger { color:var(--danger); }
        .dropdown-item.danger i { color:var(--danger); }

        #main-content {
            position:relative;
            z-index:2;
            max-width:1100px;
            margin:0 auto;
            padding:108px 6% 4rem;
        }
        .cadastro-hero {
            display:grid;
            grid-template-columns:1.25fr 0.95fr;
            gap:1.2rem;
            margin-bottom:1.6rem;
        }
        .hero-panel,
        .hero-side {
            background:var(--bg-card);
            border:1px solid var(--border);
            border-radius:20px;
            padding:1.6rem 1.7rem;
            overflow:hidden;
            position:relative;
        }
        .hero-panel::before,
        .hero-side::before {
            content:'';
            position:absolute;
            inset:auto -80px -120px auto;
            width:240px;
            height:240px;
            border-radius:50%;
            background:radial-gradient(circle, rgba(101,6,124,0.18), transparent 70%);
            pointer-events:none;
        }
        .hero-kicker {
            display:inline-flex;
            align-items:center;
            gap:0.5rem;
            font-family:var(--font-mono);
            font-size:0.7rem;
            letter-spacing:0.18em;
            text-transform:uppercase;
            color:var(--purple-light);
            padding:0.38rem 0.8rem;
            border-radius:999px;
            border:1px solid rgba(101,6,124,0.2);
            background:rgba(101,6,124,0.08);
            margin-bottom:1rem;
        }
        .hero-panel h1 {
            font-family:var(--font-display);
            font-size:clamp(2rem, 4.6vw, 3.4rem);
            line-height:1.02;
            font-weight:900;
            max-width:640px;
        }
        .hero-panel h1 span {
            background:var(--gradient-text);
            -webkit-background-clip:text;
            -webkit-text-fill-color:transparent;
            background-size:200%;
            animation:shimmer 4s linear infinite;
        }
        @keyframes shimmer {
            0% { background-position:0% 50%; }
            100% { background-position:200% 50%; }
        }
        .hero-desc {
            margin-top:0.9rem;
            color:var(--grey-dim);
            line-height:1.75;
            max-width:640px;
        }
        .hero-tags {
            display:flex;
            flex-wrap:wrap;
            gap:0.6rem;
            margin-top:1.2rem;
        }
        .hero-tag {
            display:inline-flex;
            align-items:center;
            gap:0.4rem;
            padding:0.4rem 0.75rem;
            border-radius:999px;
            background:var(--bg-3);
            border:1px solid var(--border);
            font-family:var(--font-mono);
            font-size:0.7rem;
            color:var(--grey-dim);
        }
        .hero-side h2 {
            font-family:var(--font-display);
            font-size:1rem;
            letter-spacing:0.08em;
            text-transform:uppercase;
            margin-bottom:0.8rem;
        }
        .hero-side p {
            color:var(--grey-dim);
            line-height:1.7;
            font-size:0.88rem;
        }
        .hero-side ul {
            list-style:none;
            display:flex;
            flex-direction:column;
            gap:0.7rem;
            margin-top:1rem;
        }
        .hero-side li {
            display:flex;
            align-items:flex-start;
            gap:0.65rem;
            color:var(--grey);
            font-size:0.84rem;
            line-height:1.6;
        }
        .hero-side li i { color:var(--purple-light); margin-top:0.2rem; }
        .hero-context {
            margin-top:1rem;
            padding:0.9rem 1rem;
            border-radius:14px;
            border:1px solid rgba(58,157,224,0.2);
            background:rgba(58,157,224,0.07);
            color:var(--info);
            font-size:0.82rem;
            line-height:1.65;
        }

        .card-section {
            background:var(--bg-card);
            border:1px solid var(--border);
            border-radius:18px;
            overflow:hidden;
        }
        .card-header {
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:1rem;
            padding:1rem 1.4rem;
            border-bottom:1px solid var(--border);
            background:var(--bg-3);
            flex-wrap:wrap;
        }
        .card-header h3 {
            display:flex;
            align-items:center;
            gap:0.5rem;
            font-family:var(--font-display);
            font-size:0.82rem;
            font-weight:700;
            letter-spacing:0.1em;
            text-transform:uppercase;
        }
        .card-header h3 i { color:var(--purple-light); }
        .mode-badge {
            display:inline-flex;
            align-items:center;
            gap:0.35rem;
            padding:0.32rem 0.75rem;
            border-radius:999px;
            background:rgba(101,6,124,0.1);
            border:1px solid rgba(101,6,124,0.18);
            color:var(--purple-light);
            font-family:var(--font-mono);
            font-size:0.68rem;
            letter-spacing:0.1em;
            text-transform:uppercase;
        }
        .card-body { padding:1.4rem; }

        .status-banner {
            display:none;
            padding:1rem 1.1rem;
            border-radius:14px;
            margin-bottom:1.2rem;
            border:1px solid rgba(58,157,224,0.2);
            background:rgba(58,157,224,0.08);
            color:var(--info);
            line-height:1.65;
            font-size:0.84rem;
        }
        .status-banner.show { display:block; }
        .status-banner.success {
            border-color:rgba(76,175,128,0.25);
            background:rgba(76,175,128,0.08);
            color:var(--success);
        }

        .account-box {
            border:1px solid var(--border);
            border-radius:16px;
            background:linear-gradient(180deg, rgba(101,6,124,0.06), transparent);
            padding:1rem 1rem 0.4rem;
            margin-bottom:1.4rem;
        }
        .account-box.hidden { display:none; }

        .form-section-title {
            font-family:var(--font-display);
            font-size:0.72rem;
            font-weight:700;
            letter-spacing:0.14em;
            text-transform:uppercase;
            color:var(--purple-light);
            margin:1.2rem 0 0.8rem;
            padding-bottom:0.4rem;
            border-bottom:1px solid var(--border);
        }
        .form-section-title:first-child { margin-top:0; }
        .form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
        .form-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; }
        .form-group {
            display:flex;
            flex-direction:column;
            gap:0.35rem;
            margin-bottom:0.85rem;
        }
        .form-label {
            font-family:var(--font-mono);
            font-size:0.65rem;
            letter-spacing:0.15em;
            text-transform:uppercase;
            color:var(--grey-dim);
        }
        .req { color:var(--danger); font-size:0.74rem; }
        .form-input,
        .form-select {
            width:100%;
            padding:0.68rem 0.9rem;
            background:var(--bg-3);
            border:1px solid var(--border);
            border-radius:10px;
            color:var(--grey);
            font-family:var(--font-body);
            font-size:0.88rem;
            outline:none;
            transition:border-color 0.2s, box-shadow 0.2s;
        }
        .form-input:focus,
        .form-select:focus {
            border-color:var(--purple-vivid);
            box-shadow:0 0 0 3px rgba(101,6,124,0.15);
        }
        .form-input::placeholder { color:var(--grey-dim); opacity:0.65; }
        .form-input:disabled { opacity:0.58; cursor:not-allowed; }
        .helper-text {
            color:var(--grey-dim);
            font-size:0.78rem;
            line-height:1.6;
            margin-top:-0.2rem;
            margin-bottom:0.8rem;
        }
        .inline-action {
            display:flex;
            align-items:center;
            justify-content:flex-start;
            gap:0.75rem;
            flex-wrap:wrap;
            margin-top:0.2rem;
        }
        .inline-action .btn { margin-top:0; }

        .cep-wrap { position:relative; }
        .cep-spinner {
            position:absolute;
            right:0.85rem;
            top:50%;
            transform:translateY(-50%);
            width:16px;
            height:16px;
            border-radius:50%;
            border:2px solid var(--border);
            border-top-color:var(--purple-vivid);
            animation:spin 0.7s linear infinite;
            display:none;
        }
        .cep-spinner.show { display:block; }
        @keyframes spin { to { transform:translateY(-50%) rotate(360deg); } }

        .form-actions {
            display:flex;
            justify-content:flex-end;
            gap:0.75rem;
            flex-wrap:wrap;
            margin-top:1.6rem;
        }

        .btn {
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:0.5rem;
            padding:0.7rem 1.25rem;
            border:none;
            border-radius:11px;
            text-decoration:none;
            font-family:var(--font-display);
            font-size:0.74rem;
            font-weight:700;
            letter-spacing:0.1em;
            text-transform:uppercase;
            cursor:pointer;
            transition:all 0.25s;
        }
        .btn-primary {
            background:var(--gradient);
            color:#fff;
            border:1px solid rgba(101,6,124,0.4);
            box-shadow:var(--glow-sm);
        }
        .btn-primary:hover { box-shadow:var(--glow); transform:translateY(-2px); }
        .btn-primary:disabled { opacity:0.5; cursor:not-allowed; transform:none; }
        .btn-ghost {
            background:transparent;
            color:var(--grey-dim);
            border:1px solid var(--border);
        }
        .btn-ghost:hover {
            border-color:var(--purple-vivid);
            color:var(--purple-light);
            background:rgba(101,6,124,0.06);
        }
        .btn-sm {
            padding:0.45rem 0.9rem;
            font-size:0.68rem;
        }

        .toast-container {
            position:fixed;
            right:1.5rem;
            bottom:1.5rem;
            z-index:9999;
            display:flex;
            flex-direction:column;
            gap:0.5rem;
        }
        .toast {
            min-width:240px;
            background:var(--bg-card);
            border:1px solid var(--border);
            border-radius:10px;
            padding:0.8rem 1rem;
            color:var(--grey);
            font-size:0.84rem;
            display:flex;
            align-items:center;
            gap:0.55rem;
            animation:toastIn 0.25s ease;
            box-shadow:0 4px 20px rgba(0,0,0,0.25);
        }
        @keyframes toastIn {
            from { opacity:0; transform:translateX(20px); }
            to { opacity:1; transform:translateX(0); }
        }
        .toast.success i { color:var(--success); }
        .toast.error i { color:var(--danger); }
        .toast.info i { color:var(--info); }

        .loading-state {
            position:fixed;
            inset:0;
            z-index:6000;
            display:flex;
            align-items:center;
            justify-content:center;
            flex-direction:column;
            gap:1rem;
            background:rgba(6,6,11,0.82);
            backdrop-filter:blur(10px);
            color:#fff;
            text-align:center;
            padding:2rem;
        }
        .loading-state.hidden { display:none; }
        .loading-box-logo {
            font-family:var(--font-display);
            font-size:2rem;
            font-weight:900;
        }
        .loading-box-logo span {
            background:var(--gradient-text);
            -webkit-background-clip:text;
            -webkit-text-fill-color:transparent;
        }
        .loading-spinner {
            width:36px;
            height:36px;
            border-radius:50%;
            border:2px solid rgba(255,255,255,0.16);
            border-top-color:var(--purple-light);
            animation:spinLoader 0.8s linear infinite;
        }
        @keyframes spinLoader { to { transform:rotate(360deg); } }

        footer {
            position:relative;
            z-index:2;
            padding:24px 6%;
            border-top:1px solid var(--border);
            background:var(--deep);
        }
        .footer-bottom {
            display:flex;
            justify-content:space-between;
            align-items:center;
            gap:0.8rem;
            flex-wrap:wrap;
            font-family:var(--font-mono);
            font-size:0.72rem;
            color:var(--grey-dim);
        }
        .footer-bottom span { color:var(--purple-light); }

        @media (max-width:980px) {
            .cadastro-hero { grid-template-columns:1fr; }
            .form-grid-2, .form-grid-3 { grid-template-columns:1fr; }
        }
        @media (max-width:768px) {
            .nav-links { display:none; }
            .hamburger { display:flex; }
            nav { padding:0 4%; }
            #main-content { padding:94px 4% 3rem; }
            .logo-img { height:54px; }
        }
        @media (max-width:480px) {
            .card-body { padding:1rem; }
            .hero-panel, .hero-side { padding:1.2rem; }
            .form-actions .btn { width:100%; }
            .toast-container { left:1rem; right:1rem; }
            .toast { min-width:0; width:100%; }
        }
