/* Era Tribal: madeira escura no fundo, pergaminho nos painéis. */

:root {
    --fundo: #241a11;
    --madeira: #4a3320;
    --madeira-clara: #7a4b21;
    --pergaminho: #f1e3c4;
    --pergaminho-escuro: #e2cfa3;
    --borda: #b89b6a;
    --texto: #3a2a18;
    --suave: #7a6648;
    --vermelho: #b3261e;
    --verde: #3f7a3a;
    --ouro: #f2c230;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--fundo);
    color: var(--texto);
    font: 14px/1.45 system-ui, 'Segoe UI', sans-serif;
}

h1, h2, h3, p { margin: 0 0 8px; }
h2 { font-size: 15px; margin-top: 14px; border-bottom: 1px solid var(--borda); padding-bottom: 3px; }
h2:first-child { margin-top: 0; }
h2 small { font-weight: normal; color: var(--suave); }
h3 { font-size: 13px; margin-top: 10px; }
small { color: var(--suave); }
button, input, select { font: inherit; }

.carregando { color: var(--pergaminho); text-align: center; padding: 60px; }

/* ---------- barra do topo ---------- */

header { position: sticky; top: 0; z-index: 5; }

.barra {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
    padding: 8px 14px;
    background: var(--madeira);
    color: var(--pergaminho);
    border-bottom: 3px solid #2e1f12;
}
.logo { font-weight: 800; font-size: 17px; color: var(--ouro); letter-spacing: .5px; }
.aldeia-ativa { display: flex; align-items: center; gap: 4px; }
.seletor { background: var(--pergaminho); border: 1px solid var(--borda); border-radius: 4px; padding: 2px 4px; }
.recursos { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.recurso { white-space: nowrap; }
.recurso small { color: #cdb98f; }
.recurso b.cheio { color: #ffb37a; }
.barra .falta { color: #ff9a8f; }
nav { display: flex; gap: 4px; margin-left: auto; }
.conta { display: flex; align-items: center; gap: 8px; color: #cdb98f; }

.aba {
    position: relative;
    background: transparent; color: var(--pergaminho);
    border: 1px solid transparent; border-radius: 5px;
    padding: 5px 12px; cursor: pointer;
}
.aba:hover { border-color: var(--borda); }
.aba.ativa { background: var(--pergaminho); color: var(--texto); font-weight: 700; }
.bolha {
    display: inline-block; margin-left: 6px; min-width: 18px; padding: 0 5px;
    background: var(--vermelho); color: #fff; border-radius: 9px; font-size: 11px; font-weight: 700; text-align: center;
}

.alerta, .protecao { padding: 5px 14px; font-weight: 600; }
.alerta { background: var(--vermelho); color: #fff; }
.protecao { background: #2f4f6b; color: #e6f0f7; font-weight: 400; }

/* ---------- estrutura ---------- */

main { max-width: 1240px; margin: 0 auto; padding: 14px; }

.duas-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 14px; align-items: start; }
@media (max-width: 900px) { .duas-colunas { grid-template-columns: 1fr; } }

.painel, .cartao {
    background: var(--pergaminho);
    border: 2px solid var(--borda);
    border-radius: 8px;
    padding: 14px;
}
.cartao.centro { max-width: 460px; margin: 60px auto; text-align: center; }

.cena {
    display: block; width: 100%; height: auto;
    border: 3px solid #2e1f12; border-radius: 8px;
    image-rendering: pixelated;
    background: #6fa64b;
}
.cena.mapa { cursor: grab; touch-action: none; }
.cena.mapa:active { cursor: grabbing; }

.legenda {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px;
    margin-top: 8px; color: #cdb98f; font-size: 13px;
}

/* ---------- botões e campos ---------- */

.botao {
    background: var(--madeira-clara); color: #fff8e6;
    border: 1px solid #2e1f12; border-radius: 5px;
    padding: 6px 14px; cursor: pointer; font-weight: 600;
}
.botao:hover:not(:disabled) { background: #8f5a2a; }
.botao:disabled { background: #b5a68a; border-color: #9a8c72; cursor: not-allowed; }
.botao.pequeno { padding: 2px 10px; font-size: 12px; }
.botao.grande { width: 100%; padding: 10px; font-size: 16px; margin-top: 6px; }

.discreto { background: none; border: none; color: inherit; cursor: pointer; text-decoration: underline; padding: 2px 4px; opacity: .85; }
.discreto:hover { opacity: 1; }

.mini {
    width: 24px; height: 24px; line-height: 1;
    background: var(--pergaminho-escuro); border: 1px solid var(--borda); border-radius: 4px; cursor: pointer; font-weight: 700;
}
.mini:disabled { opacity: .35; cursor: default; }

input[type=number], input[type=text], input[type=password], input:not([type]) {
    border: 1px solid var(--borda); border-radius: 4px; padding: 5px 7px; background: #fffaf0; color: var(--texto);
}
input[type=number] { width: 76px; }

/* ---------- vila ---------- */

.atalhos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.atalho {
    background: var(--pergaminho); border: 1px solid var(--borda); border-radius: 5px;
    padding: 3px 9px; cursor: pointer; color: var(--texto);
}
.atalho b { margin-left: 6px; color: var(--madeira-clara); }
.atalho.vago { opacity: .6; }
.atalho.ativo { background: var(--ouro); border-color: #2e1f12; opacity: 1; }

.titulo-painel { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.titulo-painel h2 { flex: 1; }

.alocacao { display: grid; grid-template-columns: 1fr 24px 44px 24px 84px; align-items: center; gap: 6px; padding: 3px 0; }
.alocacao b { text-align: center; }
.alocacao small { text-align: right; }
.ociosos { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; padding: 4px 8px; border-radius: 5px; color: var(--suave); }
.alerta-leve { background: #fbe6a2; color: var(--texto); font-weight: 600; }

.fila, .movimento { padding: 5px 0; border-bottom: 1px dashed var(--borda); }
.fila > div:first-child, .movimento { display: flex; justify-content: space-between; gap: 10px; }
.movimento small { display: block; }
.movimento.inimigo { color: var(--vermelho); font-weight: 600; }
.contagem { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.progresso { height: 5px; background: var(--pergaminho-escuro); border-radius: 3px; overflow: hidden; margin-top: 3px; }
.progresso > div { height: 100%; width: 0; background: var(--verde); transition: width 1s linear; }

.vazio { color: var(--suave); font-style: italic; }
.destaque { background: var(--pergaminho-escuro); border-radius: 5px; padding: 5px 8px; }
.motivo { color: var(--vermelho); font-weight: 600; margin-top: 6px; }
.falta { color: var(--vermelho); }

.custo span { margin-right: 8px; white-space: nowrap; }
.obra { background: var(--pergaminho-escuro); border-radius: 6px; padding: 8px 10px; margin-top: 10px; }
.obra .botao { margin-top: 8px; width: 100%; }
.obra p { margin: 6px 0 0; }

.unidade { border: 1px solid var(--borda); border-radius: 6px; padding: 8px 10px; margin-bottom: 8px; background: #f7ecd2; }
.unidade p { margin-bottom: 4px; font-size: 13px; }
.unidade-topo { display: flex; justify-content: space-between; }
.unidade-topo span { color: var(--suave); font-size: 12px; }
.atributos { color: var(--suave); }
.treino { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
.treino .botao { margin-left: auto; }

/* ---------- mapa ---------- */

.linha-tropa { display: grid; grid-template-columns: 1fr 76px auto; align-items: center; gap: 6px; padding: 3px 0; }
.painel form > .botao { width: 100%; margin-top: 4px; }

/* ---------- relatórios e ranking ---------- */

.item-relatorio {
    display: flex; justify-content: space-between; gap: 10px; width: 100%; text-align: left;
    background: none; border: none; border-bottom: 1px dashed var(--borda);
    padding: 7px 4px; cursor: pointer; color: var(--texto);
}
.item-relatorio:hover, .item-relatorio.ativo { background: var(--pergaminho-escuro); }
.item-relatorio.novo span { font-weight: 700; }
.item-relatorio small { white-space: nowrap; }

table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 4px 8px; border-bottom: 1px solid var(--pergaminho-escuro); }
th { color: var(--suave); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }
tr.eu td { background: #fbe6a2; font-weight: 700; }

/* ---------- entrada ---------- */

.entrada { max-width: 760px; margin: 40px auto; padding: 0 14px; }
.entrada h1 { color: var(--ouro); text-align: center; font-size: 40px; margin-bottom: 4px; }
.lema { color: #cdb98f; text-align: center; margin-bottom: 20px; }
.entrada label { display: block; margin-bottom: 10px; font-weight: 600; }
.entrada label input { display: block; width: 100%; margin-top: 3px; font-weight: 400; }
.abas-entrada { display: flex; gap: 6px; margin-bottom: 14px; }
.abas-entrada .aba { color: var(--texto); border-color: var(--borda); }
.abas-entrada .aba.ativa { background: var(--madeira-clara); color: #fff8e6; }
.rotulo { font-weight: 600; }
.erro-form { color: var(--vermelho); font-weight: 600; }

.civs { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 8px; margin-bottom: 10px; }
.civ {
    display: flex; flex-direction: column; gap: 3px; text-align: left;
    background: #f7ecd2; border: 2px solid var(--borda); border-top: 6px solid var(--cor); border-radius: 6px;
    padding: 8px 10px; cursor: pointer; color: var(--texto);
}
.civ strong { font-size: 15px; }
.civ ul { margin: 2px 0 0; padding-left: 16px; font-size: 12px; color: var(--suave); }
.civ.escolhida { background: #fff6d6; border-color: var(--cor); box-shadow: 0 0 0 2px var(--cor); }

/* ---------- avisos ---------- */

#avisos { position: fixed; right: 14px; bottom: 14px; display: flex; flex-direction: column; gap: 6px; z-index: 20; }
.aviso {
    background: var(--verde); color: #fff; padding: 9px 14px; border-radius: 6px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .4); max-width: 340px;
}
.aviso.erro { background: var(--vermelho); }
