*{box-sizing:border-box}html{min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--c-text);background:var(--c-bg)}body{margin:0;min-height:100vh;display:flex;flex-direction:column}.bg{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(135,206,235,.45),transparent 42%),radial-gradient(circle at 15% 76%,#7cac52 0 7%,transparent 7.5%),radial-gradient(circle at 35% 78%,#6d9d45 0 10%,transparent 10.5%),linear-gradient(180deg,transparent 55%,rgba(89,128,60,.55) 56% 100%);opacity:.8}.site-header{width:min(1320px,100%);margin:0 auto;padding:18px clamp(16px,3vw,36px);display:flex;align-items:center;justify-content:space-between;gap:24px}.logo img{width:min(310px,44vw);display:block}.nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nav a,.footer a{color:var(--c-text);text-decoration:none}.nav a{padding:10px 14px;border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface)}.page{width:min(1320px,100%);margin:0 auto;flex:1;padding:clamp(14px,3vw,36px)}.hero{min-height:calc(100vh - 185px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:clamp(22px,5vw,70px)}h1{font-size:clamp(2.4rem,7vw,6.8rem);line-height:.9;margin:.1em 0}h2{font-size:clamp(1.4rem,3vw,2.2rem);margin-top:0}.lead{font-size:clamp(1.2rem,2vw,1.8rem);color:var(--c-muted);max-width:780px}.eyebrow{font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;border:0;border-radius:999px;background:var(--c-accent);color:#111;padding:13px 20px;font-weight:800;text-decoration:none;box-shadow:0 10px 25px var(--c-shadow)}.btn.ghost{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-line)}.hero-card,.panel{background:var(--c-surface);backdrop-filter:blur(14px);border:1px solid var(--c-line);border-radius:28px;box-shadow:0 24px 70px var(--c-shadow)}.hero-card{padding:28px;text-align:center}.hero-card img{width:100%;max-height:520px}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:1.4fr .8fr}.panel{padding:clamp(18px,3vw,32px);margin-bottom:22px}.panel.wide{max-width:1120px;margin-inline:auto}.panel.narrow{max-width:760px;margin-inline:auto}.law-card{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:center;padding:18px 0;border-top:1px solid var(--c-line)}.law-card:first-of-type{border-top:0}.town-sign{width:170px}.law-meta,.score{font-weight:800;color:var(--c-muted);margin:.2rem 0}blockquote{font-size:clamp(1.15rem,2vw,1.75rem);line-height:1.25;margin:.2em 0}.footer{width:min(1320px,100%);margin:0 auto;padding:24px clamp(16px,3vw,36px);display:flex;gap:16px;flex-wrap:wrap;color:var(--c-muted)}.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-weight:700}.form input,.form textarea{width:100%;padding:13px;border-radius:16px;border:1px solid var(--c-line);background:var(--c-surface-strong);color:var(--c-text);font:inherit}.form textarea{min-height:150px}.sign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sign-grid img{width:100%;background:rgba(255,255,255,.2);border-radius:18px;padding:12px}@media(max-width:800px){.site-header{align-items:flex-start;flex-direction:column}.nav{justify-content:flex-start}.hero{grid-template-columns:1fr;min-height:auto}.grid.two,.law-card,.sign-grid{grid-template-columns:1fr}.town-sign{width:min(260px,100%)}h1{font-size:clamp(2.6rem,15vw,4.4rem)}}

pre{white-space:pre-wrap;overflow:auto;padding:16px;border-radius:18px;background:var(--c-surface-strong);border:1px solid var(--c-line)}

/* v0.4.1: Mobile-first Ortstafel-Konfigurator */
.demo-panel{
  max-width:1360px;
  overflow:hidden;
}
.demo-head{
  margin-bottom:clamp(18px,3vw,34px);
}
.demo-title{
  font-size:clamp(2.5rem,10vw,6rem);
  line-height:.88;
}
.demo-builder{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(18px,3vw,34px);
  align-items:start;
}
.demo-preview{
  order:-1;
  display:grid;
  gap:14px;
  min-width:0;
  background:var(--c-surface-strong);
  border:1px solid var(--c-line);
  border-radius:24px;
  padding:clamp(14px,2.5vw,22px);
  box-shadow:0 18px 50px var(--c-shadow);
}
.preview-card{
  display:grid;
  gap:10px;
}
.preview-label{
  margin:0;
  font-weight:900;
  color:var(--c-muted);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.demo-preview img{
  display:block;
  width:100%;
  max-height:48vh;
  object-fit:contain;
  background:rgba(255,255,255,.28);
  border:1px solid var(--c-line);
  border-radius:20px;
  padding:12px;
}
.url-box{
  display:grid;
  gap:8px;
  min-width:0;
  font-weight:800;
}
.demo-preview textarea{
  width:100%;
  min-height:92px;
  resize:vertical;
  padding:12px;
  border-radius:14px;
  border:1px solid var(--c-line);
  background:var(--c-surface);
  color:var(--c-text);
  font:0.92rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;
}
.demo-form{
  display:grid;
  gap:16px;
  min-width:0;
}
.control-group{
  min-width:0;
  margin:0;
  padding:clamp(14px,2.5vw,22px);
  border:1px solid var(--c-line);
  border-radius:24px;
  background:var(--c-surface-strong);
}
.control-group legend{
  padding:0 8px;
  font-weight:900;
  font-size:1.05rem;
}
.control-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px 18px;
}
.control-grid.two{
  grid-template-columns:1fr;
}
.demo-form label{
  min-width:0;
}
.form input,.form textarea,.form select{
  width:100%;
  max-width:100%;
  min-width:0;
  padding:13px;
  border-radius:16px;
  border:1px solid var(--c-line);
  background:var(--c-surface-strong);
  color:var(--c-text);
  font:inherit;
}
.demo-form input,.demo-form select{
  min-height:58px;
}
.option-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.select-option{
  display:grid;
  gap:6px;
}
.check-option{
  display:flex!important;
  align-items:center;
  gap:10px;
  min-height:56px;
  padding:0 14px;
  border:1px solid var(--c-line);
  border-radius:16px;
  background:var(--c-surface);
}
.check-option input{
  width:auto!important;
  min-height:auto!important;
  accent-color:var(--c-accent);
}
.form-actions,.preview-actions{
  margin-top:0;
}
.demo-examples{
  margin-top:clamp(26px,4vw,48px);
}
.sign-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  margin-top:16px;
}
.sign-grid img{
  width:100%;
  background:rgba(255,255,255,.25);
  border:1px solid var(--c-line);
  border-radius:18px;
  padding:12px;
  object-fit:contain;
}
@media (min-width:680px){
  .control-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
  .option-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .select-option{grid-column:1 / -1;}
  .sign-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1050px){
  .demo-builder{
    grid-template-columns:5fr 7fr;
  }
  .demo-preview{
    order:0;
    position:sticky;
    top:18px;
  }
  .demo-preview img{
    max-height:560px;
  }
  .option-grid{grid-template-columns:minmax(180px,1.1fr) repeat(3,minmax(130px,1fr));}
  .select-option{grid-column:auto;}
}
@media (max-width:800px){
  .site-header{align-items:flex-start;flex-direction:column}
  .nav{justify-content:flex-start}
  .hero{grid-template-columns:1fr;min-height:auto}
  .grid.two,.law-card{grid-template-columns:1fr}
  .town-sign{width:min(260px,100%)}
  h1{font-size:clamp(2.6rem,15vw,4.4rem)}
}
@media (max-width:520px){
  .demo-preview{margin-inline:calc(-1 * clamp(8px,2vw,12px));border-radius:20px;}
  .preview-actions,.form-actions{display:grid;grid-template-columns:1fr;}
  .btn{justify-content:center;}
}


