:root{font-size:62.5%;--gold:#c2a348;--glass:rgba(255,255,255,.64)}
*{box-sizing:border-box}
html{margin:0;padding:0;background:url("../img/hintergrund.jpg") no-repeat center center fixed;background-size:cover}
body{margin:0;padding:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;color:var(--gold);overflow-x:hidden;display:flex;align-items:center;justify-content:center}

/* STARTSEITE – freistehendes Standardlayout ohne Hintergrundrechteck. */
.masters-home{width:min(90vw,1290px);height:760px;margin:0 auto;display:grid;grid-template-columns:minmax(500px,600px) minmax(300px,350px) 250px;gap:0;align-items:center;padding:20px;background:transparent;box-shadow:none}
.home-left,.home-year-wheel{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.home-left{height:720px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center}

#masters-menu{width:100%;background:transparent;padding:0;margin:0 0 18px;position:relative;z-index:2}
#masters-menu ul{list-style:none;margin:0 auto;padding:0;display:flex;justify-content:center;gap:6px}
#masters-menu li{padding:0}
#masters-menu a{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:110px;height:44px;padding:8px 10px;border:1px solid var(--masters-dark-green);border-radius:9px;background:var(--masters-dark-green);color:var(--masters-light-green);font-family:var(--masters-font-family,Arial,Helvetica,sans-serif);font-size:17px;line-height:1.15;font-weight:700;text-transform:none;text-decoration:none;white-space:nowrap;cursor:pointer;overflow:hidden;box-shadow:0 4px 11px rgba(0,0,0,.34);transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
#masters-menu a::after{content:"";position:absolute;left:50%;bottom:7px;width:0;height:2px;border-radius:2px;background:currentColor;transform:translateX(-50%);transition:width .22s ease}
#masters-menu a:hover{background:var(--masters-green);border-color:var(--masters-green);color:#fff;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.46)}
#masters-menu a:hover::after{width:calc(100% - 32px)}
#masters-menu a:active{background:var(--masters-dark-green);border-color:var(--masters-dark-green);color:#fff;transform:translateY(1px);box-shadow:0 3px 8px rgba(0,0,0,.28)}

/* Bewährte kleinere Logo-Darstellung. */
.logo-panel{width:100%;background:transparent;display:flex;align-items:center;justify-content:center;padding:12px 0 8px;transform:none}
.masters-logo{display:block;width:min(48%,270px);height:auto;max-width:270px}

/* Spruch mit deutlichem Abstand unter dem Logo. */
.quote-panel{width:100%;min-height:0;background:transparent;display:flex;align-items:flex-start;justify-content:center;padding:38px 52px 0}
.quote-panel h1{margin:0;color:var(--masters-dark-green);font-family:var(--masters-font-family,Arial,Helvetica,sans-serif);font-size:22px;line-height:1.7;text-transform:uppercase;font-weight:700;max-width:520px;text-align:center}

/* Filmstrip: vertikaler, kontinuierlicher Filmstreifen. Die Perforation gehört zum gesamten Strip
   und darf daher NICHT an den einzelnen Bildern neu beginnen. */
.filmstrip-panel{height:720px;display:flex;align-items:center;justify-content:center;background:transparent;padding-top:24px}
.filmstrip{width:100%;max-width:330px;height:720px;overflow:hidden;position:relative;background:#000}
.filmstrip-track{position:absolute;left:0;top:0;width:100%;will-change:transform}
.film-frame{position:relative;display:block;width:100%;padding:0 31px 10px;text-decoration:none;background:#000}
.film-image-wrap{display:block;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#222;border-radius:10px !important}
.film-image-wrap img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0 !important}
/* Kontinuierliche Perforation: schwarzer Filmrand mit weißen Lochungen links/rechts.
   Lochabstand 64px; die Lochung läuft über den gesamten sichtbaren Filmstreifen,
   unabhängig von den Bildwechseln. */
.film-perf{position:absolute;top:-64px;bottom:-64px;width:31px;pointer-events:none;z-index:6;background:#000;overflow:visible;will-change:transform}
.film-perf-left{left:0}
.film-perf-right{right:0}
.film-perf-hole{position:absolute;left:5px;right:5px;top:8px;height:16px;background:#fff;border-radius:4px;box-shadow:0 41px 0 #fff,0 82px 0 #fff,0 123px 0 #fff,0 164px 0 #fff,0 205px 0 #fff,0 246px 0 #fff,0 287px 0 #fff,0 328px 0 #fff,0 369px 0 #fff,0 410px 0 #fff,0 451px 0 #fff,0 492px 0 #fff,0 533px 0 #fff,0 574px 0 #fff,0 615px 0 #fff,0 656px 0 #fff,0 697px 0 #fff,0 738px 0 #fff,0 779px 0 #fff,0 820px 0 #fff}
/* Weiße Trennlinie zwischen den einzelnen Bildern. */
.film-frame::after{content:none}

.home-year-wheel{height:720px;display:flex;align-items:center;justify-content:center}
.year-wheel-box{width:250px;text-align:center;font-family:Arial,Helvetica,sans-serif}
.mw-current{color:var(--gold);font-size:28px;font-weight:700;text-transform:uppercase;margin-bottom:8px}
.mw-wheel-wrap{width:250px;height:294px;position:relative}
.mw-wheel{height:294px;overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none}
.mw-track{position:absolute;left:0;top:0;width:100%;will-change:transform}
.mw-item{height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none}.mw-item:focus-visible .mw-year{box-shadow:0 0 0 2px #fff inset}
.mw-year{width:calc(100% - 50px);height:42px;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#fff;font-size:20px;font-weight:700;opacity:.2;text-decoration:none}
.mw-item.active .mw-year{width:100%;opacity:1}
.mw-item.near .mw-year{width:calc(100% - 20px);opacity:.5}

@media (max-width:1200px){
  .masters-home{width:96vw;height:auto;grid-template-columns:minmax(430px,1fr) 300px 220px}
  .home-left,.home-year-wheel{height:720px}
  .quote-panel{padding:45px 42px}.quote-panel h1{font-size:2.35rem}
  .filmstrip{max-width:300px}.film-frame{flex-basis:138px}
  .year-wheel-box,.mw-wheel-wrap{width:220px}.mw-wheel{height:294px}
}
@media (max-width:900px){
  html{background-attachment:scroll}
  body{display:block}
  .masters-home{width:100%;height:auto;display:flex;flex-direction:column;align-items:stretch;padding:16px}
  .home-left,.home-year-wheel{height:auto;min-height:auto}
  #masters-menu ul{gap:18px;padding:0 20px}
  #masters-menu a{font-size:1.6rem}
  .logo-panel{padding:25px 0 32px}.masters-logo{width:210px}
  .quote-panel{min-height:auto;padding:36px 30px}.quote-panel h1{font-size:2.1rem;line-height:1.7}
  .filmstrip-panel{height:420px;padding:20px 0}
  .filmstrip{height:220px;max-width:100%}
  .home-year-wheel{padding:28px 0 40px;background:transparent}
}
@media (max-width:520px){
  /* iPhone: oberen Bereich kompakter machen, damit der Filmstrip weiter oben beginnt. */
  #masters-menu{
    padding:0;
    margin:0 0 10px;
  }
  #masters-menu ul{
    justify-content:space-between;
    gap:4px;
    padding:0 6px;
  }
  #masters-menu a{
    width:calc((100vw - 28px)/3);
    min-width:0;
    height:40px;
    padding:6px 4px;
    font-size:1.35rem;
  }

  /* Logo näher an die Navigation. */
  .logo-panel{
    padding:6px 0 8px;
    transform:none;
  }
  .masters-logo{width:190px}

  /* Spruch direkt unter dem Logo und insgesamt kompakter. */
  .quote-panel{
    min-height:auto;
    padding:18px 24px 12px;
  }
  .quote-panel h1{
    font-size:1.8rem;
    line-height:1.45;
  }

  /* Filmstrip: exakt die bereits bewährte Breite/Höhe beibehalten. */
  .filmstrip-panel{
    height:540px;
    padding:20px 0;
  }
  .filmstrip{
    width:200px;
    max-width:200px;
    height:480px;
  }
  .film-frame{padding:0 18px 8px}
  .film-image-wrap{border-radius:6px !important}

  /* iPhone: Perforation nicht mehr per requestAnimationFrame verschieben.
     Der Parent bleibt ruhig; nur das Lochmuster läuft per CSS-Animation.
     Das reduziert die laufenden JS-Repaints auf iOS erheblich. */
  .film-perf{
    width:18px;
    transform:none !important;
    will-change:auto;
    -webkit-backface-visibility:hidden;
    backface-visibility:hidden;
  }
  .film-perf-hole{
    left:3px;
    right:3px;
    top:6px;
    bottom:6px;
    height:auto;
    border-radius:3px;
    background:repeating-linear-gradient(
      to bottom,
      #fff 0, #fff 10px,
      transparent 10px, transparent 35px
    );
    background-position:0 0;
    background-repeat:repeat-y;
    box-shadow:none;
    animation:filmPerfScroll .833333s linear infinite;
    will-change:background-position;
  }
  .film-perf-left{left:0}
  .film-perf-right{right:0}

  @keyframes filmPerfScroll{
    from{background-position:0 0}
    to{background-position:0 -35px}
  }
}


/* ============================================================
   MasterS STANDARD-DESIGN V1
   Zentrale Typografie, Farben und Standard-Komponenten
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap");

/*
 * MasterS – Zentrales Standard-Design V1
 *
 * Zentrale Designbasis für die gesamte MasterS-Website.
 * Bei der Startseite werden hier ausschließlich Typografie,
 * Farben und standardisierte Interaktionen angepasst.
 * Funktion, Abmessungen und JavaScript der Startseite bleiben davon unberührt.
 */

:root {
    /* MasterS Farbpalette V1 */
    --masters-dark-green: #075B3A;
    --masters-green: #2F8060;
    --masters-light-green: #E8F3EE;
    --masters-page-bg: #F2F7F4;
    --masters-row-1: #DCEAE4;
    --masters-row-2: #EEF4F1;
    --masters-hover: #BFDCCF;
    --masters-text: #17382C;
    --masters-white: #FFFFFF;

    /* Typografie */
    --masters-font-family: "Roboto", Arial, Helvetica, sans-serif;
    --masters-font-size: 16px;
    --masters-line-height: 1.45;

    --masters-h1-size: 28px;
    --masters-h2-size: 23px;
    --masters-h3-size: 19px;

    /* Buttons */
    --masters-button-font-size: 17px;
    --masters-button-font-weight: 700;
    --masters-button-height: 44px;
    --masters-button-min-width: 110px;
    --masters-button-radius: 9px;
    --masters-button-transition: 180ms ease;
    --masters-focus: 0 0 0 3px rgba(47, 128, 96, 0.25);

    /* Formen */
    --masters-radius: 9px;
    --masters-small-radius: 6px;
    --masters-shadow: 0 2px 8px rgba(7, 91, 58, 0.12);
}

/*
 * STARTSEITE – ausschließlich Designanpassung.
 * Keine Regeln für .filmstrip, .film-frame, .film-image-wrap,
 * .film-perf oder deren Bilder: Der bewährte Filmstrip bleibt optisch
 * und funktional unangetastet.
 */
.masters-home {
    color: var(--masters-text);
    font-family: var(--masters-font-family);
}

/* Hauptnavigation: Standard-Buttondesign – nur Farbüberschreibung korrigiert. */
#masters-menu a {
    color: var(--masters-light-green);
    font-family: var(--masters-font-family);
}

#masters-menu a:hover {
    color: #fff;
    background: var(--masters-green);
    border-color: var(--masters-green);
    box-shadow: 0 6px 16px rgba(0,0,0,.30);
    transform: translateY(-1px);
}

#masters-menu a::after {
    background: currentColor;
}

/* Zitat */
.quote-panel h1 {
    color: var(--masters-dark-green);
    font-family: var(--masters-font-family);
    font-weight: 700;
}

/* Jahresrad – Funktion und Maße unverändert; nur Schrift/Farbe. */
.year-wheel-box {
    font-family: var(--masters-font-family);
}

.mw-current {
    color: var(--masters-dark-green);
    font-family: var(--masters-font-family);
}

.mw-year {
    background: var(--masters-dark-green);
    color: var(--masters-light-green);
    font-family: var(--masters-font-family);
}

.mw-item:focus-visible .mw-year {
    box-shadow: 0 0 0 2px var(--masters-light-green) inset;
}

/* Standard-Buttons für künftige MasterS-Seiten. */
.masters-button,
button.masters-button,
input[type="button"].masters-button,
input[type="submit"].masters-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: var(--masters-button-min-width);
    height: var(--masters-button-height);
    padding: 0 20px;
    border: 0;
    border-radius: var(--masters-button-radius);
    background: var(--masters-dark-green);
    color: var(--masters-light-green);
    font-family: var(--masters-font-family);
    font-size: var(--masters-button-font-size);
    font-weight: var(--masters-button-font-weight);
    line-height: 1;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
    transition: background-color var(--masters-button-transition),
                color var(--masters-button-transition),
                transform 90ms ease,
                box-shadow var(--masters-button-transition);
}

.masters-button::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 0;
    height: 2px;
    background: currentColor;
    transform: translateX(-50%);
    transition: width 220ms ease;
}

