:root{--primary:#2c3e50;--primary-light:#34495e;--accent:#3498db;--accent-dark:#2980b9;--text:#333;--text-light:#555;--text-muted:#999;--bg:#f5f7fa;--card-bg:#fff;--border:#e8e8e8;--success:#27ae60;--danger:#e74c3c;--gold-bg:#fff9e6;--silver-bg:#f0f0f0;--bronze-bg:#fef0e7;--qualified-bg:#e8f5e9;--status-live:#27ae60;--status-live-bg:#e8f5e9;--status-upcoming:#3498db;--status-upcoming-bg:#e3f2fd;--status-finished:#999;--status-finished-bg:#f0f0f0;--round-final:#e74c3c;--round-semi:#e67e22;--round-heat:#3498db;--record-competition:#e74c3c;--record-division:#e67e22;--record-korea:#2980b9;--record-world:#8e44ad;--font-xs:.72rem;--font-sm:.8rem;--font-base:.88rem;--font-md:.93rem;--font-lg:1rem;--font-xl:1.15rem;--font-2xl:1.25rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--radius-full:999px;--tab-height:56px}@media (prefers-color-scheme:dark){:root{--primary:#e8ecf1;--primary-light:#b0bec5;--accent:#64b5f6;--accent-dark:#42a5f5;--text:#e8e8e8;--text-light:#bbb;--text-muted:#888;--bg:#121212;--card-bg:#1e1e1e;--border:#3a3a3a;--success:#66bb6a;--danger:#ef5350;--gold-bg:#3d3520;--silver-bg:#353535;--bronze-bg:#3d2c1e;--qualified-bg:#1e3a1e;--status-live-bg:#1e3a1e;--status-upcoming-bg:#1a2d40;--status-finished-bg:#2e2e2e;--record-competition:#ff6b6b;--record-division:#ffb74d;--record-korea:#64b5f6;--record-world:#ce93d8}th{color:#ccc;background:#282828}.bottom-nav{background:#1a1a1a}.tab-item{color:var(--text-muted);background:#2e2e2e}.comp-card:active,.card:active,.card-clickable:active{background:#2e2e2e}.stats-bar-track{background:#3a3a3a}.skeleton{background:linear-gradient(90deg,#2a2a2a 25%,#383838 50%,#2a2a2a 75%) 0 0/200% 100%;animation:1.5s infinite shimmer}.scroll-top-btn{background:var(--card-bg);border-color:var(--border);color:var(--text-light)}.bottom-sheet{background:#1e1e1e}.bottom-sheet-handle{background:#555}.comp-card{box-shadow:0 2px 8px #0000004d}.card,.overview-summary-item{box-shadow:0 1px 3px #0003}.filter-bar select,.filter-bar input,.search-bar input,.comp-search input,.athlete-search input,.team-search input,.comp-year-filter{color:var(--text);background:#252525;border-color:#3a3a3a}.sort-btn{color:var(--text-muted);border-color:#3a3a3a}.error-state-retry{background:var(--accent)}.live-banner{border-color:var(--success);background:#1e3a1e}.stats-bars{background:var(--card-bg);box-shadow:0 1px 3px #0003}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:15px}body{color:var(--text);background:var(--bg);padding-bottom:calc(var(--tab-height) + env(safe-area-inset-bottom,0px));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;line-height:1.5;overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:active{opacity:.7}.header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.header-back{padding:var(--space-1);cursor:pointer;color:var(--accent);background:0 0;border:none;align-items:center;display:flex}.bottom-sheet-overlay{z-index:200;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--card-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:640px;max-height:70vh;padding:var(--space-4);padding-top:var(--space-6);position:relative;overflow-y:auto}.bottom-sheet-handle{background:var(--border);border-radius:2px;width:36px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.bottom-sheet-close{top:var(--space-3);right:var(--space-3);color:var(--text-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none;display:flex;position:absolute}.bottom-sheet-content{padding-top:var(--space-2)}.athlete-sheet-header{align-items:baseline;gap:var(--space-2);display:flex}.athlete-sheet-name{font-size:var(--font-xl);font-weight:var(--weight-bold)}.athlete-sheet-meta{font-size:var(--font-sm);color:var(--text-muted)}.athlete-sheet-info{font-size:var(--font-base);color:var(--text-light);margin-top:var(--space-2)}.athlete-sheet-section{font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--primary);margin-top:var(--space-4);margin-bottom:var(--space-2)}.athlete-sheet-medal{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--font-base);border-bottom:1px solid var(--border);display:flex}.athlete-sheet-medal:last-of-type{border-bottom:none}.athlete-sheet-medal-detail{flex:1;min-width:0}.athlete-sheet-medal-event{color:var(--text);font-weight:var(--weight-medium)}.athlete-sheet-medal-comp{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-1)}.athlete-sheet-medal-record{font-weight:var(--weight-semibold);flex-shrink:0}.athlete-sheet-more{text-align:center;font-size:var(--font-sm);color:var(--text-muted);padding:var(--space-2) 0}.scroll-top-btn{bottom:calc(var(--tab-height) + env(safe-area-inset-bottom,0px) + 12px);background:var(--card-bg);border:1px solid var(--border);cursor:pointer;width:44px;height:44px;color:var(--text-light);z-index:90;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;right:16px;box-shadow:0 2px 8px #0000001f}.scroll-top-btn:active{background:#f0f2f5}.bottom-nav{height:var(--tab-height);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-link{max-width:160px;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.7rem;text-decoration:none;transition:color .15s;display:flex}.bottom-nav-link.active{color:var(--accent);font-weight:var(--weight-semibold)}.division-group-header{font-size:var(--font-sm);font-weight:var(--weight-bold);color:var(--primary);margin:var(--space-3) 0 var(--space-2);padding:var(--space-1) 0;border-bottom:2px solid var(--accent)}.division-group-header:first-child{margin-top:0}.event-card{justify-content:space-between;align-items:center;display:flex}.event-card-link{flex:1;min-width:0}.event-division{font-weight:var(--weight-semibold);font-size:var(--font-base)}.event-medals{gap:var(--space-2);font-size:var(--font-sm);text-align:center;flex-shrink:0;display:flex}.medal-cell{min-width:3rem}.medal-name{font-size:var(--font-xs);color:var(--text-light)}.medal-name-link{font-size:var(--font-xs);color:var(--text-light);text-decoration:none}.medal-name-link:active{color:var(--accent)}.page-with-sticky{padding-top:0}.comp-sticky-top{z-index:50;background:var(--bg);padding:var(--space-4) 0 0;margin:0 calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4);position:sticky;top:0}.comp-detail-header{position:relative}.refresh-btn{color:var(--accent);cursor:pointer;padding:var(--space-2);background:0 0;border:none;display:flex;position:absolute;top:0;right:0}.refresh-btn:active{opacity:.6}.live-indicator{align-items:center;gap:var(--space-2);font-size:var(--font-xs);color:var(--status-live);margin-bottom:var(--space-3);display:flex}.live-indicator-dot{background:var(--status-live);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite pulse}.overview-image-wrap{margin-bottom:var(--space-4);border-radius:var(--radius-md);overflow:hidden}.overview-image{width:100%;display:block}.overview-summary{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.overview-summary-item{text-align:center;background:var(--card-bg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-2);flex:1;box-shadow:0 1px 3px #0000000f}.overview-summary-value{font-size:var(--font-xl);font-weight:var(--weight-bold);color:var(--accent)}.overview-summary-label{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-1)}.overview-label{font-weight:var(--weight-semibold);color:var(--text-light);font-size:var(--font-sm);margin-top:var(--space-3)}.overview-value{font-size:var(--font-md);margin-top:var(--space-1)}.overview-map-link{align-items:center;gap:var(--space-1);margin-left:var(--space-2);font-size:var(--font-xs);color:var(--accent);vertical-align:middle;display:inline-flex}.tab-bar{-webkit-overflow-scrolling:touch;border-bottom:2px solid var(--accent);margin-bottom:var(--space-4);scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-item{font-size:var(--font-sm);font-weight:var(--weight-semibold);white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-light);cursor:pointer;background:#f0f0f0;border:none;flex-shrink:0;padding:.55rem .9rem}.tab-item.active{background:var(--accent);color:#fff}.page{padding:var(--space-4);max-width:640px;margin:0 auto}.page-title{font-size:var(--font-2xl);font-weight:var(--weight-bold);color:var(--primary);margin-bottom:var(--space-4)}.card{background:var(--card-bg);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);box-shadow:0 1px 3px #0000000f}.card:active,.comp-card:active,.card-clickable:active{background:#f0f2f5;transition:background .1s}.table-wrap{-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem;position:relative;overflow-x:auto}.table-wrap:after{content:"";pointer-events:none;background:linear-gradient(to left, var(--bg) 0%, transparent 100%);float:right;width:24px;height:100%;margin-top:-100%;display:block;position:sticky;top:0;bottom:0;right:0}table{border-collapse:collapse;width:100%;font-size:var(--font-base)}th,td{padding:var(--space-2) .6rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{font-weight:var(--weight-semibold);color:var(--text-light);background:#fafafa;position:sticky;top:0}tr.rank-1{background:var(--gold-bg)}tr.rank-2{background:var(--silver-bg)}tr.rank-3{background:var(--bronze-bg)}tr.qualified{background:var(--qualified-bg)}.badge{padding:.15rem var(--space-2);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--weight-semibold);display:inline-block}.badge-male{color:#1565c0;background:#e3f2fd}.badge-female{color:#c62828;background:#fce4ec}.badge-mixed{color:#6a1b9a;background:#f3e5f5}.badge-live{background:var(--status-live-bg);color:var(--status-live)}.badge-upcoming{background:var(--status-upcoming-bg);color:var(--status-upcoming)}.badge-finished{background:var(--status-finished-bg);color:var(--status-finished)}.nr-competition{color:var(--record-competition);font-weight:var(--weight-semibold)}.nr-division{color:var(--record-division);font-weight:var(--weight-semibold)}.nr-korea{color:var(--record-korea);font-weight:var(--weight-semibold)}.nr-world{color:var(--record-world);font-weight:var(--weight-semibold)}.q-mark{color:var(--success);font-weight:var(--weight-bold)}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-8) var(--space-4);font-size:var(--font-md)}.empty-state-desc{font-size:var(--font-sm);margin-top:var(--space-2);color:var(--text-muted)}.error-state{text-align:center;padding:var(--space-8) var(--space-4)}.error-state-message{color:var(--danger);font-size:var(--font-md)}.error-state-retry{margin-top:var(--space-4);padding:var(--space-2) var(--space-6);background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-base);font-weight:var(--weight-semibold);cursor:pointer;border:none}.error-state-retry:active{background:var(--accent-dark)}.loading{padding:var(--space-8);justify-content:center;align-items:center;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:4px;animation:1.5s infinite shimmer}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-card{gap:var(--space-2);flex-direction:column;display:flex}.skeleton-circle{border-radius:50%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.filter-bar{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.filter-bar label{font-weight:var(--weight-semibold);font-size:var(--font-sm);color:var(--text-light)}.filter-bar select,.filter-bar input{padding:.4rem var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-base);background:var(--card-bg);color:var(--text);-webkit-appearance:none;min-width:0}.filter-bar input[type=text]{flex:1;min-width:80px}.search-bar{z-index:10;background:var(--bg);padding:var(--space-3) 0;position:sticky;top:0}.search-bar input{width:100%;padding:.6rem var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-md);background:var(--card-bg);color:var(--text)}.search-bar input::placeholder{color:var(--text-muted)}.count-text{font-size:var(--font-sm);color:var(--text-muted);margin-left:var(--space-2);font-weight:var(--weight-normal)}.text-heading{font-size:var(--font-2xl);font-weight:var(--weight-bold);color:var(--primary)}.text-subheading{font-size:var(--font-lg);font-weight:var(--weight-semibold);color:var(--text)}.text-body{font-size:var(--font-base);font-weight:var(--weight-normal);color:var(--text)}.text-caption{font-size:var(--font-sm);font-weight:var(--weight-normal);color:var(--text-light)}.text-label{font-size:var(--font-xs);font-weight:var(--weight-semibold);color:var(--text-muted)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.ml-1{margin-left:var(--space-1)}.text-center{text-align:center}.text-right{text-align:right}.text-semibold{font-weight:var(--weight-semibold)}.text-bold{font-weight:var(--weight-bold)}.text-muted{color:var(--text-muted)}.link-plain{color:inherit;text-decoration:none}.live-banner{align-items:center;gap:var(--space-3);background:var(--status-live-bg);border:1px solid var(--status-live);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);display:flex}.live-banner-dot{background:var(--status-live);border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.live-banner-body{min-width:0}.live-banner-label{font-size:var(--font-xs);font-weight:var(--weight-semibold);color:var(--status-live);text-transform:uppercase}.live-banner-title{font-weight:var(--weight-bold);font-size:var(--font-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.group-header{font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--text-muted);margin:var(--space-4) 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--border)}.group-header:first-child{margin-top:0}.comp-filters{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.comp-search{flex:1;position:relative}.comp-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.comp-search input{width:100%;padding:var(--space-2) var(--space-2) var(--space-2) 32px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-base);background:var(--card-bg);color:var(--text)}.comp-search input::placeholder{color:var(--text-muted)}.comp-year-filter{padding:var(--space-2) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-base);background:var(--card-bg);color:var(--text);-webkit-appearance:none;min-width:90px}.comp-card{background:var(--card-bg);border-radius:var(--radius-lg);margin-bottom:.85rem;overflow:hidden;box-shadow:0 2px 8px #00000012}.comp-card.has-image{padding:var(--space-3);align-items:center;gap:var(--space-3);display:flex}.comp-card-image{object-fit:cover;border-radius:10px;flex-shrink:0;width:80px;height:80px;display:block}.comp-card-body{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.comp-card:not(.has-image) .comp-card-body{padding:var(--space-3) var(--space-4)}.comp-card-title{font-weight:var(--weight-bold);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.comp-card-meta{font-size:var(--font-sm);color:var(--text-light);margin-top:var(--space-1)}.comp-card-host{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-1)}.card-clickable{cursor:pointer}.section-label{font-weight:var(--weight-semibold);font-size:var(--font-base);margin-bottom:var(--space-2);color:var(--text-light)}.section-title{font-weight:var(--weight-semibold);font-size:var(--font-base);margin:var(--space-5) 0 var(--space-2);color:var(--primary)}.stats-section-title{font-weight:var(--weight-semibold);margin-bottom:var(--space-2);font-size:var(--font-base)}.stats-summary{gap:var(--space-6);font-size:var(--font-md);display:flex}.stats-total{color:var(--accent)}.stats-bars{background:var(--card-bg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);box-shadow:0 1px 3px #0000000f}.stats-bar-row{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.stats-bar-label{font-size:var(--font-xs);color:var(--text-light);text-align:right;flex-shrink:0;width:72px}.stats-bar-track{background:var(--border);border-radius:4px;flex:1;height:16px;display:flex;overflow:hidden}.stats-bar-fill.male{background:#5b9bd5}.stats-bar-fill.female{background:#ed7d7d}.stats-bar-value{font-size:var(--font-xs);font-weight:var(--weight-semibold);text-align:right;width:28px;color:var(--text-light)}.stats-bar-legend{justify-content:center;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--font-xs);color:var(--text-muted);display:flex}.stats-legend-male:before,.stats-legend-female:before{content:"";width:10px;height:10px;margin-right:var(--space-1);vertical-align:middle;border-radius:2px;display:inline-block}.stats-legend-male:before{background:#5b9bd5}.stats-legend-female:before{background:#ed7d7d}.record-athlete{font-weight:var(--weight-semibold);font-size:var(--font-base)}.record-detail{font-size:var(--font-sm);color:var(--text-light)}.record-athlete-link{font-weight:var(--weight-semibold);font-size:var(--font-base);color:var(--text);text-decoration:none}.record-athlete-link:active{color:var(--accent)}.record-region{color:var(--text-muted);font-size:.85rem}.records-summary{gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--font-sm);flex-wrap:wrap;display:flex}.records-summary-item{align-items:center;gap:var(--space-1);display:flex}.sort-bar{align-items:center;gap:var(--space-1);color:var(--text-muted);display:flex}.sort-btn{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--font-xs);color:var(--text-muted);cursor:pointer;background:0 0}.sort-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.region-row-clickable{cursor:pointer}.region-row-clickable:active{background:#f0f2f5}.region-expand-icon{margin-left:var(--space-1);vertical-align:middle;color:var(--text-muted)}.region-awards-row td{border-bottom:1px solid var(--border);padding:0!important}.region-awards{padding:var(--space-2) var(--space-3);background:var(--bg)}.region-award-item{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--font-sm);display:flex}.region-award-team{color:var(--text-muted);font-size:var(--font-xs)}.region-award-event{color:var(--text-light);font-size:var(--font-xs);margin-left:auto}.region-medals-note{margin-top:var(--space-2);font-size:var(--font-xs);color:var(--text-muted)}.team-name{font-weight:var(--weight-semibold);font-size:var(--font-base)}.team-region{font-size:var(--font-sm);color:var(--text-muted);margin-left:var(--space-2)}.team-medals{font-size:.85rem;font-weight:var(--weight-semibold);gap:.6rem;display:flex}.team-awards{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.team-award-item{font-size:var(--font-sm);padding:var(--space-1) 0}.team-award-event{color:var(--text-muted);margin-left:var(--space-1)}.team-award-athlete-link{color:var(--text);text-decoration:none}.team-award-athlete-link:active{color:var(--accent)}.team-toolbar{gap:var(--space-2);margin-bottom:var(--space-3);align-items:center;display:flex}.team-search{flex:1;position:relative}.team-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.team-search input{width:100%;padding:var(--space-1) var(--space-2) var(--space-1) 28px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-sm);background:var(--card-bg);color:var(--text)}.team-search input::placeholder{color:var(--text-muted)}.event-summary{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.event-summary-text{font-size:var(--font-sm);color:var(--text-light)}.final-result-card{margin-bottom:var(--space-4)}.final-result-label{font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--primary);margin-bottom:var(--space-2)}.final-result-row{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--font-base);display:flex}.final-result-rank{flex-shrink:0}.final-result-name{font-weight:var(--weight-semibold)}.final-result-region{font-size:var(--font-sm);color:var(--text-muted);flex:1}.final-result-record{font-weight:var(--weight-semibold);font-size:var(--font-sm)}.round-card-done{border-left:3px solid var(--success)}.round-card-entry{border-left:3px solid var(--accent)}.round-status-dot{width:8px;height:8px;margin-right:var(--space-1);vertical-align:middle;border-radius:50%;display:inline-block}.round-status-dot.done{background:var(--success)}.round-status-dot.entry{background:var(--accent)}.round-name{font-weight:var(--weight-semibold);font-size:var(--font-base)}.round-meta,.round-count{font-size:var(--font-sm);color:var(--text-muted)}.round-group{margin-bottom:var(--space-3)}.round-group-header{font-size:var(--font-base);font-weight:var(--weight-bold);color:var(--primary);padding:var(--space-2) 0;border-bottom:2px solid var(--accent);margin-bottom:var(--space-1)}.round-group-items{gap:var(--space-1);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.round-sub-card{background:var(--card-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);justify-content:space-between;align-items:center;min-width:90px;display:flex;box-shadow:0 1px 2px #0000000a}.round-sub-done{border-left:3px solid var(--success)}.round-sub-entry{border-left:3px solid var(--accent)}.round-sub-label{font-size:var(--font-sm);font-weight:var(--weight-semibold)}.round-sub-count{font-size:var(--font-xs);color:var(--text-muted);margin-left:var(--space-2)}.round-info{gap:var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-sm);color:var(--text-light);display:flex}.round-nav{margin-bottom:var(--space-4);padding:var(--space-2) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.round-nav-btn{align-items:center;gap:var(--space-1);color:var(--accent);font-size:var(--font-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none;min-width:80px;display:flex}.round-nav-btn:first-child{justify-content:flex-start}.round-nav-btn:last-child{justify-content:flex-end}.round-nav-btn:disabled{color:var(--text-muted);cursor:default;opacity:.4}.round-nav-current{font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--text)}.heat-section{margin-bottom:var(--space-6)}.heat-title{font-weight:var(--weight-semibold);font-size:var(--font-base);margin-bottom:var(--space-2);color:var(--primary);align-items:center;gap:var(--space-1);display:flex}.heat-title-toggle{cursor:pointer}.heat-toggle-icon{color:var(--text-muted)}.heat-entry-count{font-size:var(--font-xs);font-weight:var(--weight-normal);color:var(--text-muted);margin-left:auto}.heat-video-btn{font-size:var(--font-xs);font-weight:var(--weight-normal);color:#fff;white-space:nowrap;background:red;border-radius:4px;align-items:center;padding:2px 8px;text-decoration:none;display:inline-flex}.athlete-link-btn{font:inherit;font-weight:var(--weight-medium);color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.athlete-link-btn:active{color:var(--accent)}.entry-region{font-size:var(--font-sm);color:var(--text-light)}.athlete-search{margin-bottom:var(--space-4);position:relative}.athlete-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.athlete-search input{width:100%;padding:var(--space-3) var(--space-3) var(--space-3) 36px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-md);background:var(--card-bg);color:var(--text)}.athlete-search input::placeholder{color:var(--text-muted)}.athlete-result-count{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.athlete-name{font-weight:var(--weight-semibold);font-size:var(--font-md)}.athlete-gender{font-size:var(--font-sm);color:var(--text-muted);margin-left:var(--space-2)}.athlete-medals-inline{gap:var(--space-1);margin-left:var(--space-2);font-size:var(--font-xs);vertical-align:middle;display:inline-flex}.athlete-info{text-align:right;font-size:var(--font-sm);color:var(--text-light)}.athlete-region{color:var(--text-muted)}.athlete-detail-name{font-weight:var(--weight-bold);font-size:var(--font-xl)}.athlete-detail-meta{font-size:var(--font-sm);color:var(--text-muted)}.athlete-detail-profile{margin-top:var(--space-2);font-size:var(--font-base);color:var(--text-light)}.perf-card{padding:var(--space-3) var(--space-4)}.perf-card-clickable{cursor:pointer}.perf-card-clickable:active{background:#f0f4f8}.schedule-day-bar{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.schedule-day-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);font-size:var(--font-base);font-weight:var(--weight-semibold);color:var(--text-light);cursor:pointer;flex:1}.schedule-day-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.schedule-date{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.schedule-time{font-size:var(--font-sm);font-weight:var(--weight-bold);color:var(--accent);padding:var(--space-2) 0 var(--space-1);border-bottom:1px solid var(--border);margin-bottom:var(--space-1)}.schedule-card{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--card-bg);border-radius:var(--radius-sm);margin-bottom:2px;display:flex;box-shadow:0 1px 2px #0000000a}a.schedule-card-link{color:inherit;cursor:pointer;text-decoration:none;transition:background-color .15s,transform 50ms}a.schedule-card-link:hover{background:var(--hover-bg,#0000000a)}a.schedule-card-link:active{transform:scale(.998)}.schedule-card-order{font-size:var(--font-sm);color:var(--text-muted);text-align:right;flex-shrink:0;min-width:32px}.schedule-card-body{gap:var(--space-1);flex-wrap:wrap;flex:1;align-items:baseline;display:flex}.schedule-card-division{font-weight:var(--weight-semibold);font-size:var(--font-base)}.schedule-card-event{font-size:var(--font-base);color:var(--text-light)}.schedule-card-round{font-size:var(--font-sm);color:var(--accent);font-weight:var(--weight-semibold)}.schedule-card-heat{font-size:var(--font-sm);color:var(--text-muted)}.schedule-card-ref{font-size:var(--font-xs);color:var(--text-muted);flex-shrink:0}.schedule-break{text-align:center;padding:var(--space-2) 0;font-size:var(--font-sm);font-weight:var(--weight-semibold);margin:var(--space-2) 0;border-radius:var(--radius-sm)}.schedule-break.warmup{color:var(--text-muted);background:#00000008}.schedule-break.lunch{color:var(--accent-dark);background:#e3f2fd}.schedule-break.ceremony{color:#6a1b9a;background:#f3e5f5}.round-sheet-title{font-size:var(--font-lg);font-weight:var(--weight-bold);color:var(--primary);margin-bottom:var(--space-1)}.round-sheet-comp{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.round-sheet-heat{margin-bottom:var(--space-3)}.round-sheet-heat-label{font-size:var(--font-sm);font-weight:var(--weight-bold);color:var(--primary);margin-bottom:var(--space-1)}.round-sheet-table{width:100%;font-size:var(--font-sm)}.round-sheet-table th{font-size:var(--font-xs)}.text-muted-sm{font-size:var(--font-sm);color:var(--text-muted)}.text-medium{font-weight:var(--weight-medium)}.perf-competition{font-size:var(--font-sm);color:var(--text-muted)}.perf-event{font-weight:var(--weight-semibold);font-size:var(--font-base);margin:var(--space-1) 0}.perf-round{font-weight:var(--weight-normal);color:var(--text-light);margin-left:var(--space-2)}.perf-result{font-size:.85rem}.perf-note{font-size:var(--font-sm);color:var(--text-muted);margin-top:var(--space-1)}.perf-group{margin-bottom:var(--space-4)}.perf-group-header{font-size:var(--font-base);font-weight:var(--weight-bold);color:var(--primary);padding:var(--space-3) 0 var(--space-1);border-bottom:2px solid var(--accent);margin-bottom:var(--space-2);justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.perf-group-year{font-size:var(--font-sm);font-weight:var(--weight-normal);color:var(--text-muted);margin-left:var(--space-2)}.perf-group-team{font-size:var(--font-sm);font-weight:var(--weight-normal);color:var(--text-light);flex-shrink:0}