/* v0.4.1: Header-Kick + bereinigte Demo-Optionen */
.site-header--scene{
  position:relative;
  overflow:hidden;
  min-height:clamp(210px,28vw,340px);
  align-items:center;
  isolation:isolate;
}
.site-header--scene .scene-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:var(--hero-photo), url('/public/img/dorf-landschaft.svg');
  background-size:cover;
  background-position:center bottom;
  opacity:.95;
}
.site-header--scene::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg, rgba(246,237,220,.78), rgba(246,237,220,.22) 48%, rgba(246,237,220,.72));
}
.site-kick{
  flex:1 1 420px;
  max-width:620px;
  padding:clamp(14px,2vw,24px);
  border:1px solid var(--c-line);
  border-radius:24px;
  background:rgba(255,252,244,.58);
  backdrop-filter:blur(10px);
  box-shadow:0 18px 55px var(--c-shadow);
}
.site-kick strong{
  display:block;
  font-size:clamp(2rem,5vw,4.7rem);
  line-height:.9;
  letter-spacing:-.055em;
}
.site-kick span{
  display:block;
  margin-top:8px;
  font-size:clamp(1rem,1.5vw,1.35rem);
  color:var(--c-muted);
  font-weight:700;
}
.option-grid{
  align-items:stretch;
}
.select-option--plain{
  display:flex!important;
  align-items:center;
}
.select-option--plain select{
  min-height:56px!important;
}
.check-option{
  justify-content:flex-start;
  white-space:nowrap;
}
.check-option span{
  display:inline-block;
  line-height:1.15;
}
@media (min-width:1050px){
  .option-grid{
    grid-template-columns:minmax(170px,1fr) repeat(3,minmax(150px,1fr));
  }
}
@media (max-width:900px){
  .site-header--scene{
    min-height:auto;
  }
  .site-kick{
    order:3;
    width:100%;
  }
}
@media (max-width:520px){
  .option-grid{grid-template-columns:1fr;}
  .check-option,.select-option--plain select{min-height:54px;}
}