.masters-button:hover {
    background: var(--masters-green);
    color: var(--masters-white);
}

.masters-button:hover::after {
    width: calc(100% - 40px);
}

.masters-button:focus-visible {
    outline: none;
    box-shadow: var(--masters-focus);
}

.masters-button:active {
    transform: translateY(1px);
    background: var(--masters-dark-green);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.18);
}

.masters-button:disabled,
.masters-button[aria-disabled="true"] {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.masters-button:disabled::after,
.masters-button[aria-disabled="true"]::after {
    display: none;
}

.masters-button--secondary {
    background: var(--masters-green);
    color: var(--masters-light-green);
}

.masters-button--secondary:hover {
    background: var(--masters-dark-green);
}

.masters-button--light {
    background: var(--masters-light-green);
    color: var(--masters-dark-green);
}

.masters-button--light:hover {
    background: var(--masters-hover);
    color: var(--masters-dark-green);
}

.masters-button--danger {
    background: #8B2F2F;
    color: var(--masters-white);
}

.masters-button--danger:hover {
    background: #6F2222;
}

/* Tabellenstandard für kommende Seiten. */
.masters-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--masters-radius);
    background: var(--masters-white);
    color: var(--masters-text);
}

.masters-table th {
    padding: 11px 10px;
    background: var(--masters-dark-green);
    color: var(--masters-light-green);
    font-family: var(--masters-font-family);
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    vertical-align: middle;
}

