/* Ora Virtus — Sala do Terapeuta: estilos próprios sobre main.css */
.th-cards { display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); margin:22px 0; }
.th-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:16px 18px; }
.th-card strong { display:block; font-size:1.9rem; font-family:'Playfair Display',serif; line-height:1.1; }
.th-card span { opacity:.75; font-size:.85rem; }

.th-panel { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:20px 22px; margin:16px 0; }
.th-panel h2, .th-panel h3 { margin-top:0; }
.th-grid2 { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }

.th-table { width:100%; border-collapse:collapse; font-size:.95rem; }
.th-table th, .th-table td { text-align:left; padding:10px 10px; border-bottom:1px solid rgba(255,255,255,.08); vertical-align:top; }
.th-table th { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; opacity:.7; }

.th-badge { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.72rem; letter-spacing:.04em; border:1px solid rgba(255,255,255,.2); }
.th-badge--pending  { opacity:.85; }
.th-badge--started  { border-color:#c9a15a; color:#e8c98a; }
.th-badge--completed{ border-color:#5aa88a; color:#8ad3b3; }
.th-badge--expired, .th-badge--canceled { opacity:.5; }

.th-invite-link { display:flex; gap:8px; align-items:center; background:rgba(0,0,0,.25); border-radius:10px; padding:8px 12px; font-family:monospace; font-size:.8rem; word-break:break-all; }

.th-evo-bar { height:8px; border-radius:6px; background:rgba(255,255,255,.1); overflow:hidden; }
.th-evo-bar > div { height:100%; background:linear-gradient(90deg,#7a6a45,#c9a15a); }

.th-note { white-space:pre-wrap; line-height:1.55; }
.th-muted { opacity:.65; font-size:.85rem; }
.th-hint { opacity:.7; font-size:.85rem; }
.th-right { text-align:right; }
.th-mt { margin-top:14px; }

.th-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:18px 0; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:10px; }
.th-tabs a { padding:6px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.14); font-size:.9rem; }
.th-tabs a.on { border-color:#c9a15a; color:#e8c98a; }

.autosave-status { position:fixed; right:14px; bottom:14px; background:rgba(10,20,35,.92); border:1px solid rgba(255,255,255,.15); border-radius:10px; padding:8px 14px; font-size:.8rem; opacity:0; transition:opacity .3s; }
.autosave-status.show { opacity:1; }