/* v0.4.2: Breiter Hero-Header mit eigener Navigationszeile */
.site-header--scene{
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(20px,4vw,44px) 0 clamp(16px,3vw,30px);
  display:block;
  min-height:auto;
}
.header-wrap{
  width:min(1320px,90vw);
  margin:0 auto;
  display:grid;
  gap:clamp(12px,2vw,20px);
}
.header-hero{
  display:grid;
  grid-template-columns:minmax(190px,310px) minmax(0,1fr);
  align-items:stretch;
  gap:clamp(18px,3vw,34px);
  width:100%;
}
.header-hero .logo{
  display:flex;
  align-items:center;
}
.header-hero .logo img{
  width:100%;
  max-width:310px;
}
.site-kick{
  max-width:none;
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.header-nav{
  width:100%;
  justify-content:flex-end;
  padding-top:clamp(2px,.7vw,8px);
}
@media(max-width:900px){
  .header-wrap{width:min(1320px,94vw);}
  .header-hero{grid-template-columns:1fr;}
  .header-hero .logo img{width:min(360px,100%);}
  .site-kick{order:0;}
  .header-nav{justify-content:flex-start;}
}
@media(max-width:520px){
  .site-header--scene{padding-top:14px;}
  .header-wrap{width:min(1320px,96vw);}
  .header-nav a{padding:9px 12px;}
}

/* v0.4.4: Seitenbreite, Formulare und Einreiche-Maske */
.page{
  width:min(1320px,90vw);
}
.form-panel{
  max-width:1320px;
  margin-inline:auto;
}
.lead.small{
  font-size:clamp(1rem,1.35vw,1.25rem);
  max-width:980px;
}
.submit-form{
  display:grid;
  gap:clamp(16px,2vw,24px);
}
.submit-form fieldset{
  border:1px solid var(--c-line);
  border-radius:24px;
  padding:clamp(16px,2.5vw,24px);
  background:var(--c-surface-strong);
}
.submit-form legend{
  padding:0 8px;
  font-weight:900;
  color:var(--c-muted);
  letter-spacing:.03em;
  text-transform:uppercase;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px 18px;
}
.form-grid.three{
  grid-template-columns:1fr;
}
.form select{
  width:100%;
  padding:13px;
  border-radius:16px;
  border:1px solid var(--c-line);
  background:var(--c-surface-strong);
  color:var(--c-text);
  font:inherit;
}
.check-line{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start;
  gap:12px!important;
  padding:16px 18px;
  border:1px solid var(--c-line);
  border-radius:18px;
  background:var(--c-surface-strong);
}
.check-line input{
  width:auto!important;
  margin-top:.2em;
  accent-color:var(--c-accent);
}
.hp{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.notice{
  padding:16px 18px;
  border-radius:18px;
  border:1px solid var(--c-line);
  background:var(--c-surface-strong);
  margin:16px 0;
}
.notice.success{
  border-color:rgba(47,125,50,.35);
  background:rgba(47,125,50,.12);
}
.notice.error{
  border-color:rgba(198,23,31,.35);
  background:rgba(198,23,31,.10);
}
.hint{
  color:var(--c-muted);
  font-weight:700;
  margin:.4rem 0 0;
}
@media (min-width:760px){
  .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1120px){
  .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  .page{width:min(1320px,94vw);}
}
@media(max-width:520px){
  .page{width:min(1320px,96vw);}
}


/* v0.4.4: einheitliches responsives Layout/Grid fuer alle Seiten */
:root{
  --site-max-width: 1320px;
  --site-width: min(var(--site-max-width), 90vw);
  --site-width-tablet: min(var(--site-max-width), 94vw);
  --site-width-mobile: min(var(--site-max-width), 96vw);
  --section-gap: clamp(18px, 3vw, 34px);
  --card-padding: clamp(18px, 3vw, 34px);
}
.site-header--scene .header-wrap,
.page,
.footer{
  width: var(--site-width);
  max-width: var(--site-max-width);
  margin-inline: auto;
}
.page{
  padding-inline: 0;
}
.footer{
  padding-inline: 0;
}
.panel,
.panel.wide,
.panel.narrow,
.form-panel,
.demo-panel{
  width: 100%;
  max-width: none;
}
.panel{
  padding: var(--card-padding);
}
.grid{
  display:grid;
  gap:var(--section-gap);
}
.grid.two{
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
}
.hero{
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:var(--section-gap);
}
.form-grid,
.control-grid,
.option-grid,
.sign-grid,
.demo-builder,
.header-hero,
.law-card{
  min-width:0;
}
.submit-form .form-grid.three{
  grid-template-columns:repeat(12,minmax(0,1fr));
}
.submit-form .form-grid.three > label,
.submit-form .form-grid.three > .check-line{
  grid-column:span 4;
}
.submit-form .form-grid.three > label:has(textarea),
.submit-form .form-grid.three > .check-line{
  grid-column:1 / -1;
}
.form input,
.form select,
.form textarea,
.demo-form input,
.demo-form select,
.demo-form textarea{
  min-width:0;
}
@media (max-width:1100px){
  .site-header--scene .header-wrap,
  .page,
  .footer{
    width: var(--site-width-tablet);
  }
  .grid.two,
  .hero{
    grid-template-columns:1fr;
  }
  .submit-form .form-grid.three > label{
    grid-column:span 6;
  }
  .submit-form .form-grid.three > label:has(textarea),
  .submit-form .form-grid.three > .check-line{
    grid-column:1 / -1;
  }
}
@media (max-width:720px){
  .site-header--scene .header-wrap,
  .page,
  .footer{
    width: var(--site-width-mobile);
  }
  .header-hero{
    grid-template-columns:1fr;
  }
  .header-nav{
    justify-content:flex-start;
  }
  .submit-form .form-grid.three{
    grid-template-columns:1fr;
  }
  .submit-form .form-grid.three > label,
  .submit-form .form-grid.three > label:has(textarea),
  .submit-form .form-grid.three > .check-line{
    grid-column:1 / -1;
  }
  .law-card{
    grid-template-columns:1fr;
  }
}
@media (max-width:520px){
  .panel{border-radius:22px;}
  .site-header--scene{padding-top:14px;}
  .nav a{padding:9px 12px;}
}

/* v0.4.6: Mobile-/UX-Polishing */
.page-title,
.section-title,
.panel > h1,
.panel > h2,
.demo-title{
  max-width:100%;
  overflow-wrap:anywhere;
  hyphens:auto;
  line-height:1.08;
}
.panel > h1{
  font-size:clamp(1.55rem, 6.6vw, 3.15rem);
}
.panel > h2{
  font-size:clamp(1.25rem, 4.8vw, 2.15rem);
}
.law-card .town-sign,
.sign-grid img,
.hero-card img,
.demo-preview img,
.logo img{
  display:block;
  margin-inline:auto;
}
.law-card{
  align-items:center;
}
.law-card > img{
  justify-self:center;
}
.check-line input,
.check-option input{
  inline-size:24px!important;
  block-size:24px!important;
  min-inline-size:24px!important;
  min-block-size:24px!important;
  flex:0 0 24px;
  margin-top:0!important;
  accent-color:var(--c-accent);
}
.check-line,
.check-option{
  min-height:56px;
  align-items:center!important;
}
.submit-form > .actions,
.form-actions,
.preview-actions{
  justify-content:center;
}
.submit-form > .actions .btn,
.form-actions .btn{
  min-height:46px;
  justify-content:center;
}
@media(max-width:720px){
  .header-hero .logo{
    justify-content:center;
    text-align:center;
  }
  .header-hero .logo img{
    width:min(340px, 86vw);
  }
  .site-kick{
    text-align:center;
    align-items:center;
  }
  .header-nav{
    justify-content:center;
  }
  .law-card{
    text-align:center;
  }
  .law-card .town-sign{
    width:min(280px, 92%);
  }
  .panel > h1{
    font-size:clamp(1.35rem, 7.2vw, 2.25rem);
  }
  .check-line{
    gap:14px!important;
    padding:16px;
  }
  .check-line input,
  .check-option input{
    inline-size:28px!important;
    block-size:28px!important;
    min-inline-size:28px!important;
    min-block-size:28px!important;
    flex-basis:28px;
  }
  .submit-form > .actions,
  .actions.compact{
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
  }
  .submit-form > .actions .btn,
  .actions.compact .btn{
    width:min(100%, 420px);
    text-align:center;
  }
}
@media(max-width:420px){
  .panel > h1{
    font-size:clamp(1.25rem, 7.6vw, 1.85rem);
  }
  .nav{
    justify-content:center;
  }
  .nav a{
    flex:1 1 calc(50% - 8px);
    text-align:center;
  }
}

/* v0.5.0: thematische Navigation und Dorfgesetzbuch-Sprache */
.nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  font-weight:800;
}
.nav-icon{
  display:inline-grid;
  place-items:center;
  inline-size:1.35em;
  block-size:1.35em;
  font-size:1.05em;
  line-height:1;
}
@media(max-width:420px){
  .nav a{
    min-height:44px;
    padding-inline:10px;
  }
  .nav-icon{
    font-size:1.15em;
  }
}

/* v0.5.0: Öffentliches Voting + Paragraphen-Karten */
.law-card{
  scroll-margin-top:24px;
}
.law-sign-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
}
.law-body{
  min-width:0;
}
.vote-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.vote-form{
  margin:0;
}
.vote-btn{
  min-height:42px;
  border:0;
  border-radius:999px;
  background:var(--c-accent);
  color:#111;
  padding:10px 16px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 18px var(--c-shadow);
}
.score-pill{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  border-radius:999px;
  padding:9px 14px;
  background:var(--c-surface-strong);
  border:1px solid var(--c-line);
  font-weight:900;
}
.vote-small{
  color:var(--c-muted);
  font-weight:800;
  font-size:.92rem;
}
@media (max-width:800px){
  .law-card{text-align:center;}
  .vote-row{justify-content:center;}
  .vote-btn,.score-pill{min-width:min(260px,100%);justify-content:center;}
}

/* v0.5.1: Up/Down-Voting + Live-Sterne */
.vote-btn.vote-down{
  background:var(--c-surface-strong);
  color:var(--c-text);
  border:1px solid var(--c-line);
  box-shadow:none;
}
.stars{
  display:inline-flex;
  align-items:center;
  gap:2px;
  min-height:42px;
  border-radius:999px;
  padding:8px 12px;
  background:var(--c-surface-strong);
  border:1px solid var(--c-line);
  font-weight:900;
  white-space:nowrap;
}
.star{
  position:relative;
  display:inline-block;
  font-size:1.08rem;
  line-height:1;
  color:rgba(80,70,55,.28);
}
.star.full{color:var(--c-accent);}
.star.half{color:rgba(80,70,55,.28);}
.star.half::before{
  content:'★';
  position:absolute;
  inset:0 auto 0 0;
  width:50%;
  overflow:hidden;
  color:var(--c-accent);
}
.star-value{
  margin-left:6px;
  color:var(--c-muted);
  font-size:.9rem;
}
@media (max-width:800px){
  .vote-form{width:min(260px,100%);}
  .vote-btn{width:100%;justify-content:center;}
  .stars{justify-content:center;min-width:min(260px,100%);}
}

/* v0.5.2: Zentrale Button- und Voting-Komponenten */
:root{
  --btn-min-height:44px;
  --btn-radius:999px;
  --btn-hover-y:-2px;
  --btn-transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}