.masters-table td {
    padding: 10px;
    font-family: var(--masters-font-family);
    font-size: 16px;
    text-align: center;
    vertical-align: middle;
}

.masters-table tbody tr:nth-child(odd) { background: var(--masters-row-1); }
.masters-table tbody tr:nth-child(even) { background: var(--masters-row-2); }
.masters-table tbody tr:hover { background: var(--masters-hover); }

/* Formularelemente für kommende Seiten. */
.masters-input,
.masters-select,
.masters-textarea,
input.masters-input,
select.masters-select,
textarea.masters-textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--masters-green);
    border-radius: var(--masters-small-radius);
    background: var(--masters-white);
    color: var(--masters-text);
    font: inherit;
}

.masters-input:focus,
.masters-select:focus,
.masters-textarea:focus {
    outline: none;
    border-color: var(--masters-dark-green);
    box-shadow: var(--masters-focus);
}

@media (max-width: 700px) {
    :root {
        --masters-h1-size: 24px;
        --masters-h2-size: 21px;
        --masters-h3-size: 18px;
        --masters-button-height: 46px;
    }
}

/* Touch-Geräte: keine Hover-Animation erzwingen; Active bleibt sichtbar. */
@media (hover: none) and (pointer: coarse) {
    .masters-button:hover {
        background: var(--masters-dark-green);
        color: var(--masters-light-green);
    }

    .masters-button:hover::after { width: 0; }

    .masters-button:active {
        background: var(--masters-green);
        color: var(--masters-white);
        transform: translateY(1px);
    }
}


