:root {
  color-scheme: dark;
  --page: #081426;
  --surface: #0c1b33;
  --card: #14284a;
  --gold: #b8923a;
  --gold-bright: #e3c775;
  --text: #e8ecf4;
  --muted: #aab4c8;
  --success-bg: #123b35;
  --success-text: #b8e5d4;
  --neutral-bg: #27364d;
  --neutral-text: #d0d8e5;
  --warning-bg: #493817;
  --warning-text: #f0d58b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--page); }
body {
  margin: 0;
  max-width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  background: var(--page);
  color: var(--text);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.6;
}
a { color: var(--gold-bright); text-decoration: none; }
a:hover { color: var(--gold-bright); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex="-1"]:focus-visible {
  outline: 3px solid var(--gold-bright);
  outline-offset: 3px;
}
.skip-link { position:fixed; z-index:1000; top:8px; left:8px; padding:8px 12px; transform:translateY(-160%); border:2px solid var(--gold); background:var(--page); color:var(--gold-bright); }
.skip-link:focus { transform:translateY(0); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.phone-copy { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:44px; min-height:44px; padding:4px 8px; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; text-align:left; }
.phone-copy:hover { color:var(--gold-bright); text-decoration:underline; }
.phone-copy .phone-copy-icon { width:16px; height:16px; flex:0 0 16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.phone-copy-success { color:var(--gold-bright); }
.phone-copy-error { color:#f0a6a6; }
.phone-copy-fallback { position:fixed; left:-10000px; top:0; width:1px; height:1px; opacity:0; pointer-events:none; }
::selection { color: var(--page); background: var(--gold-bright); }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--page); }
::-webkit-scrollbar-thumb { background: var(--gold); border: 2px solid var(--page); }
img { max-width: 100%; display: block; }
.container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 18px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--page);
  border-bottom: 4px solid var(--gold);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 80px;
}
.brand, .footer-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--text); font-weight: 700; }
.brand picture, .footer-brand picture { display:block; flex:0 0 auto; }
.brand img { width: 52px; height: 52px; object-fit: contain; background: transparent; }
.main-nav { display: flex; align-items: center; gap: 2px; flex-wrap: nowrap; }
.main-nav a {
  color: var(--gold-bright);
  padding: 6px 7px;
  border: 1px solid transparent;
  font-size: .88rem;
  white-space: nowrap;
}
.main-nav a.active, .main-nav a:hover { border-color: var(--gold); text-decoration: none; }
.menu-toggle {
  display: none;
  padding: 8px 12px;
  background: transparent;
  border: 2px solid var(--gold);
  color: var(--gold-bright);
  font: 700 1rem Georgia, "Times New Roman", serif;
  cursor: pointer;
}

