.brand-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  object-fit: contain;
}

.brand > span:last-child { max-width: 470px; }
.brand strong { line-height: 1.15; }
.event-long { display: block; max-width: 1100px; font-size: .48em; line-height: 1.05; letter-spacing: -.035em; margin-top: .18em; }

.name-search {
  flex: 1 1 100%;
  max-width: 560px;
}

.name-search input {
  height: 48px;
  margin-top: 8px;
  background: #fbfcfa;
  border: 1px solid var(--line);
  font-size: 1rem;
}

.name-search input::-webkit-search-cancel-button { cursor: pointer; }

.result-actions.single { grid-template-columns: 1fr; }

@media (max-width: 720px) {
  body { background-size: 20px 20px; }
  .site-header { gap: 10px; }
  .brand { min-width: 0; }
  .brand > span:last-child { max-width: 205px; }
  .brand strong { font-size: .76rem; white-space: normal; }
  .brand-icon { flex-basis: 42px; width: 42px; height: 42px; }
  .site-header nav a { white-space: nowrap; }
  .intro { padding-left: 26px; padding-right: 26px; }
  .quick-stats { justify-content: space-between; gap: 8px; }
  .quick-stats div { padding-left: 9px; }
  .quick-stats span { letter-spacing: .08em; }
  .ranking-hero { padding-left: 24px; padding-right: 24px; }
  .ranking-hero h1 { font-size: clamp(3.2rem, 17vw, 4.5rem); }
  .ranking-hero .event-long { font-size: .43em; line-height: 1.08; }
  .ranking-panel { background: transparent; box-shadow: none; }
  .filters { background: #fff; box-shadow: var(--shadow); }
  .filter-group { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); }
  .filters > div { width: 100%; }
  .name-search { width: 100%; max-width: none; }
  .filters > div:last-child .filter-group { grid-template-columns: repeat(3, 1fr); }
  .filter-group button { padding: 11px 4px; min-width: 0; }
  .table-wrap { overflow: visible; margin-top: 18px; }
  table, tbody, tr, td { display: block; min-width: 0; width: 100%; }
  thead { display: none; }
  tbody { display: grid; gap: 12px; }
  tbody tr { background: #fff; padding: 16px 18px; box-shadow: 0 8px 24px rgba(16,44,34,.09); display: grid; grid-template-columns: auto 1fr; column-gap: 18px; }
  tbody tr:hover { background: #fff; }
  tbody td { border: 0; padding: 6px 0; display: grid; grid-template-columns: 92px 1fr; align-items: center; min-width: 0; overflow-wrap: anywhere; }
  tbody td::before { content: attr(data-label); color: var(--muted); font-size: .68rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
  tbody td:first-child { grid-row: 1 / span 4; grid-column: 1; display: flex; align-items: flex-start; width: auto; }
  tbody td:first-child::before { display: none; }
  tbody td:not(:first-child) { grid-column: 2; }
  .position { width: 48px; height: 48px; font-size: 1.1rem; }
  .race-time { font-size: 1.25rem; }
  .category-tag { justify-self: start; }
  .empty { background: #fff; }
  .card-top { gap: 10px; }
  .card-top span { max-width: 50%; }
}

@media (max-width: 390px) {
  .brand strong { font-size: .68rem; }
  .site-header nav { font-size: .72rem; }
  .intro h1 { font-size: 3rem; }
  .quick-stats strong { font-size: .7rem; }
  .quick-stats span { font-size: .59rem; }
  .segmented span { font-size: .78rem; }
}
[hidden]{display:none!important}
.intro h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.04em;line-height:1.05}
.home-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;position:relative;z-index:1}
.home-actions .outline-button{color:white}
.brand strong{font-size:1rem}
dialog{width:min(700px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid var(--line);padding:clamp(20px,4vw,36px);color:var(--ink);background:white;box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(16,44,34,.65)}
dialog h2{margin-top:0}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.supporters{width:min(1040px,calc(100% - 40px));margin:32px auto;padding:22px;background:#fff;border:1px solid var(--line)}
.supporters h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 16px}
.supporters-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.supporter{min-height:74px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;background:#fff;color:var(--ink);font-size:.75rem;overflow-wrap:anywhere;border:1px solid #e7e9e5}
.supporter img{display:block;width:100%;height:60px;object-fit:contain}
.result-card .supporters{width:100%;margin:14px 0;border:0;padding:12px 0}
.result-card .supporter{min-height:60px}.result-card .supporter img{height:45px}
.institution{display:flex;align-items:center;gap:12px}.institution-logo{width:90px;height:65px;object-fit:contain}
.card-event{font-size:.8rem;color:var(--muted)}
.admin-page{margin:36px auto;width:min(1400px,calc(100% - 32px));padding:clamp(16px,3vw,36px);background:white}
.login-form{max-width:450px}.admin-toolbar{display:flex;gap:30px;justify-content:space-between;align-items:start;margin-bottom:30px}
.admin-table{overflow-x:auto;margin-top:20px}.admin-table table{display:table;min-width:1300px}.admin-table thead{display:table-header-group}.admin-table tbody{display:table-row-group}.admin-table tr{display:table-row}.admin-table td,.admin-table th{display:table-cell;width:auto;padding:12px}.admin-table td::before{display:none}.admin-table button{padding:10px;cursor:pointer;margin:3px}
button:focus-visible,a:focus-visible{outline:3px solid #db9c00;outline-offset:3px}.segmented input:focus-visible+span{outline:3px solid #db9c00;outline-offset:2px}
@media(max-width:600px){.home-actions{flex-direction:column}.supporters{width:calc(100% - 24px);padding:16px}.supporters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-toolbar{flex-direction:column}.admin-toolbar form{width:100%}.brand strong{font-size:.85rem}.card-top{flex-direction:column}.card-top span{max-width:100%}}

.athlete-name{overflow-wrap:anywhere}

/* Result positions remain legible as a two-by-two grid on small screens. */
.bib-label{font-size:.75rem;font-weight:800;color:var(--muted);margin:8px 0 20px}
.result-card .card-metrics{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px}
.result-card .card-metrics>div{min-width:0;padding:20px 0}
.result-card .card-metrics small{font-size:.65rem;letter-spacing:.03em}
.admin-page,.admin-toolbar form,.admin-page label,.admin-page input,.admin-page select,#admin-form label,#admin-form input{min-width:0;max-width:100%}
.admin-toolbar>form:first-child{flex:1;max-width:680px}
.admin-toolbar>form:last-child{display:block}
.admin-row-actions{white-space:nowrap}
.admin-table button{min-height:44px}
@media(max-width:1000px){
  .admin-table{overflow:visible}
  .admin-table table{display:block;min-width:0;width:100%}
  .admin-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .admin-table tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%}
  .admin-table tr{display:flex;flex-direction:column;min-width:0;width:100%;padding:16px;border:1px solid var(--line);background:#fff;box-shadow:none}
  .admin-table td,.admin-table td:first-child,.admin-table td:not(:first-child){display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;width:100%;padding:8px 0;border:0;font-size:.85rem;overflow-wrap:anywhere}
  .admin-table td::before,.admin-table td:first-child::before{display:block;content:attr(data-label);font-size:.7rem;color:var(--muted);font-weight:800;letter-spacing:.03em;text-transform:uppercase}
  .admin-table td:first-child{font-weight:800;font-size:1rem;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:6px}
  .admin-table td.admin-row-actions{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:auto}
  .admin-table td.admin-row-actions::before{display:none}
  .admin-row-actions button{flex:1;margin:0;border:1px solid var(--green);background:white;color:var(--green);font-weight:800}
  .admin-row-actions button:last-child{border-color:var(--red);color:var(--red)}
}
@media(max-width:720px){
  .result-card .card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .result-card .card-metrics>div:last-child{grid-column:auto}
  .admin-table tbody{grid-template-columns:1fr}
  .admin-page{width:calc(100% - 24px);padding:16px;margin:20px auto}
  .admin-toolbar{flex-direction:column;gap:16px}
  .admin-toolbar>form{width:100%}
  .admin-toolbar>form:last-child button{width:100%}
  #admin-edit{width:calc(100% - 16px);padding:20px 16px;max-height:92dvh}
  #admin-form{grid-template-columns:minmax(0,1fr);gap:18px}
}

.logo-crop{display:block;overflow:hidden;width:100%;height:60px}
.result-card .supporter .logo-crop{height:60px}
.institution .institution-logo{width:90px;height:110px;flex-shrink:0}
.result-card .card-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:720px){.result-card .card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.result-card .card-metrics>div:last-child{grid-column:auto}}

.admin-sort{display:block;max-width:360px;margin-top:20px}
.edit-count{display:inline-block;padding:5px 10px;border-radius:4px;font-size:.8rem;font-weight:800;white-space:nowrap;justify-self:start}
.edits-none{background:#edf0ee;color:#46574e}
.edits-one{background:#fff1a8;color:#614600;border:1px solid #d5a900}
.edits-many{background:#ffe1e1;color:#9b1424;border:1px solid #ca3444}
.edit-legend{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Shared, undistorted logo frames in HTML and exported cards. */
.supporters-grid{align-items:stretch}
.supporter{padding:10px 12px;min-height:92px;background:#fff}
.supporter img,.result-card .supporter img{width:100%;height:76px;object-fit:contain;object-position:center}
.result-card .supporter{min-height:96px;padding:10px 12px}
.result-card .card-top{background:var(--green);color:#fff;margin:-34px -40px 20px;padding:18px 24px;align-items:center}
.institution .institution-logo{height:140px;width:120px;object-fit:contain;background:transparent}
@media(max-width:720px){.result-card .card-top{margin:-24px -22px 18px;padding:16px}.institution .institution-logo{height:110px;width:95px}.result-card .supporter{padding:8px;min-height:82px}.result-card .supporter img{height:66px}}

.edit-warning{padding:14px 16px;border-left:4px solid #c99700;background:#fff4c7;color:#654b00;font-weight:600;line-height:1.5}

/* Primary navigation: tangible controls with comfortable touch targets. */
.site-header{min-height:88px;height:auto;padding-top:16px;padding-bottom:16px;gap:24px;background:rgba(250,249,244,.97);border-bottom:1px solid #dce4dc;box-shadow:0 3px 16px rgba(16,44,34,.05)}
.site-header .brand{gap:12px;flex-shrink:0}
.site-header .brand strong{font-size:1.05rem;letter-spacing:.015em}
.site-header .brand small{font-size:.6rem;letter-spacing:.14em;margin-top:5px}
.site-header nav{display:flex;flex-direction:row;align-items:center;gap:10px}
.site-header .nav-button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 18px;border:1px solid #c6d6cb;border-radius:12px;font-size:.86rem;font-weight:800;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .15s,box-shadow .15s,transform .15s}
.site-header .nav-button svg{width:20px;height:20px;flex-shrink:0}
.site-header .nav-register{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 4px 0 #05512b,0 6px 12px rgba(8,114,61,.14)}
.site-header .nav-register:hover{background:var(--green-dark)}
.site-header .nav-rank{background:#fff;color:var(--green-dark);box-shadow:0 3px 0 #dce5de}
.site-header .nav-rank:hover,.site-header .nav-rank[aria-current="page"]{background:#e8f3eb;border-color:#78a88a}
.site-header .nav-button:active{transform:translateY(2px);box-shadow:0 1px 0 #c6d6cb}
.site-header .nav-button:focus-visible{outline:3px solid #d59900;outline-offset:4px}
@media(max-width:720px){
  .site-header{padding:13px 16px 17px;gap:14px;flex-wrap:wrap;align-items:center}
  .site-header .brand{width:100%;justify-content:center;gap:10px}
  .site-header .brand-icon{width:36px;height:36px;flex-basis:36px}
  .site-header .brand>span:last-child{max-width:none}
  .site-header .brand strong{font-size:.98rem}
  .site-header .brand small{display:none}
  .site-header nav{display:grid;grid-template-columns:1.25fr 1fr;width:100%;gap:10px}
  .site-header .nav-button{width:100%;min-height:46px;padding:11px 10px;font-size:.82rem}
}
@media(prefers-reduced-motion:reduce){.site-header .nav-button{transition:none}}

/* Matching light navigation buttons. */
.site-header .nav-button{width:180px;min-height:46px;background:#eef5ef;color:var(--green-dark);border:1px solid #c6d6cb;box-shadow:0 3px 0 #dce5de}
.site-header .nav-button:hover,.site-header .nav-button[aria-current="page"]{background:#eef5ef;color:var(--green-dark);border-color:#c6d6cb}
.site-header .nav-button:hover{background:#e1eee4}
.site-header .nav-button:active{box-shadow:0 1px 0 #c6d6cb}
@media(max-width:720px){.site-header nav{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header .nav-button{width:100%}}