.btn,
.nav a,
.vote-btn,
.ui-btn,
button.btn,
.actions a,
.actions button{
  min-height:var(--btn-min-height);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  cursor:pointer;
  transition:var(--btn-transition);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover,
.nav a:hover,
.vote-btn:hover,
.ui-btn:hover,
.actions a:hover,
.actions button:hover{
  transform:translateY(var(--btn-hover-y));
  box-shadow:0 14px 28px var(--c-shadow);
}
.btn:active,
.nav a:active,
.vote-btn:active,
.ui-btn:active,
.actions a:active,
.actions button:active{
  transform:scale(.98);
  box-shadow:0 7px 16px var(--c-shadow);
}
.btn:focus-visible,
.nav a:focus-visible,
.vote-btn:focus-visible,
.ui-btn:focus-visible,
.form input:focus-visible,
.form textarea:focus-visible,
.form select:focus-visible{
  outline:3px solid color-mix(in srgb, var(--c-accent) 65%, white);
  outline-offset:3px;
}
.ui-btn--neutral,
.vote-btn,
.vote-btn.vote-down,
.vote-btn--up,
.vote-btn--down{
  background:#fff;
  color:#15120d;
  border:1px solid var(--c-line);
  box-shadow:0 8px 20px var(--c-shadow);
}
.vote-btn{
  min-width:88px;
  padding:10px 15px;
  font-weight:900;
}
.vote-btn--up:hover{
  background:color-mix(in srgb, #fff 82%, var(--c-success));
  border-color:color-mix(in srgb, var(--c-success) 45%, var(--c-line));
}
.vote-btn--down:hover{
  background:color-mix(in srgb, #fff 86%, var(--c-danger));
  border-color:color-mix(in srgb, var(--c-danger) 45%, var(--c-line));
}
.vote-widget{
  margin-top:16px;
  display:grid;
  gap:10px;
  align-items:start;
}
.vote-widget__buttons,
.vote-widget__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.vote-widget__meta{gap:8px;}
.vote-ico{font-size:1.08rem;line-height:1;}
.vote-count{font-variant-numeric:tabular-nums;}
.vote-label{font-weight:800;color:var(--c-muted);}
.vote-small{margin:0;}
.score-pill{
  box-shadow:0 5px 14px rgba(0,0,0,.03);
}
.stars{
  box-shadow:0 5px 14px rgba(0,0,0,.03);
}
@media(max-width:800px){
  .vote-widget{
    justify-items:center;
  }
  .vote-widget__buttons,
  .vote-widget__meta{
    justify-content:center;
  }
  .vote-form{width:auto;}
  .vote-btn{width:auto;min-width:96px;}
}
@media(max-width:420px){
  .vote-widget__buttons,
  .vote-widget__meta{
    width:100%;
  }
  .vote-widget__buttons .vote-form{
    flex:1 1 calc(50% - 8px);
  }
  .vote-btn{
    width:100%;
  }
  .score-pill,.stars{
    flex:1 1 100%;
    justify-content:center;
  }
}

/* v0.5.3: Voting bleibt in einer Zeile und bricht nur bei Bedarf um */
.vote-widget__main{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.vote-widget__buttons,
.vote-widget__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.vote-widget__meta{
  flex:1 1 220px;
}
.vote-widget__buttons{
  flex:0 1 auto;
}
.score-pill,.stars{
  flex:0 0 auto;
}
.sort-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:16px 0 22px;
  align-items:center;
}
.sort-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--c-surface-strong);
  border:1px solid var(--c-line);
  color:var(--c-text);
  font-weight:900;
  text-decoration:none;
  transition:var(--btn-transition);
}
.sort-tab:hover{
  transform:translateY(var(--btn-hover-y));
  box-shadow:0 12px 24px var(--c-shadow);
}
.sort-tab.is-active{
  background:var(--c-accent);
  border-color:color-mix(in srgb, var(--c-accent) 70%, #000);
}
@media(max-width:800px){
  .vote-widget__main{
    justify-content:center;
  }
  .vote-widget__meta{
    flex:0 1 auto;
    justify-content:center;
  }
  .score-pill,.stars{
    min-width:auto;
  }
}
@media(max-width:420px){
  .vote-widget__buttons,
  .vote-widget__meta{
    width:auto;
  }
  .vote-widget__buttons .vote-form{
    flex:0 1 auto;
  }
  .vote-btn{
    width:auto;
  }
  .score-pill,.stars{
    flex:0 1 auto;
    justify-content:center;
  }
  .sort-tabs{
    justify-content:center;
  }
}

/* v0.5.4 Kontakt + Captcha */
.captcha-box{
  border:1px solid var(--c-line);
  border-radius:22px;
  background:var(--c-surface-strong);
  padding:clamp(14px,2.5vw,22px);
}
.captcha-box legend{
  padding:0 8px;
  font-weight:900;
}
.captcha-box.is-error{
  border-color:var(--c-danger);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--c-danger), transparent 82%);
}
.footer a:hover{
  text-decoration:underline;
}

/* v0.5.5: aktive Navigation, dezente Sortierung und Karten-Zeilenlayout */
.nav a,
.sort-tab{
  position:relative;
}
.nav a.is-active,
.sort-tab.is-active{
  background:var(--c-nav-active-bg, color-mix(in srgb, var(--c-surface-strong) 92%, var(--c-text) 8%));
  border-color:var(--c-nav-active-border, color-mix(in srgb, var(--c-line) 65%, var(--c-text) 35%));
  color:var(--c-nav-active-text, var(--c-text));
  box-shadow:inset 0 -3px 0 var(--c-nav-active-mark, color-mix(in srgb, var(--c-muted) 70%, transparent));
}
.nav a.is-active::after,
.sort-tab.is-active::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:5px;
  height:2px;
  border-radius:99px;
  background:var(--c-nav-active-mark, color-mix(in srgb, var(--c-muted) 60%, transparent));
  opacity:.45;
}
.sort-tab.is-active{
  /* vorher kräftiges Gelb; jetzt ruhiger Zustand */
  font-weight:950;
}
.dg-card{
  background:var(--c-surface-strong);
  border:1px solid var(--c-line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.04);
  margin-block:18px;
}
.dg-card__row{
  padding:clamp(14px, 2.2vw, 22px);
}
.dg-card__row + .dg-card__row{
  border-top:1px solid var(--c-line);
}
.dg-card__row--header{
  display:grid;
  grid-template-columns:minmax(160px, 220px) minmax(0,1fr);
  gap:clamp(14px, 2.5vw, 28px);
  align-items:center;
}
.dg-card__row--body{
  background:color-mix(in srgb, var(--c-surface) 72%, transparent);
}
.dg-card__row--footer{
  background:color-mix(in srgb, var(--c-surface-strong) 92%, var(--c-bg) 8%);
}
.law-card{
  display:block;
  padding:0;
  border-top:0;
  scroll-margin-top:24px;
  text-align:initial;
}
.law-card:first-of-type{border-top:1px solid var(--c-line);}
.law-card__place{
  display:flex;
  justify-content:center;
  align-items:center;
}
.law-card__place .town-sign{
  width:min(220px,100%);
}
.law-card__headtext{
  min-width:0;
}
.law-card__headtext h2{
  margin:.1em 0;
  font-size:clamp(2rem, 4.2vw, 4rem);
  line-height:.95;
}
.law-kicker{
  margin:0 0 4px;
  color:var(--c-muted);
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.88rem;
}
.law-card blockquote{
  margin:0;
  font-size:clamp(1.18rem, 2.2vw, 1.9rem);
  line-height:1.3;
}
.law-card__footerline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 18px;
}
.law-author{
  color:var(--c-muted);
  font-weight:900;
}
.law-card .vote-widget{
  margin-top:0;
  flex:1 1 420px;
  justify-items:end;
}
.law-card .vote-small{
  text-align:right;
}
@media(max-width:780px){
  .dg-card__row--header{
    grid-template-columns:1fr;
    text-align:center;
  }
  .law-card__place .town-sign{
    width:min(280px, 92%);
  }
  .law-card__footerline{
    justify-content:center;
    text-align:center;
  }
  .law-card .vote-widget{
    flex-basis:100%;
    justify-items:center;
  }
  .law-card .vote-small{
    text-align:center;
  }
}
@media(max-width:420px){
  .dg-card{
    border-radius:20px;
  }
  .dg-card__row{
    padding:14px;
  }
  .law-card__headtext h2{
    font-size:clamp(1.8rem, 13vw, 3rem);
  }
}


