:root { --bg:#f6f7f9; --card:#fff; --tx:#1d2330; --mut:#6b7280; --pri:#2563eb; --ok:#16a34a; --err:#dc2626; --warn:#d97706; --bd:#e5e7eb; }
@media (prefers-color-scheme: dark) { :root { --bg:#0f1115; --card:#181b22; --tx:#e6e8ec; --mut:#9aa3b2; --bd:#2a2f3a; } }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.45 system-ui, sans-serif; background:var(--bg); color:var(--tx); }
main { max-width:960px; margin:0 auto; padding:16px; }
header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
h1 { font-size:18px; margin:0; } h2 { font-size:16px; margin:16px 0 8px; }
nav { display:flex; gap:4px; overflow-x:auto; margin-bottom:12px; }
nav button { flex:0 0 auto; }
.card { background:var(--card); border:1px solid var(--bd); border-radius:10px; padding:12px; margin-bottom:10px; }
button { font:inherit; border:1px solid var(--bd); background:var(--card); color:var(--tx); border-radius:8px; padding:8px 12px; cursor:pointer; }
button.pri, nav button.on { background:var(--pri); border-color:var(--pri); color:#fff; }
button:disabled { opacity:.5; cursor:default; }
input, textarea, select { font:inherit; width:100%; padding:8px; border:1px solid var(--bd); border-radius:8px; background:var(--card); color:var(--tx); }
textarea { min-height:90px; }
label { display:block; font-size:13px; color:var(--mut); margin:8px 0 4px; }
.linha { display:flex; align-items:center; gap:8px; justify-content:space-between; }
.mut { color:var(--mut); font-size:13px; }
.ok { color:var(--ok); } .err { color:var(--err); } .warn { color:var(--warn); }
.alerta { border-color:var(--err); }
pre { white-space:pre-wrap; margin:0; font:inherit; }
details > summary { cursor:pointer; list-style:none; } details > summary::-webkit-details-marker { display:none; }
img.qr { width:260px; max-width:100%; display:block; margin:12px auto; background:#fff; padding:8px; border-radius:8px; }
table { width:100%; border-collapse:collapse; font-size:14px; } td, th { padding:6px 4px; border-bottom:1px solid var(--bd); text-align:left; }
@media (max-width:600px) { nav button span { display:none; } }

.grupo summary .tog { white-space:nowrap; flex-shrink:0; }
#busca { margin:6px 0; }
#fTodos.on, #fMon.on { background:var(--pri); border-color:var(--pri); color:#fff; }
.grupo[hidden] { display:none; }
button.mini { padding:2px 8px; font-size:12px; }
