:root { --bg:#0f1115; --card:#1a1d24; --fg:#e8eaed; --muted:#9aa0a6; --accent:#e10600; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, Segoe UI, Roboto, sans-serif; background:var(--bg); color:var(--fg); }

/* Login */
.login-page { display:flex; min-height:100vh; align-items:center; justify-content:center; }
.login-box { background:var(--card); padding:32px; border-radius:12px; width:320px; display:flex; flex-direction:column; gap:12px; box-shadow:0 10px 40px rgba(0,0,0,.4); }
.login-box h1 { font-size:20px; margin:0 0 8px; text-align:center; }
.login-box input { padding:12px; border-radius:8px; border:1px solid #2c2f36; background:#0f1115; color:var(--fg); font-size:14px; }
.login-box button { padding:12px; border:0; border-radius:8px; background:var(--accent); color:#fff; font-weight:600; cursor:pointer; }
.login-box .erro { color:#ff6b6b; margin:0; font-size:13px; text-align:center; }

/* App chrome */
.topbar { display:flex; justify-content:space-between; align-items:center; padding:12px 20px; background:var(--card); border-bottom:1px solid #2c2f36; }
.topbar a { color:var(--accent); text-decoration:none; }
.container { padding:24px; }

/* Avaliação A–E */
.grade { display:inline-block; min-width:20px; padding:2px 8px; border-radius:6px; font-weight:700; text-align:center; }
.grade-a { background:#1b5e20; color:#fff; }
.grade-b { background:#66bb6a; color:#06210a; }
.grade-c { background:#fdd835; color:#3a2f00; }
.grade-d { background:#ef9a9a; color:#3a0000; }
.grade-e { background:#c62828; color:#fff; }

/* topbar nav */
.topbar nav { display:flex; align-items:center; gap:14px; }
.topbar .muted, .muted { color:var(--muted); }
button.link { background:none; border:0; color:var(--accent); cursor:pointer; font:inherit; padding:0; }

/* mensagens */
.msg { min-height:20px; margin:8px 0; font-size:14px; }
.msg.ok { color:#66bb6a; }
.msg.err { color:#ff6b6b; }

/* cards e colunas */
.card { background:var(--card); border:1px solid #2c2f36; border-radius:10px; padding:12px 16px; margin-bottom:16px; }
.cols { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:900px){ .cols { grid-template-columns:1fr; } }

/* grelha de alinhamento */
.grid-wrap { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.fila { background:var(--card); border:1px solid #2c2f36; border-radius:10px; padding:10px; min-width:180px; }
.fila-h { font-weight:700; margin-bottom:8px; text-align:center; }
.cell { position:relative; border:1px solid #2c2f36; border-radius:8px; padding:10px 8px; margin-bottom:6px; min-height:42px; text-align:center; }
.cell.pos1 { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; }
.cell .pn { position:absolute; left:6px; top:4px; font-size:11px; color:var(--muted); }
.cell .eq { font-size:12px; color:#ffd54f; }
.cell .vazio { color:#555; font-size:12px; }
.fila-actions { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.fila-actions select { width:100%; padding:6px; background:#0f1115; color:var(--fg); border:1px solid #2c2f36; border-radius:6px; }
.fila-actions button { padding:6px; border:0; border-radius:6px; background:#2c2f36; color:var(--fg); cursor:pointer; }
.fila-actions .saida { background:var(--accent); color:#fff; font-weight:600; }

/* tabelas */
table { width:100%; border-collapse:collapse; background:var(--card); border-radius:10px; overflow:hidden; }
th, td { padding:8px 10px; text-align:left; border-bottom:1px solid #2c2f36; font-size:14px; }
th { background:#22262e; color:var(--muted); font-weight:600; }
td.acts button { margin:1px; padding:4px 8px; border:0; border-radius:6px; background:#2c2f36; color:var(--fg); cursor:pointer; font-size:12px; }
td.acts .fim { background:var(--accent); color:#fff; }
.dashboard table td, .dashboard table th { font-size:18px; }