/* v0.5.6: Gesetzbuch-Kartenlayout fix + Sortierung ohne Gelb */
.sort-tab.is-active,
.nav a.is-active{
  background:var(--c-nav-active-bg, #f0eee8) !important;
  border-color:var(--c-nav-active-border, rgba(35,25,14,.22)) !important;
  color:var(--c-nav-active-text, var(--c-text)) !important;
  box-shadow:inset 0 -3px 0 var(--c-nav-active-mark, #8a8174) !important;
}
.sort-tab.is-active:hover,
.nav a.is-active:hover{
  background:color-mix(in srgb, var(--c-nav-active-bg, #f0eee8) 88%, var(--c-text) 12%) !important;
}
.law-card{
  min-width:0;
  width:100%;
}
.law-card .dg-card__row--header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:clamp(14px, 2.5vw, 28px);
}
.law-card__place{
  flex:0 1 230px;
  min-width:min(100%, 180px);
}
.law-card__headtext{
  flex:1 1 280px;
  min-width:0;
}
.law-card .town-sign{
  display:block;
  margin-inline:auto;
  max-width:100%;
}
.law-card__footerline{
  display:grid;
  grid-template-columns:minmax(160px, auto) minmax(0, 1fr);
  align-items:center;
  gap:12px 18px;
}
.law-card .vote-widget,
.law-card .vote-widget__main,
.law-card .vote-widget__meta,
.law-card .vote-widget__buttons{
  min-width:0;
}
.law-card .vote-widget{
  justify-self:end;
  width:auto;
  max-width:100%;
}
.law-card .vote-widget__main{
  justify-content:flex-end;
}
@media(max-width:900px){
  .law-card__footerline{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .law-card .vote-widget,
  .law-card .vote-widget__main{
    justify-self:center;
    justify-content:center;
  }
}
@media(max-width:620px){
  .law-card .dg-card__row--header{
    justify-content:center;
    text-align:center;
  }
  .law-card__place,
  .law-card__headtext{
    flex-basis:100%;
  }
  .law-card__place .town-sign{
    width:min(280px, 92%);
  }
}

/* v0.5.7: Dorfgesetzbuch-Card kompakt: Ortstafel links, § direkt vor Text, Meta darunter */
.law-card--compact{
  margin-block:14px;
}
.law-card--compact .dg-card__row{
  padding:clamp(14px, 2vw, 22px);
}
.law-card--compact .dg-card__row--body{
  background:var(--c-surface-strong);
}
.law-card__layout{
  display:grid;
  grid-template-columns:minmax(132px, 170px) minmax(0, 1fr);
  gap:clamp(14px, 2.2vw, 24px);
  align-items:start;
}
.law-card__sign{
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.law-card__sign .town-sign{
  width:min(170px, 100%);
  display:block;
  margin:0 auto;
}
.law-card__content{
  min-width:0;
  display:grid;
  gap:14px;
}
.law-card__textline{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  min-width:0;
}
.law-paragraph{
  flex:0 0 auto;
  font-size:clamp(1.25rem, 2.2vw, 1.75rem);
  line-height:1.18;
  font-weight:950;
  color:var(--c-text);
  white-space:nowrap;
  margin-top:.1em;
}
.law-card--compact blockquote{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  font-size:clamp(1.22rem, 2vw, 1.8rem);
  line-height:1.28;
  overflow-wrap:anywhere;
}
.law-card__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 16px;
  color:var(--c-muted);
  font-weight:900;
}
.law-card--compact .vote-widget{
  margin:0;
  flex:1 1 420px;
  min-width:0;
}
.law-card--compact .vote-widget__main{
  justify-content:flex-start;
}
.law-card--compact .vote-widget__meta{
  flex:0 1 auto;
}
.law-card--compact .vote-small{
  display:none;
}
.law-card--compact .stars,
.law-card--compact .score-pill{
  min-height:38px;
  padding:7px 11px;
}
.law-card--compact .vote-btn{
  min-height:38px;
  padding:8px 12px;
}
@media(max-width:760px){
  .law-card__layout{
    grid-template-columns:1fr;
    text-align:left;
  }
  .law-card__sign .town-sign{
    width:min(220px, 86vw);
  }
  .law-card__textline{
    gap:.55rem;
  }
  .law-card__meta,
  .law-card--compact .vote-widget__main{
    justify-content:flex-start;
  }
}
@media(max-width:480px){
  .law-card__textline{
    display:block;
  }
  .law-paragraph{
    display:inline-block;
    margin:0 .45rem .25rem 0;
  }
  .law-card--compact blockquote{
    display:inline;
  }
  .law-card__meta{
    justify-content:center;
    text-align:center;
  }
  .law-card--compact .vote-widget,
  .law-card--compact .vote-widget__main,
  .law-card--compact .vote-widget__buttons,
  .law-card--compact .vote-widget__meta{
    justify-content:center;
  }
}


/* v0.5.8: Navigation aktiv wie gedrückter Button, ohne Unterstreichung */
.nav a.is-active,
.sort-tab.is-active{
  background:var(--c-nav-active-bg, #ece9e2) !important;
  border-color:var(--c-nav-active-border, rgba(35,25,14,.22)) !important;
  color:var(--c-nav-active-text, var(--c-text)) !important;
  box-shadow:inset 0 2px 7px rgba(35,25,14,.12), 0 1px 0 rgba(255,255,255,.55) !important;
  transform:none !important;
  text-decoration:none !important;
}
.nav a.is-active::after,
.sort-tab.is-active::after{
  content:none !important;
  display:none !important;
}
.nav a.is-active:hover,
.sort-tab.is-active:hover{
  background:var(--c-nav-active-hover-bg, #e4e0d8) !important;
  box-shadow:inset 0 2px 7px rgba(35,25,14,.14), 0 6px 16px rgba(35,25,14,.08) !important;
  transform:none !important;
}
.nav a.is-active:active,
.sort-tab.is-active:active{
  transform:scale(.985) !important;
}
.header-nav .nav-icon,
.nav .nav-icon{
  width:1.35em;
  min-width:1.35em;
  text-align:center;
  display:inline-flex;
  justify-content:center;
}
@media (min-width:901px){
  .header-nav .nav-link{min-width:190px;}
}
@media (max-width:760px){
  .header-nav .nav-link{min-width:0;}
}

/* v0.5.9: Navigation als Bereichsmenü mit Unterpunkten + klarere Gesetzkarten */
.nav{
  align-items:center;
}
.nav-group{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.nav-group > .nav-link{
  min-width:0;
}
.nav-group.is-active > .nav-link,
.nav a.is-active,
.sort-tab.is-active{
  background:var(--c-nav-active-bg, #ece9e2) !important;
  border-color:var(--c-nav-active-border, rgba(35,25,14,.24)) !important;
  box-shadow:inset 0 2px 7px rgba(35,25,14,.12), 0 1px 0 rgba(255,255,255,.55) !important;
}
.nav-sub{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:20;
  min-width:220px;
  display:grid;
  gap:6px;
  padding:10px;
  border:1px solid var(--c-line);
  border-radius:18px;
  background:color-mix(in srgb, var(--c-surface-strong) 96%, white 4%);
  box-shadow:0 18px 45px rgba(35,25,14,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.nav-group:hover .nav-sub,
.nav-group:focus-within .nav-sub{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.nav-sub-link{
  display:flex;
  align-items:center;
  gap:.55em;
  min-height:40px;
  padding:8px 10px;
  border-radius:12px;
  color:var(--c-text);
  text-decoration:none;
  font-weight:800;
  white-space:nowrap;
}
.nav-sub-link:hover,
.nav-sub-link:focus-visible{
  background:color-mix(in srgb, var(--c-surface) 80%, var(--c-text) 6%);
  outline:none;
}
.nav-sub-link.is-active{
  background:var(--c-nav-active-bg, #ece9e2);
}
.law-card--compact{
  background:color-mix(in srgb, var(--c-surface-strong) 96%, white 4%);
  border:1px solid color-mix(in srgb, var(--c-line) 68%, var(--c-text) 14%);
  box-shadow:0 12px 35px rgba(35,25,14,.09);
}
.law-card--compact + .law-card--compact{
  margin-top:18px;
}
.law-card--compact .dg-card__row--body{
  background:transparent;
}
.law-card--compact:hover{
  box-shadow:0 18px 48px rgba(35,25,14,.13);
  border-color:color-mix(in srgb, var(--c-line) 55%, var(--c-text) 22%);
}
@media (max-width:900px){
  .header-nav{
    justify-content:center;
  }
  .nav-group{
    flex:1 1 calc(50% - 8px);
  }
  .nav-group > .nav-link{
    width:100%;
  }
  .nav-sub{
    position:static;
    display:none;
    margin-top:6px;
    min-width:100%;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .nav-group:hover .nav-sub,
  .nav-group:focus-within .nav-sub{
    display:grid;
  }
}
@media (max-width:520px){
  .nav-group{
    flex-basis:100%;
  }
  .law-card--compact{
    box-shadow:0 10px 28px rgba(35,25,14,.10);
  }
}

/* v0.5.10: Navigation-Bugfix – keine versteckten Dropdown-Reste mehr */
.header-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  align-items:center;
}
.nav-group,
.nav-sub{display:none !important;}
.header-nav .nav-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  min-height:44px;
  text-decoration:none !important;
  white-space:nowrap;
}
.header-nav .nav-link.is-active{
  background:var(--c-nav-active-bg, #ece9e2) !important;
  border-color:var(--c-nav-active-border, rgba(35,25,14,.24)) !important;
  box-shadow:inset 0 2px 7px rgba(35,25,14,.12), 0 1px 0 rgba(255,255,255,.55) !important;
  transform:none !important;
  text-decoration:none !important;
}
.header-nav .nav-link.is-active::before,
.header-nav .nav-link.is-active::after{display:none !important;content:none !important;}
@media(max-width:900px){
  .header-nav{justify-content:center;}
  .header-nav .nav-link{flex:1 1 calc(50% - 10px);}
}
@media(max-width:520px){
  .header-nav .nav-link{flex-basis:100%;}
}


/* v0.5.12: Bereichsnavigation + Kontextaktionen */
.header-nav{
  justify-content:flex-end;
  align-items:center;
}
.nav a.is-active,
.sort-tab.is-active{
  text-decoration:none !important;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.10), 0 3px 9px rgba(0,0,0,.05) !important;
}
.nav a.is-active::after,
.sort-tab.is-active::after{
  display:none !important;
}
.section-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px 18px;
  flex-wrap:wrap;
  margin:14px 0 22px;
}
.section-toolbar__left,
.section-toolbar__right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.section-toolbar__right{
  margin-left:auto;
  justify-content:flex-end;
}
.section-toolbar .sort-tabs{
  margin:0;
}
.section-action{
  white-space:nowrap;
}
@media(max-width:720px){
  .header-nav,
  .nav{
    justify-content:center;
  }
  .section-toolbar,
  .section-toolbar__left,
  .section-toolbar__right{
    justify-content:center;
    text-align:center;
  }
  .section-toolbar__right{
    margin-left:0;
    width:100%;
  }
  .section-action{
    width:min(320px,100%);
    justify-content:center;
  }
}

/* v0.5.13: Dorfchronik mit Voting, Sortierung und Suche */
.inline-search{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.inline-search label{
  display:block;
}
.inline-search input{
  min-height:40px;
  width:min(260px, 70vw);
  padding:8px 13px;
  border-radius:999px;
  border:1px solid var(--c-line);
  background:var(--c-surface-strong);
  color:var(--c-text);
  font:inherit;
  font-weight:700;
}
.sr-only{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}
.chronik-card--voteable{
  background:color-mix(in srgb, var(--c-surface-strong) 96%, white 4%);
  border:1px solid color-mix(in srgb, var(--c-line) 68%, var(--c-text) 14%);
  box-shadow:0 12px 35px rgba(35,25,14,.09);
}
.chronik-card__layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px 22px;
  align-items:center;
}
.chronik-card__content{min-width:0;}
.chronik-card__content blockquote{
  margin:.25rem 0 0;
  font-size:clamp(1.08rem, 1.7vw, 1.45rem);
  line-height:1.35;
  overflow-wrap:anywhere;
}
.chronik-card__vote .vote-widget{margin:0;}
.chronik-card__vote .vote-widget__main{justify-content:flex-end;}
@media(max-width:760px){
  .chronik-card__layout{grid-template-columns:1fr;}
  .chronik-card__vote .vote-widget__main{justify-content:center;}
  .inline-search{justify-content:center;}
}

/* v0.5.15: Beta-Testseite */
.beta-grid{align-items:start;}
.check-list{margin:0;padding-left:1.2rem;display:grid;gap:.4rem;}
.beta-actions{margin-top:0;}
.beta-actions .btn{box-shadow:none;}


/* v0.5.16: Footer, Suchleisten und dezente Papierkarten */
.footer-grid{width:min(1320px,90vw);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:24px 0;color:var(--c-muted)}
.footer-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.footer-copy{text-align:right}.footer-left{text-align:left}
.paper-card{position:relative;background-color:var(--c-surface);background-image:linear-gradient(108deg,transparent 0 46%,rgba(64,48,26,.035) 48%,transparent 51%),linear-gradient(12deg,transparent 0 56%,rgba(64,48,26,.025) 58%,transparent 61%)}
.inline-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-search label{flex:1 1 260px}.inline-search input{width:100%}
@media(max-width:700px){.footer-grid{grid-template-columns:1fr;text-align:center}.footer-left,.footer-copy{text-align:center}.footer-links{order:1}.footer-copy{order:2}.footer-left{order:3}.inline-search{justify-content:center}.inline-search .btn{flex:0 0 auto}}


/* v0.5.18: Statistik und Admin-Dashboard */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:18px 0 24px}.stat-card{display:grid;gap:5px;align-content:center;min-height:118px;padding:18px;border:1px solid var(--c-line);border-radius:20px;background:var(--c-surface-strong);text-align:center}.stat-card strong{font-size:clamp(1.55rem,3vw,2.5rem);line-height:1}.stat-card span{color:var(--c-muted);font-weight:800}


/* v0.5.19: Suchblock bleibt zusammen + erzählerische Dorfstatistik */
.section-toolbar__left{
  min-width:0;
}
.inline-search{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
  min-width:min(100%,320px);
  max-width:100%;
}
.inline-search label{
  flex:1 1 260px;
  min-width:0;
}
.inline-search input{
  width:100%;
  min-width:0;
}
.inline-search .btn{
  flex:0 0 auto;
  white-space:nowrap;
}
@media(max-width:760px){
  .section-toolbar__left{
    width:100%;
  }
  .inline-search{
    flex:1 1 100%;
    width:100%;
  }
  .inline-search label{
    flex:1 1 auto;
  }
}

.statistics-page{
  display:grid;
  gap:clamp(18px,3vw,30px);
}
.statistics-page > h1,
.statistics-page > .lead{
  margin-bottom:0;
}
.stat-feature{
  display:grid;
  grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);
  gap:clamp(20px,3vw,36px);
  align-items:stretch;
}
.stat-sign-wrap,
.stat-story,
.author-award{
  border:1px solid var(--c-line);
  border-radius:24px;
  background:color-mix(in srgb,var(--c-surface-strong) 96%,white 4%);
  box-shadow:0 16px 42px rgba(35,25,14,.09);
}
.stat-sign-wrap{
  display:grid;
  place-items:center;
  padding:clamp(14px,2vw,22px);
  min-width:0;
}
.stat-sign-wrap img{
  display:block;
  width:min(100%,520px);
  max-height:360px;
  object-fit:contain;
}
.stat-story{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(20px,3vw,34px);
  min-width:0;
}
.stat-story blockquote{
  margin:.35rem 0 .8rem;
  font-size:clamp(1.25rem,2.4vw,2rem);
  line-height:1.25;
}
.author-award{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding:clamp(22px,3vw,36px);
  overflow:hidden;
}
.author-award::after{
  content:"Vom Dorfrat gewürdigt";
  position:absolute;
  right:-28px;
  bottom:18px;
  transform:rotate(-7deg);
  padding:7px 34px;
  border:2px solid color-mix(in srgb,var(--c-muted) 62%,transparent);
  border-radius:999px;
  color:var(--c-muted);
  font-weight:900;
  opacity:.22;
  pointer-events:none;
}
.author-award__seal{
  display:grid;
  place-items:center;
  width:84px;
  aspect-ratio:1;
  border-radius:50%;
  border:2px solid var(--c-line);
  background:var(--c-surface);
  font-size:2.35rem;
  box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--c-accent) 28%,transparent);
}
.author-award h2{
  margin:.15rem 0 .35rem;
}
.author-award__name{
  display:block;
  max-width:100%;
  font-size:clamp(1.7rem,4vw,3.4rem);
  line-height:1;
  overflow-wrap:anywhere;
}
.stats-heading{
  margin:4px 0 -8px;
}
.stats-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.stats-summary .stat-card{
  min-width:0;
}
.stats-summary .stat-card strong{
  overflow-wrap:anywhere;
}
.stats-future{
  margin-top:0;
}
@media(max-width:900px){
  .stat-feature{
    grid-template-columns:1fr;
  }
  .stats-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px){
  .author-award{
    grid-template-columns:1fr;
    text-align:center;
  }
  .author-award__seal{
    margin-inline:auto;
  }
  .stats-summary{
    grid-template-columns:1fr;
  }
  .stat-sign-wrap img{
    width:100%;
  }
}

/* v0.5.20: Dorfrat, Freigaben und sichtbarer Login */
.header-nav-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.header-nav-row .header-nav{flex:1 1 auto}.account-nav{display:flex;align-items:center}.account-link{display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-height:44px;padding:10px 14px;border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface);color:var(--c-text);text-decoration:none;font-weight:800;white-space:nowrap}.account-link.is-admin{background:var(--c-nav-active-bg,#ece9e2);box-shadow:inset 0 2px 7px rgba(35,25,14,.12)}
.admin-page{display:grid;gap:22px}.admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.admin-head h1{margin-top:0}.admin-stats{margin-top:0}.stat-card--link{color:var(--c-text);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.stat-card--link:hover{transform:translateY(-2px);box-shadow:0 14px 34px var(--c-shadow)}.stat-card--link small{color:var(--c-muted);font-weight:700}.admin-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.admin-tile{display:grid;gap:6px;min-height:150px;align-content:center;padding:22px;border:1px solid var(--c-line);border-radius:22px;background:var(--c-surface-strong);color:var(--c-text);text-decoration:none;box-shadow:0 10px 28px rgba(35,25,14,.07);transition:transform .18s ease,box-shadow .18s ease}.admin-tile:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(35,25,14,.12)}.admin-tile>span{font-size:1.8rem}.admin-tile>strong{font-size:1.2rem}.admin-tile>small{color:var(--c-muted)}.admin-section{display:grid;gap:12px;padding:18px;border:1px solid var(--c-line);border-radius:24px;background:var(--c-surface-strong)}.admin-section__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.admin-section__head h2{margin:0}.admin-count{display:inline-grid;place-items:center;min-width:2rem;height:2rem;padding:0 .5rem;border-radius:999px;background:var(--c-surface);font-size:.9rem}.admin-list{display:grid;gap:12px}.admin-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px;border:1px solid var(--c-line);border-radius:18px;background:var(--c-surface)}.admin-item h3{margin:.4rem 0;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.25}.admin-item__main{min-width:0}.admin-item__actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.admin-item__actions form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.admin-item__actions select,.admin-filter select,.admin-filter input{min-height:44px;padding:9px 12px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface-strong);color:var(--c-text);font:inherit}.admin-meta{margin:0;color:var(--c-muted);font-size:.92rem;overflow-wrap:anywhere}.admin-badges{display:flex;gap:7px;flex-wrap:wrap}.status-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--c-surface) 75%,var(--c-text) 8%);font-size:.78rem;font-weight:900}.status-badge--warn{background:color-mix(in srgb,var(--c-accent) 45%,var(--c-surface) 55%)}.admin-filter{display:flex;gap:9px;flex-wrap:wrap}.admin-filter input{flex:1 1 250px}.admin-editor fieldset{border:1px solid var(--c-line);border-radius:22px;padding:18px;background:var(--c-surface-strong)}.admin-editor legend{padding:0 8px;font-weight:900}.admin-login .actions{justify-content:center}
@media(max-width:760px){.header-nav-row{justify-content:center}.header-nav-row .header-nav{width:100%;justify-content:center}.account-nav{width:100%;justify-content:center}.admin-item{grid-template-columns:1fr}.admin-item__actions{justify-content:flex-start}.admin-item__actions form{width:100%}.admin-item__actions select{flex:1 1 190px}.admin-head{justify-content:center;text-align:center}.admin-head .btn{margin-inline:auto}.admin-filter>*{width:100%}}


/* v0.5.21: Login und Dorfrat unter Mein Dorf */
.header-nav-row .header-nav{width:100%;justify-content:flex-end}
.my-village-page{display:grid;gap:22px}
.my-village-head,.council-block__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.my-village-head h1,.my-village-intro h1,.council-block h2{margin-top:0}
.my-village-grid,.my-village-login-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.my-village-login-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.my-village-card{min-width:0}
.my-village-card.is-muted{background:color-mix(in srgb,var(--c-surface-strong) 92%,var(--c-muted) 8%)}
.my-village-icon{font-size:2rem}
.council-block{display:grid;gap:18px;padding:clamp(20px,3vw,32px);border:1px solid var(--c-line);border-radius:24px;background:color-mix(in srgb,var(--c-surface-strong) 94%,var(--c-nav-active-bg,#ece9e2) 6%);box-shadow:0 14px 34px rgba(35,25,14,.08)}
.council-quicklinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.council-quicklinks a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 12px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface);color:var(--c-text);text-decoration:none;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.council-quicklinks a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(35,25,14,.1)}
.my-village-benefits .check-list{margin:0;padding-left:1.15rem}
@media(max-width:900px){.my-village-grid{grid-template-columns:1fr 1fr}.my-village-login-grid{grid-template-columns:1fr}}
@media(max-width:620px){.my-village-grid{grid-template-columns:1fr}.my-village-head,.council-block__head{text-align:center;justify-content:center}.my-village-head .btn,.council-block__head .btn{margin-inline:auto}.header-nav-row .header-nav{justify-content:center}}

/* v0.5.22: Ortsart- und Ortstafel-Auswahl */
.location-choice {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4, 1rem);
  margin-top: var(--space-4, 1rem);
}
.location-choice label { min-width: 0; }
@media (max-width: 860px) {
  .location-choice { grid-template-columns: 1fr; }
}

/* v0.5.23: Dorfrat – Schildcache und Ortsprüfung */
.table-wrap{overflow-x:auto;border:1px solid var(--c-line);border-radius:18px;background:var(--c-surface)}
.admin-table{width:100%;border-collapse:collapse;min-width:520px}
.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--c-line)}
.admin-table tbody tr:last-child td{border-bottom:0}
.admin-cache-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.admin-cache-actions form{margin:0}
.location-import input[type=file]{padding:12px;border:1px dashed var(--c-line);border-radius:16px;background:var(--c-surface)}
@media(max-width:700px){.admin-cache-actions{justify-content:center}.admin-cache-actions form,.admin-cache-actions .btn{width:100%}.location-import .actions{justify-content:center}}

