/* TRÂNSITOS — aba de trânsitos do dia. */

/* TRANSITS TAB */
/* max-width/margin/padding lateral vêm de .app-container (aplicada
   junto no HTML, ver js/transits.js) — aqui só o padding vertical. */
.trn-wrap{padding-top:20px;padding-bottom:40px;}
.trn-header{margin-bottom:24px;}
.trn-title{font-family:var(--font-heading);font-size:var(--font-size-2xl);margin-bottom:4px;}
.trn-date-str{font-size:var(--font-size-meta);color:var(--text-muted);}
.trn-count{font-size:var(--font-size-meta);color:var(--text-dim);margin-top:2px;}
.trn-recalc-btn{margin-top:12px;font-size:var(--font-size-meta);padding:7px 14px;}
/* Etapa 4 — estado emocional do dia (primeira versão visível, docs em lib/transits/generate-emotional-state-of-day.js) */
.trn-emotional-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 18px 16px;margin-bottom:20px;}
.trn-emotional-title{font-size:var(--font-size-2xs);letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.trn-emotional-overall{font-size:var(--font-size-base);line-height:1.65;color:var(--text);margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border);}
.trn-emotional-state{margin-bottom:12px;}
.trn-emotional-state:last-child{margin-bottom:0;}
.trn-emotional-state-name{font-family:var(--font-heading);font-size:16px;font-weight:600;color:var(--text);margin-bottom:3px;text-transform:capitalize;}
.trn-emotional-state-text{font-size:var(--font-size-base);line-height:1.6;color:var(--text-dim);}
.concept-bullets{margin:6px 0 8px;padding-left:18px;font-size:var(--font-size-base);color:var(--text);line-height:1.55;}
.concept-bullets li{margin-bottom:3px;}
.trn-block-label{font-family:var(--font-heading);font-size:14px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--accent);margin:28px 20px 4px;scroll-margin-top:60px;}
.trn-block-label:first-child{margin-top:0;}
.trn-block-caption{font-size:var(--font-size-meta);color:var(--text-dim);margin:0 20px 14px;padding-bottom:14px;border-bottom:2px solid var(--accent);}
.trn-chips{position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:16px 20px;margin:0 -20px 4px;background:var(--bg);}
.trn-chip{flex-shrink:0;background:var(--surface2);border:1px solid rgba(107,86,68,0.30);border-radius:999px;padding:7px 14px;font-family:var(--font-body);font-size:var(--font-size-meta);color:var(--text);cursor:pointer;white-space:nowrap;}
.trn-chip:active{opacity:0.7;}
.trn-badge-new{display:inline-block;font-size:var(--font-size-2xs);font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:999px;padding:2px 8px;margin-right:8px;vertical-align:middle;}

/* Badge de classificação financeira do dia (aba Dinheiro dos Trânsitos,
   2026-09-21) — mesma pill de .trn-badge-new, 3 variantes de cor por
   veredito (favoravel/desfavoravel/neutro), sem token semântico prévio no
   projeto pra reaproveitar, então definido aqui local ao badge. */
