    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #f1f5f9;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      color: #1e293b;
    }

    .card {
      background: #fff;
      border-radius: 16px;
      box-shadow: 0 4px 32px rgba(0,0,0,.10);
      width: 100%;
      max-width: 420px;
      padding: 40px 36px 36px;
    }

    .logo {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 28px;
    }

    .lama-logo { width: 120px; height: 29px; flex-shrink: 0; }

    .logo-text { font-size: 20px; font-weight: 700; color: #1e293b; }
    .logo-text span { color: #6366f1; }

    h2 { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
    .subtitle { color: #64748b; font-size: 14px; margin-bottom: 28px; }

    /* OAuth buttons */
    .oauth-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      padding: 11px 16px;
      border-radius: 9px;
      border: 1.5px solid #e2e8f0;
      background: #fff;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: background .15s, border-color .15s;
      text-decoration: none;
      color: #1e293b;
      margin-bottom: 10px;
    }
    .oauth-btn:hover { background: #f8fafc; border-color: #cbd5e1; }
    .oauth-btn svg { flex-shrink: 0; }

    .divider {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 20px 0;
      color: #94a3b8;
      font-size: 12px;
    }
    .divider::before, .divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: #e2e8f0;
    }

    /* Tabs */
    .tabs {
      display: flex;
      border-bottom: 2px solid #e2e8f0;
      margin-bottom: 20px;
      gap: 0;
    }
    .tab {
      flex: 1;
      text-align: center;
      padding: 8px;
      font-size: 14px;
      font-weight: 600;
      color: #94a3b8;
      cursor: pointer;
      border-bottom: 2px solid transparent;
      margin-bottom: -2px;
      transition: color .15s, border-color .15s;
    }
    .tab.active { color: #6366f1; border-color: #6366f1; }

    /* Form */
    .form-group { margin-bottom: 14px; }
    label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; color: #374151; }
    input[type=text], input[type=email], input[type=password] {
      width: 100%;
      padding: 10px 12px;
      border: 1.5px solid #e2e8f0;
      border-radius: 8px;
      font-size: 14px;
      outline: none;
      transition: border-color .15s;
      color: #1e293b;
    }
    input:focus { border-color: #6366f1; }

    .btn-primary {
      width: 100%;
      padding: 11px;
      background: #6366f1;
      color: #fff;
      border: none;
      border-radius: 9px;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      transition: background .15s;
      margin-top: 4px;
    }
    .btn-primary:hover { background: #4f46e5; }
    .btn-primary:disabled { opacity: .6; cursor: not-allowed; }

    /* Mensajes */
    .msg {
      display: none;
      padding: 11px 14px;
      border-radius: 8px;
      font-size: 13px;
      margin-bottom: 16px;
    }
    .msg.error   { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
    .msg.success { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
    .msg.info    { background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe; }

    .panel { display: none; }
    .panel.active { display: block; }

    .footer-note {
      margin-top: 20px;
      text-align: center;
      font-size: 12px;
      color: #94a3b8;
    }
