.lcp-team {
  --lcp-petrol: #0b3545;
  --lcp-gold: #e6ad48;
  --lcp-muted: #657984;
  --lcp-line: rgba(11, 53, 69, 0.12);
  color: var(--lcp-petrol);
  font-family: inherit;
  line-height: 1.6;
}
.lcp-team * {
  box-sizing: border-box;
}
.lcp-team [hidden] {
  display: none !important;
}
.lcp-team a {
  color: inherit;
}
.lcp-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: 30px;
}
.lcp-toolbar p {
  margin: 4px 0;
}
.lcp-eyebrow {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  color: #8b631e;
}
.lcp-team label {
  display: block;
  font-weight: 650;
  font-size: 0.9rem;
}
.lcp-team input:not([type="checkbox"]):not([type="range"]):not([type="file"]),
.lcp-team select {
  display: block;
  width: 100%;
  min-height: 46px;
  margin: 6px 0 17px;
  padding: 10px 13px;
  border: 1px solid var(--lcp-line);
  border-radius: 10px;
  background: #f8f9f9;
  color: var(--lcp-petrol);
  font: inherit;
  line-height: 1.3;
}
.lcp-team input:focus-visible,
.lcp-team select:focus-visible,
.lcp-team a:focus-visible,
.lcp-team button:focus-visible {
  outline: 3px solid var(--lcp-gold);
  outline-offset: 4px;
}
.lcp-search-label {
  min-width: 220px;
}
.lcp-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.lcp-card {
  position: relative;
  margin: 0;
  border: 1px solid var(--lcp-line);
  border-radius: 23px;
  background: linear-gradient(155deg, #fafbfb, #edf1f2);
  box-shadow: 0 8px 28px rgba(11, 40, 53, 0.07);
  overflow: hidden;
  transition:
    transform 0.3s,
    box-shadow 0.3s,
    border-color 0.3s;
}
.lcp-card > a {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 25px 20px 0;
  text-decoration: none;
}
.lcp-photo {
  position: relative;
  display: block;
  overflow: hidden;
  isolation: isolate;
  width: 100%;
  background: #e0e7e8;
  border-radius: 18px;
}
.lcp-photo img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
  transform: scale(var(--lcp-zoom, 1));
  transition:
    transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 0.5s;
  margin: 0 !important;
  border: 0 !important;
}
.lcp-card .lcp-photo {
  border-radius: 50%;
  max-width: 250px;
  margin: auto;
  box-shadow:
    0 0 0 6px #f6f8f8,
    0 0 0 7px rgba(11, 53, 69, 0.08);
}
.lcp-card .lcp-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    125deg,
    transparent 30%,
    rgba(255, 255, 255, 0.24) 48%,
    transparent 66%
  );
  transform: translateX(-120%);
  transition: transform 0.7s;
  pointer-events: none;
}
.lcp-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
  padding: 22px 0 0;
}
.lcp-card h3 {
  font-size: 1.06rem;
  line-height: 1.35;
  color: var(--lcp-petrol);
  margin: 0 0 9px !important;
  font-weight: 800;
}
.lcp-descriptions {
  color: var(--lcp-muted);
  font-size: 0.9rem;
}
.lcp-descriptions span {
  display: block;
}
.lcp-card .lcp-descriptions {
  min-height: 52px;
  margin-bottom: 20px;
}
.lcp-profile-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: auto -20px 0;
  padding: 13px 20px;
  border-top: 1px solid var(--lcp-line);
  font-size: 0.73rem;
  letter-spacing: 0.05em;
  font-weight: 750;
  color: var(--lcp-petrol);
}
.lcp-profile-link > span {
  font-size: 1.15rem;
  color: #916618;
}
.lcp-placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #134656, #0a2b39);
  color: var(--lcp-gold);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.lcp-card:hover,
