*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: system-ui, -apple-system, sans-serif;
  color: #1a1a2e;
  min-height: 100vh;
  background: linear-gradient(rgba(255,255,255,.72), rgba(255,255,255,.72)), url('../bg.jpg') center center / cover fixed;
}

header { background: #1a1a2e; color: white; padding: 1.25rem 2rem; display: flex; align-items: center; gap: 1rem; }
header a { color: #a0aec0; text-decoration: none; font-size: 0.9rem; }
header a:hover { color: white; }
header .sep { color: #4a5568; }
header h1 { font-size: 1.25rem; font-weight: 600; }

.layout { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 1100px; margin: 2rem auto; padding: 0 1.5rem; }
@media (max-width: 720px) { .layout { grid-template-columns: 1fr; } }

.panel { background: white; border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,.08); padding: 1.75rem; }
.panel h2 { font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: #4a5568; margin-bottom: 1.5rem; padding-bottom: .75rem; border-bottom: 2px solid #e2e8f0; }

.field { margin-bottom: 1.1rem; }
.field label { display: block; font-size: 0.875rem; font-weight: 600; color: #2d3748; margin-bottom: .35rem; }
.field select {
  width: 100%; padding: .5rem .75rem; border: 1.5px solid #e2e8f0; border-radius: 8px;
  font-size: .9rem; color: #1a1a2e; background: white; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a5568' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .75rem center;
  cursor: pointer; transition: border-color .15s;
}
.field select:focus { outline: none; border-color: #4299e1; }

.hint { font-size: 0.8rem; color: #718096; margin-top: .3rem; }

.section-label { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: #a0aec0; margin: 1.4rem 0 .8rem; }

.result-table { width: 100%; border-collapse: collapse; }
.result-table th { text-align: left; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: #a0aec0; padding: .5rem .25rem; border-bottom: 2px solid #e2e8f0; }
.result-table th:last-child { text-align: right; }
.result-table td { padding: .65rem .25rem; border-bottom: 1px solid #f0f4f8; font-size: .95rem; vertical-align: middle; }
.result-table td:last-child { text-align: right; font-weight: 700; font-size: 1.05rem; }
.result-table tr.active td { color: #1a1a2e; }
.result-table tr.inactive td { color: #cbd5e0; }
.result-table tr.active td:last-child { color: #2b6cb0; }

.fraction { font-family: 'Georgia', serif; }
.dash { color: #cbd5e0; }

.ordnung-badge { display: inline-block; font-size: .7rem; font-weight: 700; background: #e2e8f0; color: #4a5568; border-radius: 99px; padding: 1px 7px; margin-left: .4rem; vertical-align: middle; }

.notice { margin-top: 1.25rem; padding: .85rem 1rem; background: #ebf8ff; border-left: 3px solid #4299e1; border-radius: 0 8px 8px 0; font-size: .82rem; color: #2c5282; line-height: 1.5; }

.placeholder { color: #a0aec0; font-size: .9rem; }

footer { text-align: center; padding: 2rem; font-size: .82rem; color: #a0aec0; }
