:root { --bg:#f6f6f4; --fg:#1b1b1b; --muted:#666; --line:#ddd; --acc:#1d5fd1; --warn:#b76b00; --bad:#b4231c; --ok:#1f7a3a; }
* { box-sizing: border-box; }
body { margin:0; font: 14px/1.45 system-ui, -apple-system, Segoe UI, sans-serif; background:var(--bg); color:var(--fg); }
header { background:#fff; border-bottom:1px solid var(--line); padding:10px 20px; display:flex; gap:18px; align-items:center; }
header a { color:var(--fg); text-decoration:none; font-weight:600; }
header .sp { flex:1; }
header .who { color:var(--muted); font-size:13px; }
main { padding:20px; max-width:1300px; margin:0 auto; }
h1 { font-size:20px; margin:0 0 14px; }
h2 { font-size:15px; margin:22px 0 8px; }
table { border-collapse:collapse; width:100%; background:#fff; }
th, td { text-align:left; padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
tr:hover td { background:#fafafa; }
form.inline { display:inline; }
input[type=text], input[type=email], input[type=password], input[type=datetime-local], select { padding:6px 8px; border:1px solid var(--line); border-radius:4px; font:inherit; }
button, .btn { padding:6px 12px; border:1px solid var(--line); border-radius:4px; background:#fff; cursor:pointer; font:inherit; color:var(--fg); text-decoration:none; display:inline-block; }
button.primary, .btn.primary { background:var(--acc); color:#fff; border-color:var(--acc); }
button.danger { color:var(--bad); }
button.small, .btn.small { padding:3px 8px; font-size:12px; }
.card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px 16px; margin-bottom:16px; }
.row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.muted { color:var(--muted); }
.err { color:var(--bad); }
.tabs { display:flex; gap:4px; margin:12px 0; }
.tabs a { padding:7px 14px; border:1px solid var(--line); border-bottom:none; border-radius:6px 6px 0 0; background:#eee; color:var(--fg); text-decoration:none; }
.tabs a.on { background:#fff; font-weight:600; }
.badge { display:inline-block; padding:1px 7px; border-radius:10px; font-size:12px; background:#eee; }
.badge.review { background:#fff1dc; color:var(--warn); }
.badge.unpaid { background:#fde1df; color:var(--bad); }
.badge.paid { background:#e1f3e6; color:var(--ok); }
.badge.dismissed { background:#eee; color:var(--muted); }
.plate { font-family: ui-monospace, Menlo, monospace; font-weight:700; letter-spacing:.04em; }
.thumb { width:160px; height:auto; border:1px solid var(--line); border-radius:3px; }
#map { height:560px; border:1px solid var(--line); border-radius:6px; }
code { background:#eee; padding:1px 4px; border-radius:3px; }
img.zoom { cursor: zoom-in; }
