* { box-sizing: border-box; }
body { font-family: system-ui, sans-serif; margin: 0; color: #222; background: #fafafa; }
main { padding: 1rem 2rem; max-width: 1100px; margin: 0 auto; }
.topbar { display: flex; justify-content: space-between; align-items: center;
  background: #263238; color: #fff; padding: .6rem 2rem; }
.topbar .brand { font-weight: 700; }
.topbar nav { display: flex; align-items: center; gap: 1.2rem; }
.topbar nav a { color: #cfd8dc; text-decoration: none; }
.topbar nav a:hover { color: #fff; }
.topbar .langswitch select { background: #37474f; color: #fff; border: 1px solid #546e7a;
  border-radius: 3px; padding: .15rem .3rem; font: inherit; }
.inline { display: inline; }
.linklike { background: none; border: none; color: #cfd8dc; cursor: pointer; font: inherit; }
.messages { list-style: none; padding: .5rem 2rem; margin: 0; }
.messages .success { color: #2e7d32; }
.messages .error { color: #c62828; }
table { border-collapse: collapse; width: 100%; background: #fff; }
th, td { border: 1px solid #e0e0e0; padding: .4rem .6rem; text-align: left; font-size: .9rem; }
th { background: #eceff1; }
tr.sev4 td:first-child { border-left: 4px solid #d32f2f; }
tr.sev3 td:first-child { border-left: 4px solid #f57c00; }
.badge { display: inline-block; padding: .1rem .5rem; border-radius: 3px;
  background: #eceff1; font-size: .8rem; vertical-align: middle; }
.badge.sev4 { background: #d32f2f; color: #fff; }
.badge.sev3 { background: #f57c00; color: #fff; }
.filters select, .filters button, .authform input, .authform button,
form input[type=text] { padding: .35rem .5rem; margin-right: .5rem; }
.authform { max-width: 320px; display: grid; gap: .8rem; }
.actions { display: flex; gap: 1rem; margin: 1rem 0; align-items: center; }
.actions .danger { background: #c62828; color: #fff; border: none; padding: .4rem .9rem; cursor: pointer; }
.meta dt { font-weight: 600; float: left; clear: left; width: 9rem; }
.meta dd { margin-left: 10rem; }
.pagination { margin-top: 1rem; display: flex; gap: 1rem; }
.msg { font-family: ui-monospace, monospace; font-size: .85rem; }
.mono { font-family: ui-monospace, monospace; }
.error { color: #c62828; }
.hint { color: #607d8b; font-size: .85rem; }
#map { height: 75vh; border: 1px solid #cfd8dc; }
.topbar a.brand { color: #fff; text-decoration: none; }
.actions h1 { margin: 0; flex: 1; }
.button, a.button { display: inline-block; background: #1976d2; color: #fff;
  padding: .4rem .9rem; border-radius: 3px; text-decoration: none; }
.cards { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1rem 0; }
.card { display: flex; flex-direction: column; min-width: 12rem; padding: 1rem 1.2rem;
  background: #fff; border: 1px solid #e0e0e0; border-radius: 4px; text-decoration: none; color: #222; }
.card:hover { border-color: #90a4ae; }
.card-num { font-size: 2rem; font-weight: 700; }
.card-label { color: #607d8b; font-size: .85rem; }
.card-warn { border-left: 4px solid #c62828; }
.quicklinks { display: flex; gap: 1.5rem; margin-top: 1rem; }
.quicklinks a { color: #1976d2; text-decoration: none; }
.volform { max-width: 760px; display: grid; gap: .9rem; }
.volform label { display: block; font-weight: 600; margin-bottom: .2rem; }
.volform input[type=text], .volform select { padding: .35rem .5rem; min-width: 18rem; }
.draw-map { height: 55vh; border: 1px solid #cfd8dc; margin-top: .3rem; }
.rowactions { display: flex; gap: .5rem; }
.rowactions button { padding: .25rem .7rem; cursor: pointer; }
