:root{color:#172026;background:#f5f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:#f5f7f8}a{color:inherit}main{max-width:1240px;margin:0 auto;padding:24px}.app-header{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;width:100vw;min-height:420px;margin:-24px calc(50% - 50vw) 0;padding:56px max(40px,calc((100vw - 1240px)/2 + 40px)) 202px;color:#fff;background-image:linear-gradient(90deg,#081a20b8,#081a2057 52%,#081a202e),linear-gradient(180deg,#081a2014,#081a207a),url(/assets/regattastrecke-beetzsee.jpg);background-position:center bottom;background-size:cover;overflow:hidden}.eyebrow{margin:0 0 8px;color:#ffffffdb;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.1rem,5vw,4.8rem);line-height:.95}.source{margin:14px 0 0;color:#ffffffe0;text-shadow:0 1px 16px rgba(0,0,0,.28)}.source a,.photo-credit a{text-decoration-thickness:1px;text-underline-offset:3px}.photo-credit{margin:8px 0 0;color:#ffffffb8;font-size:.78rem;text-shadow:0 1px 12px rgba(0,0,0,.3)}.metric,.filters,.race-card,.medal-overview{border:1px solid #d8e0e5;background:#fff;box-shadow:0 8px 26px #17202612}code{display:inline-block;padding:4px 7px;border-radius:6px;background:#eef2f3;color:#1e3a44}.stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:-148px 0 18px}.metric{border-radius:8px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:8px 10px}.metric svg{color:#006d77}.metric span{color:#52616b}.metric strong{grid-column:1 / -1;font-size:1.7rem}.view-switch{align-self:start;display:inline-flex;gap:4px;padding:4px;border:1px solid #c9d4da;border-radius:8px;background:#fff;box-shadow:0 8px 26px #17202612}.view-switch button{min-height:40px;border:0;border-radius:6px;padding:0 12px;display:inline-flex;gap:8px;align-items:center;background:transparent;color:#52616b;font:inherit;font-weight:800;cursor:pointer}.view-switch button.active{background:#006d77;color:#fff}.filters{position:sticky;top:0;z-index:3;border-radius:8px;padding:12px;overflow:visible}.filter-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.filter-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;align-items:end;margin-top:10px}.search-field,.select-field{display:flex;min-width:0;min-height:42px;border:1px solid #c9d4da;border-radius:7px;background:#fbfcfc;align-items:center}.search-field{padding:0 12px;gap:8px}.filter-toggle{min-height:42px;border:1px solid #c9d4da;border-radius:7px;padding:0 12px;display:inline-flex;gap:8px;align-items:center;justify-content:center;background:#006d77;color:#fff;font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}input,select{min-width:0;width:100%;border:0;background:transparent;color:#172026;font:inherit;outline:none}.select-field{flex-direction:column;align-items:stretch;justify-content:center;padding:4px 9px 5px}.select-field span{color:#61707a;font-size:.72rem;font-weight:700;text-transform:uppercase}.toggle{min-width:0;min-height:42px;border:1px solid #c9d4da;border-radius:7px;display:flex;gap:8px;align-items:center;justify-content:center;font-weight:700}.toggle input{width:18px;height:18px}.result-summary{margin:18px 0 10px;color:#52616b}.race-list{display:grid;gap:10px}.race-card{border-radius:8px;overflow:clip}.race-card.german-race{border-color:#f1c453;background:#fffaf0;box-shadow:0 8px 26px #9a6b001c}.race-card.german-race .race-button{background:linear-gradient(90deg,#ffd66633,#fffaf0bf)}.race-button{width:100%;border:0;background:transparent;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:stretch;padding:0 14px 0 0;color:inherit;text-align:left;cursor:pointer}.race-number{min-width:82px;min-height:72px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;background:#90a4ae;color:#fff;font-size:1rem;font-weight:900;line-height:1;text-align:center;box-shadow:inset 0 -10px 18px #0000001f}.race-main,.race-actions{align-self:center}.race-number.official{background:#00875a}.race-number.unofficial{background:#9a6b00}.race-number.startlist{background:#006d77}.race-number.failed{background:#b42318}.race-title{display:flex;min-width:0;flex-wrap:wrap;gap:8px;align-items:center;font-weight:800;font-size:1.02rem}.germany-badge{display:inline-flex;min-height:24px;border:1px solid #f1c453;border-radius:999px;padding:3px 8px;background:#fff3cd;color:#5f4300;font-size:.78rem;font-weight:900;line-height:1;align-items:center}.country-mark{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.country-flag{width:24px;height:18px;border:1px solid rgba(23,32,38,.14);border-radius:2px;background:#eef2f3;object-fit:cover;flex:0 0 auto}.country-flag.placeholder{border-style:dashed}.country-flag.is-hidden{display:none}.race-meta{display:block;overflow-wrap:anywhere;margin-top:4px;color:#61707a;font-size:.9rem}.race-actions{display:flex;gap:12px;align-items:center}.race-actions a{display:inline-flex;width:34px;height:34px;border-radius:7px;align-items:center;justify-content:center;background:#eef2f3}.rotated{transform:rotate(180deg)}.details{border-top:1px solid #e2e8eb;padding:0 14px 14px}.table{width:100%;overflow-x:auto;border:1px solid #e2e8eb;border-radius:8px}.table-head,.table-row{display:grid;grid-template-columns:72px 96px minmax(180px,1fr) minmax(110px,130px);gap:12px;align-items:center;padding:10px 12px;min-width:560px}.table-head{background:#eef2f3;color:#52616b;font-size:.78rem;font-weight:800;text-transform:uppercase}.table-row:nth-child(odd){background:#fafbfb}.table-row.german-entry{background:#fff3cd}.position,.country,.time{font-weight:800}.country{white-space:nowrap}.athletes{overflow-wrap:anywhere}.empty{padding:16px;border-top:1px solid #e2e8eb;color:#61707a}.medal-overview{border-radius:8px;overflow:hidden}.medal-header{display:flex;gap:18px;align-items:end;justify-content:space-between;padding:18px;border-bottom:1px solid #e2e8eb}.medal-header h2{margin:0;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1}.medal-header p:last-child{margin:0;color:#61707a;font-weight:700}.medal-table{width:100%;overflow:hidden}.medal-row{display:grid;grid-template-columns:70px minmax(180px,1fr) repeat(5,minmax(86px,.5fr));gap:12px;align-items:center;padding:12px 18px}.medal-row:nth-child(odd):not(.medal-head){background:#fafbfb}.medal-row.germany-medal-row{border-block:1px solid #f1c453;background:#fffaf0;box-shadow:inset 4px 0 #f1c453}.medal-row.medal-head{background:#eef2f3;color:#52616b;font-size:.78rem;font-weight:800;text-transform:uppercase}.rank,.medal-count,.medal-row strong{font-weight:900}.medal-count{display:inline-flex;width:34px;height:34px;border-radius:999px;align-items:center;justify-content:center}.medal-count.gold{background:#fff3cd;color:#7a5600}.medal-count.silver{background:#eef2f3;color:#45545d}.medal-count.bronze{background:#f6dfcf;color:#73411f}.germany-medal-line{display:grid;grid-template-columns:70px minmax(180px,1fr) repeat(5,minmax(86px,.5fr));gap:12px;align-items:center;margin:14px 18px 18px;padding:12px 18px;border:1px solid #f1c453;border-radius:8px;background:#fffaf0;box-shadow:0 8px 20px #9a6b001a}.germany-medal-line strong{font-size:1.08rem}@media(max-width:980px){main{padding:16px}.app-header{grid-template-columns:1fr;min-height:440px;margin:-16px calc(50% - 50vw) 0;padding:42px 32px 188px}.stats{grid-template-columns:1fr 1fr;margin-top:-136px}.filters{position:static}.view-switch{justify-self:start}.medal-row{grid-template-columns:54px minmax(120px,1fr) repeat(5,minmax(66px,.5fr));gap:8px;padding:11px 12px}}@media(max-width:640px){.stats,.filter-search-row,.filter-controls{grid-template-columns:1fr}.app-header{min-height:460px;padding-bottom:168px;background-position:center bottom}.stats{margin-top:-126px}.filter-toggle,.view-switch{width:100%}.view-switch button{flex:1;justify-content:center}.medal-header{display:block}.medal-header p:last-child{margin-top:10px}.medal-table{overflow-x:auto}.medal-row{min-width:680px}.germany-medal-line{grid-template-columns:54px minmax(120px,1fr) repeat(5,minmax(66px,.5fr));gap:8px;padding:11px 12px}.race-button{grid-template-columns:auto minmax(0,1fr)}.race-actions{grid-column:2;justify-self:start}}
