/* Verbändeportal – CI aus der Kampagne „Germany at its best" */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;
  src:url('/static/fonts/anton-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF;
  src:url('/static/fonts/anton-latin-ext-400-normal.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;
  src:url('/static/fonts/archivo-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;
  src:url('/static/fonts/archivo-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;
  src:url('/static/fonts/archivo-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;
  src:url('/static/fonts/archivo-latin-800-normal.woff2') format('woff2');}

/* Original-Plakatschrift: Datei unter static/fonts/ ablegen (plakatfont.woff2/.ttf), bis dahin Fallback Anton */
@font-face{font-family:'PlakatFont';font-style:normal;font-weight:700;font-display:swap;
  src:url('/static/fonts/plakatfont.woff2') format('woff2'),url('/static/fonts/plakatfont.ttf') format('truetype');}

:root{
  --rot:#B72029; --tiefrot:#8A171D; --dunkel:#15100F; --weiss:#FFFFFF;
  --grau:#6E605E; --linie:#E8E2E0; --hell:#F4F1F0; --rosa:#F6DCDE; --rosahell:#FBE9EA;
  --gruen:#2E7D32; --anton:'Anton','Arial Narrow',Impact,sans-serif;
  --archivo:'Archivo',Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--hell);color:var(--dunkel);font-family:var(--archivo);
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;
  display:flex;flex-direction:column;}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px;width:100%;}
.anton{font-family:var(--anton);font-weight:400;text-transform:uppercase;line-height:.96;letter-spacing:.01em;}
.eyebrow{font-weight:800;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rot);}
::selection{background:var(--rot);color:var(--weiss);}
:focus-visible{outline:3px solid var(--rot);outline-offset:2px;}

/* Nav */
header.nav{position:sticky;top:0;z-index:50;background:var(--weiss);border-bottom:3px solid var(--dunkel);}
.navrow{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:62px;padding:10px 20px;flex-wrap:wrap;}
.logo{display:inline-block;line-height:0;}
.logo img{height:32px;width:auto;}
.navlinks{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
.navlinks a{font-weight:600;font-size:.9rem;text-decoration:none;color:var(--dunkel);}
.navlinks a:hover,.navlinks a.aktiv{color:var(--rot);}
.badge{display:inline-block;min-width:20px;text-align:center;background:var(--rot);color:var(--weiss);
  border-radius:10px;font-size:.72rem;font-weight:800;padding:1px 6px;vertical-align:2px;}
.navuser{font-size:.82rem;color:var(--grau);}
.btn{display:inline-block;font-weight:800;font-size:.86rem;letter-spacing:.05em;text-transform:uppercase;
  padding:12px 20px;text-decoration:none;border:3px solid var(--rot);background:var(--rot);
  color:var(--weiss);cursor:pointer;font-family:var(--archivo);transition:transform .12s ease;}
.btn:hover{transform:translate(-2px,-2px);}
.btn.hohl{background:transparent;color:var(--rot);}
.btn.dunkel{background:var(--dunkel);border-color:var(--dunkel);}
.btn.klein{padding:7px 12px;font-size:.72rem;border-width:2px;}
.btn.grau{background:var(--weiss);border-color:var(--linie);color:var(--dunkel);}

/* Kopfband */
.kopfband{background:var(--rot);color:var(--weiss);padding:40px 0 34px;}
.kopfband h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.12;margin-top:2px;}
.kopfband .sub{margin-top:8px;color:var(--rosahell);max-width:70ch;}

.kopfband.held{background:
  linear-gradient(88deg, rgba(138,23,29,.82) 0%, rgba(138,23,29,.45) 40%, rgba(21,16,15,.12) 100%),
  url('/static/trio-hero.jpg') right 28%/cover no-repeat;
  padding:96px 0 88px;}
.kopfband.held .sub{max-width:46ch;text-shadow:0 1px 8px rgba(0,0,0,.55);}
.kopfband.held h1,.kopfband.held .eyebrow{text-shadow:0 2px 10px rgba(0,0,0,.45);}

/* Plakatgenerator */
.genlayout{display:grid;grid-template-columns:minmax(300px,440px) 1fr;gap:28px;align-items:start;}
.genform form.blatt{max-width:none;}
.genpreview{background:var(--weiss);border:2px solid var(--linie);padding:18px;display:flex;justify-content:center;}
.genpreview canvas{width:100%;max-width:460px;height:auto;display:block;}
@media(max-width:820px){.genlayout{grid-template-columns:1fr;}}

h3.unterkat{font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:1.25rem;
  margin:6px 0 12px;padding-left:10px;border-left:5px solid var(--rot);}

/* Aufklappbare Anleitung an Dateien */
details.anleitung{margin-top:10px;border-top:1px solid var(--linie);padding-top:8px;}
details.anleitung summary{cursor:pointer;font-weight:700;font-size:.85rem;color:var(--rot);
  text-transform:uppercase;letter-spacing:.04em;}
details.anleitung summary::marker{color:var(--rot);}
.anleitungstext{font-size:.9rem;margin-top:8px;}
.anleitungstext p{margin:.5em 0;}
.anleitungstext ul,.anleitungstext ol{margin:.5em 0 .5em 1.3em;}
.anleitungstext code{background:var(--hell);padding:1px 5px;font-size:.85em;}
.anleitungstext a{color:var(--rot);font-weight:600;}

main{flex:1;padding:36px 0 64px;}

/* Flash */
.flash{padding:12px 16px;margin:0 0 12px;font-weight:600;border-left:5px solid;}
.flash.error{background:var(--rosahell);border-color:var(--rot);color:var(--tiefrot);}
.flash.ok{background:#E7F0E7;border-color:var(--gruen);color:#1E5220;}
.flash.info{background:var(--weiss);border-color:var(--grau);color:var(--dunkel);}

/* Karten & Raster */
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.karte{background:var(--weiss);border:2px solid var(--linie);padding:20px;display:block;
  text-decoration:none;transition:transform .12s ease,border-color .12s ease;}
a.karte:hover{transform:translate(-2px,-2px);border-color:var(--rot);}
.karte h3{font-family:var(--anton);text-transform:uppercase;font-weight:400;font-size:1.3rem;}
.karte .meta{color:var(--grau);font-size:.85rem;margin-top:4px;}

/* Dateiliste */
.dateien{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.datei{background:var(--weiss);border:2px solid var(--linie);display:flex;flex-direction:column;}
.datei .vorschau{background:var(--dunkel);height:170px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.datei .vorschau img{width:100%;height:100%;object-fit:contain;}
.datei .typ{font-family:var(--anton);font-size:2rem;color:var(--weiss);text-transform:uppercase;}
.datei .rumpf{padding:14px 16px;flex:1;}
.datei h3{font-size:1.02rem;font-weight:700;}
.datei p{color:var(--grau);font-size:.88rem;margin-top:4px;}
.datei .fuss{padding:0 16px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.datei .groesse{color:var(--grau);font-size:.8rem;}

/* Formulare */
form.blatt{background:var(--weiss);border:2px solid var(--linie);padding:26px;max-width:560px;}
.feld{margin-bottom:16px;}
.feld label{display:block;font-weight:700;font-size:.88rem;margin-bottom:5px;}
.feld .hinweis{font-weight:400;color:var(--grau);}
.feld input[type=text],.feld input[type=email],.feld input[type=password],.feld input[type=number],
.feld select,.feld textarea{width:100%;padding:11px 12px;border:2px solid var(--linie);
  font-family:var(--archivo);font-size:.96rem;background:var(--weiss);}
.feld textarea{min-height:130px;resize:vertical;}
.feld input:focus,.feld textarea:focus,.feld select:focus{border-color:var(--rot);outline:none;}
.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;font-size:.92rem;}
.check input{margin-top:3px;width:17px;height:17px;accent-color:var(--rot);flex:none;}

/* Tabellen (Admin) */
table.liste{width:100%;border-collapse:collapse;background:var(--weiss);border:2px solid var(--linie);}
table.liste th{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;
  padding:10px 12px;border-bottom:2px solid var(--dunkel);background:var(--weiss);}
table.liste td{padding:10px 12px;border-bottom:1px solid var(--linie);vertical-align:middle;font-size:.92rem;}
table.liste tr.pending{background:var(--rosahell);}
table.liste tr:last-child td{border-bottom:none;}
.status{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;}
.status.pending{background:var(--rosa);color:var(--tiefrot);}
.status.active{background:#E7F0E7;color:#1E5220;}
.status.blocked{background:var(--dunkel);color:var(--weiss);}
.aktionen{display:flex;gap:6px;flex-wrap:wrap;}
.aktionen form{display:inline;}

/* Inhalt / Info-Seiten */
.inhalt{background:var(--weiss);border:2px solid var(--linie);padding:34px;max-width:820px;}
.inhalt h1,.inhalt h2,.inhalt h3{font-family:var(--anton);font-weight:400;text-transform:uppercase;margin:1.2em 0 .4em;}
.inhalt h1:first-child,.inhalt h2:first-child{margin-top:0;}
.inhalt p{margin:.7em 0;}
.inhalt ul,.inhalt ol{margin:.7em 0 .7em 1.4em;}
.inhalt a{color:var(--rot);font-weight:600;}
.inhalt table{border-collapse:collapse;margin:1em 0;}
.inhalt th,.inhalt td{border:1px solid var(--linie);padding:6px 10px;}
.inhalt blockquote{border-left:4px solid var(--rot);padding-left:14px;color:var(--grau);margin:.8em 0;}

/* MUSTER-Hinweis (Seite noch nicht abgenommen) */
.muster{max-width:440px;margin:0 auto 20px;border:3px solid var(--dunkel);background:repeating-linear-gradient(
  -45deg, #FFD84D 0 18px, var(--dunkel) 18px 36px);padding:4px;}
.muster>div{background:var(--weiss);padding:12px 16px;text-align:center;}
.muster b{font-family:var(--anton);font-weight:400;font-size:1.5rem;letter-spacing:.06em;display:block;}
.muster span{font-size:.85rem;color:var(--grau);}

/* Auth-Seiten */
.authwrap{max-width:440px;margin:0 auto;}
.authwrap form.blatt{max-width:none;}
.authkopf{text-align:center;margin-bottom:22px;}
.authkopf .logo img{height:52px;margin:0 auto 14px;}
.authkopf h1{font-size:2rem;line-height:1.15;margin-top:2px;}
.authfuss{text-align:center;margin-top:16px;font-size:.9rem;color:var(--grau);}
.authfuss a{color:var(--rot);font-weight:700;}

/* Abschnitte */
.abschnitt{margin-bottom:40px;}
.abschnitt>h2{font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:1.7rem;margin-bottom:14px;}
.zeile-kopf{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.zeile-kopf h2{margin-bottom:0!important;}

/* Statistiken (Admin) */
.statraster{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;}
.stat{background:var(--weiss);border:2px solid var(--linie);padding:18px;}
.stat b{font-family:var(--anton);font-weight:400;font-size:2.2rem;display:block;line-height:1;}
.stat span{color:var(--grau);font-size:.85rem;}
.stat.rot{background:var(--rot);border-color:var(--rot);color:var(--weiss);}
.stat.rot span{color:var(--rosahell);}

footer{background:var(--dunkel);color:var(--weiss);padding:26px 0;margin-top:auto;}
.fussrow{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.fussrow .logo{background:var(--weiss);padding:7px 11px;}
.fussrow .logo img{height:26px;}
.fusslinks{display:flex;gap:18px;font-size:.85rem;}
.fusslinks a{color:var(--weiss);text-decoration:none;opacity:.85;}
.fusslinks a:hover{opacity:1;color:var(--rosa);}
.claim{font-family:var(--anton);text-transform:uppercase;font-size:.95rem;letter-spacing:.04em;}

@media(max-width:720px){
  .navlinks{gap:12px;}
  .navuser{display:none;}
  .inhalt{padding:22px;}
}