/* MasterS Jahresseiten-Variablen – ausschließlich für .jahresseite-Regeln. */
:root {
    --ms-green-dark: #075B3A;
    --ms-green-medium: #2F8060;
    --ms-green-light: #BFDCCF;
    --ms-green-pale: #E8F3EE;
    --ms-page-bg: #F2F7F4;
    --ms-table-row-1: #DCEAE4;
    --ms-table-row-2: #EEF4F1;
    --ms-text: #17382C;
    --ms-muted: #587267;
    --ms-border: #C9DAD3;
    --ms-white: #ffffff;
    --ms-black: #000000;
    --ms-surface: rgba(255,255,255,.64);
    --ms-surface-solid: #ffffff;
    --ms-overlay: rgba(7,91,58,.92);
    --ms-font: "Roboto", Arial, Helvetica, sans-serif;
    --ms-font-size: 16px;
    --ms-line-height: 1.5;
    --ms-heading-weight: 700;
    --ms-button-width: 110px;
    --ms-button-height: 44px;
    --ms-button-radius: 9px;
    --ms-space-1: 4px;
    --ms-space-2: 8px;
    --ms-space-3: 12px;
    --ms-space-4: 16px;
    --ms-space-5: 24px;
    --ms-space-6: 32px;
    --ms-radius-sm: 6px;
    --ms-radius-md: 9px;
    --ms-radius-lg: 12px;
    --ms-shadow: 0 10px 30px rgba(0,0,0,.20);
    --ms-focus: 0 0 0 2px #fff, 0 0 0 4px var(--ms-green-medium);
    --ms-transition: .18s ease;
}

