 
    :root{
      --bg:#f9fafb;
      --card:#ffffff;
      --primary:#a601fe;
      --muted:#6b7280;
      --danger:#dc2626;
      --success:#16a34a;
      --note:#ef4444;
      --radius:12px;
      font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    }

    *{box-sizing:border-box;margin:0;padding:0}

    body{
      min-height:100vh;
      background:var(--bg);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px;
    }

    .container{
      width:100%;
      max-width:1100px;
      background:var(--card);
      border-radius:14px;
      box-shadow:0 12px 40px rgba(2,6,23,0.08);
      overflow:hidden;
      display:flex;
    }

    /* LEFT */
    .left{
      flex:1;
      min-width:300px;
      background:linear-gradient(180deg,#0b1020,#111827);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:28px;
    }
    .left img{max-width:220px;width:100%;height:auto;filter:drop-shadow(0 8px 30px rgba(0,0,0,0.5))}

    /* RIGHT */
    .right{
      flex:1;
      min-width:320px;
      padding:28px 36px;
      position:relative;
    }

    .back-btn{
      position:absolute;left:18px;top:18px;border:none;background:transparent;
      color:var(--primary);font-weight:600;cursor:pointer;display:flex;gap:6px;align-items:center;
    }
    .back-btn .material-icons{font-size:18px}

    .heading{margin-top:18px;margin-bottom:8px}
    .heading h3{font-size:22px;color:#0f172a;margin:0}
    .desc{color:var(--muted);font-size:14px;margin-bottom:14px}

    form .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
    .full{grid-column:1/-1}
    label{display:block;font-size:13px;color:#111827;margin-bottom:6px}

    .field { display:flex; flex-direction:column; }
    .field-row { position:relative; display:flex; align-items:center; }
    input[type="text"], input[type="email"], input[type="tel"], input[type="password"], select {
      width:100%; padding:10px 12px; border-radius:8px; border:1px solid #e6e9ef;
      font-size:14px; background:white; outline:none;
    }
    .has-suffix input { padding-right:44px; }

    input:focus, select:focus {
      box-shadow:0 0 0 6px rgba(79,70,229,0.06);
      border-color:var(--primary);
    }

    .suffix-btn {
      position:absolute; right:8px; height:calc(100% - 6px); top:50%; transform:translateY(-50%);
      border:none; background:transparent; display:flex; align-items:center; justify-content:center;
      padding:6px; cursor:pointer; color:var(--muted); border-radius:6px; outline:none;
    }
    .suffix-btn:active, .suffix-btn:focus { background: rgba(0,0,0,0.04); }

    .note{
      background:var(--note);color:#fff;padding:10px 12px;border-radius:8px;font-size:13px;margin:16px 0;
    }

    .price-card{
      background:linear-gradient(180deg,#eff6ff,#eef2ff);
      border:1px solid rgba(79,70,229,0.12);
      color:var(--primary);
      font-size:18px;font-weight:700;text-align:center;padding:14px;border-radius:12px;margin-bottom:16px;
      box-shadow:0 8px 20px rgba(79,70,229,0.04);
    }

    .btn{
      width:100%; padding:12px 16px; border-radius:10px; border:none;
      background:var(--primary); color:#fff; font-weight:700;
      display:inline-flex; align-items:center; justify-content:center; gap:10px;
      cursor:pointer; font-size:16px;
    }
    .btn:disabled{opacity:.7;cursor:not-allowed}

    .spinner{
      width:18px;height:18px;border-radius:50%;
      border:3px solid rgba(255,255,255,.35);border-top-color:#fff;
      animation:spin 1s linear infinite;display:inline-block;
    }
    @keyframes spin{to{transform:rotate(360deg)}}

    .footer-note{font-size:12px;color:var(--muted);margin-top:12px;text-align:center}
    .error{color:var(--danger);font-size:13px;margin-top:6px;display:none}

    .strength-meter{height:8px;border-radius:6px;background:#e6e9ef;margin-top:8px;overflow:hidden}
    .strength-bar{height:100%;width:0;background:#ddd;transition:width .3s, background-color .3s}
    .strength-text{font-size:12px;margin-top:6px;color:var(--muted)}

    .login-link{
      margin-top:14px;
      text-align:center;
      font-size:14px;
      color:var(--muted);
    }
    .login-link a{
      color:var(--primary);
      font-weight:600;
      text-decoration:none;
      margin-left:6px;
      transition:color .2s;
    }
    .login-link a:hover{color:#3730a3;text-decoration:underline;}

    .debug-box {
      margin-top: 20px;
      padding: 14px 16px;
      border-radius: 8px;
      background: #fef2f2;
      border: 1px solid #fecaca;
      color: #b91c1c;
      font-size: 14px;
      line-height: 1.5;
      word-break: break-word;
      display: none;
      box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    }

    .debug-box strong {
      color: #991b1b;
    }

    /* === Modals (success + error) === */
    .modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1200}
    .modal.active{opacity:1;pointer-events:auto}
    .modal-content{background:#fff;padding:24px;border-radius:12px;max-width:420px;width:90%;text-align:center;box-shadow:0 20px 50px rgba(2,6,23,.12)}
    .modal-content .material-icons{font-size:64px}
    .modal-content h2{margin:12px 0 6px;font-size:22px}
    .modal-content p{margin:0 0 18px;color:#374151}
    .modal-content .ok-btn{display:inline-block;background:#a601fe;color:#fff;border:none;border-radius:8px;padding:10px 20px;font-weight:700;cursor:pointer}
    .modal-content.success .material-icons{color:var(--success)}
    .modal-content.error .material-icons{color:var(--danger)}

    .snackbar {
      position: fixed;
      left: 50%;
      transform: translateX(-50%);
      bottom: -80px;
      min-width: 240px;
      max-width: 92%;
      padding: 14px 20px;
      border-radius: 8px;
      color: #fff;
      font-weight: 600;
      text-align: center;
      opacity: 0;
      pointer-events: none;
      z-index: 1300;
      transition: all 0.4s ease;
    }
    .snackbar.show {
      bottom: 40px;
      opacity: 1;
      pointer-events: auto;
    }
    .snackbar.success { background: #16a34a; }
    .snackbar.error { background: #dc2626; }

    @media (max-width:900px){ .container{flex-direction:column} .left{padding:22px} .right{padding:22px} }
    @media (max-width:520px){ .grid{grid-template-columns:1fr 1fr;gap:10px} .heading{margin-top:46px} }
  