.hero {
  position: relative;
  isolation: isolate;
  padding: 72px 0 64px;
  background: var(--page);
  color: var(--text);
}
.hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: url("../bilder/richterschaft.webp") center / cover no-repeat;
  content: "";
  opacity: .16;
}
.hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 26px; align-items: center; }
.eyebrow {
  display: inline-block;
  padding: 5px 10px;
  border: 1px solid var(--gold);
  background: var(--card);
  color: var(--gold-bright);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
h1, h2, h3, h4 { color: var(--gold-bright); }
h1 {
  margin: 18px 0 16px;
  padding: 24px;
  border: 2px solid var(--gold);
  background: var(--card);
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: 1.15;
}
.section-head h1 {
  width: 100%;
  margin: 0;
  padding: 16px 20px;
  font-size: clamp(1.7rem, 3vw, 2.3rem);
}
h2 { padding-bottom: 6px; border-bottom: 2px solid var(--gold); }
h3, h4 { margin-top: 0; }
.lead { max-width: 660px; color: var(--text); font-size: 1.1rem; line-height: 1.7; }
.hero-actions { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.primary-btn, .secondary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border: 2px solid var(--gold);
  font-weight: 700;
}
.primary-btn { background: var(--gold-bright); color: var(--card); }
.secondary-btn { background: transparent; color: var(--gold-bright); }
.primary-btn:hover, .secondary-btn:hover { text-decoration: none; background: var(--gold); color: var(--page); }
.hero-card {
  padding: 24px;
  border: 2px solid var(--gold);
  background: var(--card);
}
.hero-card h3 { margin-top: 0; }
.page-section { padding: 32px 0; }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.section-head h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.card, .list-item, .timeline-item {
  overflow: hidden;
  border: 2px solid var(--gold);
  background: var(--card);
}
.card-body { padding: 18px; }
.card h3, .card h4 { margin: 0 0 10px; color: var(--gold-bright); }
.meta { margin-bottom: 10px; color: var(--muted); font-size: .9rem; }
.small-note { color: var(--muted); font-size: .96rem; }
.tag {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 9px;
  border: 1px solid var(--gold);
  background: var(--surface);
  color: var(--gold-bright);
  font-size: .8rem;
  font-weight: 700;
}
.status-pill {
  display: inline-block;
  margin-bottom: 8px;
  padding: 4px 9px;
  border: 1px solid currentColor;
  font-size: .8rem;
  font-weight: 700;
}
.status-anstehend { background: var(--success-bg); color: var(--success-text); }
.status-abgeschlossen { background: var(--neutral-bg); color: var(--neutral-text); }
.status-verschoben { background: var(--warning-bg); color: var(--warning-text); }
.list { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.compact-list { gap: 8px; }
.list-item { padding: 18px; }
.timeline { position: relative; display: grid; gap: 18px; padding-left: 16px; }
.timeline::before { position: absolute; top: 0; bottom: 0; left: 9px; width: 2px; background: var(--gold); content: ""; }
.timeline-item { position: relative; margin-left: 16px; padding: 18px 18px 18px 26px; }
.timeline-item::before {
  position: absolute;
  top: 22px;
  left: -23px;
  width: 14px;
  height: 14px;
  border: 3px solid var(--card);
  background: var(--gold-bright);
  content: "";
}
.timeline-item.current { border-color: var(--gold-bright); }
.history-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
.history-person { min-width:0; padding:0 18px; }
.history-person + .history-person { border-left:1px solid var(--gold); }
.history-person h4 { margin:0 0 8px; color:var(--gold-bright); font-size:1.15rem; }
.history-person .history-image { margin-top:10px; }
.history-person .history-image { width:120px; }
.department-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.department-grid .card-body { padding:20px; }
.department-grid .card h3 { font-size:1.28rem; }
.history-anchor { scroll-margin-top:100px; }
.home-main { padding-bottom:0; }
.home-section { padding:28px 0; }
.institution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.institution-link { display:block; overflow:hidden; border-bottom:1px solid var(--gold); color:var(--text); }
.institution-link span { display:block; padding:10px 0; color:var(--gold-bright); font-weight:700; }
.institution-description { display:-webkit-box; margin:0 0 12px; overflow:hidden; color:var(--muted); -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.department-description { max-width:70ch; }
.department-tasks { margin-top:16px; padding-top:12px; border-top:1px solid var(--gold); }
.department-tasks h4 { margin:0 0 8px; color:var(--gold-bright); }
.department-tasks p { margin:0; white-space:pre-line; }
.announcement-list { display:grid; }
.announcement-item { padding:14px 0; border-bottom:1px solid var(--gold); }
.announcement-item:last-child { border-bottom:0; }
.announcement-item h3 { margin:0 0 4px; }
.announcement-item .meta { margin-bottom:4px; }
.announcement-item p { margin:0; }
.current-judges-section { border-top:2px solid var(--gold); }
.current-judges { display:grid; gap:22px; }
.judge-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.judge-person { display:flex; align-items:center; gap:14px; min-width:0; }
.judge-person h3 { margin:0; }
.judge-phone { margin:4px 0 0; }
.home-marker .icon { width:18px; height:18px; vertical-align:middle; }
.history-partner-cell { display:inline-flex; align-items:center; gap:6px; }
.history-partner-cell .icon { width:18px; height:18px; }
.history-partner-cell .icon path { stroke:currentColor; }
.history-anchor:target { outline:2px solid var(--gold-bright); outline-offset:4px; }
[hidden] { display:none !important; }
.empty-state { padding: 24px; border: 2px dashed var(--gold); background: var(--surface); color: var(--muted); text-align: center; }
.filters { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.filter-input, .filter-select, input, select, textarea {
  max-width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--gold);
  background: var(--card);
  color: #fff;
  font: inherit;
}
.filter-input, .filter-select { width: 100%; max-width: 320px; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.table-scroll { width: 100%; overflow-x: auto; }
.fee-table { width: 100%; border: 1px solid var(--gold); border-collapse: collapse; }
.fee-table th, .fee-table td { padding: 10px 12px; border: 1px solid var(--gold); text-align: left; }
.fee-table th { background: var(--card); color: var(--gold-bright); }
.fee-table tbody tr:nth-child(odd) { background: var(--surface); }
.fee-table tbody tr:nth-child(even) { background: #10223f; }
.fee-table .fee-category th { padding-top:14px; background:var(--surface); color:var(--gold-bright); }
.footer { margin-top: auto; padding: 26px 0; border-top: 4px solid var(--gold); background: var(--surface); color: var(--text); }
.site-header { flex:0 0 auto; }
body > main, body > .hero { flex:0 0 auto; }
body > main { flex:1 0 auto; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.footer-brand img { width: 44px; height: 44px; object-fit: contain; background: transparent; }
.footer-judges { display:flex; align-items:baseline; flex:1 1 360px; gap:14px; min-width:0; }
.footer-judges-label { flex:0 0 auto; color:var(--gold-bright); }
.footer-judges ul { display:flex; flex-wrap:wrap; gap:8px 0; min-width:0; margin:0; padding:0; list-style:none; }
.footer-judges li { display:flex; flex-wrap:wrap; align-items:center; gap:2px 8px; min-width:0; padding:0 14px; }
.footer-judges li + li { border-left:1px solid var(--gold); }
.footer-judge-name { overflow-wrap:anywhere; }
.footer-judge-phone { display:inline-flex; align-items:center; gap:4px; color:var(--muted); white-space:nowrap; }
.footer-judge-phone .phone-copy { padding:0 4px; }
.staff-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:12px; margin-bottom:20px; }
.staff-filters label { display:grid; grid-template-rows:auto 44px; align-content:end; gap:6px; margin:0; }
.staff-filters :is(.filter-input,.filter-select) { width:100%; height:44px; min-height:44px; margin:0; }
.staff-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.staff-group { margin:24px 0 36px; }
.staff-group h3 { margin:0 0 16px; padding-bottom:8px; border-bottom:2px solid var(--gold); }
.staff-group h3 span { color:var(--muted); font-size:.85em; }
.rank-badge { display:inline-block; margin:0 0 10px; padding:3px 8px; border:1px solid var(--gold); color:var(--gold-bright); }
.staff-card .card-body { padding:12px; }
.staff-card h3 { margin:0; padding:0; border:0; overflow-wrap:break-word; font-size:1rem; }
.staff-card.has-details h3 { margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--gold); }
.staff-department-list { margin:0 0 8px; padding-left:16px; }
.staff-department-list li { margin:0; }
.case-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 14px; margin:8px 0; }
.case-meta div { display:grid; grid-template-columns:auto minmax(0,1fr); gap:5px; min-width:0; }
.case-meta dt { color:var(--muted); font-size:.88rem; }
.case-meta dd { min-width:0; margin:0; overflow-wrap:anywhere; font-size:.92rem; }
.case-meta div:last-child { grid-column:1 / -1; }
.fee-search-label { display:grid; gap:8px; max-width:340px; margin:0 0 18px; }
.fee-search-label .filter-input { max-width:none; }
.fee-table { table-layout:fixed; }
.fee-table th, .fee-table td { overflow-wrap:anywhere; }
.fee-card-heading { display:flex; justify-content:space-between; gap:12px; }
.fee-card-heading > * { min-width:0; }
.fee-card-heading strong:last-child { flex:0 0 auto; white-space:nowrap; }
.fee-note { margin:4px 0 0; color:var(--muted); }
.fee-row td { padding:10px 12px; }
.footer { flex:0 0 auto; }
.location-section { scroll-margin-top:100px; }
.location-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(0,1fr); align-items:start; gap:18px; min-width:0; }
.location-map-column, .location-list { min-width:0; }
.location-map { position:relative; height:340px; overflow:hidden; box-shadow:inset 0 0 0 2px var(--gold); background:#2738ca; outline:none; touch-action:pan-y; }
.location-map:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; }
.location-map-preview { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.location-map-world { position:absolute; top:0; left:0; width:5184px; height:2030px; transform-origin:0 0; }
.location-map.is-wheel-zooming .location-map-world { transition:transform 110ms ease-out; }
.location-map-tiles, .location-map-markers { position:absolute; inset:0; }
.location-tile-layer { position:absolute; inset:0; }
.location-map-tiles img { position:absolute; max-width:none; user-select:none; pointer-events:none; }
.location-map-fallback .location-map-preview { z-index:1; }
.location-map-markers { pointer-events:none; }
.location-map-marker { position:absolute; display:grid; place-items:center; width:44px; height:44px; padding:0; transform:translate(-50%,-50%) scale(var(--marker-inverse-scale,1)); border:0; border-radius:50%; background:transparent; cursor:pointer; pointer-events:auto; transform-origin:center; }
.location-marker-dot { width:16px; height:16px; border:2px solid var(--page); border-radius:50%; background:var(--gold-bright); box-shadow:0 1px 5px #000b; }
.location-map-marker:hover .location-marker-dot, .location-map-marker[aria-pressed="true"] .location-marker-dot { background:#fff; outline:2px solid var(--gold-bright); outline-offset:2px; }
.location-marker-label { position:absolute; top:50%; left:calc(50% + 9px); padding:2px 6px; transform:translateY(-50%); border:1px solid var(--gold); background:var(--page); color:var(--gold-bright); font-size:.8rem; line-height:1.3; white-space:nowrap; }
.location-map-marker:focus-visible { z-index:1; outline:3px solid var(--gold-bright); outline-offset:0; }
.location-map-controls { position:absolute; top:10px; right:10px; z-index:2; display:flex; align-items:center; gap:6px; }
.location-map-controls[hidden] { display:none; }
.location-map-control { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; border:1px solid var(--gold); background:var(--page); color:var(--gold-bright); cursor:pointer; }
.location-map-control:hover, .location-map-control:focus-visible { background:var(--card); }
.location-map-control svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.location-map-overview { gap:6px; }
.location-map-overview span { font:700 .82rem Georgia,"Times New Roman",serif; white-space:nowrap; }
.location-map-hint, .location-map-status { margin:6px 0 0; color:var(--muted); font-size:.86rem; }
.location-map-status { color:var(--warning-text); }
.location-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.location-card { display:flex; align-items:flex-start; gap:12px; min-width:0; padding:16px; border:2px solid var(--gold); background:var(--card); cursor:pointer; }
.location-card:hover, .location-card:focus-visible, .location-card[aria-pressed="true"] { border-color:var(--gold-bright); background:#192f52; }
.location-label { flex:0 0 auto; padding:3px 8px; border:1px solid var(--gold); background:var(--page); color:var(--gold-bright); font-size:.8rem; line-height:1.4; }
.location-card-copy { display:block; min-width:0; }
.location-card h3 { margin:0 0 6px; color:var(--gold-bright); font-size:1.05rem; }
.location-card p { margin:0; color:var(--text); font-size:.94rem; line-height:1.5; }
.location-card:focus-visible { outline:3px solid var(--gold-bright); outline-offset:2px; }
@media (max-width: 980px) { .staff-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .department-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) {
  .header-inner { position:relative; }
  .menu-toggle { display:inline-flex; }
  .main-nav {
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    left:0;
    z-index:60;
    display:none;
    flex-direction:column;
    align-items:stretch;
    padding:10px;
    border:2px solid var(--gold);
    background:var(--page);
  }
  .main-nav.open { display:flex; }
}
@media (max-width: 720px) {
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .footer-judges { flex:0 1 auto; flex-direction:column; align-items:flex-start; gap:4px; }
  .footer-judges ul { flex-direction:column; align-items:flex-start; gap:0; }
  .footer-judges li { padding:6px 0; }
  .footer-judges li + li { border-top:1px solid var(--gold); border-left:0; }
  .hero-grid { grid-template-columns: 1fr; }
  .institution-grid { grid-template-columns:1fr; }
  .judge-group, .history-pair { grid-template-columns:1fr; }
  .history-person { padding:16px 0 0; }
  .history-person + .history-person { margin-top:16px; border-top:1px solid var(--gold); border-left:0; }
  .section-head { flex-direction: column; align-items: flex-start; }
  .filters { flex-direction: column; }
  .department-grid { grid-template-columns:1fr; }
  .case-meta { grid-template-columns:1fr; }
  .case-meta div:last-child { grid-column:auto; }
  .fee-table { width:100%; min-width:0; }
  .fee-table, .fee-table tbody, .fee-table tr, .fee-table th, .fee-table td { display:block; width:100%; }
  .fee-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .fee-table .fee-category th { margin-top:12px; border:0; border-bottom:1px solid var(--gold); }
  .fee-table .fee-row { margin:8px 0; border:1px solid var(--gold); background:var(--surface); }
  .fee-table .fee-row td { border:0; }
  .fee-card-heading { align-items:baseline; }
  .fee-card-heading strong:first-child { overflow-wrap:break-word; }
  .staff-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-layout { grid-template-columns:minmax(0,1fr); gap:12px; }
  .location-map { height:260px; }
  .location-list { grid-template-columns:minmax(0,1fr); }
}
@media print {
  body[data-page="finanzen"], body[data-page="finanzen"] main, body[data-page="finanzen"] .fee-table,
  body[data-page="finanzen"] .fee-table th, body[data-page="finanzen"] .fee-table td,
  body[data-page="finanzen"] .fee-table tbody tr:nth-child(odd), body[data-page="finanzen"] .fee-table tbody tr:nth-child(even) {
    color:#000 !important;
    background:#fff !important;
    border-color:#333 !important;
    box-shadow:none !important;
  }
  body[data-page="finanzen"] header, body[data-page="finanzen"] footer, body[data-page="finanzen"] .main-nav,
  body[data-page="finanzen"] .menu-toggle, body[data-page="finanzen"] #feeSearch { display:none !important; }
  body[data-page="finanzen"] .table-scroll { overflow:visible; }
  body[data-page="finanzen"] .fee-table { min-width:0; }
}