.jahresseite .container-colums-sub{box-sizing:border-box;width:min(1180px,calc(100vw - 32px));margin:32px auto;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;background:transparent}
.jahresseite .colum-1,.jahresseite .colum-3,.jahresseite .colum-1 .content,.jahresseite .colum-3 .container,.jahresseite .helper .colum,.jahresseite .helper2 .colum{min-height:0;background:transparent!important}
/* Navigation: exakt dasselbe Buttonsystem wie die Aktionsbuttons. */
.jahresseite #menu{margin:0 0 24px;padding:0;background:transparent!important}
.jahresseite #menu ul{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.jahresseite #menu ul li{margin:0;padding:0}
.jahresseite #menu ul li a{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--ms-button-width);min-width:var(--ms-button-width);height:var(--ms-button-height);min-height:var(--ms-button-height);padding:8px 16px;border:1px solid var(--ms-green-dark);border-radius:var(--ms-button-radius);background:var(--ms-green-dark)!important;color:var(--ms-green-pale)!important;box-shadow:0 4px 11px rgba(0,0,0,.34);font-family:var(--ms-font);font-size:17px;font-weight:700;line-height:1.15;text-align:center;text-decoration:none!important;cursor:pointer;overflow:hidden;transition:background-color var(--ms-transition),color var(--ms-transition),border-color var(--ms-transition),transform var(--ms-transition),box-shadow var(--ms-transition);-webkit-tap-highlight-color:transparent}
.jahresseite #menu ul li a:after,.jahresseite .submenu a:after{content:"";position:absolute;left:50%;bottom:7px;width:0;height:2px;border-radius:2px;background:currentColor;transform:translateX(-50%);transition:width .22s ease}
.jahresseite #menu ul li a:hover,.jahresseite #menu ul li a:focus-visible{background:var(--ms-green-medium)!important;border-color:var(--ms-green-medium);color:var(--ms-white)!important;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.46)}
.jahresseite #menu ul li a:hover:after,.jahresseite #menu ul li a:focus-visible:after{width:calc(100% - 32px)}
.jahresseite #menu ul li a:active{background:var(--ms-green-dark)!important;border-color:var(--ms-green-dark);color:var(--ms-white)!important;transform:translateY(1px);box-shadow:0 3px 8px rgba(0,0,0,.28)}
.jahresseite #menu ul li a:focus-visible{outline:none;box-shadow:var(--ms-focus)}
/* Nur Golfplatz-Logos bzw. später ggf. turnierspezifische Sonderlogos; kein allgemeines MasterS-Logo. */
.jahresseite .logo{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px;margin:0 0 24px;padding:0;background:transparent!important}.jahresseite .logo img{display:block;width:auto;max-width:min(220px,45%);height:auto;max-height:120px;object-fit:contain;margin:0;padding:0;background:transparent}
.jahresseite .turnier-info{margin:0 0 16px;color:var(--ms-green-dark);font-family:var(--ms-font);font-size:clamp(21px,2.4vw,28px);font-weight:700;line-height:1.2}.jahresseite .turnier-name,.jahresseite .turnier-datum{display:inline}.jahresseite .turnier-datum{margin-left:8px;font-weight:500}
.jahresseite .submenu{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px}.jahresseite .submenu a{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-button-width);min-width:var(--ms-button-width);height:var(--ms-button-height);box-sizing:border-box;padding:8px 16px;border:1px solid var(--ms-green-dark);border-radius:var(--ms-button-radius);background:var(--ms-green-dark);color:var(--ms-green-pale)!important;box-shadow:0 4px 11px rgba(0,0,0,.34);font-family:var(--ms-font);font-size:17px;font-weight:700;line-height:1.15;text-align:center;text-decoration:none!important;overflow:hidden;transition:background-color var(--ms-transition),color var(--ms-transition),border-color var(--ms-transition),transform var(--ms-transition),box-shadow var(--ms-transition);-webkit-tap-highlight-color:transparent}.jahresseite .submenu a:hover{background:var(--ms-green-medium);border-color:var(--ms-green-medium);color:var(--ms-white)!important;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.46)}.jahresseite .submenu a:hover:after,.jahresseite .submenu a:focus-visible:after{width:calc(100% - 32px)}.jahresseite .submenu a:active{background:var(--ms-green-dark);border-color:var(--ms-green-dark);transform:translateY(1px);box-shadow:0 3px 8px rgba(0,0,0,.28)}.jahresseite .submenu a:focus-visible{outline:none;box-shadow:var(--ms-focus)}
.jahresseite .header-balken{margin:16px 0 8px;padding:10px 14px;box-sizing:border-box;border-radius:var(--ms-radius-md);background:var(--ms-green-dark);color:var(--ms-green-pale);font-family:var(--ms-font);font-size:18px;font-weight:700;text-align:center}
/* Eingefrorene Teilnehmer-&-Platzierungen-Tabelle: Struktur/Funktion unverändert. */
.jahresseite .table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.jahresseite table.score{width:100%;border-collapse:collapse;color:var(--ms-text);font-family:var(--ms-font);background:transparent;table-layout:fixed}
.jahresseite table.score th,.jahresseite table.score td{box-sizing:border-box;text-align:center;vertical-align:middle;padding:0 5px}
.jahresseite table.score th{height:76px;vertical-align:bottom;padding:0 5px 10px}
.jahresseite table.score th .score-heading{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);transform-origin:center center;white-space:nowrap;text-align:center;vertical-align:bottom}
.jahresseite table.score th:nth-child(1){width:44px}
.jahresseite table.score th:nth-child(2){width:230px;text-align:left;vertical-align:bottom}
.jahresseite table.score th:nth-child(n+3){width:48px}
.jahresseite table.score th:nth-child(2) .score-heading{writing-mode:horizontal-tb;transform:none;text-align:left}
.jahresseite table.score td{height:34px;line-height:1.15}
.jahresseite table.score td:nth-child(2){text-align:left;white-space:nowrap}
.jahresseite table.score>tbody>tr:first-child{background:var(--ms-green-dark)}
.jahresseite table.score>tbody>tr:first-child th{color:var(--ms-green-pale);font-weight:700}
.jahresseite table.score>tbody>tr:not(:first-child):nth-child(even){background:var(--ms-table-row-1)}
.jahresseite table.score>tbody>tr:not(:first-child):nth-child(odd){background:var(--ms-table-row-2)}
.jahresseite table.score>tbody>tr:not(:first-child):hover{background:var(--ms-green-light)}
/* Jahresrad: vorhandene HTML-/JS-Struktur und Navigation bleiben unverändert; nur CSS zentralisiert. */
.jahresseite .masters-year-wheel{width:250px;margin:365px auto 0;text-align:center;font-family:var(--ms-font);background:transparent!important}.jahresseite .masters-year-current{margin-bottom:8px;color:var(--ms-green-dark);font-size:28px;font-weight:700;text-transform:uppercase;background:transparent!important}.jahresseite .masters-year-wheel-window{width:250px;height:294px;overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;background:transparent!important}.jahresseite .masters-year-wheel-window:active{cursor:grabbing}.jahresseite .masters-year-wheel-window,.jahresseite .masters-year-wheel-window *{-webkit-user-drag:none}.jahresseite .masters-year-track{position:absolute;left:0;top:0;width:100%;padding-top:126px;padding-bottom:126px;box-sizing:content-box;will-change:transform;background:transparent!important}.jahresseite .masters-year-item{height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;background:transparent!important}.jahresseite .masters-year-item:focus-visible .masters-year-link{box-shadow:var(--ms-focus)}.jahresseite .masters-year-link{position:relative;width:calc(100% - 50px);height:42px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:var(--ms-green-dark);color:var(--ms-green-pale);font-size:20px;font-weight:700;text-decoration:none;opacity:.22;cursor:pointer;transition:background-color var(--ms-transition),color var(--ms-transition),opacity var(--ms-transition)}.jahresseite .masters-year-item.active .masters-year-link{width:100%;opacity:1;background:var(--ms-green-dark);color:var(--ms-green-pale)}.jahresseite .masters-year-item.near .masters-year-link{width:calc(100% - 20px);opacity:.5}.jahresseite .masters-year-link:hover{background:var(--ms-green-medium);color:var(--ms-white)}
@media(max-width:850px){.jahresseite .container-colums-sub{width:calc(100vw - 20px);margin:10px auto;padding:14px;display:block}.jahresseite .colum-3{margin-top:28px}.jahresseite #menu ul{flex-wrap:wrap}.jahresseite .logo{justify-content:center}.jahresseite .logo img{max-width:46%;max-height:100px}.jahresseite .turnier-info{font-size:22px}.jahresseite .turnier-name,.jahresseite .turnier-datum{display:block}.jahresseite .turnier-datum{margin:4px 0 0}.jahresseite .submenu{justify-content:center}.jahresseite .masters-year-wheel{margin:28px auto 0}}
@media(max-width:520px){.jahresseite .container-colums-sub{width:calc(100vw - 12px);padding:8px}.jahresseite #menu ul{gap:4px}.jahresseite #menu ul li a{min-height:40px;padding:6px 9px;font-size:15px}.jahresseite .logo img{max-width:48%;max-height:84px}.jahresseite .turnier-info{font-size:20px}.jahresseite .submenu a{width:var(--ms-button-width);min-width:var(--ms-button-width)}.jahresseite .masters-year-wheel{width:250px;max-width:100%}}

/* V5: Mobile Zahlen-Spalten dreistellig sicher lesbar; Jahresrad am PC auf Höhe der ersten Datenzeile. */
@media(max-width:520px){
  .jahresseite table.score{font-size:13px;min-width:430px}
  .jahresseite table.score th{height:76px;padding:0 2px 10px}
  .jahresseite table.score th:nth-child(1){width:30px}
  .jahresseite table.score th:nth-child(2){width:175px}
  .jahresseite table.score th:nth-child(n+3){width:32px}
  .jahresseite table.score td{height:38px;padding:0 2px}
  .jahresseite table.score td:nth-child(2){padding-left:4px}
}

/* V6: Dynamische Hervorhebung von Sieger und letztem vollständig gespielten Teilnehmer.
   Die Ermittlung erfolgt in turnier.php; die Gestaltung bleibt zentral in diesem CSS. */
.jahresseite table.score>tbody>tr.master-sieger {
  background:var(--ms-green-dark);
  color:var(--ms-green-light);
  font-weight:700;
  border-top:2px solid var(--ms-green-light);
  border-bottom:2px solid var(--ms-green-light);
}
.jahresseite table.score>tbody>tr.master-sieger td {
  color:var(--ms-green-light);
  font-weight:700;
}
.jahresseite table.score>tbody>tr.letzter-gespielt {
  background:var(--ms-green-light);
  color:var(--ms-green-dark);
  font-weight:700;
  border-top:2px solid var(--ms-green-dark);
  border-bottom:2px solid var(--ms-green-dark);
}
.jahresseite table.score>tbody>tr.letzter-gespielt td {
  color:var(--ms-green-dark);
  font-weight:700;
}
/* Falls Sieger und letzter vollständig gespielter Teilnehmer identisch sind,
   bleibt die Siegerdarstellung eindeutig vorrangig. */
.jahresseite table.score>tbody>tr.master-sieger.letzter-gespielt {
  background:var(--ms-green-dark);
  color:var(--ms-green-light);
  border-top-color:var(--ms-green-light);
  border-bottom-color:var(--ms-green-light);
}
.jahresseite table.score>tbody>tr.master-sieger.letzter-gespielt td {
  color:var(--ms-green-light);
}

/* MasterS Jahresseite – gezielte Tabellenkorrektur 01.09.2026
   Auftrag: ausschließlich Desktop-Schrift/Spaltenbreiten sowie Platz-1-Zeile.
   Mobile Darstellung bleibt bis auf Platz 1 unverändert. */
@media screen and (min-width:851px){
  .jahresseite table.score th:nth-child(1){width:40px !important}
  .jahresseite table.score th:nth-child(2){width:190px !important}
  .jahresseite table.score th:nth-child(n+3){width:45px !important}

  .jahresseite table.score th .score-heading{
    font-size:15px !important;
  }
  .jahresseite table.score td{
    font-size:18px !important;
  }
}

/* Platz 1: Siegerdarstellung nur bei tatsächlich vollständig gespielten zwei Runden.
   Die PHP-Ausgabe setzt dafür die bestehende Klasse .master-sieger. */
.jahresseite table.score > tbody > tr.master-sieger{
  background:var(--masters-dark-green) !important;
  color:var(--masters-hover) !important;
  font-weight:700 !important;
  border-top:2px solid var(--masters-hover) !important;
  border-bottom:2px solid var(--masters-dark-green) !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  background:var(--masters-dark-green) !important;
  color:var(--masters-hover) !important;
  font-weight:700 !important;
  border-top:2px solid var(--masters-hover) !important;
  border-bottom:2px solid var(--masters-dark-green) !important;
}



/* Tabellenkopf – verbindliche Standarddarstellung
   PC und iPhone: hellgrüner Hintergrund, dunkelgrüne fette Schrift. */
.jahresseite table.score > tbody > tr:first-child > th{
  background:var(--ms-green-light) !important;
  color:var(--ms-green-dark) !important;
  font-weight:700 !important;
}
.jahresseite table.score > tbody > tr:first-child > th .score-heading{
  color:var(--ms-green-dark) !important;
  font-weight:700 !important;
}

/* Platz 1 – obere Rahmenlinie verbindlich dunkelgrün. */
.jahresseite table.score > tbody > tr.master-sieger,
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top-color:var(--ms-green-dark) !important;
}


/* Tabellenkopf – Korrektur nach Nutzerprüfung 02.09.2026
   Hintergrund = hellstes Tabellen-Grün, Schrift = dunkelgrün/fett.
   Obere Ecken links/rechts abgerundet wie der Titelblock. */
.jahresseite table.score > thead > tr:first-child > th,
.jahresseite table.score > tbody > tr:first-child > th{
  background:var(--masters-row-2) !important;
  color:var(--masters-dark-green) !important;
  font-weight:700 !important;
}
.jahresseite table.score > thead > tr:first-child > th:first-child,
.jahresseite table.score > tbody > tr:first-child > th:first-child{
  border-top-left-radius:var(--masters-radius) !important;
}
.jahresseite table.score > thead > tr:first-child > th:last-child,
.jahresseite table.score > tbody > tr:first-child > th:last-child{
  border-top-right-radius:var(--masters-radius) !important;
}
.jahresseite table.score > thead > tr:first-child > th .score-heading,
.jahresseite table.score > tbody > tr:first-child > th .score-heading{
  color:var(--masters-dark-green) !important;
  font-weight:700 !important;
}

/* Platz 1 – obere UND untere Rahmenlinie im mittleren MasterS-Grün. */
.jahresseite table.score > tbody > tr.master-sieger,
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top-color:var(--masters-green) !important;
  border-bottom-color:var(--masters-green) !important;
}