/* v0.5.24 – Beta-Stabilisierung, Systemstatus und Wartung */
.beta-banner{width:100%;padding:.55rem 1rem;text-align:center;background:color-mix(in srgb,var(--c-nav-active-bg) 86%,var(--c-surface-strong) 14%);border-bottom:1px solid var(--c-line);color:var(--c-muted);font-size:.88rem;font-weight:800;letter-spacing:.02em}.maintenance-card{text-align:center;margin-top:clamp(2rem,8vh,7rem)}.maintenance-card .actions{justify-content:center}.admin-system-grid{align-items:start}.admin-system-grid>.dg-card{margin:0}.admin-system-grid textarea{min-height:120px}.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:.8rem!important;min-height:48px;padding:.65rem .8rem;border:1px solid var(--c-line);border-radius:16px;background:var(--c-surface)}.check-row input[type=checkbox]{flex:0 0 auto;width:1.35rem!important;height:1.35rem!important;margin:0;accent-color:var(--c-success)}.health-summary{display:grid;gap:.3rem;padding:1rem 1.2rem;border:1px solid var(--c-line);border-radius:20px;background:var(--c-surface-strong)}.health-summary strong{font-size:1.2rem}.health-summary span{color:var(--c-muted)}.health-summary.is-ready{border-color:color-mix(in srgb,var(--c-success) 55%,var(--c-line))}.health-summary.needs-work{border-color:color-mix(in srgb,var(--c-accent) 70%,var(--c-line))}.health-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.health-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--c-line);border-radius:18px;background:var(--c-surface-strong)}.health-row small{display:block;margin-top:.2rem;color:var(--c-muted);overflow-wrap:anywhere}.health-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;font-weight:1000}.health-row.is-ok .health-icon{background:color-mix(in srgb,var(--c-success) 20%,var(--c-surface));color:var(--c-success)}.health-row.is-warning .health-icon{background:color-mix(in srgb,var(--c-accent) 45%,var(--c-surface));color:var(--c-text)}
@media(max-width:760px){.admin-system-grid{grid-template-columns:1fr!important}.health-list{grid-template-columns:1fr}.beta-banner{font-size:.8rem}}

