:root {
  /* Verbindliche Vereinsfarben aus dem Projekt „Am Buller“ */
  --brand-green: #82ba41;
  --brand-orange: #ee9106;
  --brand-brown: #8b6d30;

  /* Neutrale UI-Farben, nicht Teil der Wort-/Bildmarke */
  --ink: #252a26;
  --muted: #5f665f;
  --paper: #f8f6f0;
  --white: #ffffff;
  --line: #d9ddd3;
  --focus: rgba(130, 186, 65, .3);

  /* Exakte Webfonts werden nach Lizenzprüfung lokal eingebunden. */
  --font-club: "Helvetica Neue LT 57 CN", "Arial Narrow", Arial, sans-serif;
  --font-copy: "Helvetica LT 47 Light CN", "Arial Narrow", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { font-family: var(--font-copy); color: var(--ink); background: var(--paper); }
body { margin: 0; }
a { color: var(--brand-brown); }
.site-header { padding: .55rem 1.25rem; background: var(--white); border-bottom: 4px solid var(--brand-green); }
.brand { display: block; width: 150px; max-width: 42vw; margin: 0 auto; }
.brand img { display: block; width: 100%; height: auto; }
main { width: min(760px, calc(100% - 2rem)); margin: 0 auto; }
.hero { text-align: center; padding: 2.5rem 0 1.5rem; }
.hero.compact { min-height: 60vh; display: grid; place-content: center; }
.hero h1 { margin: .25rem 0 1rem; font-family: var(--font-club); font-size: clamp(2rem, 7vw, 3.7rem); line-height: 1.02; letter-spacing: .02em; color: var(--brand-brown); }
.hero p { max-width: 640px; margin: .7rem auto; font-size: 1.08rem; line-height: 1.55; }
.eyebrow { color: var(--brand-orange); font-family: var(--font-club); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.card { background: var(--white); border: 1px solid var(--line); border-top: 6px solid var(--brand-green); border-radius: 18px; padding: clamp(1.2rem, 4vw, 2.2rem); box-shadow: 0 18px 50px rgba(37, 42, 38, .08); margin-bottom: 2.5rem; }
label { display: block; font-weight: 700; margin-bottom: 1rem; }
small, .hint { font-weight: 400; color: var(--muted); }
input, textarea { width: 100%; margin-top: .45rem; border: 1px solid #aeb6ab; border-radius: 10px; padding: .9rem; font: inherit; background: #fff; }
input:focus, textarea:focus { outline: 3px solid var(--focus); border-color: var(--brand-green); }
.grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.file-picker { border: 2px dashed var(--brand-green); border-radius: 14px; padding: 1.2rem; background: #f5faef; cursor: pointer; }
.file-picker input { border: 0; padding: .5rem 0; }
.file-picker span { display: block; font-weight: 400; color: var(--muted); }
fieldset { border: 1px solid var(--line); border-radius: 14px; padding: 1rem; margin: 1.4rem 0; }
legend { font-family: var(--font-club); font-weight: 700; color: var(--brand-brown); padding: 0 .4rem; }
.check { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); gap: .65rem; align-items: start; font-weight: 500; line-height: 1.4; }
.check input { width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; accent-color: var(--brand-green); }
.check > span { min-width: 0; }
.check a { overflow-wrap: anywhere; }
button, .button-link { display: inline-block; width: 100%; border: 0; border-radius: 10px; padding: 1rem 1.2rem; background: var(--brand-green); color: #17200f; font-family: var(--font-club); font-size: 1.05rem; font-weight: 700; letter-spacing: .02em; text-align: center; text-decoration: none; cursor: pointer; }
button:hover, .button-link:hover { background: var(--brand-orange); color: #251600; }
button:disabled { opacity: .65; cursor: wait; }
.upload-status { min-height: 1.5rem; text-align: center; }
.honeypot { position: absolute; left: -10000px; }
.reference { font-size: 1rem !important; }
footer { padding: 2rem 1rem 3rem; border-top: 1px solid var(--line); text-align: center; color: var(--muted); font-size: .9rem; }
.legal h1, .legal h2 { font-family: var(--font-club); color: var(--brand-brown); }
.legal h2 { margin-top: 2rem; }
.legal p { line-height: 1.65; }
.poster-page { background: white; }
.poster { width: 210mm; min-height: 297mm; margin: 0 auto; padding: 16mm; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.poster-logo { width: 52mm; height: auto; }
.poster h1 { font-family: var(--font-club); font-size: 18mm; line-height: 1.03; color: var(--brand-brown); margin: 4mm 0 7mm; }
.qr { width: 80mm; height: 80mm; }
.scan { font-family: var(--font-club); font-size: 7mm; font-weight: 700; max-width: 165mm; }
.poster-legal { font-size: 3.6mm; line-height: 1.45; max-width: 175mm; border-top: 2px solid var(--brand-orange); margin-top: 7mm; padding-top: 5mm; }

/* Geschützte Sichtungsoberfläche */
.admin-page main { width: min(1180px, calc(100% - 2rem)); }
.admin-page h1, .admin-page h2, .admin-page h3 { font-family: var(--font-club); color: var(--brand-brown); }
.admin-login-wrap { min-height: 64vh; display: grid; place-items: center; padding: 2rem 0; }
.admin-login-card { width: min(480px, 100%); }
.admin-login-card h1 { margin-top: .3rem; }
.admin-alert { padding: .85rem 1rem; border-radius: 10px; margin: 1rem 0; }
.admin-alert-success { background: #f0fae8; border: 1px solid var(--brand-green); color: #365d13; }
.admin-alert-error { background: #fff0ed; border: 1px solid #d36a58; color: #7f2317; }
.admin-header { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; padding: 2.3rem 0 1.2rem; }
.admin-header h1 { margin: .25rem 0 .5rem; font-size: clamp(2rem, 5vw, 3.2rem); }
.admin-header p { margin: .4rem 0; }
.admin-logout { margin-top: .3rem; }
.button-secondary { width: auto; background: #eef1ec; color: var(--ink); border: 1px solid var(--line); }
.button-secondary:hover { background: #e2e6df; color: var(--ink); }
.button-danger { background: #b13f2d; color: #fff; }
.button-danger:hover { background: #852c1d; color: #fff; }
.admin-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.admin-summary article { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.2rem; }
.admin-summary strong { display: block; color: var(--brand-brown); font-size: 1.8rem; }
.admin-summary span { color: var(--muted); }
.admin-card { margin-bottom: 1.5rem; }
.admin-card h2 { margin-top: 0; }
.admin-search label { margin-bottom: .45rem; }
.admin-search > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .65rem; align-items: end; }
.admin-search input { margin: 0; }
.admin-search button, .admin-search .button-link { width: auto; padding: .88rem 1.1rem; }
.admin-table-wrap { overflow-x: auto; margin-top: 1.4rem; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 950px; }
.admin-table th, .admin-table td { padding: .8rem .7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.admin-table th { color: var(--brand-brown); font-family: var(--font-club); }
.admin-table code { overflow-wrap: anywhere; }
.admin-detail-link { font-weight: 700; }
.admin-empty { padding: 2rem 0 1rem; text-align: center; color: var(--muted); }
.status-badge { display: inline-block; padding: .22rem .5rem; margin: .1rem .15rem .1rem 0; border-radius: 999px; background: #ecefeb; color: #4c544d; font-size: .82rem; font-weight: 700; }
.status-ok { background: #e9f7dc; color: #365d13; }
.status-game { background: #fff0d9; color: #8a5700; }
.status-error { background: #ffe9e4; color: #852c1d; }
.admin-meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.admin-definition-list { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr); gap: .65rem 1rem; margin: 0; }
.admin-definition-list dt { font-weight: 700; color: var(--muted); }
.admin-definition-list dd { margin: 0; overflow-wrap: anywhere; }
.admin-error-text { color: #852c1d; }
.admin-decision-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.3rem; }
.admin-decision-form { border: 1px solid var(--line); border-radius: 14px; padding: 1.2rem; background: #fbfcfa; }
.admin-decision-form h3 { margin-top: 0; }
.admin-rejection-form { border-color: #d9a49a; background: #fff9f7; }
.asset-review-summary { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.admin-finalize-form { border: 1px solid var(--brand-green); border-radius: 14px; padding: 1.2rem; margin-top: 1.2rem; background: #f5faef; }
.admin-whole-rejection { margin-top: 1.4rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.admin-whole-rejection summary { cursor: pointer; color: var(--muted); font-weight: 700; margin-bottom: 1rem; }
.admin-link-grid { display: flex; flex-wrap: wrap; gap: .7rem; }
.admin-link-grid a { display: inline-block; border: 1px solid var(--line); border-radius: 9px; padding: .7rem .9rem; background: #f7f8f5; text-decoration: none; font-weight: 700; }
.asset-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.asset-card { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fbfcfa; }
.asset-card-approved { border-color: #a9cf80; }
.asset-card-rejected { border-color: #d9a49a; background: #fff9f7; }
.asset-preview { min-height: 220px; display: grid; place-items: center; background: #eef1ec; }
.asset-preview img, .asset-preview video { display: block; width: 100%; max-height: 430px; object-fit: contain; background: #111; }
.asset-preview p { padding: 1rem; text-align: center; color: var(--muted); }
.asset-meta { padding: 1rem; }
.asset-meta h3 { margin: 0 0 .7rem; overflow-wrap: anywhere; }
.asset-meta p { margin: .45rem 0; }
.asset-review-actions { display: grid; gap: .8rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.asset-review-actions form { margin: 0; }
.asset-review-actions label { margin-bottom: .65rem; }
.asset-review-actions textarea { min-height: 4.5rem; }
.asset-reject-form { border-top: 1px dashed #d9a49a; padding-top: .8rem; }
.admin-hash code { display: block; margin-top: .25rem; overflow-wrap: anywhere; font-size: .78rem; }
.admin-events { margin: 0; padding-left: 1.2rem; }
.admin-events li { margin-bottom: .8rem; }
.admin-events code { overflow-wrap: anywhere; }

@media (max-width: 800px) {
  .admin-header { display: block; }
  .admin-logout { margin: 1rem 0 0; }
  .admin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-meta-grid, .admin-decision-grid { grid-template-columns: 1fr; }
  .admin-search > div { grid-template-columns: 1fr; }
  .admin-search button, .admin-search .button-link { width: 100%; }
}
@media (max-width: 620px) {
  .brand { width: 126px; max-width: 38vw; }
  .grid.two { grid-template-columns: 1fr; }
  .grid.two span { display: none; }
  .admin-summary { grid-template-columns: 1fr 1fr; }
  .admin-definition-list { grid-template-columns: 1fr; gap: .2rem; }
  .admin-definition-list dd { margin-bottom: .65rem; }
}
@media print { .poster { margin: 0; } @page { size: A4; margin: 0; } }

.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding-bottom: 4rem; margin: 0; }

.mail-notice {
  max-width: 780px;
  margin: 0 auto 1.5rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--brand-orange);
  border-radius: 12px;
  background: #fff7e8;
  color: #684b14;
  text-align: left;
}
.mail-notice strong { display: block; margin-bottom: .35rem; color: #9a5d00; }
.mail-notice p { margin: 0; line-height: 1.5; }
.choice-card { background: var(--white); border: 1px solid var(--line); border-top: 7px solid var(--brand-green); border-radius: 18px; padding: clamp(1.3rem, 4vw, 2rem); box-shadow: 0 18px 50px rgba(37, 42, 38, .08); display: flex; flex-direction: column; }
.choice-card-game { border-top-color: var(--brand-orange); }
.choice-card-game .button-link { background: var(--brand-orange); color: #251600; }
.choice-card-game .button-link:hover { background: var(--brand-green); color: #17200f; }
.choice-icon { font-size: 2.8rem; line-height: 1; margin-bottom: .8rem; }
.choice-card h2 { margin: .2rem 0 .7rem; font-family: var(--font-club); color: var(--brand-brown); font-size: clamp(1.25rem, 3vw, 1.65rem); }
.choice-card p { flex: 1; line-height: 1.55; color: var(--muted); }
.choice-card .button-link { margin-top: 1rem; }
.upload-hero h1 { color: var(--brand-green); }
.event-date { color: var(--ink); font-weight: 700; }
.game-hero h1 { color: var(--brand-orange); }
.game-card { border-top-color: var(--brand-orange); }
.game-card button { background: var(--brand-orange); color: #251600; }
.game-card button:hover { background: var(--brand-green); color: #17200f; }
.game-card legend { color: var(--brand-orange); }
.game-card .file-picker { border-color: var(--brand-orange); background: #fff5e6; }
.game-card .check input { accent-color: var(--brand-orange); }
@media (max-width: 620px) { .choice-grid { grid-template-columns: 1fr; } }
