:root {
  --fundo: #f6f4ef; --cartao: #fff; --tinta: #1c1a16; --suave: #6b665c; --borda: #e4dfd4;
  --ouro: #a8873f; --ok: #2f7d4f; --erro: #b3372f; --alerta: #b7791f; --info: #3b6ea8; --cinza: #9a958b;
}
@media (prefers-color-scheme: dark) {
  :root { --fundo: #14130f; --cartao: #1e1c18; --tinta: #eeeae2; --suave: #a29d92; --borda: #34312a;
          --ouro: #d4b26a; --ok: #5cbf86; --erro: #e5675e; --alerta: #e0a84a; --info: #79a8de; --cinza: #77736b; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fundo); color: var(--tinta);
       font: 15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
a { color: var(--ouro); }
.sutil { color: var(--suave); font-size: 13px; }
.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; }

/* Login */
body.login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-cartao { width: 100%; max-width: 360px; padding: 28px; display: grid; gap: 10px; }
.login-cartao h1 { margin: 0; font-size: 26px; }
.login-cartao input { font-size: 16px; padding: 12px; border-radius: 8px; border: 1px solid var(--borda);
                      background: var(--fundo); color: var(--tinta); }
.erro { color: var(--erro); margin: 0; font-size: 14px; }

/* Topo e abas */
.topo { position: sticky; top: 0; z-index: 5; background: var(--fundo); border-bottom: 1px solid var(--borda);
        display: flex; align-items: center; gap: 12px; padding: 10px 16px; flex-wrap: wrap; }
.topo h1 { font-size: 18px; margin: 0; }
.abas { display: flex; gap: 4px; overflow-x: auto; flex: 1; }
.abas button { border: 0; background: none; color: var(--suave); font: inherit; font-weight: 600;
               padding: 8px 12px; border-radius: 8px; white-space: nowrap; cursor: pointer; }
.abas button[aria-selected="true"] { background: var(--cartao); color: var(--tinta); box-shadow: 0 0 0 1px var(--borda); }
.sair { font-size: 13px; color: var(--suave); }
main { padding: 16px; max-width: 1100px; margin: 0 auto; }

/* Botões */
.btn { font: inherit; font-size: 14px; font-weight: 600; padding: 8px 14px; border-radius: 8px; cursor: pointer;
       border: 1px solid var(--borda); background: var(--cartao); color: var(--tinta); }
.btn:disabled { opacity: .5; cursor: default; }
.btn-primario { background: var(--ouro); border-color: var(--ouro); color: #fff; padding: 12px; }

/* Resumo */
.resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 18px; }
.resumo .cartao { padding: 12px 14px; }
.resumo b { display: block; font-size: 24px; }

/* Rotinas */
.area h2 { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--suave); margin: 22px 0 8px; }
.rotina { padding: 14px; margin-bottom: 10px; display: grid; gap: 8px; }
.rotina-topo { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.rotina h3 { margin: 0; font-size: 16px; }
.rotina .acoes { display: flex; gap: 8px; flex-shrink: 0; }
.linha-info { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--suave); }
.pontos { display: flex; gap: 3px; }
.ponto { width: 10px; height: 10px; border-radius: 3px; background: var(--cinza); }

.selo { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 99px;
        color: #fff; background: var(--cinza); white-space: nowrap; }
.s-ok { background: var(--ok); } .s-erro { background: var(--erro); } .s-nao_rodou { background: var(--erro); }
.s-sem_resultado { background: var(--alerta); } .s-rodando { background: var(--info); } .s-ignorada { background: var(--cinza); }

/* Tabelas */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.filtros input, .filtros select { font: inherit; font-size: 16px; padding: 9px 10px; border-radius: 8px;
  border: 1px solid var(--borda); background: var(--cartao); color: var(--tinta); }
.filtros input { flex: 1; min-width: 180px; }
.tabela-rolagem { overflow-x: auto; background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th, .tabela td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--borda); vertical-align: top; }
.tabela th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); position: sticky; top: 0; background: var(--cartao); }
.tabela tr:last-child td { border-bottom: 0; }
.tabela td.data { white-space: nowrap; color: var(--suave); }
.tabela-comentarios td:nth-child(3) { min-width: 240px; }
.tabela-comentarios td:nth-child(5) { min-width: 220px; }
.tag { display: inline-block; font-size: 12px; background: var(--fundo); border: 1px solid var(--borda);
       padding: 1px 7px; border-radius: 99px; margin: 0 4px 4px 0; }
details summary { cursor: pointer; color: var(--ouro); font-size: 13px; margin-top: 4px; }
details p { white-space: pre-wrap; margin: 6px 0 0; color: var(--suave); }

/* Histórico (diálogo) */
dialog { width: min(720px, 96vw); max-height: 88vh; border: 1px solid var(--borda); border-radius: 14px;
         background: var(--cartao); color: var(--tinta); padding: 0; }
dialog::backdrop { background: rgba(0,0,0,.45); }
.dialogo-topo { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px;
                border-bottom: 1px solid var(--borda); position: sticky; top: 0; background: var(--cartao); }
.dialogo-topo h2 { margin: 0; font-size: 17px; }
#dialogo-corpo { padding: 8px 16px 16px; }
.hist { width: 100%; border-collapse: collapse; font-size: 13px; }
.hist td { padding: 8px 6px; border-bottom: 1px solid var(--borda); vertical-align: top; }
pre.log { white-space: pre-wrap; word-break: break-word; font-size: 12px; background: var(--fundo);
          padding: 10px; border-radius: 8px; max-height: 50vh; overflow: auto; }

.aviso { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); background: var(--tinta); color: var(--fundo);
         padding: 10px 16px; border-radius: 10px; font-size: 14px; z-index: 20; max-width: 92vw; }
.rodape { margin-top: 20px; }
@media (max-width: 600px) {
  .rotina-topo { flex-direction: column; }
  .rotina .acoes { width: 100%; } .rotina .acoes .btn { flex: 1; }
}
