/* Startseite für nicht eingeloggte Besucher (siehe public/js/platform.js renderLanding()).
   Nutzt ausschließlich Tokens aus tokens.css — kein eigenes Farbschema. */

.landing{max-width:640px;margin:0 auto;width:100%;}

.landing-eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);margin:28px 0 10px;}
.landing-hero h1{font-size:1.7rem;line-height:1.2;margin:0 0 10px;}
.landing-hero p{color:var(--text-dim);line-height:1.55;margin:0 0 20px;max-width:46ch;}

.landing-about{padding:18px 0 26px;border-bottom:1px solid var(--border-soft);}
.landing-about h2{font-size:1.05rem;margin:0 0 8px;}
.landing-about p{color:var(--text-dim);line-height:1.6;margin:0;max-width:58ch;}

.landing-feature{padding:28px 0;border-bottom:1px solid var(--border-soft);}
.landing-tag{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.1em;padding:3px 9px;border-radius:999px;margin-bottom:8px;}
.landing-feature.prep .landing-tag{background:var(--olive-bg);color:var(--olive);}
.landing-feature.hive .landing-tag{background:var(--purple-bg);color:var(--purple);}
.landing-feature.transfer .landing-tag{background:var(--amber-bg);color:var(--amber);}
.landing-feature h3{font-size:1.2rem;margin:0 0 6px;}
.landing-feature .lead{color:var(--text-dim);line-height:1.6;margin:0 0 14px;max-width:56ch;}
.landing-feature ul{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:6px;}
.landing-feature li{font-size:.87rem;display:flex;gap:8px;align-items:flex-start;line-height:1.45;}
.landing-feature li .chk{flex-shrink:0;margin-top:.15em;}
.landing-feature.prep .chk{color:var(--olive);}
.landing-feature.hive .chk{color:var(--purple);}
.landing-feature.transfer .chk{color:var(--amber);}

/* Nachgebaute App-Ausschnitte — jede Steuerung trägt das native disabled-Attribut
   (nicht nur optisch), damit niemand das mit dem echten Buchungs-/Bewerbertool
   verwechseln kann. */
.landing-demo{position:relative;padding-top:16px;}
.landing-preview-tag{
  position:absolute;top:10px;right:10px;font-size:.62rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-faint);
  border:1px solid var(--border-soft);
}

.landing-daytabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.landing-daypill{font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:999px;background:var(--surface-2);color:var(--text-faint);border:1px solid var(--border-soft);}
.landing-daypill.active{background:var(--olive-bg);color:var(--olive);border-color:transparent;}

.landing-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-bottom:16px;}
.landing-field label{display:block;font-size:.7rem;font-weight:600;color:var(--text-dim);margin-bottom:3px;}
.landing-field input, .landing-field select{
  width:100%;min-height:36px;padding:0 10px;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--border);color:var(--text);font:inherit;font-size:.86rem;
}
.landing-field input:disabled, .landing-field select:disabled{opacity:1;cursor:default;color:var(--text-dim);}

.landing-slotgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;}
@media (min-width:480px){ .landing-slotgrid{grid-template-columns:repeat(6,1fr);} }
.landing-slot{
  min-height:32px;border-radius:var(--r-sm);font-size:.76rem;font-weight:600;
  background:transparent;border:1px solid var(--olive);color:var(--olive);cursor:not-allowed;
}
.landing-slot.taken{background:var(--surface-3);border-color:var(--border-soft);color:var(--text-faint);}
.landing-slot-more{font-size:.72rem;color:var(--text-faint);margin:0;}

.landing-grouphead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:6px 0 14px;flex-wrap:wrap;}
.landing-grouphead .gname{font-size:1.05rem;font-weight:700;}
.landing-grouphead .gsub{font-size:.78rem;color:var(--text-dim);}
.landing-quota{font-size:.76rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--amber-bg);color:var(--amber);white-space:nowrap;}

.landing-roster-scroll{overflow-x:auto;}
.landing-roster{width:100%;border-collapse:collapse;font-size:.82rem;}
.landing-roster th{text-align:left;padding:6px 8px;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);border-bottom:1px solid var(--border-soft);white-space:nowrap;}
.landing-roster td{padding:7px 8px;border-bottom:1px solid var(--border-soft);white-space:nowrap;font-variant-numeric:tabular-nums;}
.landing-roster tr:last-child td{border-bottom:none;}
.landing-type-pill{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:999px;}
.landing-type-pill.invite{background:var(--amber-bg);color:var(--amber);}
.landing-type-pill.free{background:var(--surface-3);color:var(--text-faint);}
.landing-status-new{color:var(--text-faint);}
.landing-status-sent{color:var(--text-dim);}
.landing-status-ok{color:var(--olive);font-weight:600;}
.landing-status-declined{color:var(--danger);}

.landing-seo{padding:28px 0 10px;}
.landing-seo h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin:0 0 10px;}
.landing-seo p{font-size:.82rem;line-height:1.7;color:var(--text-dim);margin:0;max-width:62ch;}

/* Der Abstand vor dem Impressum-Link ist Absicht: er soll auch am Desktop, wenn
   der gesamte Text bereits sichtbar ist, immer ein zusätzliches Scrollen erfordern. */
.landing-footer-spacer{height:34vh;}
.landing-footer{display:flex;justify-content:center;padding:18px 0 26px;}
.landing-impressum-link{font-size:.7rem;color:var(--text-faint);text-decoration:none;border-bottom:1px dotted transparent;background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;font-family:inherit;padding:0;}
.landing-impressum-link:hover{color:var(--text-dim);border-bottom-color:var(--text-faint);}
.landing-impressum-body{white-space:pre-wrap;line-height:1.6;font-size:.9rem;color:var(--text-dim);}