/* Nur am PC: Das Buch erhält geringfügig mehr Breite, damit der Text einzeilig bleibt.
   Mobile Buttonbreiten bleiben unverändert. */
@media screen and (min-width:851px){
  .jahresseite #menu ul li a{
    width:114px !important;
    min-width:114px !important;
  }
}


/* Platz 1 – stärkere Hervorhebung:
   weiße Schrift sowie deutlich stärkere weiße obere und untere Linie.
   Hintergrundfarbe der Siegerzeile bleibt unverändert. */
.jahresseite table.score > tbody > tr.master-sieger td,
.jahresseite table.score > tbody > tr.master-sieger td *{
  color:#fff !important;
  font-weight:700 !important;
}
.jahresseite table.score > tbody > tr.master-sieger{
  border-top:2px solid #fff !important;
  border-bottom:2px solid #fff !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top:2px solid #fff !important;
  border-bottom:2px solid #fff !important;
}


/* Platz 1 – Rahmenlinien auf 3 px verstärkt. */
.jahresseite table.score > tbody > tr.master-sieger{
  border-top:3px solid #fff !important;
  border-bottom:3px solid #fff !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top:3px solid #fff !important;
  border-bottom:3px solid #fff !important;
}


/* Platz 1 – weiterer Hervorhebungsversuch:
   Rahmenlinien 4 px, etwas größere Schrift und etwas mehr Zeilenhöhe. */
