  * { box-sizing: border-box; }
    body { font-family: 'DM Sans', sans-serif; min-height: 100vh; background: #0D1B2A; }

    /* bg pattern */
    body::before {
      content: '';
      position: fixed; inset: 0; z-index: 0;
      background-image:
        radial-gradient(circle at 20% 30%, rgba(232,160,32,.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(30,51,83,.6) 0%, transparent 50%);
      pointer-events: none;
    }

    .card {
      background: #fff;
      border-radius: 20px;
      box-shadow: 0 24px 80px rgba(0,0,0,.35);
      width: 100%; max-width: 420px;
      overflow: hidden;
    }

    .card-top {
      background: linear-gradient(135deg, #0D1B2A 0%, #1E3353 100%);
      padding: 32px 32px 28px;
      position: relative; overflow: hidden;
    }
    .card-top::after {
      content: '';
      position: absolute; bottom: -30px; right: -30px;
      width: 120px; height: 120px; border-radius: 50%;
      border: 2px solid rgba(232,160,32,.15);
    }
    .card-top::before {
      content: '';
      position: absolute; top: -20px; right: 40px;
      width: 80px; height: 80px; border-radius: 50%;
      border: 2px solid rgba(232,160,32,.08);
    }

    .card-body { padding: 32px; }

    /* panels */
    .panel { display: none; }
    .panel.active { display: block; }

    /* input */
    .inp-wrap { position: relative; }
    .inp-wrap .prefix {
      position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
      font-size: 14px; color: #9A8F80; font-weight: 600; pointer-events: none;
    }
    input[type="tel"], input[type="text"] {
      width: 100%; padding: 13px 14px 13px 48px;
      border: 1.5px solid #D4C9B0; border-radius: 10px;
      font-size: 15px; font-family: 'DM Sans', sans-serif;
      color: #0D1B2A; outline: none; background: #fff;
      transition: border-color .2s, box-shadow .2s;
    }
    input:focus {
      border-color: #E8A020;
      box-shadow: 0 0 0 3px rgba(232,160,32,.12);
    }
    input.error { border-color: #e53e3e; box-shadow: 0 0 0 3px rgba(229,62,62,.1); }
    .err-msg { color: #e53e3e; font-size: 11px; margin-top: 5px; display: none; }
    .err-msg.show { display: block; }

    /* OTP boxes */
    .otp-grid { display: flex; gap: 10px; justify-content: center; }
    .otp-box {
      width: 52px; height: 58px;
      border: 1.5px solid #D4C9B0; border-radius: 10px;
      text-align: center; font-size: 22px; font-weight: 700;
      color: #0D1B2A; outline: none; background: #fff;
      transition: border-color .2s, box-shadow .2s;
      font-family: 'DM Sans', sans-serif;
      /* remove number arrows */
      -moz-appearance: textfield;
    }
    .otp-box::-webkit-inner-spin-button,
    .otp-box::-webkit-outer-spin-button { -webkit-appearance: none; }
    .otp-box:focus {
      border-color: #E8A020;
      box-shadow: 0 0 0 3px rgba(232,160,32,.15);
    }
    .otp-box.filled { border-color: #0D1B2A; background: #F8F6F1; }
    .otp-box.error  { border-color: #e53e3e; box-shadow: 0 0 0 3px rgba(229,62,62,.1); }

    /* buttons */
    .btn-gold {
      width: 100%; padding: 14px; border-radius: 10px;
      background: #E8A020; color: #0D1B2A;
      font-weight: 700; font-size: 15px; border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: 8px;
      transition: background .2s, transform .1s;
    }
    .btn-gold:hover:not(:disabled) { background: #F5B942; }
    .btn-gold:active:not(:disabled) { transform: scale(.98); }
    .btn-gold:disabled { background: #C4A060; cursor: not-allowed; opacity: .7; }

    .btn-link {
      background: none; border: none; cursor: pointer;
      color: #E8A020; font-size: 12px; font-weight: 600;
      font-family: 'DM Sans', sans-serif;
      display: inline-flex; align-items: center; gap: 5px;
      transition: color .2s;
    }
    .btn-link:hover { color: #C4851A; }
    .btn-link:disabled { color: #9A8F80; cursor: not-allowed; }

    /* spinner */
    .spin {
      width: 18px; height: 18px;
      border: 2.5px solid rgba(0,0,0,.15);
      border-top-color: #0D1B2A; border-radius: 50%;
      animation: rot .7s linear infinite; display: none; flex-shrink: 0;
    }
    @keyframes rot { to { transform: rotate(360deg); } }

    /* timer */
    #timer-wrap { font-size: 12px; color: #9A8F80; }
    #timer-count { font-weight: 700; color: #0D1B2A; }

    /* success */
    .success-ring {
      width: 80px; height: 80px; border-radius: 50%;
      background: linear-gradient(135deg, #0D1B2A, #1E3353);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 20px;
      animation: pop .4s cubic-bezier(.3,1.5,.5,1);
    }
    @keyframes pop { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }

    /* toast */
    #toast {
      position: fixed; bottom: 28px; left: 50%; transform: translateX(-50%) translateY(80px);
      background: #0D1B2A; color: #fff; border-radius: 10px;
      padding: 11px 22px; font-size: 13px; font-weight: 500;
      opacity: 0; transition: all .3s; z-index: 9999;
      display: flex; align-items: center; gap: 9px; white-space: nowrap;
    }
    #toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
    #toast.success i { color: #4ade80; }
    #toast.error   i { color: #f87171; }

    /* mobile number display chip */
    .mobile-chip {
      display: inline-flex; align-items: center; gap: 8px;
      background: #F8F6F1; border: 1px solid #E8E2D5;
      border-radius: 8px; padding: 8px 14px;
      font-size: 14px; font-weight: 600; color: #0D1B2A;
    }
    .mobile-chip i { color: #E8A020; font-size: 12px; }

    /* label */
    .field-label {
      display: block; font-size: 11px; font-weight: 600;
      color: #4A4030; letter-spacing: .05em; text-transform: uppercase;
      margin-bottom: 6px;
    }

    /* divider */
    .div-line { display: flex; align-items: center; gap: 10px; color: #C4B89A; font-size: 11px; margin: 20px 0; }
    .div-line::before, .div-line::after { content: ''; flex: 1; height: 1px; background: #EDE9E1; }

    /* ticker */
    .ticker-wrap { background: #0D1B2A; overflow: hidden; border-bottom: 1px solid rgba(232,160,32,.15); }
    .ticker-track { display: inline-flex; animation: tick 28s linear infinite; }
    @keyframes tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }

    @media (max-width: 480px) {
      .card-body { padding: 24px 20px; }
      .card-top  { padding: 24px 20px; }
      .otp-box   { width: 44px; height: 52px; font-size: 20px; }
    }