/* v0.5.28 Benutzerinhalte */
.user-content-card{margin-block:var(--space-4)} .user-content-head{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;flex-wrap:wrap}.user-content-card textarea{min-height:8rem}

/* v0.5.29 Dorfrat */
.mail-preview{padding:var(--space-4);background:var(--c-surface-soft);border-radius:var(--radius-md);overflow:auto}.audit-list{display:grid;gap:var(--space-3)}.audit-row{display:grid;grid-template-columns:minmax(10rem,1fr) auto;gap:.4rem 1rem;padding:var(--space-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md)}.audit-row code{grid-column:1/-1;white-space:pre-wrap;overflow-wrap:anywhere}

/* v0.5.30 dynamischer Himmel */
body{position:relative;background:var(--c-page)}body::before{content:"";position:fixed;inset:0;z-index:-3;background-image:var(--dg-sky-image);background-size:cover;background-position:center top;opacity:.28;pointer-events:none}.site-header--scene .scene-bg{background-image:var(--dg-sky-image),url('/public/img/dorf-landschaft.svg');background-size:cover;background-position:center;opacity:.42}.sky-night .site-header--scene .scene-bg{opacity:.5}.sky-evening .site-header--scene .scene-bg{opacity:.44}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* v0.5.31 Beta-Polish */
.theme-toggle{flex:0 0 auto;display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface);color:var(--c-text);font-size:1.15rem;cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--c-shadow) 55%,transparent);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.theme-toggle:hover{transform:translateY(-2px);box-shadow:0 12px 26px var(--c-shadow)}.theme-toggle:active{transform:translateY(0) scale(.97)}
body::before{opacity:var(--dg-bg-opacity,.28)}
.dg-card,.law-card,.chronik-card,.stat-card,.admin-tile{background-image:linear-gradient(108deg,transparent 0 46%,color-mix(in srgb,var(--c-text) 3%,transparent) 48%,transparent 51%),linear-gradient(12deg,transparent 0 56%,color-mix(in srgb,var(--c-text) 2%,transparent) 58%,transparent 61%)}
.law-card,.chronik-card{box-shadow:0 12px 30px color-mix(in srgb,var(--c-shadow) 52%,transparent)}
.law-card:hover,.chronik-card:hover{box-shadow:0 18px 38px color-mix(in srgb,var(--c-shadow) 68%,transparent)}
html[data-theme="dunkel"] .site-header--scene .scene-bg{filter:saturate(.82) brightness(.72)}
html[data-theme="dunkel"] .logo img{filter:drop-shadow(0 8px 14px rgba(0,0,0,.38))}
@media(max-width:760px){.header-nav-row{align-items:center}.theme-toggle{margin-inline:auto}.footer-grid{text-align:center}.footer-left,.footer-copy{justify-self:center}}