.jahresseite table.score > tbody > tr.master-sieger{
  border-top:4px solid #fff !important;
  border-bottom:4px solid #fff !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top:4px solid #fff !important;
  border-bottom:4px solid #fff !important;
  font-size:1.08em !important;
  line-height:1.25 !important;
  padding-top:7px !important;
  padding-bottom:7px !important;
}
.jahresseite table.score > tbody > tr.master-sieger td *{
  font-size:inherit !important;
}


/* Platz 1 – finale Verstärkung nach Nutzerprüfung:
   deutlich größere Schrift, 6 px weiße Linien und zusätzliche Zeilenhöhe. */
.jahresseite table.score > tbody > tr.master-sieger{
  border-top:6px solid #fff !important;
  border-bottom:6px solid #fff !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top:6px solid #fff !important;
  border-bottom:6px solid #fff !important;
  font-size:1.15em !important;
  line-height:1.30 !important;
  padding-top:9px !important;
  padding-bottom:9px !important;
}
.jahresseite table.score > tbody > tr.master-sieger td *{
  font-size:inherit !important;
  line-height:inherit !important;
}


/* Platz 1 – eindeutige Größenfestlegung:
   Siegertext muss sichtbar größer als die normalen Tabellenzeilen sein.
   Desktop: 21 px gegenüber 18 px Standard-Tabellenzeilen.
   Mobile: 18 px gegenüber der kleineren Standarddarstellung. */
.jahresseite table.score > tbody > tr.master-sieger{
  border-top:8px solid #fff !important;
  border-bottom:8px solid #fff !important;
}
.jahresseite table.score > tbody > tr.master-sieger td{
  border-top:8px solid #fff !important;
  border-bottom:8px solid #fff !important;
  font-size:18px !important;
  line-height:1.30 !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
}
.jahresseite table.score > tbody > tr.master-sieger td *{
  font-size:18px !important;
  line-height:inherit !important;
}
@media screen and (min-width:851px){
  .jahresseite table.score > tbody > tr.master-sieger td,
  .jahresseite table.score > tbody > tr.master-sieger td *{
    font-size:21px !important;
  }
}


/* Finale Tabellenanpassung nach Nutzerprüfung:
   1) normale Tabellenzeilen +2 px,
   2) abschließende Brutto-/Netto-Spalten immer fett,
   3) Siegerzeile an allen vier Außenecken wie der Titelbalken abgerundet.
   Die bereits bestätigte Sieger-Hervorhebung bleibt erhalten. */

/* Normale Tabellenzeilen: PC 18 -> 20 px. */
@media screen and (min-width:851px){
  .jahresseite table.score > tbody > tr:not(.master-sieger) td{
    font-size:20px !important;
  }
}

/* Normale Tabellenzeilen: iPhone 13 -> 15 px. */
@media screen and (max-width:520px){
  .jahresseite table.score > tbody > tr:not(.master-sieger) td{
    font-size:15px !important;
  }
}

/* Letzte beiden Spalten = Brutto / Netto: in ALLEN Tabellenzeilen fett. */
.jahresseite table.score > tbody > tr td:nth-child(9),
.jahresseite table.score > tbody > tr td:nth-child(10){
  font-weight:700 !important;
}

/* Siegerzeile: echte optische Rundung der vier Außenecken.
   clip-path wird verwendet, weil border-radius bei der bestehenden
   collapsed table sonst nicht zuverlässig sichtbar wird. */
.jahresseite table.score > tbody > tr.master-sieger td:first-child{
  border-top-left-radius:var(--masters-radius) !important;
  border-bottom-left-radius:var(--masters-radius) !important;
  clip-path:inset(0 round var(--masters-radius)) !important;
}
.jahresseite table.score > tbody > tr.master-sieger td:last-child{
  border-top-right-radius:var(--masters-radius) !important;
  border-bottom-right-radius:var(--masters-radius) !important;
  clip-path:inset(0 round var(--masters-radius)) !important;
}

/* Responsive Tabellenaufteilung – iPhone Hochformat / Querformat.
   PC-Darstellung bleibt unverändert. Die Hochformatbreite darf die Queransicht
   nicht beeinflussen; beide iPhone-Ausrichtungen erhalten daher eigene Regeln. */

