/* Travessia dos Arcanos — estilos das páginas de acesso, perfil e painel.
   Duas peles: .tema-noite (alunas, login) e .tema-dia (painel da Rochelle). */
:root{
  --display:"Marcellus","Cormorant Garamond",Georgia,serif;
  --body:"Figtree","Segoe UI",system-ui,sans-serif;
  --plum:#8a5cc2; --coral:#ef7f6b; --teal:#4fb7ad; --amber:#e9b44c;
}
.tema-noite{
  --bg:#1a1225; --bg2:#251a33; --line:#3d2e50; --ink:#f3ecf7; --muted:#b9a8c9; --btn:#ef7f6b; --btn-ink:#2a1414;
  color-scheme:dark;
  background:#1a1225 radial-gradient(circle at 20% 10%,rgba(138,92,194,.18),transparent 45%);
}
.tema-dia{
  --bg:#f6f3f8; --bg2:#ffffff; --line:#e3dbe9; --ink:#251a33; --muted:#6c5f78; --btn:#5d3a8f; --btn-ink:#ffffff;
  --ok:#2f8a80; --warn:#b7791f; --bad:#c2513e;
  color-scheme:light; background:#f6f3f8;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--body);font-size:16px;line-height:1.55;color:var(--ink);min-height:100vh}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}
a{color:inherit}
button,input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
code{font-size:.9em}

/* ---------- Público ---------- */
.cartao-central{max-width:440px;margin:8vh auto 24px;padding:28px max(20px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px}
.cartao-central h1{font-size:2rem}
.cartao-central.largo{max-width:640px}
.sobretitulo{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0}
.muted{color:var(--muted);margin:0}
.rodape{text-align:center;color:var(--muted);font-size:.78rem;padding:24px 16px}
.form{display:flex;flex-direction:column;gap:6px}
.form label{font-size:.85rem;color:var(--muted);margin-top:8px}
.form input,.form select,.form textarea{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:11px 12px;width:100%}
.form textarea{min-height:96px;resize:vertical}
.form .btn{margin-top:16px;align-self:flex-start}
.form .ajuda{font-size:.8rem;color:var(--muted)}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.duas>div{display:flex;flex-direction:column;gap:6px;min-width:0}
@media (max-width:520px){.duas{grid-template-columns:1fr}}
.btn{display:inline-block;background:var(--btn);color:var(--btn-ink);border:0;border-radius:99px;padding:10px 20px;font-weight:700;text-decoration:none;cursor:pointer}
.btn.fantasma{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.pequeno{padding:6px 14px;font-size:.85rem}
.btn.perigo{background:var(--bad,#c2513e);color:#fff}
.aviso{border-radius:10px;padding:10px 14px;margin:0;border:1px solid var(--line)}
.aviso p{margin:0}
.aviso.erro{border-color:var(--coral);background:rgba(239,127,107,.1)}
.aviso.ok{border-color:var(--teal);background:rgba(79,183,173,.12)}
.esqueci summary{cursor:pointer;color:var(--muted);font-size:.9rem}
.esqueci p{font-size:.9rem;margin:8px 0 0}

/* ---------- Painel (tema-dia) ---------- */
.topo-admin{position:sticky;top:0;z-index:5;background:#251a33;color:#f3ecf7;padding-block:12px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.topo-admin .dentro{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.topo-admin .marca{font-family:var(--display);font-size:1.25rem;text-decoration:none}
.topo-admin nav{display:flex;gap:6px;flex-wrap:wrap}
.topo-admin nav a{text-decoration:none;padding:6px 12px;border-radius:99px;font-size:.9rem;color:#d9cce6}
.topo-admin nav a.ativo,.topo-admin nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.painel{max-width:1180px;margin:0 auto;padding-block:24px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:24px}
.cabecalho{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.cabecalho h1{font-size:1.9rem}
.metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.metrica{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.metrica b{font-family:var(--display);font-size:2rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.1}
.metrica span{font-size:.82rem;color:var(--muted)}
.bloco{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.bloco h2{font-size:1.25rem}
.grade2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grade3{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media (max-width:860px){.grade2,.grade3{grid-template-columns:1fr}}
.barras{display:flex;flex-direction:column;gap:8px}
.barra{display:grid;grid-template-columns:150px 1fr 32px;gap:10px;align-items:center;font-size:.86rem}
.barra .trilho{height:10px;border-radius:99px;background:#efe9f3;overflow:hidden}
.barra .trilho i{display:block;height:100%;background:var(--plum);border-radius:99px}
.barra b{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
.filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filtros input,.filtros select{background:var(--bg2);border:1px solid var(--line);border-radius:99px;padding:8px 14px;color:var(--ink)}
.filtros input{min-width:220px;flex:1}
.tabela-rolagem{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.num{font-variant-numeric:tabular-nums;text-align:right}
td .nome{font-weight:600;text-decoration:none}
td .nome:hover{text-decoration:underline}
td small{display:block;color:var(--muted);font-size:.78rem}
.progresso{display:flex;align-items:center;gap:8px;min-width:130px}
.progresso .trilho{flex:1;height:8px;border-radius:99px;background:#efe9f3;overflow:hidden}
.progresso .trilho i{display:block;height:100%;background:linear-gradient(90deg,var(--plum),var(--coral))}
.progresso span{font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--muted);width:38px;text-align:right}
.pilula{display:inline-block;font-size:.74rem;font-weight:600;padding:3px 10px;border-radius:99px;white-space:nowrap;border:1px solid}
.pilula.concluida{color:var(--ok);border-color:var(--ok);background:rgba(47,138,128,.08)}
.pilula.andamento{color:#5d3a8f;border-color:#b9a3d6;background:rgba(138,92,194,.08)}
.pilula.parada{color:var(--warn);border-color:var(--warn);background:rgba(183,121,31,.08)}
.pilula.nao_iniciou{color:var(--muted);border-color:var(--line)}
.pilula.inativa{color:var(--bad);border-color:var(--bad)}
.alerta{color:var(--warn);font-weight:600}
.vazio{padding:28px;text-align:center;color:var(--muted)}
dl.dados{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0;font-size:.9rem}
dl.dados dt{color:var(--muted)}
dl.dados dd{margin:0;min-width:0;overflow-wrap:anywhere}
.mapa-cartas{display:grid;grid-template-columns:repeat(11,1fr);gap:6px}
@media (max-width:600px){.mapa-cartas{grid-template-columns:repeat(6,1fr)}}
.mc{aspect-ratio:2/3;border-radius:6px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:.85rem;color:var(--muted);background:#faf8fb}
.mc.feita{background:#5d3a8f;color:#fff;border-color:#5d3a8f}
.mc.atual{border:2px solid var(--coral);color:var(--coral)}
.legenda{display:flex;gap:14px;font-size:.78rem;color:var(--muted);flex-wrap:wrap}
.legenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.lista-simples{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.lista-simples li{border-bottom:1px solid var(--line);padding-bottom:10px;font-size:.9rem}
.lista-simples li:last-child{border:0;padding:0}
.lista-simples small{color:var(--muted)}
.missao-txt{white-space:pre-wrap;margin:4px 0 0}
.copiar{background:#f6f3f8;border:1px dashed var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;font-size:.9rem}
.acoes{display:flex;gap:8px;flex-wrap:wrap}
form.inline{display:inline}
.form.compacto label{margin-top:4px}
.rolavel{max-height:520px;overflow-y:auto;padding-right:6px}
.grade2>.bloco{align-self:start}
