    :root{
      --cp-bg:#FAFAFB; --cp-surface:#FFFFFF; --cp-border:#EAECEF;
      --cp-text:#0A0C10; --cp-text-2:#6B7280; --cp-text-3:#9CA3AF;
      --cp-brand:#0b2468; --cp-brand-ink:#0b2468; --cp-brand-soft:#f3f5fa;
      --cp-success:#16A34A; --cp-success-soft:#EFFCF3;
      --cp-warning:#D97706; --cp-warning-soft:#FFF8EC;
      --cp-danger:#DC2626;  --cp-danger-soft:#FDF0F0;
      --cp-radius-sm:10px; --cp-radius-md:14px; --cp-radius-lg:22px;
      --cp-shadow:none;
    }
    html.dark{
      --cp-bg:#080A0F; --cp-surface:#10141F; --cp-border:rgba(255,255,255,0.08);
      --cp-text:#F8FAFC; --cp-text-2:#94A3B8; --cp-text-3:#64748B;
      --cp-brand:#395fc6; --cp-brand-ink:#2e4c9e; --cp-brand-soft:rgba(57, 95, 198, 0.12);
      --cp-success-soft:rgba(22,163,74,.12); --cp-warning-soft:rgba(217,119,6,.12);
      --cp-danger-soft:rgba(220,38,38,.12);
      --cp-shadow:none;
    }
    *,*::before,*::after{box-sizing:border-box;}
    body{font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;background:var(--cp-bg);color:var(--cp-text);margin:0;-webkit-font-smoothing:antialiased;}

    .app-container {
        width: 100%; max-width: 460px; min-height: 100vh; margin: 0 auto;
        display: flex; flex-direction: column; justify-content: space-between; position: relative;
    }

    .cp-card{background:var(--cp-surface);border:1px solid var(--cp-border);border-radius:var(--cp-radius-lg);box-shadow:none;}
    .cp-badge{padding:5px 12px;border-radius:999px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;background:var(--cp-bg);color:var(--cp-text-2);border:1px solid var(--cp-border);}

    .cp-input{
        width:100%; height:46px; padding:0 14px; border-radius:var(--cp-radius-sm);
        border:1px solid var(--cp-border); background:var(--cp-bg); color:var(--cp-text);
        font-family:inherit; font-size:13.5px; font-weight:500; outline:none; transition:border-color .15s ease;
    }
    .cp-input:focus{ border-color:var(--cp-brand); }
    .cp-label{ display:block; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.04em; color:var(--cp-text-3); margin-bottom:6px; }

    .step-progress-bar { display: flex; align-items: center; justify-content: space-between; position: relative; margin-bottom: 24px; }
    .step-progress-line { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--cp-border); z-index: 1; }
    .step-progress-node { width: 10px; height: 10px; border-radius: 50%; background: var(--cp-text-3); z-index: 2; transition: all 0.25s ease; }
    .step-progress-node.active { background: var(--cp-brand); transform: scale(1.3); }

    .primary-btn {
        width: 100%; height: 50px; border-radius: 12px; background: var(--cp-brand); color: #ffffff !important;
        font-weight: 500; font-size: 14px; border: none; display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; transition: all 0.2s ease; text-decoration: none;
    }
    .primary-btn:hover { background: var(--cp-brand-ink); }

    .theme-toggle-switch {
        width: 50px; height: 26px; background: var(--cp-bg); border: 1px solid var(--cp-border);
        border-radius: 30px; padding: 2px; cursor: pointer; position: relative; display: flex; align-items: center; transition: all 0.2s ease;
    }
    .theme-toggle-switch .switch-thumb {
        width: 20px; height: 20px; border-radius: 50%; background: var(--cp-warning); transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1); transform: translateX(0px);
    }
    html.dark .theme-toggle-switch .switch-thumb { transform: translateX(22px); background: var(--cp-brand); }

    .hp-field { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }

    .recaptcha-skeleton {
        width: 302px; height: 76px; border-radius: 12px;
        background: var(--cp-bg);
        background-size: 200% 100%; animation: shimmer 1.5s infinite; border: 1px solid var(--cp-border);
    }
    @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
    
