:root { --bg:#f6f7f9; --fg:#1c2430; --muted:#6b7280; --line:#e3e7ee; --accent:#2563a8; --bad:#b23b3b; --ok:#2e7d4f; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, Arial, sans-serif; color:var(--fg); background:var(--bg); }
header { background:#fff; border-bottom:1px solid var(--line); padding:.6rem 1rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
header .brand { font-weight:700; color:var(--accent); }
nav a { color:var(--fg); text-decoration:none; margin-right:.9rem; }
nav a:hover { color:var(--accent); text-decoration:underline; }
.spacer { flex:1; }
.who { color:var(--muted); font-size:.9rem; }
main { max-width:960px; margin:1.4rem auto; padding:0 1rem; }
h1 { font-size:1.4rem; } h2 { font-size:1.1rem; }
table { border-collapse:collapse; width:100%; background:#fff; margin:.6rem 0; }
th, td { border:1px solid var(--line); padding:.4rem .6rem; text-align:left; font-size:.92rem; vertical-align:top; }
th { background:#eef2f7; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1rem; margin:.8rem 0; }
.flash { padding:.6rem .8rem; border-radius:6px; margin:.6rem 0; }
.flash.ok { background:#e7f6ec; color:var(--ok); border:1px solid #bfe6cd; }
.flash.error { background:#fdeaea; color:var(--bad); border:1px solid #f2c9c9; }
code.pw { background:#111; color:#7fe; padding:.2rem .5rem; border-radius:4px; }
input, select, textarea { padding:.4rem; border:1px solid var(--line); border-radius:5px; font:inherit; }
button { background:var(--accent); color:#fff; border:0; padding:.45rem .9rem; border-radius:5px; cursor:pointer; }
button.danger { background:var(--bad); }
form.inline { display:inline; }
.login-box { max-width:340px; margin:8vh auto; }
.muted { color:var(--muted); }
.pill { display:inline-block; padding:.1rem .5rem; border-radius:10px; font-size:.8rem; background:#eef2f7; }
.badge { display:inline-block; padding:.1rem .5rem; border-radius:10px; font-size:.8rem; font-weight:600; white-space:nowrap; }
.badge.OK, .badge.EXPORTOVANY, .badge.SCHVALENE { background:#e7f6ec; color:#2e7d4f; }
.badge.NA_KONTROLU { background:#fff4e0; color:#9a6a00; }
.badge.CHYBA, .badge.ZAMIETNUTE { background:#fdeaea; color:#b23b3b; }
.badge.SKIP, .badge.NOVY, .badge.VYRIESENE_RUCNE { background:#eef2f7; color:#41505f; }
tr.rowlink:hover td { background:#f2f6fb; cursor:pointer; }
.diff { background:#fff4e0; }
.cmp td { font-size:.9rem; }
.filters { display:flex; gap:1rem; flex-wrap:wrap; align-items:flex-end; }
.filters .statuses label { display:inline-block; margin-right:.6rem; font-size:.85rem; }
.field-err { color:var(--bad); font-size:.85rem; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:640px){ .grid2 { grid-template-columns:1fr; } }