.trn-money-badge{display:inline-block;font-size:var(--font-size-2xs);font-weight:600;letter-spacing:0.04em;text-transform:uppercase;padding:5px 14px;border-radius:999px;margin-bottom:16px;}
.trn-money-badge.favoravel{color:#1e7e34;background:rgba(30,126,52,0.14);}
.trn-money-badge.desfavoravel{color:#b3401f;background:rgba(179,64,31,0.14);}
.trn-money-badge.neutro{color:var(--text-dim);background:var(--surface2);}
.trn-sector{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 18px 16px;margin-bottom:12px;}
.trn-sector-label{font-size:var(--font-size-2xs);letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.trn-sector-titulo{font-family:var(--font-heading);font-size:20px;font-weight:600;line-height:1.3;color:var(--text);margin-bottom:8px;}
.trn-sector-combos{font-size:var(--font-size-meta);line-height:1.6;color:var(--text-dim);margin-bottom:10px;}
.trn-sector-duracao{display:inline-block;font-size:var(--font-size-2xs);font-weight:600;letter-spacing:0.04em;color:var(--accent);background:rgba(var(--accent-rgb),0.14);border-radius:999px;padding:4px 12px;margin-bottom:16px;}
.trn-resumo{font-size:var(--font-size-base);line-height:1.65;font-weight:400;color:var(--text);margin-bottom:10px;}
.trn-orientacao{font-size:var(--font-size-base);color:var(--text-muted);line-height:1.65;font-weight:400;padding-top:10px;border-top:1px solid var(--border);}
.trn-subtitle{font-size:var(--font-size-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px;}
.trn-resumo .trn-subtitle,.trn-orientacao .trn-subtitle{margin-top:0;}
.trn-bullets{margin:0 0 10px;padding-left:18px;font-size:var(--font-size-base);line-height:1.65;font-weight:400;color:var(--text);}
.trn-bullets li{margin-bottom:6px;}
.trn-bullets li:last-child{margin-bottom:0;}
.trn-qa-toggle{background:none;border:none;color:var(--accent);font-family:var(--font-body);font-size:var(--font-size-meta);letter-spacing:0.04em;cursor:pointer;padding:10px 0 0;display:block;}
.trn-technical{margin:20px 4px 0;padding-top:16px;border-top:1px solid var(--border);}
.trn-qa{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.trn-qa.open{display:block;}
.trn-qa-history{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;}
.trn-qa-msg-user{font-size:var(--font-size-md);color:var(--accent);font-style:italic;line-height:1.55;}
.trn-qa-msg-assistant{font-size:var(--font-size-base);color:var(--text);font-weight:300;line-height:1.68;}
.trn-qa-input-row{display:flex;gap:8px;align-items:flex-end;}
.trn-qa-input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-family:var(--font-body);font-size:16px;font-weight:300;color:var(--text);outline:none;resize:none;max-height:80px;transition:border-color 0.2s;-webkit-appearance:none;}
.trn-qa-input:focus{border-color:var(--accent);}
.trn-qa-input::placeholder{color:var(--text-dim);}
.trn-qa-send{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-mid1),var(--gradient-mid2),var(--gradient-end));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity 0.2s;}
.trn-qa-send:disabled{opacity:0.3;cursor:not-allowed;}

/* Pop-up de trânsitos do dia (2026-10-02) — dentro de .modal-sheet (css/moon-modal-auth.css), ver trnMaybeShowQuickPopup em js/transits.js. */
.trn-quick-list{max-height:55vh;overflow-y:auto;margin-bottom:20px;}
.trn-quick-item{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;}
.trn-quick-aspect{font-size:var(--font-size-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.trn-quick-text{font-size:var(--font-size-base);line-height:1.6;color:var(--text);margin:0;}

/* "Ativos agora" (2026-10-12) — trânsitos ativos com texto do Dicionário de
   Trânsitos, ver trnActiveListHTML() em js/transits.js. Seletor em abas com
   sublinhado, pra não repetir o pill de Mapa Natal / Trânsitos logo acima. */
.trn-mode-toggle{display:flex;gap:24px;border-bottom:1px solid var(--border);margin-bottom:20px;}
.trn-mode-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:0 2px 12px;min-height:44px;font-family:var(--font-body);font-size:var(--font-size-base);color:var(--text-muted);cursor:pointer;}
.trn-mode-tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600;}
.trn-mode-count{display:inline-block;min-width:20px;padding:1px 6px;margin-left:4px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:var(--font-size-2xs);font-weight:600;text-align:center;}
.trn-act-group{margin-bottom:22px;}
.trn-act-group-label{font-size:var(--font-size-2xs);letter-spacing:0.2em;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px;}
.trn-act-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;}
.trn-act-card summary{display:flex;align-items:flex-start;gap:12px;padding:16px;cursor:pointer;list-style:none;}
.trn-act-card summary::-webkit-details-marker{display:none;}
.trn-act-head{flex:1;min-width:0;}
.trn-act-aspect{display:block;font-size:var(--font-size-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.trn-act-short{display:block;font-size:var(--font-size-base);line-height:1.5;color:var(--text);}
.trn-act-chev{margin-top:2px;}
.trn-act-card[open] .trn-act-chev{transform:rotate(180deg);}
.trn-act-body{margin:0 16px;padding:14px 0 16px;border-top:1px solid var(--border);}
.trn-act-text{font-size:var(--font-size-base);line-height:1.65;color:var(--text);margin:0 0 14px;}
.trn-act-where{font-size:var(--font-size-base);line-height:1.6;color:var(--text-muted);font-style:italic;margin:-4px 0 14px;}
.trn-act-tip{background:var(--accent-dim);border-radius:10px;padding:12px 14px;}
.trn-act-tip-label{font-size:var(--font-size-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;}
.trn-act-tip p{font-size:var(--font-size-base);line-height:1.55;color:var(--text);margin:0;}
.trn-act-until{font-size:var(--font-size-meta);color:var(--text-dim);margin-top:12px;}
.trn-act-missing{font-size:var(--font-size-meta);line-height:1.5;color:var(--text-dim);margin:0 0 16px;}
.trn-act-empty{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 16px;margin-bottom:16px;}
.trn-act-empty p{font-size:var(--font-size-base);line-height:1.55;color:var(--text);margin:0 0 12px;}
.trn-act-empty .trn-act-missing{color:var(--text-dim);}