.lcp-card:focus-within {
  transform: translateY(-7px);
  box-shadow: 0 22px 42px rgba(11, 40, 53, 0.16);
  border-color: rgba(190, 145, 59, 0.5);
}
.lcp-card:hover img,
.lcp-card:focus-within img {
  transform: scale(calc(var(--lcp-zoom, 1) * 1.065));
  filter: saturate(1.08);
}
.lcp-card:hover .lcp-photo:after {
  transform: translateX(120%);
}
.lcp-detail {
  max-width: 1240px;
  margin: 0 auto;
}
.lcp-back {
  display: inline-block;
  margin-bottom: 25px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
}
.lcp-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  align-items: start;
}
.lcp-primary {
  box-shadow: 0 20px 50px rgba(10, 40, 50, 0.13);
  border-radius: 22px;
  overflow: hidden;
}
.lcp-detail h1 {
  font-size: clamp(1.9rem, 3.3vw, 3rem);
  line-height: 1.15;
  margin: 10px 0 16px;
  color: var(--lcp-petrol);
}
.lcp-detail h2 {
  font-size: 1.1rem;
  color: var(--lcp-petrol);
  margin-top: 25px;
}
.lcp-detail .lcp-descriptions {
  font-size: 1rem;
  margin-bottom: 24px;
}
.lcp-stats {
  margin: 20px 0;
}
.lcp-stats > div {
  border-top: 1px solid var(--lcp-line);
  padding: 13px 0;
}
.lcp-stats dt {
  font-weight: 750;
  font-size: 0.8rem;
  color: var(--lcp-muted);
}
.lcp-stats dd {
  margin: 3px 0 0;
  font-size: 1.03rem;
  font-variant-numeric: tabular-nums;
}
.lcp-results {
  padding-left: 20px;
}
.lcp-results li {
  padding: 6px 0;
}
.lcp-results li::marker {
  color: #aa7825;
}
.lcp-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 35px 0;
}
.lcp-gallery-link {
  border-radius: 18px;
  overflow: hidden;
  align-self: start;
  box-shadow: 0 8px 24px rgba(10, 40, 50, 0.09);
}
.lcp-gallery-link:hover img {
  filter: brightness(1.08);
}
.lcp-single-wrap {
  padding-top: 35px;
  padding-bottom: 50px;
}
.lcp-panel {
  border: 1px solid var(--lcp-line);
  border-radius: 18px;
  background: #f4f6f6;
  padding: clamp(18px, 3vw, 30px);
  margin: 24px 0;
}
.lcp-panel h2,
.lcp-panel h3 {
  margin-top: 0;
}
.lcp-button,
.lcp-team button.lcp-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 47px;
  padding: 12px 22px;
  background: var(--lcp-petrol);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 11px;
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 750;
  cursor: pointer;
  transition:
    background 0.2s,
    box-shadow 0.2s;
}
.lcp-button:hover {
  background: #155063;
  box-shadow: 0 6px 20px rgba(11, 53, 69, 0.14);
}
.lcp-button:disabled {
  opacity: 0.65;
  cursor: wait;
}
.lcp-button.lcp-secondary {
  background: transparent;
  color: var(--lcp-petrol);
  border-color: var(--lcp-line);
}
.lcp-portal {
  max-width: 1120px;
  margin: 0 auto;
}
.lcp-portal > h2 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  margin-top: 8px;
}
.lcp-portal form > label {
  margin: 15px 0;
}
.lcp-notice {
  padding: 17px 20px;
  border-radius: 12px;
  font-weight: 750;
  margin: 20px 0;
}
.lcp-success {
  background: #e2f2e8;
  color: #14632f;
  border: 1px solid #a5cdb4;
}
.lcp-error {
  background: #fbeae8;
  color: #992a20;
  border: 1px solid #dfb4ae;
}
.lcp-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
}
.lcp-image-editors {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.lcp-image-editor {
  min-width: 0;
  border: 1px solid var(--lcp-line);
  border-radius: 14px;
  padding: 15px;
  margin: 0;
}
.lcp-image-editor legend {
  font-weight: 800;
  padding: 0 7px;
}
.lcp-image-editor .lcp-photo {
  margin-bottom: 15px;
}
.lcp-image-editor label {
  margin: 10px 0;
}
.lcp-image-editor input[type="range"] {
  display: block;
  width: 100%;
  accent-color: var(--lcp-petrol);
}
.lcp-image-editor input[type="file"] {
  display: block;
  width: 100%;
  font-size: 0.78rem;
  margin: 8px 0;
}
.lcp-roster {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  max-height: 440px;
  overflow: auto;
}
.lcp-roster a {
  display: flex;
  flex-direction: column;
  padding: 12px 15px;
  background: #e9edef;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
}
.lcp-roster small {
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--lcp-muted);
}
.lcp-roster a:hover {
  background: #dce5e7;
}
.lcp-save-bar {
  position: sticky;
  bottom: 12px;
  z-index: 5;
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 15px;
  border-radius: 13px;
  background: rgba(239, 243, 243, 0.96);
  box-shadow: 0 8px 28px rgba(11, 53, 69, 0.14);
  margin-top: 24px;
  flex-wrap: wrap;
}
.lcp-more summary,
.lcp-panel summary {
  cursor: pointer;
  margin-bottom: 18px;
}
.lcp-admin {
  max-width: 1300px;
}
.lcp-admin input[type="email"] {
  min-width: 230px;
}
.lcp-admin .lcp-panel {
  background: #f9fafb;
}
.lcp-lightbox {
  border: 0;
  padding: 12px;
  background: #102f3d;
  color: #fff;
  border-radius: 16px;
  max-width: 95vw;
  max-height: 94vh;
  box-shadow: 0 20px 100px #0006;
}
.lcp-lightbox::backdrop {
  background: rgba(1, 16, 24, 0.88);
  backdrop-filter: blur(5px);
}
.lcp-lightbox img {
  display: block;
  max-width: 88vw;
  max-height: 78vh;
  object-fit: contain;
}
.lcp-lightbox-controls {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 0 0;
}
.lcp-lightbox button {
  border: 1px solid #ffffff55;
  background: transparent;
  color: #fff;
  border-radius: 8px;
  padding: 8px 18px;
  font: inherit;
  cursor: pointer;
}
.lcp-image-status {
  font-size: 0.8rem;
  color: #9c3027;
}
.lcp-team .lcp-no-results {
  text-align: center;
  padding: 25px;
}
@media (min-width: 1500px) {
  .lcp-grid {
    gap: 28px;
  }
}
@media (max-width: 1100px) {
  .lcp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lcp-image-editors {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .lcp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  .lcp-card > a {
    padding: 20px 15px 0;
  }
  .lcp-profile-link {
    margin-left: -15px;
    margin-right: -15px;
    padding-left: 15px;
    padding-right: 15px;
  }
  .lcp-detail-layout {
    grid-template-columns: 1fr;
  }
  .lcp-primary {
    max-width: 580px;
  }
  .lcp-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lcp-toolbar {
    align-items: stretch;
    flex-direction: column;
    gap: 13px;
  }
  .lcp-roster {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .lcp-grid {
    grid-template-columns: 1fr;
  }
  .lcp-card > a {
    padding-top: 28px;
  }
  .lcp-card .lcp-photo {
    max-width: 240px;
  }
  .lcp-fields,
  .lcp-image-editors,
  .lcp-roster {
    grid-template-columns: 1fr;
  }
  .lcp-gallery {
    gap: 10px;
  }
  .lcp-save-bar {
    bottom: 0;
  }
  .lcp-card .lcp-descriptions {
    min-height: 0;
  }
  .lcp-panel {
    border-radius: 14px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lcp-team * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .lcp-card:hover,
  .lcp-card:focus-within {
    transform: none;
  }
  .lcp-card:hover img,
  .lcp-card:focus-within img {
    transform: scale(var(--lcp-zoom, 1));
  }
}
/* Respond to the actual Gutenberg content width as well as the viewport. */
.lcp-team {
  container-type: inline-size;
  container-name: lcp;
}
.lcp-card h3,
.lcp-stats dd {
  overflow-wrap: anywhere;
}
@container lcp (max-width:1050px) {
  .lcp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@container lcp (max-width:760px) {
  .lcp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lcp-image-editors {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lcp-roster {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lcp-detail-layout {
    grid-template-columns: 1fr;
  }
  .lcp-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
}
@container lcp (max-width:480px) {
  .lcp-grid,
  .lcp-image-editors,
  .lcp-roster,
  .lcp-fields {
    grid-template-columns: 1fr;
  }
  .lcp-card .lcp-photo {
    max-width: 240px;
  }
  .lcp-card .lcp-descriptions {
    min-height: 0;
  }
}

/* Immediate crop feedback and one-click reveal for browser-filled passwords. */
.lcp-image-editor .lcp-photo img {
  transition: none;
}
.lcp-range-value {
  float: right;
  color: var(--lcp-muted);
  font-weight: 500;
  font-size: 0.8rem;
}
.lcp-crop-help {
  font-size: 0.85rem;
  color: var(--lcp-muted);
}
.lcp-password-wrap {
  position: relative;
  display: block;
}
.lcp-team .lcp-password-wrap input {
  padding-right: 100px !important;
}
.lcp-team .lcp-password-toggle {
  position: absolute;
  right: 7px;
  top: 7px;
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid var(--lcp-line);
  border-radius: 7px;
  background: #e7edef;
  color: var(--lcp-petrol);
  font: inherit;
  font-size: 0.76rem;
  cursor: pointer;
}
.lcp-team .lcp-password-toggle:hover {
  background: #d9e4e7;
}
.lcp-registration-panel {
  border-color: rgba(170, 120, 37, 0.4);
  box-shadow: 0 8px 28px rgba(11, 53, 69, 0.06);
  scroll-margin-top: 120px;
}
#lcp-login {
  scroll-margin-top: 120px;
}
.lcp-new-athlete .lcp-button {
  text-decoration: none;
}

/* Primary link buttons need an explicit foreground over the theme's link styles. */
.lcp-team a.lcp-button:not(.lcp-secondary),
.lcp-team a.lcp-button:not(.lcp-secondary):visited,
.lcp-team a.lcp-button:not(.lcp-secondary):hover,
.lcp-team a.lcp-button:not(.lcp-secondary):focus,
.lcp-team a.lcp-button:not(.lcp-secondary):active {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  text-decoration: none;
}

/* Tessera is shown only inside the authenticated editor or backend. */
.lcp-team .lcp-tessera-panel{margin:18px 0 28px;padding:20px;border:1px solid #cbd5d0;border-radius:14px;background:#edf2ef;break-inside:avoid}
.lcp-team .lcp-tessera-panel h3{margin:0 0 16px}
.lcp-team .lcp-tessera-image{display:block;width:min(100%,620px);height:auto;object-fit:contain;border-radius:10px;box-shadow:0 5px 18px #163d3b1a}
.lcp-team .lcp-tessera-object{display:block;width:100%;max-width:650px;height:420px;border:0}
.lcp-team .lcp-tessera-filename{font-size:12px;overflow-wrap:anywhere;color:#536966}
.lcp-team .lcp-tessera-panel input[type=file]{display:block;margin:8px 0}
.lcp-team .lcp-name-fields{margin-bottom:12px}
.lcp-team .lcp-tessera-panel .lcp-button{color:#fff!important}
.lcp-team .lcp-tessera-panel .lcp-button:visited{color:#fff!important}
.lcp-team .lcp-tessera-panel [hidden]{display:none!important}

.lcp-team .lcp-tessera-downloads{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.lcp-team .lcp-tessera-downloads .lcp-button{margin:0}
.lcp-team .lcp-tessera-image{aspect-ratio:auto!important;max-width:100%;height:auto!important;min-height:0!important;object-fit:contain!important}
.lcp-team .lcp-manager-layout{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:24px;align-items:start}
.lcp-team .lcp-manager-list{max-height:680px;overflow:auto;margin-top:18px;display:grid;gap:8px}
.lcp-team .lcp-manager-athlete{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:10px;background:#edf3f0;color:#173f40;text-decoration:none;transition:background .18s}
.lcp-team .lcp-manager-athlete:hover{background:#dbe8df}
.lcp-team .lcp-manager-athlete small{font-size:12px;color:#536966}
.lcp-team .lcp-manager-athlete[hidden],.lcp-team .lcp-manager-empty[hidden]{display:none!important}
.lcp-team .lcp-password-field{display:flex;gap:8px;align-items:center}
.lcp-team .lcp-password-field input{min-width:0;flex:1}
.lcp-team .lcp-password-toggle{padding:10px;border:1px solid #bdcbc4;border-radius:8px;background:#edf3f0;color:#173f40;font-size:13px}
@media(max-width:700px){.lcp-team .lcp-manager-layout{grid-template-columns:1fr}.lcp-team .lcp-manager-list{max-height:280px}.lcp-team .lcp-tessera-downloads .lcp-button{width:100%;text-align:center}}

/* A prominent, shared upload area for backend and tessera management. */
.lcp-team .lcp-tessera-panel .lcp-tessera-upload-box{display:block;margin:24px 0 12px;padding:18px;background:#fff7e3;border:2px solid #bd9a4c;border-left-width:6px;border-radius:12px;box-shadow:0 4px 14px #a1803214;color:#173f40;cursor:pointer;box-sizing:border-box}
.lcp-team .lcp-tessera-upload-title{display:block;margin-bottom:12px;font-size:clamp(17px,2vw,20px);font-weight:800;line-height:1.4;color:#173f40}
.lcp-team .lcp-tessera-panel .lcp-tessera-upload-box input[type=file]{display:block;width:100%;max-width:100%;min-width:0;margin:0;padding:0;border:0;background:transparent;font-size:14px;color:#173f40;box-sizing:border-box;cursor:pointer}
.lcp-team .lcp-tessera-upload-box input[type=file]::file-selector-button{font-family:inherit;margin:0 10px 6px 0;padding:11px 14px;border:0;border-radius:8px;background:#173f40;color:#fff;font-weight:700;cursor:pointer}
.lcp-team .lcp-tessera-upload-box:focus-within{outline:3px solid #173f40;outline-offset:3px}
@media(max-width:480px){.lcp-team .lcp-tessera-panel .lcp-tessera-upload-box{padding:14px 12px;border-left-width:5px}}