/* iPhone Hochformat: mehr Platz für Name sowie Brutto/Netto.
   Die Tabelle bleibt horizontal scrollbar, damit keine Inhalte ineinander laufen. */
@media screen and (max-width:520px) and (orientation:portrait){
  .jahresseite .table-container{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .jahresseite table.score{
    min-width:656px !important;
    width:656px !important;
    table-layout:fixed;
  }
  .jahresseite table.score th:nth-child(1),
  .jahresseite table.score td:nth-child(1){width:40px !important}
  .jahresseite table.score th:nth-child(2),
  .jahresseite table.score td:nth-child(2){width:280px !important}
  .jahresseite table.score th:nth-child(n+3),
  .jahresseite table.score td:nth-child(n+3){width:42px !important}
  .jahresseite table.score td:nth-child(2){
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
  }
}

/* iPhone Querformat: ausreichend breite Zahlenspalten und wieder deutlich
   größere normale Tabellenzeilen; keine Übernahme der Hochformatbreiten. */
@media screen and (min-width:521px) and (max-width:850px) and (orientation:landscape){
  .jahresseite .table-container{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .jahresseite table.score{
    min-width:700px !important;
    width:700px !important;
    table-layout:fixed;
  }
  .jahresseite table.score th:nth-child(1),
  .jahresseite table.score td:nth-child(1){width:40px !important}
  .jahresseite table.score th:nth-child(2),
  .jahresseite table.score td:nth-child(2){width:250px !important}
  .jahresseite table.score th:nth-child(n+3),
  .jahresseite table.score td:nth-child(n+3){width:51px !important}
  .jahresseite table.score > tbody > tr:not(.master-sieger) td{
    font-size:20px !important;
  }
  .jahresseite table.score td:nth-child(2){
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
  }
}


/* 02.09.2026 18_XX_Uhr – Tabellenzeilen iPhone/Standardhöhe:
   Hochformat normale Schrift +2 px und alle normalen Zeilen auf die
   gleiche sichtbare Höhe wie die Siegerzeile gebracht. Querformat
   behält die bereits bestätigte Schriftgröße. */
@media screen and (max-width:520px) and (orientation:portrait){
  .jahresseite table.score > tbody > tr:not(.master-sieger){
    height:59px !important;
  }
  .jahresseite table.score > tbody > tr:not(.master-sieger) td{
    font-size:20px !important;
    line-height:1.30 !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
    height:59px !important;
    box-sizing:border-box !important;
  }
}

/* PC und iPhone Querformat: normale Zeilen bleiben in ihrer bestätigten
   Schriftgröße, erhalten aber die gleiche Zeilenhöhe wie der Sieger. */
@media screen and (min-width:521px){
  .jahresseite table.score > tbody > tr:not(.master-sieger){
    height:53px !important;
  }
  .jahresseite table.score > tbody > tr:not(.master-sieger) td{
    height:53px !important;
    box-sizing:border-box !important;
  }
}


/* MasterS VIDEO-Seite – Ergänzungen im zentralen Design */
.jahresseite.masters-video-page .masters-video-list{
  display:flex;flex-direction:column;gap:24px;width:100%;margin:8px 0 22px;
}
.jahresseite.masters-video-page .masters-video-card{
  width:100%;margin:0;padding:14px;border:1px solid rgba(194,163,72,.32);
  border-radius:var(--ms-radius-md);background:rgba(255,255,255,.20);
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.jahresseite.masters-video-page .masters-video-number{
  margin:0 0 10px;color:var(--ms-green-dark);font-size:18px;font-weight:700;
}
.jahresseite.masters-video-page .masters-video-card video{
  display:block;width:100%;max-width:960px;height:auto;max-height:70vh;margin:0 auto;
  border-radius:var(--ms-radius-sm);background:#000;box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.jahresseite.masters-video-page .masters-video-empty{margin:14px 0 24px;color:var(--ms-text);font-size:17px}
.jahresseite.masters-video-page .masters-video-back{margin:8px 0 10px;display:flex;justify-content:flex-start}
.jahresseite.masters-video-page .masters-video-back a{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-width:var(--ms-button-width);min-height:var(--ms-button-height);padding:8px 16px;
  border:1px solid var(--ms-green-dark);border-radius:var(--ms-button-radius);
  background:var(--ms-green-dark);color:var(--ms-green-pale)!important;
  box-shadow:0 4px 11px rgba(0,0,0,.34);font-family:var(--ms-font);font-size:17px;font-weight:700;
  text-decoration:none!important;transition:background-color var(--ms-transition),color var(--ms-transition),border-color var(--ms-transition),transform var(--ms-transition),box-shadow var(--ms-transition);
}
.jahresseite.masters-video-page .masters-video-back a:hover,.jahresseite.masters-video-page .masters-video-back a:focus-visible{
  background:var(--ms-green-medium);border-color:var(--ms-green-medium);color:var(--ms-white)!important;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.46);outline:none;
}
.jahresseite.masters-video-page .submenu a.active{background:var(--ms-green-medium);border-color:var(--ms-green-medium);color:var(--ms-white)!important}
@media(max-width:850px){
  .jahresseite.masters-video-page .masters-video-card{padding:10px}
  .jahresseite.masters-video-page .masters-video-number{font-size:17px}
  .jahresseite.masters-video-page .masters-video-back{justify-content:center}
}


/* iPhone Scroll-Anchoring Test 01 */
@media screen and (max-width:520px){
  .jahresseite{
    overflow-anchor:none;
  }
  .jahresseite *{
    overflow-anchor:none;
  }
}
