:root{
  --fundo:#0f172a; --painel:#1e293b; --painel2:#273449; --linha:#334155;
  --texto:#e2e8f0; --suave:#94a3b8; --marca:#facc15; --marca2:#f59e0b;
  --ok:#22c55e; --erro:#ef4444; --aviso:#fb923c;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);color:var(--texto);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%}
main{padding:14px 14px 90px;max-width:760px;margin:0 auto}
a{color:inherit;text-decoration:none}

.topo{position:sticky;top:0;z-index:20;display:flex;align-items:center;
  justify-content:space-between;gap:10px;padding:12px 14px;
  background:rgba(15,23,42,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--linha)}
.marca{font-weight:700;letter-spacing:-.3px}
.marca span{color:var(--marca)}
.topo nav{display:flex;gap:14px;font-size:14px;color:var(--suave)}
.topo nav a.sair{color:var(--suave);opacity:.7}

h1{font-size:22px;margin:6px 0 4px}
h2{font-size:17px;margin:22px 0 10px;color:var(--suave);
  text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.sub{color:var(--suave);font-size:14px;margin:0 0 16px}

.cartao{background:var(--painel);border:1px solid var(--linha);
  border-radius:14px;padding:14px;margin-bottom:12px}
.cartao.ok{border-color:rgba(34,197,94,.45)}
.cartao.erro{border-color:rgba(239,68,68,.55)}
.cartao.vazio{opacity:.62;border-style:dashed}

.grelha{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.grelha3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:420px){.grelha3{grid-template-columns:repeat(2,1fr)}}

.maq{display:block}
.maq .nome{font-weight:600;font-size:15px}
.maq .valor{font-size:22px;font-weight:700;margin-top:6px}
.maq .nota{font-size:12.5px;color:var(--suave);margin-top:2px}

.etiq{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:999px;
  border:1px solid var(--linha);color:var(--suave)}
.etiq.ok{background:rgba(34,197,94,.15);border-color:transparent;color:#86efac}
.etiq.erro{background:rgba(239,68,68,.15);border-color:transparent;color:#fca5a5}
.etiq.aviso{background:rgba(251,146,60,.15);border-color:transparent;color:#fdba74}

.linha{display:flex;justify-content:space-between;align-items:center;
  padding:9px 0;border-bottom:1px solid var(--linha);gap:12px}
.linha:last-child{border-bottom:0}
.linha .rot{color:var(--suave);font-size:14px}
.linha .val{font-variant-numeric:tabular-nums;font-weight:600}
.linha.forte .val{font-size:20px;color:var(--marca)}

label{display:block;font-size:13px;color:var(--suave);margin:14px 0 6px}
input[type=text],input[type=number],input[type=date],input[type=password],
select,textarea{width:100%;padding:12px;border-radius:11px;
  border:1px solid var(--linha);background:var(--painel2);color:var(--texto);
  font-size:16px;font-family:inherit}
textarea{min-height:70px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--marca2);outline-offset:1px}

.botao{display:block;width:100%;padding:14px;border:0;border-radius:12px;
  background:var(--marca);color:#1a1305;font-weight:700;font-size:16px;
  text-align:center;cursor:pointer;margin-top:18px;font-family:inherit}
.botao.sec{background:var(--painel2);color:var(--texto);border:1px solid var(--linha)}
.botao.peq{padding:9px 12px;font-size:14px;width:auto;margin:0;display:inline-block}

/* contador de moedas */
.moeda{display:flex;align-items:center;gap:10px;padding:8px 0;
  border-bottom:1px solid var(--linha)}
.moeda:last-child{border-bottom:0}
.moeda .et{width:56px;font-weight:700;font-size:15px}
.moeda .passo{margin-left:auto;display:flex;align-items:center;gap:8px}
.moeda input{width:78px;text-align:center;padding:10px 4px;font-size:18px;
  font-weight:700;-moz-appearance:textfield}
.moeda input::-webkit-outer-spin-button,
.moeda input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.mm{width:44px;height:44px;border-radius:11px;border:1px solid var(--linha);
  background:var(--painel2);color:var(--texto);font-size:22px;line-height:1;
  cursor:pointer;font-family:inherit}
.moeda .parcial{width:74px;text-align:right;color:var(--suave);font-size:13px;
  font-variant-numeric:tabular-nums}

.total{display:flex;justify-content:space-between;align-items:baseline;
  margin-top:14px;padding-top:12px;border-top:2px solid var(--linha)}
.total .n{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}

.conferencia{margin-top:12px;padding:12px;border-radius:11px;font-size:14.5px;font-weight:600}
.conferencia.ok{background:rgba(34,197,94,.14);color:#86efac}
.conferencia.erro{background:rgba(239,68,68,.14);color:#fca5a5}

.avisos{background:rgba(251,146,60,.12);border:1px solid rgba(251,146,60,.35);
  border-radius:12px;padding:12px 14px;margin-bottom:14px}
.avisos ul{margin:0;padding-left:18px}
.avisos li{margin:3px 0;font-size:14px;color:#fdba74}

table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--suave);font-weight:600;font-size:12px;
  text-transform:uppercase;letter-spacing:.05em;padding:8px 6px;
  border-bottom:1px solid var(--linha)}
td{padding:9px 6px;border-bottom:1px solid var(--linha);
  font-variant-numeric:tabular-nums}
td.n,th.n{text-align:right}

.foto{width:100%;border-radius:11px;margin-top:10px;display:block}
.ficheiro{display:block;padding:16px;border:1px dashed var(--linha);
  border-radius:12px;text-align:center;color:var(--suave);cursor:pointer;font-size:14px}
.ficheiro input{display:none}
.centrado{text-align:center}
.vazio-msg{color:var(--suave);text-align:center;padding:30px 10px;font-size:14.5px}
form.inline{display:inline}
.pequeno{font-size:13px;color:var(--suave)}
