    /* ── Seletores de data em linha ── */
    .selects-data {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 12px;
    }
    .selects-hora {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }

    /* ── Cabeçalho do resultado ── */
    .resultado-cabecalho {
      text-align: center;
      padding: 24px 0 16px;
    }
    .resultado-emoji {
      font-size: 4rem;
      line-height: 1;
      margin-bottom: 12px;
      filter: drop-shadow(0 0 20px rgba(201,168,76,0.5));
    }
    .resultado-nome-tib {
      font-family: 'Cinzel', serif;
      font-size: 0.75rem;
      letter-spacing: 0.3em;
      color: var(--mist);
      text-transform: uppercase;
      margin-bottom: 6px;
    }
    .resultado-nome-pt {
      font-family: 'Cinzel Decorative', serif;
      font-size: 2rem;
      color: var(--gold);
      text-shadow: 0 0 20px rgba(201,168,76,0.4);
    }

    /* ── Badges ── */
    .badges-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      justify-content: center;
      margin: 16px 0;
    }
    .badge {
      font-family: 'Cinzel', serif;
      font-size: 0.62rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--gold);
      border: 1px solid rgba(201,168,76,0.4);
      padding: 5px 14px;
      border-radius: 20px;
      background: rgba(201,168,76,0.05);
    }
    .badge.destaque-badge {
      background: rgba(201,168,76,0.12);
      border-color: var(--gold);
      color: var(--gold-light);
    }

    /* ── Título de seção ── */
    .secao-titulo {
      font-family: 'Cinzel', serif;
      font-size: 0.68rem;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--gold-dim);
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .secao-titulo::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(to right, rgba(201,168,76,0.3), transparent);
    }

    /* ── Características ── */
    .tags-wrap {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
    }
    .tag-pos {
      font-family: 'EB Garamond', serif;
      font-size: 0.95rem;
      color: #7ec8a4;
      border: 1px solid rgba(126,200,164,0.3);
      background: rgba(126,200,164,0.05);
      padding: 3px 12px;
      border-radius: 4px;
    }
    .tag-neg {
      font-family: 'EB Garamond', serif;
      font-size: 0.95rem;
      color: #c87e7e;
      border: 1px solid rgba(200,126,126,0.3);
      background: rgba(200,126,126,0.05);
      padding: 3px 12px;
      border-radius: 4px;
    }

    /* ── Profissões ── */
    .tag-prof {
      font-family: 'EB Garamond', serif;
      font-size: 0.95rem;
      color: var(--mist);
      border: 1px solid rgba(200,191,176,0.2);
      padding: 3px 12px;
      border-radius: 4px;
    }

    /* ── Elemento do ano ── */
    .elemento-card {
      background: rgba(201,168,76,0.06);
      border: 1px solid rgba(201,168,76,0.25);
      border-radius: 8px;
      padding: 18px 20px;
    }
    .elemento-nome {
      font-family: 'Cinzel', serif;
      font-size: 1.1rem;
      color: var(--gold-light);
      margin-bottom: 8px;
    }

    /* ── Ascendente ── */
    .ascendente-card {
      background: rgba(100,60,130,0.1);
      border: 1px solid rgba(150,100,200,0.3);
      border-radius: 8px;
      padding: 18px 20px;
    }
    .ascendente-nome {
      font-family: 'Cinzel', serif;
      font-size: 1.05rem;
      color: #b89fd4;
      margin-bottom: 6px;
    }
    .ascendente-horas {
      font-family: 'Cinzel', serif;
      font-size: 0.62rem;
      letter-spacing: 0.15em;
      color: var(--mist);
      opacity: 0.7;
      margin-bottom: 8px;
    }

    /* ── Compatibilidades ── */
    .compat-bloco { margin-bottom: 20px; }
    .compat-bloco:last-child { margin-bottom: 0; }
    .compat-nivel-titulo {
      font-family: 'Cinzel', serif;
      font-size: 0.65rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .compat-nivel-titulo .dot {
      width: 8px; height: 8px;
      border-radius: 50%;
      display: inline-block;
      flex-shrink: 0;
    }
    .nivel-alto  .compat-nivel-titulo { color: #7ec8a4; }
    .nivel-medio .compat-nivel-titulo { color: var(--gold); }
    .nivel-baixo .compat-nivel-titulo { color: #c87e7e; }
    .nivel-alto  .dot { background: #7ec8a4; }
    .nivel-medio .dot { background: var(--gold); }
    .nivel-baixo .dot { background: #c87e7e; }

    .compat-card {
      border-radius: 8px;
      padding: 14px 16px;
      border: 1px solid transparent;
    }
    .nivel-alto  .compat-card { border-color: rgba(126,200,164,0.3); background: rgba(126,200,164,0.05); }
    .nivel-medio .compat-card { border-color: rgba(201,168,76,0.25); background: rgba(201,168,76,0.04); }
    .nivel-baixo .compat-card { border-color: rgba(200,126,126,0.25); background: rgba(200,126,126,0.04); }

    .compat-signos {
      font-family: 'Cinzel', serif;
      font-size: 0.78rem;
      letter-spacing: 0.1em;
      margin-bottom: 6px;
    }
    .nivel-alto  .compat-signos { color: #7ec8a4; }
    .nivel-medio .compat-signos { color: var(--gold); }
    .nivel-baixo .compat-signos { color: #c87e7e; }

    .compat-desc {
      font-size: 0.95rem;
      color: var(--mist);
      line-height: 1.6;
    }

    /* ── Combinação ocidental ── */
    .zodiacal-card {
      background: rgba(201,168,76,0.04);
      border: 1px solid rgba(201,168,76,0.18);
      border-radius: 8px;
      padding: 18px 20px;
    }
    .zodiacal-titulo {
      font-family: 'Cinzel', serif;
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold-dim);
      margin-bottom: 8px;
    }

    /* ── Formulário ── */
    .campo-grimorio {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 20px;
    }
    .campo-grimorio label {
      font-family: 'Cinzel', serif;
      font-size: 0.7rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold);
      opacity: 0.85;
    }
    .campo-grimorio select {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(201,168,76,0.25);
      border-radius: 6px;
      color: var(--parchment);
      font-family: 'EB Garamond', serif;
      font-size: 1.05rem;
      padding: 10px 14px;
      outline: none;
      transition: border-color 0.3s;
      width: 100%;
    }
    .campo-grimorio select:focus {
      border-color: rgba(201,168,76,0.6);
      box-shadow: 0 0 0 3px rgba(201,168,76,0.08);
    }
    .campo-grimorio select option { background: #1a1118; }

    .nota-hora {
      font-size: 0.85rem;
      color: var(--mist);
      font-style: italic;
      opacity: 0.72;
      font-family: 'EB Garamond', serif;
      text-transform: none;
      letter-spacing: 0;
    }

    .botao-grimorio {
      font-family: 'Cinzel', serif;
      font-size: 0.75rem;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--ink);
      background: linear-gradient(135deg, var(--gold), var(--gold-light));
      border: none;
      border-radius: 6px;
      padding: 14px 32px;
      cursor: pointer;
      transition: opacity 0.3s, transform 0.2s, box-shadow 0.3s;
      width: 100%;
      box-shadow: 0 4px 20px rgba(201,168,76,0.25);
    }
    .botao-grimorio:hover  { opacity: 0.9; transform: translateY(-1px); box-shadow: 0 6px 28px rgba(201,168,76,0.4); }
    .botao-grimorio:active { transform: translateY(0); }
    .botao-grimorio:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

    .botao-secundario {
      font-family: 'Cinzel', serif;
      font-size: 0.7rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold);
      background: transparent;
      border: 1px solid rgba(201,168,76,0.4);
      border-radius: 6px;
      padding: 10px 24px;
      cursor: pointer;
      transition: all 0.3s;
    }
    .botao-secundario:hover { background: rgba(201,168,76,0.08); border-color: var(--gold); }

    .spinner-grimorio {
      width: 36px; height: 36px;
      border: 2px solid rgba(201,168,76,0.2);
      border-top-color: var(--gold);
      border-radius: 50%;
      animation: spin 0.9s linear infinite;
      margin: 20px auto;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    #area-resultado { display: none; }

    blockquote.citacao-grimorio {
      border-left: 2px solid var(--gold);
      margin: 0;
      padding: 14px 20px;
      font-style: italic;
      color: var(--mist);
      font-size: 1.05rem;
      background: rgba(201,168,76,0.04);
      border-radius: 0 6px 6px 0;
      line-height: 1.75;
    }

    .tag-grimorio {
      display: inline-block;
      font-family: 'Cinzel', serif;
      font-size: 0.6rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--gold);
      border: 1px solid rgba(201,168,76,0.4);
      padding: 3px 10px;
      border-radius: 20px;
    }

    @media (max-width: 560px) {
      .selects-data { grid-template-columns: 1fr 1fr; }
    }