:root{
  --brand-950:#071b0f;
  --brand-900:#0b2c17;
  --brand-800:#123b1f;
  --brand-700:#185228;
  --brand-600:#1f7a3a;
  --brand-500:#2fa84c;
  --accent:#c6ff3f;
  --accent-ink:#0b2c17;
  --bg-soft:#eef6ef;
  --ink:#101d13;
  --ink-soft:#55665a;
  --border:#dde6de;
}
body{font-family:'Barlow',sans-serif;color:var(--ink);background:#fff;}
h1,h2,h3,h4,h5,h6,.display-4,.display-5{font-family:'Barlow Condensed',sans-serif;font-weight:800;letter-spacing:-.01em;}
a{color:var(--brand-700);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--brand-500);}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}

/* Header / Nav */
.site-header{background:var(--brand-900);position:relative;}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--brand-600),var(--accent) 50%,var(--brand-600));}
.navbar-brand{color:#fff!important;}
.brand-shield{width:44px;height:44px;border:2px solid #fff;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;line-height:1.1;flex-shrink:0;font-family:'Barlow Condensed',sans-serif;transition:border-color .2s ease,color .2s ease;}
.navbar-brand:hover .brand-shield{border-color:var(--accent);color:var(--accent);}
.brand-text{font-size:.85rem;line-height:1.25;color:#fff;font-family:'Barlow',sans-serif;}
.site-header .nav-link{color:rgba(255,255,255,.85)!important;font-weight:700;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;}
.site-header .nav-link.active,.site-header .nav-link:hover{color:var(--accent)!important;}

/* Team tabs */
.team-tabs{display:flex;flex-wrap:wrap;gap:8px;}
.team-tab{padding:8px 16px;border-radius:999px;border:1px solid var(--border);color:var(--ink);font-weight:700;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.03em;font-size:.9rem;background:#fff;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.team-tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)!important;}
.team-tab:hover{border-color:var(--brand-600);color:var(--brand-700);}

/* Buttons: angled, athletic cut */
.btn{border-radius:6px;}
.btn-brand,.btn-outline-brand{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.05em;font-weight:700;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);padding-left:1.4em;padding-right:1.4em;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
.btn-brand{background:var(--brand-600);border-color:var(--brand-600);color:#fff;}
.btn-brand:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);transform:translateY(-2px);}
.btn-outline-brand{border:2px solid var(--brand-600);color:var(--brand-700);background:#fff;}
.btn-outline-brand:hover{background:var(--brand-600);color:#fff;transform:translateY(-2px);}
.btn-outline-light{clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.05em;font-weight:700;transition:transform .2s ease,background-color .2s ease,color .2s ease;}
.btn-outline-light:hover{transform:translateY(-2px);}

/* Hero */
.hero{position:relative;overflow:hidden;min-height:640px;display:flex;align-items:flex-end;color:#fff;background:var(--brand-900) center/cover no-repeat;}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,27,15,.92) 0%,rgba(7,27,15,.55) 42%,rgba(7,27,15,.08) 75%);}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--brand-600),var(--accent) 50%,var(--brand-600));z-index:2;}
.hero .container{position:relative;z-index:1;padding-top:56px;padding-bottom:48px;}
.hero-content{max-width:640px;}
.hero h1{text-transform:uppercase;font-style:italic;font-weight:800;text-shadow:0 2px 20px rgba(0,0,0,.25);}
.hero-lead{color:rgba(255,255,255,.88);text-shadow:0 1px 10px rgba(0,0,0,.2);}
@media (max-width:767px){.hero{min-height:520px;}}
.eyebrow{color:var(--brand-700);font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;}
.hero .eyebrow,.termine-box .eyebrow{color:var(--accent);}

.img-placeholder{background:repeating-linear-gradient(45deg,#e9ede9,#e9ede9 10px,#dee5df 10px,#dee5df 20px);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:#7c8a7e;font-family:'SFMono-Regular',Consolas,monospace;font-size:.78rem;text-align:center;padding:8px;border-radius:10px;}

/* Feature cards */
.feature-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:28px;height:100%;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.feature-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(11,44,23,.12);border-color:var(--brand-600);}
.feature-icon{width:52px;height:52px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:16px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);}
.feature-icon svg{width:26px;height:26px;flex-shrink:0;}
.section-soft{background:var(--bg-soft);}

/* Teams */
.card-team{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;height:100%;border-top:3px solid transparent;transition:transform .2s ease,box-shadow .2s ease,border-top-color .2s ease;}
.card-team:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(11,44,23,.12);border-top-color:var(--accent);}

/* Termine */
.termine-box{background:var(--brand-900);color:#fff;border-radius:12px;}
.termine-item{border-bottom:1px solid rgba(255,255,255,.14);padding:16px 0;}
.termine-item:last-child{border-bottom:none;}
.date-chip{background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:6px 10px;text-align:center;font-weight:800;font-family:'Barlow Condensed',sans-serif;min-width:56px;}

/* Sponsors */
.sponsor-logo{width:100%;aspect-ratio:16/9;object-fit:contain;border:1px solid var(--border);border-radius:10px;padding:14px;background:#fff;}
.sponsor-carousel{padding:0 44px;}
.sponsor-carousel .carousel-control-prev,.sponsor-carousel .carousel-control-next{width:36px;}
.sponsor-carousel .carousel-control-prev-icon,.sponsor-carousel .carousel-control-next-icon{filter:invert(1) grayscale(100);}

/* Footer */
.site-footer{background:var(--brand-900);color:rgba(255,255,255,.8);padding:56px 0 24px;position:relative;}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--brand-600),var(--accent) 50%,var(--brand-600));}
.site-footer a{color:#fff;}
.site-footer a:hover{color:var(--accent);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:32px;padding-top:20px;font-size:.85rem;}
.placeholder-note{font-size:.72rem;color:#9a5b00;background:#fff3e0;border:1px solid #ffd699;border-radius:6px;padding:2px 8px;display:inline-block;}
.antispam{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden;}

/* Admin */
.card-admin{border:1px solid var(--border);border-radius:12px;}
.admin-navbar{background:var(--brand-900);box-shadow:0 2px 10px rgba(11,44,23,.15);position:relative;}
.admin-navbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--brand-600),var(--accent) 50%,var(--brand-600));}
.admin-navbar .nav-link{color:rgba(255,255,255,.8)!important;font-weight:600;}
.admin-navbar .nav-link.active,.admin-navbar .nav-link:hover,.admin-navbar .nav-link.show{color:var(--accent)!important;}
.admin-navbar .dropdown-menu{border:none;border-radius:10px;box-shadow:0 12px 28px rgba(11,44,23,.2);padding:8px;}
.admin-navbar .dropdown-item{border-radius:8px;padding:8px 12px;}
.admin-navbar .dropdown-item.active,.admin-navbar .dropdown-item:hover{background:var(--accent);color:var(--accent-ink);}
.admin-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.5);}
.admin-avatar-fallback{width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0;}
.admin-avatar-lg{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--border);}
.admin-avatar-lg-fallback{width:96px;height:96px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:2rem;flex-shrink:0;}

