@import url('/api/public/design.css');
:root{--g:var(--dark,#075c43);--g2:var(--primary,#347F58);--light:#eef6f2;--line:#dbe5df;--text:var(--ink,#16342b)}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#f5f8f6;color:var(--text)}
header{background:white;border-bottom:1px solid var(--line);padding:12px 28px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 12px #0000000a}
header img{width:72px;height:72px;object-fit:contain}header h1{margin:0;color:var(--g);font-size:30px}header p{margin:2px 0;color:#65736e;letter-spacing:2px;font-weight:700}
main{max-width:1450px;margin:auto;padding:22px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 8px #0000000a}
.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.hero img{width:100px}.hero h2{font-size:30px;margin:0;color:var(--g)}
.actions{display:flex;gap:12px;flex-wrap:wrap}.actions button,.navbtn{border:0;border-radius:10px;padding:14px 18px;font-size:16px;font-weight:750;cursor:pointer}
.primary,.player{background:linear-gradient(135deg,var(--g2),var(--g));color:white}.secondary{background:#e8f1ed;color:var(--g)}.danger{background:#a63b3b;color:white}
.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.fieldcard{border-top:6px solid var(--g2);position:relative}.fieldhead{display:flex;align-items:center;justify-content:space-between}.fieldhead img{width:64px}.live{color:#0b9b55;font-weight:800}
.miniScore{font-size:44px;font-weight:850;text-align:center;margin:18px;color:var(--g)}.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#e7f1ec;font-size:12px;font-weight:700}
.score{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;text-align:center}.score .pts{font-size:68px;font-weight:900;color:var(--g)}
.calc{font-size:14px;color:#667}.players{display:grid;grid-template-columns:1fr 1fr;gap:16px}.playergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.player{border:0;border-radius:10px;padding:16px;font-size:17px;font-weight:800}
.confirm{display:grid;grid-template-columns:1fr 1fr;gap:16px}.confirm input{width:100%;padding:13px;border:1px solid #ccd8d2;border-radius:8px;font-size:16px}.hidden{display:none}
.brand{text-align:center}.brand img{max-width:160px}.brandline{font-weight:800;color:var(--g)}
.games p{padding:10px 4px;margin:0;border-bottom:1px solid #edf1ef}.topnav{margin-left:auto;display:flex;gap:8px}.topnav a{text-decoration:none;color:var(--g);font-weight:750;padding:9px 12px;border-radius:8px;background:#edf5f1}
@media(max-width:800px){header{padding:9px 14px}header img{width:54px;height:54px}header h1{font-size:20px}.fields,.players,.confirm{grid-template-columns:1fr}.score .pts{font-size:48px}.playergrid{grid-template-columns:repeat(2,1fr)}.topnav{display:none}}

/* V15 Turniertag-Feinschliff */
button,.btn,a.primary,a.secondary{min-height:46px}
button{touch-action:manipulation}
@media(max-width:900px){
  button,.btn{font-size:16px}
  .player{min-height:64px!important;font-size:18px!important}
}
.v15-status{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-weight:800;font-size:13px}
.v15-ok{background:#e4f5eb;color:#17653e}
.v15-warn{background:#fff1c7;color:#795700}
.v15-bad{background:#ffe2df;color:#9c2c23}

/* V16.4 – PIN confirmation as app-style push/modal */
.pin-modal:not(.hidden){
 position:fixed!important; inset:0!important; z-index:9999!important;
 width:auto!important; max-width:none!important; margin:0!important;
 border-radius:0!important; border:0!important;
 background:rgba(13,30,23,.72)!important;
 display:flex!important; flex-direction:column!important;
 justify-content:center!important; align-items:center!important;
 padding:22px!important; overflow:auto!important;
 box-shadow:none!important;
}
.pin-modal:not(.hidden) > *{
 width:min(680px,calc(100vw - 36px));
 box-sizing:border-box;
}
.pin-modal-head{
 background:#347F58; color:white; padding:20px 22px 14px;
 border-radius:22px 22px 0 0; display:flex; align-items:center; gap:14px;
 box-shadow:0 18px 55px rgba(0,0,0,.25);
}
.pin-push-icon{
 width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.16);
 display:grid;place-items:center;font-size:27px;flex:0 0 auto;
}
.pin-eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;opacity:.85}
.pin-modal:not(.hidden) > .pin-modal-head ~ *{
 background:white; padding-left:22px!important; padding-right:22px!important;
 margin-top:0!important; margin-bottom:0!important;
}
.pin-modal:not(.hidden) > :last-child{
 padding-bottom:22px!important;border-radius:0 0 22px 22px;
 box-shadow:0 18px 55px rgba(0,0,0,.25);
}
.pin-modal input[type=password]{
 font-size:28px!important; letter-spacing:.28em; text-align:center;
 min-height:60px; border:2px solid #cddbd4; border-radius:14px;
}
.pin-modal button{min-height:58px!important;font-size:18px!important;font-weight:900!important}
.pin-modal .confirm{gap:14px!important}
@media(max-width:700px){
 .pin-modal{padding:12px!important}
 .pin-modal:not(.hidden)>*{width:calc(100vw - 24px)}
 .pin-modal .confirm{grid-template-columns:1fr!important}
}

/* V16.11 Hilfealarm */
.help-button{width:100%;min-height:58px!important;background:#c62828!important;color:#fff!important;border:0!important;border-radius:14px!important;font-size:18px!important;font-weight:900!important;box-shadow:0 5px 15px rgba(198,40,40,.25)}
.help-button.help-sent{background:#347F58!important}
.help-feedback{margin-top:7px;padding:9px 12px;border-radius:10px;background:#e4f5eb;color:#17653e;font-weight:800;text-align:center}
.help-overlay{position:fixed;inset:0;background:rgba(18,18,18,.72);z-index:20000;display:flex;align-items:center;justify-content:center;padding:20px}
.help-alert-card{width:min(620px,calc(100vw - 30px));background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.4);animation:helpPulse .75s ease-in-out infinite alternate}
.help-alert-head{background:#c62828;color:#fff;padding:22px;text-align:center}
.help-alert-head .big{font-size:48px}.help-alert-head h1{margin:4px 0;font-size:32px}
.help-alert-body{padding:22px;text-align:center;font-size:20px}
.help-alert-body button{width:100%;margin-top:14px;background:#347F58!important;color:white!important;font-size:18px!important;font-weight:900!important}
@keyframes helpPulse{from{transform:scale(1)}to{transform:scale(1.012)}}

/* V16.17 – Hilfe bei Trainer-PIN */
.pin-help-button{
 position:absolute!important;right:14px!important;top:14px!important;
 min-width:112px!important;min-height:44px!important;padding:9px 13px!important;
 border:0!important;border-radius:12px!important;background:#c62828!important;
 color:#fff!important;font-size:15px!important;font-weight:900!important;
 box-shadow:0 4px 12px rgba(198,40,40,.25)!important;z-index:50!important
}
.pin-help-button.help-sent{background:#347F58!important}
@media(max-width:600px){
 .pin-help-button{right:10px!important;top:10px!important;min-width:96px!important;font-size:13px!important}
}

/* V16.20 – Team-PIN bearbeiten */
.pin-edit-btn{margin-left:8px!important;padding:6px 10px!important;border-radius:9px!important;background:#edf5f1!important;color:#17653e!important;border:1px solid #bfd8cb!important;font-weight:800!important}

.confirmed-games-card{border-top:4px solid #347F58}
.confirmed-game-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid #e5ebe8}
.confirmed-game-row:last-child{border-bottom:0}.confirmed-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v22-edit{background:#edf5f1!important;color:#17653e!important;border:1px solid #bfd8cb!important;font-weight:800!important}
.v22-tournify{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;background:#eef4fb;font-weight:800;font-size:13px}
.v22-tournify input{width:18px;height:18px}
@media(max-width:700px){.confirmed-game-row{align-items:flex-start;flex-direction:column}}

/* V16.23 – Bestätigte Spiele kompakt unter Aktuelle Spiele */
.confirmed-games-card{margin-top:16px!important;border-top:4px solid #347F58!important}
.v23-result-row{display:grid;grid-template-columns:110px minmax(340px,1fr) auto;align-items:center;gap:16px;padding:14px 0;border-top:1px solid #e5ebe8}
.v23-result-row:first-child{border-top:0}
.v23-game-meta{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#758079}.v23-game-meta b{font-size:14px;color:#26342d}
.v23-result-main{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;gap:12px}.v23-team{font-weight:800}.v23-team.home{text-align:right}
.v23-score{display:flex;justify-content:center;align-items:center;gap:7px;background:#347F58;color:#fff;border-radius:12px;padding:9px 10px;font-size:22px;font-weight:900}.v23-score small{font-size:15px}
.v23-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.v22-tournify.checked{background:#e1f2e8!important;color:#17653e!important}
@media(max-width:900px){.v23-result-row{grid-template-columns:1fr}.v23-game-meta{flex-direction:row}.v23-actions{justify-content:flex-start}}

/* V16.24 – Platzierung */
.placement-hero{border-top:4px solid #347F58}
.placement-row{display:grid;grid-template-columns:58px 52px minmax(220px,1fr) auto;align-items:center;gap:12px;padding:17px 18px;margin:8px 0;border-radius:14px;border:1px solid #e2e9e5}
.placement-row.first{background:#faf8ee}.placement-row.second{background:#f5f7f6}
.placement-row .place{font-size:26px;font-weight:950;color:#347F58}.placement-row .medal{font-size:30px}
.placement-team{font-size:18px;font-weight:900}.placement-row .source{font-size:12px;color:#6f7b75;text-align:right}
.placement-wait{display:flex;gap:14px;align-items:center;padding:22px;background:#f6f8f7;border-radius:14px}
.placement-wait>span{font-size:28px}.placement-wait div{display:flex;flex-direction:column;gap:4px}.placement-wait small{color:#758079}
.placement-info p{margin-bottom:4px}
@media(max-width:700px){.placement-row{grid-template-columns:48px 42px 1fr}.placement-row .source{grid-column:3;text-align:left}}

/* V16.25 – Auswahl der Platzierungsspiele */
.placement-config-row{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:11px 0;border-top:1px solid #e5ebe8}
.placement-config-row:first-child{border-top:0}.placement-config-row>div{display:flex;flex-direction:column;gap:3px}
.placement-config-row small{color:#758079}.placement-config-row select{width:100%;padding:10px 12px;border:1px solid #cfd9d4;border-radius:10px;background:#fff;font-weight:700}
.placement-row.pending{opacity:.62}
@media(max-width:700px){.placement-config-row{grid-template-columns:1fr}}

/* V16.26 – kompletter Spielplan unten in Verwaltung */
.v26-full-plan-card{margin-top:18px}
.v26-plan-wrap{overflow-x:auto}
.v26-plan-table{width:100%;border-collapse:collapse;min-width:760px}
.v26-plan-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6e7a74;text-align:left;padding:10px;border-bottom:2px solid #dce5e0}
.v26-plan-table td{padding:10px;border-bottom:1px solid #e8eeeb;font-size:13px}
.v26-plan-table tr:hover td{background:#f7faf8}

/* V16.28 – offene Teams / Paarungen */
.v28-pair-btn{white-space:nowrap;padding:7px 10px;border-radius:8px;border:1px solid #347F58;background:#fff;color:#347F58;font-weight:800;cursor:pointer}
.v28-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.48);display:flex;align-items:center;justify-content:center;z-index:9999;padding:18px}
.v28-modal{width:min(520px,100%);background:#fff;border-radius:16px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.v28-modal h3{margin-top:0}.v28-modal label{display:flex;flex-direction:column;gap:6px;font-weight:800;margin:14px 0}
.v28-modal select{width:100%;padding:11px;border:1px solid #cfd9d4;border-radius:10px;background:#fff}
.v28-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.v28-modal-actions button{padding:9px 13px;border-radius:9px;border:1px solid #ccd6d1;background:#fff;font-weight:800}
.v28-modal-actions .primary{background:#347F58;color:#fff;border-color:#347F58}

/* V16.31 */
header{position:sticky;top:0;z-index:900}

/* V16.65 – Mobile Gesamt-Navigation der Turnierleitung */
@media(max-width:800px){
  header{flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px}
  header>div:nth-child(2){min-width:0;flex:1}
  header p{font-size:10px;letter-spacing:1px}
  .topnav{
    display:flex!important;
    order:10;
    width:100%;
    margin-left:0;
    gap:7px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:4px 0 7px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .topnav::-webkit-scrollbar{display:none}
  .topnav a,.topnav button{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:42px!important;
    padding:10px 12px!important;
    font-size:14px!important;
  }
  main{padding:14px}
}


/* V17.8 – Turnierleitung Sport Dashboard.
   Scoped to body.tsv-sport-dashboard: no global redesign of other pages. */
body.tsv-sport-dashboard{
 --dash-green:#0c6549;
 --dash-green-dark:#084936;
 --dash-green-soft:#e9f3ee;
 --dash-ink:#153128;
 --dash-muted:#6b7c74;
 --dash-bg:#eef2f0;
 --dash-card:#ffffff;
 --dash-line:#dce5e0;
 background:
   radial-gradient(circle at 12% 0%,rgba(52,127,88,.075),transparent 24rem),
   var(--dash-bg);
 color:var(--dash-ink);
}
body.tsv-sport-dashboard main{max-width:1480px;padding-top:18px}

/* Hero */
body.tsv-sport-dashboard .dashboard-sport-hero{
 position:relative;
 min-height:168px;
 margin:0 0 14px;
 padding:27px 32px;
 border-radius:18px;
 overflow:hidden;
 color:#fff;
 background:
   linear-gradient(100deg,rgba(5,58,42,.98) 0%,rgba(11,99,72,.94) 58%,rgba(39,126,91,.88) 100%);
 box-shadow:0 14px 34px rgba(8,73,53,.16);
}
body.tsv-sport-dashboard .dashboard-sport-hero:before{
 content:"";
 position:absolute;inset:0;
 background:
   radial-gradient(circle at 82% 20%,rgba(255,255,255,.16),transparent 15rem),
   repeating-linear-gradient(120deg,transparent 0 46px,rgba(255,255,255,.035) 47px 48px);
 pointer-events:none;
}
body.tsv-sport-dashboard .dashboard-sport-hero:after{
 content:"";
 position:absolute;right:-85px;bottom:-155px;width:390px;height:390px;
 border:52px solid rgba(255,255,255,.055);border-radius:50%;
 pointer-events:none;
}
body.tsv-sport-dashboard .dashboard-hero-copy,
body.tsv-sport-dashboard .dashboard-hero-brand{position:relative;z-index:1}
body.tsv-sport-dashboard .dashboard-eyebrow,
body.tsv-sport-dashboard .dashboard-section-label{
 font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
 color:#559174;
}
body.tsv-sport-dashboard .dashboard-eyebrow{color:#a8d0bd;margin-bottom:7px}
body.tsv-sport-dashboard .dashboard-sport-hero h2{
 margin:0 0 7px;color:#fff;font-size:38px;line-height:1;letter-spacing:-.045em;
}
body.tsv-sport-dashboard .dashboard-sport-hero #dashboardTournamentName{
 margin:0;color:#d8e9e1;font-size:18px;font-weight:800;
}
body.tsv-sport-dashboard .dashboard-live-pill{
 display:inline-flex;align-items:center;gap:8px;margin-top:16px;
 padding:7px 10px;border-radius:999px;
 background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);
 color:#e7f3ed;font-size:10px;font-weight:900;letter-spacing:.08em;
}
body.tsv-sport-dashboard .dashboard-live-pill span{
 width:8px;height:8px;border-radius:50%;background:#6be0a2;
 box-shadow:0 0 0 5px rgba(107,224,162,.13);
}
body.tsv-sport-dashboard .dashboard-hero-brand img{
 width:92px;filter:drop-shadow(0 8px 13px rgba(0,0,0,.18));
}
body.tsv-sport-dashboard .dashboard-hero-brand .brandline{color:#fff;font-size:12px}

/* Cards */
body.tsv-sport-dashboard .start-check-card,
body.tsv-sport-dashboard .report-status-card,
body.tsv-sport-dashboard .dashboard-timer-card,
body.tsv-sport-dashboard .confirmed-games-card{
 border:1px solid rgba(27,71,55,.08)!important;
 border-radius:15px!important;
 background:var(--dash-card);
 box-shadow:0 6px 18px rgba(21,54,43,.055)!important;
}
body.tsv-sport-dashboard .start-check-card{padding:15px 17px!important}
body.tsv-sport-dashboard .start-check-head h2{
 font-size:19px;margin-top:2px!important;color:var(--dash-ink)
}
body.tsv-sport-dashboard .start-check-state{font-size:.88rem;color:var(--dash-muted)}
body.tsv-sport-dashboard .start-check-grid{gap:7px}
body.tsv-sport-dashboard .start-check{
 border:0;border-radius:10px;padding:9px 10px;
 background:#f3f6f4;box-shadow:inset 0 0 0 1px rgba(25,68,52,.055)
}
body.tsv-sport-dashboard .start-check.ok{border-top:0;box-shadow:inset 3px 0 0 #347F58}
body.tsv-sport-dashboard .start-check.warn{border-top:0;box-shadow:inset 3px 0 0 #d99a1b}
body.tsv-sport-dashboard .start-check.bad{border-top:0;box-shadow:inset 3px 0 0 #cf4b45}

/* Turnierstatus + master timer */
body.tsv-sport-dashboard .dashboard-control-row{gap:12px;margin-bottom:13px}
body.tsv-sport-dashboard .report-status-card,
body.tsv-sport-dashboard .dashboard-timer-card{padding:15px 17px!important}
body.tsv-sport-dashboard .report-status-card h2,
body.tsv-sport-dashboard .dashboard-timer-card h2{
 margin:3px 0 11px;font-size:19px;color:var(--dash-ink)
}
body.tsv-sport-dashboard .report-status-card #stats{gap:7px}
body.tsv-sport-dashboard .report-status-card #stats p{
 border:0;border-radius:10px;background:#f3f6f4;padding:10px 8px;
}
body.tsv-sport-dashboard .report-status-card #stats p b{
 font-size:1.5rem;color:var(--dash-ink)
}
body.tsv-sport-dashboard .dashboard-timer-card{
 border:1px solid rgba(52,127,88,.18)!important;
 background:linear-gradient(145deg,#fbfdfc,#edf6f1);
}
body.tsv-sport-dashboard .dashboard-timer-action .timer-master{
 border:0;border-radius:10px;
 box-shadow:0 7px 16px rgba(7,92,67,.14);
 letter-spacing:.025em;
}

/* The 3 field cards – same JS/HTML, entirely new visual hierarchy */
body.tsv-sport-dashboard #fields{
 gap:12px!important;align-items:stretch;
}
body.tsv-sport-dashboard #fields .fieldcard{
 position:relative;
 padding:0 16px 15px!important;
 overflow:hidden;
 border:1px solid rgba(24,66,50,.09)!important;
 border-top:0!important;
 border-radius:15px!important;
 background:#fff!important;
 box-shadow:0 8px 23px rgba(18,53,40,.07)!important;
}
body.tsv-sport-dashboard #fields .fieldcard:before{
 content:"";display:block;height:6px;margin:0 -16px 10px;background:#347F58;
}
body.tsv-sport-dashboard #fields .fieldcard.field-2:before{background:#f0bd34}
body.tsv-sport-dashboard #fields .fieldcard.field-3:before{background:#d84b48}
body.tsv-sport-dashboard #fields .fieldcard.timer-running{
 background:linear-gradient(180deg,#edf8f2 0,#fff 48%)!important;
 box-shadow:0 8px 25px rgba(52,127,88,.13)!important;
}
body.tsv-sport-dashboard #fields .fieldcard.timer-stopped{
 background:linear-gradient(180deg,#fff1ef 0,#fff 48%)!important;
}
body.tsv-sport-dashboard #fields .field-topline{
 min-height:82px;margin-bottom:2px;
}
body.tsv-sport-dashboard #fields .field-topline .dashboard-field-logo{
 width:72px;height:72px;
}
body.tsv-sport-dashboard #fields .field-signals{
 gap:5px!important;
}
body.tsv-sport-dashboard #fields .signal-row{
 font-size:.73rem!important;color:#566a60;font-weight:800;
}
body.tsv-sport-dashboard #fields .signal-light{
 width:9px;height:9px;flex-basis:9px;
 box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(25,68,52,.07)
}
body.tsv-sport-dashboard #fields .field-reset-btn{
 width:30px;height:30px;border-radius:9px;
 background:#f7f9f8;color:#9d4742;border:1px solid #e3e8e5;
}
body.tsv-sport-dashboard #fields .field-game-title{
 margin:6px 0 5px!important;
 color:#718078;
 font-size:.72rem!important;
 letter-spacing:.10em;
 text-transform:uppercase;
}
body.tsv-sport-dashboard #fields .fieldcard>p{
 margin:7px 0!important;
 min-height:50px;
 display:flex;flex-direction:column;justify-content:center;
 color:#19372c;font-size:1rem!important;line-height:1.28!important;
}
body.tsv-sport-dashboard #fields .miniScore{
 width:max-content;min-width:120px;
 margin:7px auto!important;padding:8px 17px;
 border:1px solid #e3e9e6;border-radius:11px;
 background:#f8faf9;color:#123328!important;
 box-shadow:0 4px 12px rgba(18,51,40,.05);
 font-size:2.5rem!important;line-height:1!important;
}
body.tsv-sport-dashboard #fields .field-timer-inline{
 width:max-content;min-width:86px;
 margin:9px auto 0!important;padding:6px 12px;
 border-radius:999px;background:#e7f2ec;color:#176247!important;
 font-size:1.2rem!important;
}

/* Confirmed results */
body.tsv-sport-dashboard .confirmed-games-card{
 border-top:0!important;padding:17px!important;
}
body.tsv-sport-dashboard .confirmed-games-card h2{
 margin:0 0 4px;font-size:20px;color:var(--dash-ink)
}
body.tsv-sport-dashboard .v23-result-row{
 margin-top:6px;padding:11px 7px!important;
 border-top:1px solid #edf1ef!important;
}
body.tsv-sport-dashboard .v23-score{
 border-radius:9px;padding:7px 10px;
 background:linear-gradient(135deg,#176247,#347F58);
 box-shadow:0 4px 10px rgba(7,92,67,.11);
}

/* Desktop header: polish without restructuring navigation */
body.tsv-sport-dashboard header{
 border-bottom:1px solid #dce5e0;
 box-shadow:0 3px 15px rgba(18,53,40,.055);
}
body.tsv-sport-dashboard .topnav a{
 background:#eaf3ee;border:1px solid transparent;
 transition:.15s ease;
}
body.tsv-sport-dashboard .topnav a:hover{
 border-color:#cfe0d7;transform:translateY(-1px);
}

@media(max-width:850px){
 body.tsv-sport-dashboard .dashboard-sport-hero{min-height:140px;padding:21px;border-radius:14px}
 body.tsv-sport-dashboard .dashboard-sport-hero h2{font-size:29px}
 body.tsv-sport-dashboard .dashboard-hero-brand img{width:68px}
}
@media(max-width:650px){
 body.tsv-sport-dashboard .dashboard-sport-hero{min-height:126px}
 body.tsv-sport-dashboard .dashboard-hero-brand .brandline{display:none}
 body.tsv-sport-dashboard #fields .fieldcard{padding:0 13px 14px!important}
 body.tsv-sport-dashboard #fields .fieldcard:before{margin:0 -13px 9px}
}


/* V17.9 – Arena header based on the supplied live-view background */
body.tsv-sport-dashboard header{
 background:#fff;
 min-height:76px;
 padding:10px 24px;
 display:flex;
 align-items:center;
 gap:20px;
}
body.tsv-sport-dashboard header .headbrand{flex:0 0 auto}
body.tsv-sport-dashboard header .topnav{
 margin-left:auto;
 justify-content:flex-end;
 flex-wrap:nowrap;
 gap:7px;
}
body.tsv-sport-dashboard header .topnav a{
 padding:10px 13px;
 border-radius:9px;
 background:#edf5f1;
 color:#075c43;
 font-size:13px;
 font-weight:850;
 white-space:nowrap;
}
body.tsv-sport-dashboard header .logout{
 margin-left:2px;
}

/* The uploaded arena artwork is a real page asset, not an external URL. */
body.tsv-sport-dashboard .dashboard-sport-hero{
 min-height:245px;
 padding:0;
 display:flex;
 align-items:stretch;
 background:
   linear-gradient(90deg,rgba(3,37,28,.90) 0%,rgba(4,57,41,.72) 43%,rgba(3,35,27,.30) 70%,rgba(3,27,21,.58) 100%),
   url('/assets/turnier-arena-header.png') center 43% / cover no-repeat;
 border-radius:18px;
 box-shadow:0 16px 38px rgba(5,49,36,.20);
}
body.tsv-sport-dashboard .dashboard-sport-hero:before{
 background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.26));
}
body.tsv-sport-dashboard .dashboard-sport-hero:after{
 display:none;
}
body.tsv-sport-dashboard .dashboard-hero-copy{
 width:min(650px,62%);
 padding:31px 34px;
 align-self:flex-end;
}
body.tsv-sport-dashboard .dashboard-eyebrow{
 color:#bce0cf;
 text-shadow:0 1px 4px rgba(0,0,0,.3);
}
body.tsv-sport-dashboard .dashboard-sport-hero h2{
 font-size:42px;
 text-shadow:0 3px 14px rgba(0,0,0,.34);
}
body.tsv-sport-dashboard .dashboard-sport-hero #dashboardTournamentName{
 font-size:19px;
 color:#fff;
 text-shadow:0 2px 8px rgba(0,0,0,.42);
}
body.tsv-sport-dashboard .dashboard-live-pill{
 background:rgba(5,44,32,.62);
 border-color:rgba(255,255,255,.18);
 backdrop-filter:blur(7px);
 -webkit-backdrop-filter:blur(7px);
}
body.tsv-sport-dashboard .dashboard-hero-side{
 margin-left:auto;
 position:relative;
 z-index:1;
 min-width:205px;
 padding:28px 30px;
 display:flex;
 flex-direction:column;
 align-items:flex-end;
 justify-content:flex-start;
 color:#fff;
 text-shadow:0 2px 8px rgba(0,0,0,.45);
}
body.tsv-sport-dashboard .dashboard-hero-time{
 font-size:25px;
 font-weight:950;
 font-variant-numeric:tabular-nums;
 letter-spacing:-.03em;
}
body.tsv-sport-dashboard .dashboard-hero-side-label{
 margin-top:4px;
 font-size:9px;
 font-weight:950;
 letter-spacing:.16em;
 color:#d5e9df;
}

/* Make secondary administration quieter so the arena and fields dominate. */
body.tsv-sport-dashboard .start-check-card{
 margin-top:12px!important;
 padding:12px 14px!important;
}
body.tsv-sport-dashboard .start-check-head{
 margin-bottom:7px;
}
body.tsv-sport-dashboard .start-check-grid{
 grid-template-columns:repeat(7,minmax(0,1fr));
}
body.tsv-sport-dashboard .start-check{
 min-height:58px;
 padding:8px 9px;
}
body.tsv-sport-dashboard .dashboard-control-row{
 margin-top:10px;
}
body.tsv-sport-dashboard .report-status-card,
body.tsv-sport-dashboard .dashboard-timer-card{
 min-height:138px;
}
body.tsv-sport-dashboard #fields{
 margin-top:10px;
}
body.tsv-sport-dashboard #fields .fieldcard{
 min-height:225px;
}
@media(max-width:1000px){
 body.tsv-sport-dashboard header{align-items:flex-start}
 body.tsv-sport-dashboard header .topnav{flex-wrap:wrap}
 body.tsv-sport-dashboard .start-check-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:750px){
 body.tsv-sport-dashboard .dashboard-sport-hero{min-height:205px;background-position:center 42%}
 body.tsv-sport-dashboard .dashboard-hero-copy{width:72%;padding:22px}
 body.tsv-sport-dashboard .dashboard-sport-hero h2{font-size:31px}
 body.tsv-sport-dashboard .dashboard-hero-side{min-width:auto;padding:22px 18px}
 body.tsv-sport-dashboard .dashboard-hero-time{font-size:18px}
 body.tsv-sport-dashboard .start-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* V17.11 – feste linke Navigation, passend zur tatsächlichen DOM-Struktur */
@media(min-width:1001px){
 body.tsv-sport-dashboard{
   padding-left:190px !important;
   padding-right:0 !important;
 }

 body.tsv-sport-dashboard .topnav{
   position:fixed !important;
   z-index:1200 !important;
   left:0 !important;
   right:auto !important;
   top:0 !important;
   bottom:0 !important;
   width:190px !important;
   height:100vh !important;
   box-sizing:border-box !important;
   margin:0 !important;
   padding:24px 14px !important;
   display:flex !important;
   flex-direction:column !important;
   align-items:stretch !important;
   justify-content:flex-start !important;
   gap:8px !important;
   overflow-y:auto !important;
   background:linear-gradient(180deg,#064d39 0%,#087052 52%,#063f30 100%) !important;
   border:0 !important;
   border-right:1px solid rgba(255,255,255,.12) !important;
   box-shadow:10px 0 30px rgba(5,52,38,.15) !important;
 }

 body.tsv-sport-dashboard .topnav a{
   width:100% !important;
   min-height:46px !important;
   box-sizing:border-box !important;
   margin:0 !important;
   padding:11px 13px !important;
   display:flex !important;
   align-items:center !important;
   justify-content:flex-start !important;
   border:1px solid rgba(255,255,255,.10) !important;
   border-radius:10px !important;
   background:rgba(255,255,255,.075) !important;
   color:#fff !important;
   font-size:13px !important;
   font-weight:850 !important;
   text-align:left !important;
   white-space:normal !important;
   box-shadow:none !important;
 }

 body.tsv-sport-dashboard .topnav a:hover{
   transform:translateX(2px) !important;
   background:rgba(255,255,255,.16) !important;
   border-color:rgba(255,255,255,.22) !important;
 }

 body.tsv-sport-dashboard .topnav a.active,
 body.tsv-sport-dashboard .topnav a[aria-current="page"]{
   background:#fff !important;
   color:#075c43 !important;
 }

 body.tsv-sport-dashboard header{
   margin-left:0 !important;
 }

 body.tsv-sport-dashboard main{
   max-width:none !important;
 }
}
@media(max-width:1000px){
 body.tsv-sport-dashboard{padding-left:0 !important}
}



/* V17.20 – gemeinsame Sportsoftware-Optik: Spielplan */
body.tsv-sport-page{
 --sport-green:#075c43;--sport-green-2:#347F58;--sport-dark:#063f30;
 --sport-bg:#eef2f0;--sport-card:#fff;--sport-line:#dce5e0;--sport-ink:#153128;--sport-muted:#687a71;
 background:linear-gradient(135deg,#edf3f0 0%,#f7f9f8 48%,#edf3f0 100%);color:var(--sport-ink);
}
body.tsv-sport-page main{max-width:none;padding:22px 24px 38px}
body.tsv-sport-page header{min-height:92px;padding:15px 26px;background:#fff;border-bottom:1px solid var(--sport-line);box-shadow:0 3px 16px rgba(15,55,41,.06)}
body.tsv-sport-page header>img{width:62px;height:62px}
body.tsv-sport-page header h1{font-size:29px;letter-spacing:-.03em;color:var(--sport-green);font-weight:950}
body.tsv-sport-page header p{font-size:11px;color:#708078;letter-spacing:.16em}
body.tsv-sport-page .card,body.tsv-sport-page .sub,body.tsv-sport-page .planner-section,body.tsv-sport-page .phase-workspace{
 border-color:rgba(28,71,55,.10);box-shadow:0 7px 22px rgba(20,54,43,.055);background:rgba(255,255,255,.97)
}
body.tsv-sport-page .card{border-radius:16px;margin-bottom:14px}
body.tsv-sport-page .sub{border-radius:13px;background:#f8faf9}
body.tsv-sport-page .tabs{gap:6px;margin:15px 0 0;padding-top:12px;border-top:1px solid #e9efec}
body.tsv-sport-page .tabs button{border-radius:9px!important;min-height:40px!important;padding:9px 13px!important;font-size:13px!important}
body.tsv-sport-page .tabs button.on{box-shadow:0 5px 12px rgba(7,92,67,.14)}
body.tsv-sport-page .tournament-day-bar{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e8eeeb}
body.tsv-sport-page .tournament-day-select select{border:1px solid #cfdcd5;border-radius:9px;box-shadow:0 2px 5px rgba(20,54,43,.03)}
body.tsv-sport-page .field-column{border:1px solid rgba(28,71,55,.10);border-radius:13px;box-shadow:0 7px 18px rgba(20,54,43,.055)}
body.tsv-sport-page .field-head{padding:10px 12px}
body.tsv-sport-page .field-head img{width:44px;height:44px}
body.tsv-sport-page .field-game{background:#fff;padding:10px 11px}
body.tsv-sport-page .field-game:hover{background:#f7faf8}
body.tsv-sport-page .schedule-time-settings{background:#f6f9f7;border-color:#dce7e1}
body.tsv-sport-page input,body.tsv-sport-page select,body.tsv-sport-page textarea{border-color:#cfdcd5;border-radius:8px}
body.tsv-sport-page button{transition:transform .14s ease,box-shadow .14s ease,background .14s ease}
body.tsv-sport-page button:hover{transform:translateY(-1px)}
body.tsv-sport-page .primary{background:linear-gradient(135deg,#25865e,#075c43);box-shadow:0 4px 10px rgba(7,92,67,.12)}
body.tsv-sport-page .secondary{background:#eef4f1;color:#245d45}

@media(min-width:1001px){
 body.tsv-sport-page{padding-left:210px!important}
 body.tsv-sport-page .topnav{
  position:fixed!important;z-index:1200!important;left:0!important;top:0!important;bottom:0!important;width:210px!important;height:100vh!important;
  margin:0!important;padding:138px 14px 150px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important;
  overflow-y:auto!important;background:linear-gradient(180deg,#064d39 0%,#087052 54%,#063f30 100%)!important;border:0!important;
  box-shadow:10px 0 30px rgba(5,52,38,.14)!important;
 }
 body.tsv-sport-page .topnav:before{
  content:"";position:absolute;left:50%;top:20px;transform:translateX(-50%);width:105px;height:98px;
  background:url('/assets/tsv-junggaense-logo.png') center/contain no-repeat;filter:drop-shadow(0 5px 8px rgba(0,0,0,.13));
 }
 body.tsv-sport-page .topnav:after{
  content:"";position:absolute;left:18px;right:18px;bottom:18px;height:116px;
  background:url('/assets/mehr-als-ein-spiel.png') center bottom/contain no-repeat;opacity:.95;pointer-events:none;
 }
 body.tsv-sport-page .topnav a{
  width:100%!important;min-height:45px!important;padding:10px 12px!important;display:flex!important;align-items:center!important;
  border:1px solid rgba(255,255,255,.10)!important;border-radius:10px!important;background:rgba(255,255,255,.075)!important;color:#fff!important;
  font-size:13px!important;font-weight:850!important;text-decoration:none!important;box-shadow:none!important;white-space:normal!important;
 }
 body.tsv-sport-page .topnav a:hover{transform:translateX(2px)!important;background:rgba(255,255,255,.16)!important}
 body.tsv-sport-page .topnav a[aria-current="page"]{background:#fff!important;color:#075c43!important;border-color:#fff!important}
 body.tsv-sport-page header{position:relative;top:auto;z-index:20}
}
@media(max-width:1000px){body.tsv-sport-page{padding-left:0!important}body.tsv-sport-page main{padding:14px}body.tsv-sport-page .topnav:before,body.tsv-sport-page .topnav:after{display:none}}

/* V17.21 – hochwertiges, einheitliches Button-System */
:root{
 --button-green:#0b684b;
 --button-green-dark:#064b38;
 --button-green-light:#f2f8f5;
 --button-border:#cfddd6;
 --button-ink:#174733;
 --button-danger:#a73e39;
 --button-danger-dark:#812e2a;
}

button,.btn,.navbtn,a.primary,a.secondary{
 -webkit-appearance:none;
 appearance:none;
 position:relative;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:8px;
 min-height:46px;
 padding:11px 17px;
 border:1px solid transparent;
 border-radius:12px;
 font:inherit;
 font-size:14px;
 font-weight:850;
 line-height:1.15;
 letter-spacing:-.01em;
 text-decoration:none;
 cursor:pointer;
 user-select:none;
 -webkit-tap-highlight-color:transparent;
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease,filter .16s ease;
}

button:hover,.btn:hover,.navbtn:hover,a.primary:hover,a.secondary:hover{
 transform:translateY(-2px);
}

button:active,.btn:active,.navbtn:active,a.primary:active,a.secondary:active{
 transform:translateY(0) scale(.985);
 box-shadow:none;
}

button:focus-visible,.btn:focus-visible,.navbtn:focus-visible,a.primary:focus-visible,a.secondary:focus-visible{
 outline:3px solid rgba(52,127,88,.22);
 outline-offset:3px;
}

button:disabled,.btn:disabled,.navbtn:disabled,a.primary[aria-disabled="true"],a.secondary[aria-disabled="true"]{
 opacity:.48;
 cursor:not-allowed;
 transform:none!important;
 box-shadow:none!important;
 filter:saturate(.35);
}

.primary,.player,a.primary{
 color:#fff;
 border-color:rgba(3,67,48,.38);
 background:linear-gradient(145deg,#2e9368 0%,var(--button-green) 52%,var(--button-green-dark) 100%);
 box-shadow:0 8px 18px rgba(7,92,67,.20),inset 0 1px 0 rgba(255,255,255,.18);
}
.primary:hover,.player:hover,a.primary:hover{
 color:#fff;
 filter:brightness(1.04);
 box-shadow:0 11px 24px rgba(7,92,67,.26),inset 0 1px 0 rgba(255,255,255,.22);
}

.secondary,a.secondary{
 color:var(--button-ink);
 border-color:var(--button-border);
 background:linear-gradient(180deg,#fff 0%,var(--button-green-light) 100%);
 box-shadow:0 5px 13px rgba(20,54,43,.075),inset 0 1px 0 #fff;
}
.secondary:hover,a.secondary:hover{
 color:#075c43;
 border-color:#a9c8b8;
 background:linear-gradient(180deg,#fff 0%,#e8f3ed 100%);
 box-shadow:0 8px 18px rgba(20,54,43,.12),inset 0 1px 0 #fff;
}

.danger{
 color:#fff;
 border-color:rgba(107,28,25,.35);
 background:linear-gradient(145deg,#c85a53 0%,var(--button-danger) 56%,var(--button-danger-dark) 100%);
 box-shadow:0 7px 16px rgba(148,50,45,.18),inset 0 1px 0 rgba(255,255,255,.18);
}
.danger:hover{
 filter:brightness(1.04);
 box-shadow:0 10px 21px rgba(148,50,45,.24),inset 0 1px 0 rgba(255,255,255,.20);
}

.actions{gap:10px}
.actions button,.actions .btn,.actions a.primary,.actions a.secondary{margin:0}

.topnav a,.topnav button{
 border:1px solid #d7e4dd;
 border-radius:11px;
 background:linear-gradient(180deg,#fff,#f1f7f4);
 box-shadow:0 4px 11px rgba(20,54,43,.055);
 transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.topnav a:hover,.topnav button:hover{
 transform:translateY(-1px);
 border-color:#b8d0c4;
 background:#eaf4ef;
 box-shadow:0 7px 15px rgba(20,54,43,.09);
}

body.tsv-sport-page button{
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease,filter .16s ease;
}
body.tsv-sport-page button:hover{transform:translateY(-2px)}
body.tsv-sport-page .primary{
 background:linear-gradient(145deg,#2e9368 0%,#0b684b 54%,#064b38 100%);
 box-shadow:0 8px 18px rgba(7,92,67,.20),inset 0 1px 0 rgba(255,255,255,.18);
}
body.tsv-sport-page .secondary{
 color:#174733;
 border-color:#cfddd6;
 background:linear-gradient(180deg,#fff,#f2f8f5);
 box-shadow:0 5px 13px rgba(20,54,43,.075),inset 0 1px 0 #fff;
}

@media(max-width:700px){
 button,.btn,.navbtn,a.primary,a.secondary{min-height:48px;padding:12px 15px}
 .actions{gap:8px}
}

@media(prefers-reduced-motion:reduce){
 button,.btn,.navbtn,a.primary,a.secondary,.topnav a{transition:none!important}
}

/* TSV UI System 2026.09.23 – einheitlich in Turnierleitung und Arbeitsdiensten */
:root{
 --ui-green:#0b684b;--ui-green-dark:#064b38;--ui-green-soft:#eef7f2;
 --ui-ink:#16382b;--ui-muted:#687a71;--ui-line:#cfddd6;--ui-card:#fff;
 --ui-danger:#a73e39;--ui-danger-dark:#812e2a;--ui-radius:14px;
 --ui-shadow:0 8px 22px rgba(20,54,43,.075);
 --ui-shadow-hover:0 13px 28px rgba(20,54,43,.13);
}
html{-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

button,.btn,.navbtn,a.primary,a.secondary{
 -webkit-appearance:none!important;appearance:none!important;box-sizing:border-box;
 position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:44px;padding:10px 16px;border:1px solid var(--ui-line);border-radius:12px;
 background:linear-gradient(180deg,#fff,#f3f8f5);color:#174733;
 font:inherit;font-size:14px;font-weight:850;line-height:1.15;letter-spacing:-.01em;
 text-decoration:none;text-align:center;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;
 box-shadow:0 5px 13px rgba(20,54,43,.075),inset 0 1px 0 #fff;
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease,filter .16s ease;
}
button:hover,.btn:hover,.navbtn:hover,a.primary:hover,a.secondary:hover{transform:translateY(-2px);border-color:#a9c8b8;box-shadow:var(--ui-shadow-hover)}
button:active,.btn:active,.navbtn:active,a.primary:active,a.secondary:active{transform:translateY(0) scale(.985);box-shadow:none}
button:focus-visible,.btn:focus-visible,.navbtn:focus-visible,a.primary:focus-visible,a.secondary:focus-visible{outline:3px solid rgba(52,127,88,.22);outline-offset:3px}
button:disabled,.btn:disabled,.navbtn:disabled,a[aria-disabled="true"]{opacity:.46;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:saturate(.35)}

.primary,.player,a.primary{
 color:#fff!important;border-color:rgba(3,67,48,.38);
 background:linear-gradient(145deg,#2e9368 0%,var(--ui-green) 52%,var(--ui-green-dark) 100%);
 box-shadow:0 8px 18px rgba(7,92,67,.20),inset 0 1px 0 rgba(255,255,255,.18);
}
.primary:hover,.player:hover,a.primary:hover{filter:brightness(1.04);box-shadow:0 11px 24px rgba(7,92,67,.26),inset 0 1px 0 rgba(255,255,255,.22)}
.secondary,a.secondary{color:#174733!important;border-color:var(--ui-line);background:linear-gradient(180deg,#fff,#f2f8f5);box-shadow:0 5px 13px rgba(20,54,43,.075),inset 0 1px 0 #fff}
.secondary:hover,a.secondary:hover{color:#075c43!important;border-color:#a9c8b8;background:linear-gradient(180deg,#fff,#e8f3ed);box-shadow:0 8px 18px rgba(20,54,43,.12),inset 0 1px 0 #fff}
.danger{color:#fff!important;border-color:rgba(107,28,25,.35);background:linear-gradient(145deg,#c85a53 0%,var(--ui-danger) 56%,var(--ui-danger-dark) 100%);box-shadow:0 7px 16px rgba(148,50,45,.18),inset 0 1px 0 rgba(255,255,255,.18)}
.danger:hover{filter:brightness(1.04);box-shadow:0 10px 21px rgba(148,50,45,.24),inset 0 1px 0 rgba(255,255,255,.20)}

input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),select,textarea{
 box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--ui-line);border-radius:11px;
 background:#fbfdfc;color:var(--ui-ink);font:inherit;box-shadow:inset 0 1px 2px rgba(20,54,43,.035);
 transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
textarea{min-height:88px;line-height:1.45;resize:vertical}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):focus,select:focus,textarea:focus{
 outline:none;border-color:#66a486;background:#fff;box-shadow:0 0 0 4px rgba(52,127,88,.12),inset 0 1px 2px rgba(20,54,43,.025);
}
input[type="checkbox"],input[type="radio"]{accent-color:#347F58}

.card{border-color:rgba(28,71,55,.11);border-radius:17px;box-shadow:var(--ui-shadow)}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.actions button,.actions .btn,.actions a{margin:0}
dialog{border:0;border-radius:20px;box-shadow:0 28px 85px rgba(3,32,23,.30)}
dialog::backdrop{background:rgba(3,24,17,.68);backdrop-filter:blur(4px)}
.button-svg,button svg{width:18px;height:18px;flex:0 0 auto}

@media(max-width:700px){
 button,.btn,.navbtn,a.primary,a.secondary{min-height:48px;padding:12px 15px}
 .actions{gap:8px}
}
@media(prefers-reduced-motion:reduce){button,.btn,.navbtn,a.primary,a.secondary{transition:none!important}}

/* Öffentliche Jugendturnier-Homepage – bewusst nur auf body.tsv-homepage wirksam. */
body.tsv-homepage{--home-green:var(--primary,#347F58);--home-dark:var(--dark,#075D45);--home-gold:var(--accent,#D6AD18);--home-ink:var(--ink,#17352A);background:#f8faf6!important;color:var(--home-ink);font-family:Arial,"Segoe UI",sans-serif}
.tsv-homepage *{box-sizing:border-box}
.tsv-homepage a{text-decoration:none}
.tsv-homepage .home-skip{position:absolute;top:-100px;left:8px;z-index:200;background:#fff;padding:10px}.tsv-homepage .home-skip:focus{top:8px}
.tsv-homepage .home-header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px clamp(22px,5vw,80px);background:rgba(255,255,255,.97);border:0;box-shadow:0 3px 20px #1535290a}
.tsv-homepage .home-brand{display:inline-flex;align-items:center;gap:10px;color:var(--home-ink);min-width:0}.tsv-homepage .home-brand img{width:66px;height:66px;object-fit:contain}.tsv-homepage .home-brand span{display:grid;line-height:1}.tsv-homepage .home-brand strong{font-size:30px;letter-spacing:-.04em}.tsv-homepage .home-brand small{font-size:17px;margin-top:3px}
.tsv-homepage .home-nav{display:flex;align-items:center;gap:30px;margin-left:auto}.tsv-homepage .home-nav a{color:var(--home-ink);font-weight:800;font-size:15px;padding:12px 0;border-bottom:3px solid transparent}.tsv-homepage .home-nav a:hover,.tsv-homepage .home-nav a:focus-visible{border-color:var(--home-gold)}
.tsv-homepage .home-menu-button{display:none;border:0;background:none;width:48px;height:48px;padding:10px;cursor:pointer}.tsv-homepage .home-menu-button span{display:block;height:3px;background:var(--home-ink);border-radius:3px;margin:5px 0}.tsv-homepage .home-mobile-nav[hidden]{display:none}.tsv-homepage .home-mobile-nav{position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 12px 30px #0a291a2a;padding:10px 25px 20px;display:grid;gap:2px}.tsv-homepage .home-mobile-nav a{padding:12px;color:var(--home-ink);font-weight:800;border-radius:8px}.tsv-homepage .home-mobile-nav a:hover{background:#edf5f0}
.tsv-homepage main{max-width:none;margin:0;padding:0}
.tsv-homepage .home-hero{min-height:560px;position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#f1f5e9 0%,#c7dbc9 50%,#739c79 100%)}
.tsv-homepage .home-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:-2}.tsv-homepage img[hidden]{display:none!important}.tsv-homepage .home-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(249,250,241,.98) 0%,rgba(249,250,241,.86) 36%,rgba(249,250,241,.16) 71%,rgba(9,48,33,.1) 100%)}
.tsv-homepage .home-hero-decor{position:absolute;right:10%;top:14%;z-index:-1;opacity:.55}.tsv-homepage .home-hero:has(.home-hero-image:not([hidden])) .home-hero-decor{display:none}.tsv-homepage .home-hero-ball{display:block;width:290px;height:290px;border-radius:50%;border:25px solid #f0bb4f;box-shadow:inset 0 0 0 11px #0a513b,0 35px 70px #163b2c44;transform:rotate(-15deg)}.tsv-homepage .home-hero-line{display:block;width:320px;height:120px;border:6px solid #f7faf6;border-radius:50%;transform:rotate(-25deg) translate(80px,20px)}
.tsv-homepage .home-hero-content{position:relative;max-width:1340px;margin:auto;padding:84px clamp(24px,5vw,80px) 95px}.tsv-homepage .home-eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.17em;color:#20513f;font-size:13px;font-weight:900;margin-bottom:18px}.tsv-homepage .home-hero h1{font-size:clamp(57px,7.4vw,112px);letter-spacing:-.065em;line-height:.93;margin:0;color:#073d30;font-weight:950}.tsv-homepage .home-hero p{color:#244738;font-size:clamp(22px,2.6vw,34px);line-height:1.16;font-weight:650;margin:22px 0 32px}
.tsv-homepage .home-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tsv-homepage .home-button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:13px 25px;border-radius:999px;font-size:16px;font-weight:900;transition:transform .15s,box-shadow .15s}.tsv-homepage .home-button:hover{transform:translateY(-2px);box-shadow:0 9px 23px #0a342326}.tsv-homepage .home-button span{font-size:25px;line-height:.7}.tsv-homepage .home-button-main{background:var(--home-green);color:#fff;box-shadow:0 9px 26px #0a483330}.tsv-homepage .home-button-light{background:#fff;color:var(--home-dark);border:1.5px solid var(--home-dark)}.tsv-homepage .home-button-outline{background:transparent;color:var(--home-dark);border:2px solid var(--home-dark)}.tsv-homepage .home-button-white{background:#fff;color:var(--home-dark)}
.tsv-homepage .home-section{padding:70px clamp(24px,5vw,80px)}.tsv-homepage .home-section-heading,.tsv-homepage .home-event-grid,.tsv-homepage .home-about{max-width:1320px;margin-left:auto;margin-right:auto}.tsv-homepage .home-mark{display:block;width:55px;height:7px;background:var(--home-gold);border-radius:50% 55% 45% 40%;transform:rotate(-8deg);margin-bottom:17px}.tsv-homepage .home-section h2,.tsv-homepage .home-live h2{font-size:clamp(37px,4.6vw,64px);letter-spacing:-.055em;line-height:1.05;margin:0 0 12px;color:var(--home-ink);font-weight:950}.tsv-homepage .home-section-heading p{font-size:19px;color:#4b6359;margin:0 0 28px}
.tsv-homepage .home-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tsv-homepage .home-event{overflow:hidden;border-radius:17px;background:#fff;box-shadow:0 12px 35px #092c1912;min-width:0}.tsv-homepage .home-event-top{background:#d8e6d9}.tsv-homepage .home-event-date{display:block;background:var(--home-green);color:white;padding:14px 18px;font-size:18px;font-weight:900}.tsv-homepage .home-event-date:before{content:'▣';font-size:17px;margin-right:10px}.tsv-homepage .home-event-image{height:215px;position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#d5ebdb,#83ac90)}.tsv-homepage .home-event-image img{width:100%;height:100%;object-fit:cover}.tsv-homepage .home-event-fallback{font-size:95px;filter:drop-shadow(0 13px 10px #19402d66)}.tsv-homepage .home-event-image:has(img:not([hidden])) .home-event-fallback{display:none}.tsv-homepage .home-event-copy{padding:20px 22px 25px}.tsv-homepage .home-event h3{font-size:29px;letter-spacing:-.045em;margin:0 0 4px;color:var(--home-ink)}.tsv-homepage .home-event p{font-size:19px;margin:0 0 15px;color:#344b40}.tsv-homepage .home-event small{font-size:15px;color:#816013;font-weight:800}.tsv-homepage .home-text-link{display:table;margin:27px auto 0;padding:7px 2px;color:var(--home-dark);border-bottom:3px solid var(--home-gold);font-weight:900;font-size:17px}.tsv-homepage .home-text-link span{font-size:22px;margin-left:7px}
.tsv-homepage .home-about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:52px;padding-top:76px;padding-bottom:76px}.tsv-homepage .home-about-copy{padding:0 0 0 4px}.tsv-homepage .home-about-intro{font-size:clamp(22px,2.4vw,29px)!important;color:#354b40!important;line-height:1.25!important;font-weight:700}.tsv-homepage .home-about-copy p{max-width:560px;font-size:18px;line-height:1.5;color:#5b6f64;margin:17px 0}.tsv-homepage .home-about-copy .home-button{margin-top:13px}.tsv-homepage .home-about-image{height:385px;overflow:hidden;border-radius:100px 24px 24px 24px;background:linear-gradient(125deg,#bdd5b9,#357a58);display:grid;place-items:center}.tsv-homepage .home-about-image img{width:100%;height:100%;object-fit:cover}.tsv-homepage .home-about-fallback{font-size:clamp(44px,5vw,70px);text-align:center;color:#fff;font-weight:900;line-height:1;transform:rotate(-6deg)}.tsv-homepage .home-about-image:has(img:not([hidden])) .home-about-fallback{display:none}
.tsv-homepage .home-live{position:relative;isolation:isolate;overflow:hidden;min-height:340px;background:linear-gradient(110deg,#05533c,#237e55)}.tsv-homepage .home-live>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.tsv-homepage .home-live-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#074b38 0%,#086043f0 48%,#08604365 100%)}.tsv-homepage .home-live-content{max-width:1320px;margin:auto;padding:60px clamp(24px,5vw,80px)}.tsv-homepage .home-live h2{color:#fff}.tsv-homepage .home-live p{font-size:23px;line-height:1.4;color:#fff;max-width:550px;margin:0 0 22px}.tsv-homepage .home-footer{background:#074935;color:#e7f2eb;padding:24px clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;gap:22px}.tsv-homepage .home-footer .home-brand{color:#fff}.tsv-homepage .home-footer .home-brand img{width:54px;height:54px}.tsv-homepage .home-footer .home-brand strong{font-size:25px}.tsv-homepage .home-footer .home-brand small{font-size:14px}.tsv-homepage .home-footer>a:last-child{color:#e7f2eb;text-decoration:underline}
@media(max-width:800px){.tsv-homepage .home-header{padding:9px 20px}.tsv-homepage .home-nav{display:none}.tsv-homepage .home-menu-button{display:block}.tsv-homepage .home-brand img{width:54px;height:54px}.tsv-homepage .home-brand strong{font-size:25px}.tsv-homepage .home-brand small{font-size:14px}.tsv-homepage .home-hero{min-height:560px}.tsv-homepage .home-hero-shade{background:linear-gradient(90deg,rgba(250,251,246,.98) 0%,rgba(250,251,246,.74) 70%,rgba(250,251,246,.24) 100%)}.tsv-homepage .home-hero-content{padding:90px 26px 88px}.tsv-homepage .home-hero-decor{right:-130px;top:140px}.tsv-homepage .home-about{grid-template-columns:1fr;gap:35px}.tsv-homepage .home-about-image{height:315px}.tsv-homepage .home-footer{flex-wrap:wrap}.tsv-homepage .home-event-grid{gap:12px}.tsv-homepage .home-event-image{height:150px}}
@media(max-width:650px){.tsv-homepage .home-hero h1{font-size:clamp(56px,13vw,80px)}.tsv-homepage .home-hero p{font-size:21px}.tsv-homepage .home-hero{min-height:590px}.tsv-homepage .home-hero-image{object-position:63% center}.tsv-homepage .home-hero-shade{background:linear-gradient(180deg,#f8faf1e8 0%,#f8faf1b8 51%,#f8faf165 100%)}.tsv-homepage .home-hero-content{padding-top:80px}.tsv-homepage .home-actions{align-items:stretch;flex-direction:column;max-width:305px}.tsv-homepage .home-button{justify-content:space-between}.tsv-homepage .home-section{padding:57px 22px}.tsv-homepage .home-event-grid{grid-template-columns:1fr;gap:18px}.tsv-homepage .home-event-image{height:205px}.tsv-homepage .home-about{padding-top:55px;padding-bottom:60px}.tsv-homepage .home-about-image{height:280px;border-radius:65px 18px 18px 18px}.tsv-homepage .home-live-content{padding:54px 24px}.tsv-homepage .home-live p{font-size:19px}.tsv-homepage .home-footer{justify-content:flex-start}.tsv-homepage .home-footer>span{flex-basis:100%}}