/* Admin content area: cards, tables, forms, badges — scoped so the public
   site's shared .card-admin/.table/.form-control usages stay untouched. */
.admin-content .card-admin{box-shadow:0 2px 10px rgba(11,44,23,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.admin-content .card-admin.h-100{border-top:3px solid transparent;}
.admin-content .card-admin.h-100:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,44,23,.14);border-top-color:var(--accent);}
.admin-content .card-admin .h2{font-family:'Barlow Condensed',sans-serif;font-weight:800;color:var(--brand-700);}

.admin-content .table-responsive{border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.admin-content .table{margin-bottom:0;}
.admin-content .table thead th{background:var(--brand-900);color:#fff;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:700;border-color:var(--brand-900);vertical-align:middle;}
.admin-content .table-bordered,.admin-content .table-bordered>:not(caption)>*>*{border-color:var(--border);}
.admin-content .table>tbody>tr{transition:background-color .15s ease;}
.admin-content .table>tbody>tr:hover{background-color:var(--bg-soft);}

.admin-content .form-control:focus,.admin-content .form-select:focus{border-color:var(--brand-600);box-shadow:0 0 0 .2rem rgba(31,122,58,.15);}

.admin-tabs-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(11,44,23,.06);}
.admin-tabs-nav{background:var(--bg-soft);border-bottom:1px solid var(--border);padding:0 8px;flex-wrap:wrap;}
.admin-tabs-nav .nav-link{border:none;border-bottom:3px solid transparent;color:var(--ink-soft);font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;padding:12px 16px;border-radius:0;background:transparent;transition:color .15s ease,border-color .15s ease;}
.admin-tabs-nav .nav-link.active{color:var(--brand-700);border-bottom-color:var(--accent);}
.admin-tabs-nav .nav-link:hover:not(.active){color:var(--brand-600);}
.admin-tab-pane{padding:24px;}
.admin-section-hint{color:var(--ink-soft);font-size:.85rem;margin-bottom:18px;}

.admin-content .badge.text-bg-light{background-color:var(--bg-soft)!important;color:var(--brand-700)!important;border-color:var(--border)!important;font-weight:600;}

body.admin-login{background:var(--brand-950);position:relative;overflow:hidden;}
body.admin-login::before{content:"";position:absolute;top:-25%;right:-15%;width:65%;height:150%;background:radial-gradient(circle,rgba(198,255,63,.12),transparent 65%);pointer-events:none;}
body.admin-login .card-admin{position:relative;z-index:1;border:none;box-shadow:0 24px 60px rgba(0,0,0,.35);}

@media (prefers-reduced-motion: reduce){
  *{transition-duration:.001ms!important;animation-duration:.001ms!important;scroll-behavior:auto!important;}
  .btn-brand:hover,.btn-outline-brand:hover,.btn-outline-light:hover,.feature-card:hover,.card-team:hover{transform:none!important;}
}

.cookie-overlay{position:fixed;inset:0;background:rgba(11,44,23,.45);display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding:16px;}
.cookie-box{background:#fff;border-radius:12px;max-width:520px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden;}
.cookie-box-header{display:flex;align-items:center;gap:10px;padding:16px 24px;background:var(--brand-900);color:#fff;}
.cookie-box-header i{font-size:1.2rem;color:var(--accent);}
.cookie-box-header h2{font-family:'Barlow Condensed',sans-serif;font-weight:800;color:#fff;}
.cookie-box-body{padding:20px 24px;}
.cookie-box-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:0 24px 20px;}
.cookie-category{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:var(--bg-soft);margin-bottom:10px;}
.cookie-category:last-of-type{margin-bottom:0;}
.cookie-badge-active{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 10px;border-radius:999px;background:var(--brand-600);color:#fff;white-space:nowrap;height:fit-content;}
.cookie-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;cursor:pointer;}
.cookie-switch input{opacity:0;width:0;height:0;}
.cookie-switch-slider{position:absolute;inset:0;background:#c9d2ca;border-radius:999px;transition:background .2s ease;}
.cookie-switch-slider::before{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s ease;}
.cookie-switch input:checked + .cookie-switch-slider{background:var(--brand-600);}
.cookie-switch input:checked + .cookie-switch-slider::before{transform:translateX(18px);}
.cookie-switch input:focus-visible + .cookie-switch-slider{outline:2px solid var(--accent);outline-offset:2px;}
@media (min-width:576px){.cookie-overlay{align-items:center;}}

.gallery-thumb{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:10px;}
.gallery-thumb:hover img{opacity:.85;}
.gallery-thumb img{transition:opacity .15s ease;}
.lightbox-overlay{position:fixed;inset:0;background:rgba(11,44,23,.92);z-index:2100;display:none;align-items:center;justify-content:center;padding:24px;}
.lightbox-figure{margin:0;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center;}
.lightbox-image{max-width:90vw;max-height:78vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-caption{color:#fff;font-size:.85rem;margin-top:12px;text-align:center;}
.lightbox-close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer;padding:4px 10px;}
.lightbox-close:hover{color:var(--accent);}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);border:0;color:#fff;font-size:2.5rem;line-height:1;width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.lightbox-nav:hover{background:rgba(255,255,255,.25);}
.lightbox-prev{left:12px;}
.lightbox-next{right:12px;}
@media (max-width:576px){.lightbox-nav{width:40px;height:40px;font-size:1.8rem;}}

.skip-link{position:absolute;top:-100px;left:12px;z-index:3000;background:var(--brand-900);color:#fff;padding:10px 18px;border-radius:0 0 8px 8px;font-weight:700;text-decoration:none;transition:top .15s ease;}
.skip-link:focus{top:0;color:#fff;}

.footer-social a{color:#fff;font-size:1.3rem;opacity:.8;transition:opacity .15s ease,color .15s ease;}
.footer-social a:hover{opacity:1;color:var(--accent);}

@media print{
  .site-header,.site-footer,.skip-link,.cookie-overlay,.lightbox-overlay,.no-print{display:none!important;}
  body{background:#fff;color:#000;}
  .container{max-width:100%!important;width:100%!important;}
  table{width:100%;border-collapse:collapse;}
  table,th,td{border:1px solid #000!important;color:#000!important;background:#fff!important;}
  .badge{border:1px solid #000;color:#000!important;background:#fff!important;}
  a{color:#000;text-decoration:none;}
}
