@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:rgba(0,0,0,.2);--rc-drag-bar-size:6px;--rc-border-color:rgba(255,255,255,.7);--rc-focus-color:#0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop :after,.ReactCrop :before{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;cursor:ne-resize}.ReactCrop .ord-e,.ReactCrop .ord-ne{right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{top:50%;cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{left:50%;cursor:s-resize}.ReactCrop .ord-s,.ReactCrop .ord-sw{bottom:0;transform:translate(-50%,50%)}.ReactCrop .ord-sw{left:0;cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w,.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle{display:none}@media (pointer:coarse){.ReactCrop .ord-e,.ReactCrop .ord-n,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{--bg:#98ec84;--shell:#f6f4ef;--card:#ffffff;--text-main:#171717;--text-sub:#4e4e4e;--line:#2a2a2a;--line-soft:#c9c9c9;--mint:#baf59f;--lavender:#d8b8ff;--sky:#b7ebff;--peach:#ffd7b5}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{overflow-x:hidden;padding-bottom:32px;color:var(--text-main);font-family:Trebuchet MS,Noto Sans SC,PingFang SC,sans-serif;background:var(--bg)}.container{max-width:1400px;margin:0 auto;padding:24px 20px 40px}.container.container--full-page{max-width:none;min-height:100vh;padding:0}body.admin-page .container{max-width:min(2200px,calc(100vw - 16px));padding-left:8px;padding-right:8px}.poster-title{margin:0 0 10px;text-align:center;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;text-transform:uppercase;letter-spacing:.03em;line-height:1}.poster-title span{display:block;font-size:clamp(2.1rem,4.2vw,3.6rem)}.app-shell{border:2px solid var(--line);border-radius:34px;background:var(--shell);padding:20px;width:100%}.app-shell.app-shell--full-page{min-height:100vh;border:0;border-radius:0;background:transparent;padding:0}.engrave-order-main{width:100%;min-width:0}.engrave-order-main--center{padding:16px}.engrave-order-panel{width:100%;max-width:min(800px,100%);min-width:0}.engrave-order-panel--narrow{max-width:min(400px,100%)}.engrave-order-code-input{max-width:100%}.engrave-order-card-image{height:auto}.engrave-material-set,.engrave-material-set *,.engrave-order-material-list{min-width:0}.engrave-material-set__header{flex-wrap:wrap;gap:8px}.engrave-material-set__search{min-height:42px}.engrave-material-set__results{max-width:100%}.engrave-material-set__rarities{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important}.engrave-material-set__rarity{width:100%;overflow-wrap:anywhere}.engrave-material-set__athlete,.engrave-material-set__summary,.engrave-order-meta{overflow-wrap:anywhere}.page-head{margin:8px 0 14px}.athlete-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start}.athlete-side{position:static;padding:8px;max-width:none;width:100%}.athlete-side-section+.athlete-side-section{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-soft)}.athlete-nav-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:100%;min-width:0}.athlete-side-title{font-size:12px;font-weight:800;color:var(--text-sub);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}.athlete-range-list{display:flex;flex-direction:column;align-items:stretch;gap:6px}.athlete-range-list .chip-btn{width:100%;justify-content:center;text-align:center}.season-year-picker{display:inline-block;max-width:140px}.season-year-picker select{min-width:180px;width:100%}.season-summary-panel{border-radius:10px}.season-summary-filter{margin-top:.9rem;padding:10px;border:1px solid #d6e5d1;border-radius:10px;background:linear-gradient(180deg,#f3faef,#ecf7e7)}.season-summary-metrics{margin-top:.9rem;padding:10px;border:1px solid #d5e3ee;border-radius:10px;background:linear-gradient(180deg,#f3f9ff,#edf6ff)}.season-summary-metrics .metric{background:#ffffff}.season-summary-table-wrap{margin-top:.9rem;padding:10px;border:1px solid #e6ddcf;border-radius:10px;background:linear-gradient(180deg,#fffdf7,#fff2dc 55%,#ffe7c6)}.season-summary-table-wrap table{margin-top:0}.season-summary-table-wrap tbody tr:nth-child(2n){background:#fffcf6}.season-summary-table{table-layout:fixed}.season-summary-table thead tr{background:#fffdf7}.season-summary-table td,.season-summary-table th{vertical-align:middle}.season-summary-table td:first-child,.season-summary-table th:first-child{width:24%;font-weight:800}.season-summary-table td:not(:first-child),.season-summary-table th:not(:first-child){width:15.2%;text-align:center}.season-summary-table tbody tr:hover{background:#fff8ea}.season-summary-table tbody td{background:#ffffff;transition:background-color .12s ease}.season-summary-table tbody tr:nth-child(2n) td{background:#fffaf0}.season-summary-table tbody tr:hover td{background:#ffeecf}.history-table-wrap{margin-top:.9rem;padding:10px}.history-table-wrap table{margin-top:0}.history-table thead tr{background:#fffdf7}.history-table td,.history-table th{vertical-align:middle}.history-table tbody td{background:#ffffff;transition:background-color .12s ease}.history-table tbody tr:nth-child(2n) td{background:#fffaf0}.history-table tbody tr:hover td{background:#ffeecf}.boxplot-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-top:.75rem}.boxplot-card{background:#fffdf7;border:1px solid var(--border,#e5e7eb);border-radius:10px;padding:8px 4px 4px}.boxplot-card-title{text-align:center;font-size:13px;font-weight:600;color:var(--text-main);margin-bottom:2px}@media (max-width:900px){.boxplot-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.boxplot-grid{grid-template-columns:1fr}}.athlete-search-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1rem}.athlete-search-form input{padding:7px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;font-size:13px;outline:none;transition:border-color .15s}.athlete-search-form input:focus{border-color:#0ea5e9}.btn-reset,.btn-search{padding:7px 18px;border:none;border-radius:8px;font-size:13px;cursor:pointer;transition:background .15s}.btn-search{background:#0ea5e9;color:#fff}.btn-search:hover{background:#0284c7}.btn-reset{background:#f1f5f9;color:#334155}.btn-reset:hover{background:#e2e8f0}.athlete-list-table-wrap{padding:10px}.athlete-list-table{width:100%}.athlete-list-table thead tr{background:#fffdf7}.athlete-list-table td,.athlete-list-table th{vertical-align:middle}.athlete-list-table tbody td{background:#ffffff;transition:background-color .12s ease}.athlete-list-table tbody tr:nth-child(2n) td{background:#fffaf0}.athlete-list-table tbody tr:hover td{background:#ffeecf}.ladder-toolbar{display:flex;align-items:center;gap:8px;margin-top:12px;margin-bottom:16px}.ladder-toolbar .multi-select-trigger,.ladder-toolbar select{background:var(--mint)}.ladder-toolbar-label{font-size:16px;font-weight:800;letter-spacing:.02em}.ladder-filters{display:flex;align-items:center;gap:8px}.ladder-year-select{min-width:120px;font-weight:700}.multi-select{position:relative;display:inline-block}.multi-select-trigger{display:inline-flex;align-items:center;gap:6px;min-width:110px;padding:6px 10px;border:1.5px solid var(--line);border-radius:6px;background:var(--bg,#fff);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.multi-select-trigger:hover{border-color:var(--accent,#3b82f6)}.multi-select-arrow{font-size:10px;color:var(--text-sub)}.multi-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:auto;z-index:20;min-width:140px;max-width:calc(100vw - 32px);max-height:240px;overflow-y:auto;overflow-x:hidden;margin:0;padding:4px 0;list-style:none;border:1.5px solid var(--line);border-radius:8px;background:var(--bg,#fff);box-shadow:0 4px 12px rgba(0,0,0,.1)}.multi-select-option{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;cursor:pointer;word-break:break-word;background:none;border:none;width:100%;text-align:left;font-family:inherit;color:inherit}.multi-select-option.selected,.multi-select-option:hover{background:var(--hover,#f3f4f6)}.multi-select-option.selected{font-weight:700}.ladder-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px;transition:opacity .2s}.ladder-card{border:2px solid var(--line);border-radius:14px;background:linear-gradient(170deg,#ffffff,#f7fbff 40%,#fffdf7);padding:0;overflow:hidden}.ladder-card-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:linear-gradient(90deg,var(--sky) 0,var(--mint) 100%);border-bottom:2px solid var(--line)}.ladder-event-title{font-size:13px;font-weight:800;letter-spacing:.01em}.ladder-entry-count{font-size:11px;font-weight:700;color:var(--text-sub);background:rgba(255,255,255,.7);border-radius:999px;padding:1px 8px}.ladder-list{list-style:none;margin:0;padding:6px 8px 8px;counter-reset:ladder}.ladder-item{display:flex;align-items:center;gap:6px;padding:4px;border-radius:8px;transition:background .12s;animation:ranking-rise .25s ease both}.ladder-item:hover{background:rgba(186,245,159,.3)}.ladder-item+.ladder-item{border-top:1px solid #f0f0f0}.ladder-rank{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:900;color:#2f2f2f;background:#f1f5f9;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.ladder-top-1 .ladder-rank{background:linear-gradient(180deg,#ffe182,#ffc93f);box-shadow:0 1px 4px rgba(255,193,7,.4)}.ladder-top-2 .ladder-rank{background:linear-gradient(180deg,#f3f6fb,#d9e1ee);box-shadow:0 1px 4px rgba(0,0,0,.1)}.ladder-top-3 .ladder-rank{background:linear-gradient(180deg,#f2be97,#de9968);box-shadow:0 1px 4px rgba(205,127,50,.3)}.ladder-top-1{background:linear-gradient(90deg,rgba(255,225,130,.2),transparent)}.ladder-name{flex:1 1;font-size:12px;font-weight:700;color:var(--text-main);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder-name:hover{color:#0ea5e9}.ladder-time{font-size:11px;font-weight:800;color:var(--text-sub);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}@media (max-width:1200px){.ladder-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:900px){.ladder-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.ladder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:420px){.ladder-grid{grid-template-columns:1fr}}.admin-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding:8px;border:2px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fff,#f9f3ff);align-items:center}.admin-nav-link{text-decoration:none;color:var(--text-main);border:2px solid var(--line);border-radius:12px;background:#fff;padding:6px 12px;font-weight:700;font-size:13px}.admin-nav-link:hover{background:var(--lavender)}.admin-nav-logout{margin-left:auto;padding:6px 12px;font-size:12px;background:#f1f5f9;color:#64748b;border:1px solid var(--line-soft)}.admin-nav-logout:hover{background:#fee2e2;color:#dc2626}.admin-login-form{display:flex;gap:8px}.admin-login-form input{flex:1 1}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.admin-form-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700;color:var(--text-sub)}.admin-form-grid label input,.admin-form-grid label select{width:100%}.admin-form-wide{grid-column:1/-1}.admin-form-actions{grid-column:1/-1;display:flex;gap:8px}.admin-actions-cell{display:flex;gap:4px}.btn-danger{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.btn-danger:hover{background:#fecaca}.admin-table-card{padding:10px;border:1px solid #e6ddcf;border-radius:10px;background:linear-gradient(180deg,#fffdf7,#fff2dc 55%,#ffe7c6);overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table-card table{margin-top:0;width:max-content;min-width:100%}.admin-table-card thead tr{background:#fffdf7}.admin-table-card tbody td{background:#ffffff;transition:background-color .12s ease}.admin-table-card tbody tr:nth-child(2n) td{background:#fffaf0}.admin-table-card tbody tr:hover td{background:#ffeecf}.admin-table-card tbody tr.admin-row-editing td{background:#e0f2fe}@media (max-width:640px){.admin-form-grid{grid-template-columns:1fr}}.home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.home-metrics .metric{min-height:84px;border-color:var(--line-soft);position:relative;overflow:hidden}.home-metrics .metric:first-child{background:linear-gradient(135deg,#e0f7fa,#b7ebff)}.home-metrics .metric:nth-child(2){background:linear-gradient(135deg,#f3e8ff,#d8b8ff)}.home-metrics .metric:nth-child(3){background:linear-gradient(135deg,#fff3e0,#ffd7b5)}.home-metrics .metric:nth-child(4){background:linear-gradient(135deg,#e8f5e9,#baf59f)}.home-metrics .metric .value{font-size:28px}.home-section-title{margin:0 0 10px;font-size:15px;font-weight:800}.home-season-filter{display:flex;flex-direction:column;gap:6px}.season-highlight-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.season-highlight-metrics .metric{border-color:rgba(58,58,58,.22)}.season-highlight-metrics .metric:first-child{background:linear-gradient(165deg,#bfe4f1,#a8d2e3)}.season-highlight-metrics .metric:nth-child(2){background:linear-gradient(165deg,#d3c0e9,#c7afe2)}.season-highlight-metrics .metric:nth-child(3){background:linear-gradient(165deg,#f3d9bc,#edcca7)}.season-highlight-metrics .metric:nth-child(4){background:linear-gradient(165deg,#c7e9bc,#b3df9f)}.popular-events{display:flex;flex-direction:column;gap:6px}.popular-event-item{display:flex;align-items:center;gap:8px}.popular-event-name{flex-shrink:0;width:120px;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popular-event-bar{height:18px;border-radius:4px;background:var(--sky);border:1px solid var(--line-soft);min-width:4px;transition:width .3s ease}.popular-event-count{flex-shrink:0;font-size:12px;font-weight:700;color:var(--text-sub)}.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px}.pagination-btn{display:inline-block;padding:6px 16px;border:2px solid var(--line);border-radius:10px;background:var(--lavender);font-size:13px;font-weight:700;text-decoration:none;color:var(--text-main);cursor:pointer;transition:filter .15s}.pagination-btn:hover{filter:brightness(.95)}.pagination-btn.disabled{opacity:.4;cursor:default;pointer-events:none}.pagination-info{font-size:13px;font-weight:700;min-width:60px;text-align:center}.athlete-row{display:flex;align-items:center;padding:8px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--card,#fff);margin-bottom:6px;text-decoration:none;color:inherit}.athlete-row-name{flex:1 1;font-weight:700;font-size:14px;color:var(--text-main)}.athlete-row-gender{width:32px;text-align:center;font-size:12px;color:var(--text-sub)}.athlete-row-team{width:90px;text-align:right;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis}.athlete-row-team,.btn-view{font-size:12px;white-space:nowrap}.btn-view{display:inline-block;padding:4px 14px;background:#0ea5e9;color:#fff;border-radius:6px;text-decoration:none;transition:background .15s}.btn-view:hover{background:#0284c7}.pbsb-panel{margin-top:.2rem}.pbsb-table-wrap{padding:10px;border:1px solid #e6ddcf;border-radius:10px;background:linear-gradient(180deg,#fffdf7,#fff3dd 55%,#ffe9c8)}.pbsb-table{table-layout:fixed}.pbsb-table thead tr{background:#fffdf7}.pbsb-table td:first-child,.pbsb-table th:first-child{width:44%;font-weight:800}.pbsb-table td:not(:first-child),.pbsb-table th:not(:first-child){width:28%;text-align:center}.pbsb-table tbody td{background:#ffffff;transition:background-color .12s ease}.pbsb-table tbody tr:nth-child(2n) td{background:#fffaf0}.pbsb-table tbody tr:hover td{background:#ffeecf}.pbsb-pager{display:flex;align-items:center;gap:8px;margin-top:10px}.pbsb-page-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:68px;border:1px solid #d7d7d7;border-radius:999px;background:#f8f8f8;padding:4px 10px;font-size:12px;font-weight:700}.athlete-side-nav{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;flex:1 1;min-width:0}.athlete-side-nav a{text-decoration:none;color:var(--text-main);border:2px solid var(--line-soft);border-radius:9px;background:#fff;font-size:13px;font-weight:700;padding:7px 9px;width:auto;text-align:center;white-space:nowrap}.athlete-side-nav a:hover{background:var(--mint)}.athlete-main{min-width:0}.meet-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start}.meet-side{position:static;padding:8px;max-width:none;width:100%}.meet-main{min-width:0}.meet-overview-card{padding:18px;background:radial-gradient(circle at 10% 18%,rgba(183,235,255,.62) 0,rgba(183,235,255,0) 34%),radial-gradient(circle at 88% 80%,rgba(255,215,181,.58) 0,rgba(255,215,181,0) 38%),linear-gradient(160deg,#f7fbff,#fff6e9 55%,#fffdf7)}.meet-overview-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.meet-overview-head h2{margin:0;font-size:clamp(1.3rem,2.2vw,1.9rem)}.meet-overview-head p{margin:6px 0 0;color:var(--text-sub);font-weight:700}.meet-summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.meet-summary-metrics .metric{min-height:84px;background:linear-gradient(180deg,#ffffff,#fffaf1)}.meet-filter-form{margin-top:10px;margin-bottom:0}.meet-filter-form select{min-width:140px;font-weight:700}.meet-insight-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.meet-mini-card{margin-bottom:0;background:linear-gradient(180deg,#fff,#f8fcff)}.meet-mini-card h4{margin:0 0 8px;font-size:14px}.meet-age-breakdown{margin-top:12px;padding:10px;border:1px solid var(--line-soft);border-radius:10px;background:#fff}.meet-age-breakdown h4{margin:0 0 8px;font-size:14px}.meet-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.meet-podium-card{border:2px solid var(--line);border-radius:12px;padding:10px;background:linear-gradient(180deg,#fffdf7,#f7fbff)}.meet-podium-card.rank-1{background:linear-gradient(180deg,#fff8dc,#ffefbf)}.meet-podium-card.rank-2{background:linear-gradient(180deg,#f8fafc,#e8edf5)}.meet-podium-card.rank-3{background:linear-gradient(180deg,#fff3e8,#f6dac7)}.meet-podium-rank{display:inline-flex;border:2px solid var(--line);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:800;background:#fff}.meet-podium-card h4{margin:10px 0 4px;font-size:18px}.meet-podium-card p{margin:0;color:var(--text-sub);font-size:13px}.meet-podium-time{margin-top:8px;font-size:20px;font-weight:900}.meet-podium-meta{margin-top:6px;color:var(--text-sub);font-size:12px}.meet-champion-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.meet-champion-card{border:2px solid var(--line-soft);border-radius:10px;background:#fff;padding:8px}.meet-champion-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12px;font-weight:700;color:var(--text-sub)}.meet-champion-body{display:grid;grid-template-columns:1.6fr 1fr auto;grid-gap:8px;gap:8px;align-items:center;font-size:13px}.meet-athlete-link{color:var(--text-main);font-weight:800;text-decoration:none}.meet-athlete-link:hover{color:#0ea5e9}.section-toc{margin:0 0 12px;border:2px solid var(--line-soft);border-radius:12px;background:#fff;padding:8px 10px}.section-toc>summary{cursor:pointer;font-weight:800;font-size:13px;color:var(--text-main)}.section-toc-grid{margin-top:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.section-toc-grid a{text-decoration:none;color:var(--text-main);border:1px solid var(--line-soft);border-radius:8px;background:#fff;font-size:12px;font-weight:700;padding:5px 8px}.section-toc-grid a:hover{background:var(--mint)}.card-summary{font-weight:800;font-size:1.05rem;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}.card-summary::-webkit-details-marker{display:none}.card-summary:before{content:"▶";display:inline-block;font-size:11px;line-height:1;color:var(--text-sub);transform:rotate(0deg);transition:transform .16s ease,color .16s ease}details[open]>.card-summary:before{transform:rotate(90deg);color:var(--text-main)}.page-head h1{margin:0;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;letter-spacing:.02em;font-size:clamp(1.8rem,4.5vw,2.5rem);text-transform:uppercase}.snapshot-btn{background:var(--sky);border-color:var(--line);white-space:nowrap}.athlete-side-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:8px}.snapshot-btn:disabled{opacity:.7;cursor:not-allowed}.lead{margin:6px 0 0;font-size:14px;display:flex;gap:6px}.info-tip,.lead{color:var(--text-sub);align-items:center}.info-tip{position:relative;display:inline-flex;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--text-sub);font-size:11px;cursor:default;flex-shrink:0;line-height:1}.info-tip-content{display:none;position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:var(--card-bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--text-main);white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:10;pointer-events:none}.info-tip:hover .info-tip-content{display:block}.nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:8px;border:2px solid var(--line-soft);border-radius:14px}.nav,.nav a{background:#fff}.nav a{text-decoration:none;color:var(--text-main);border:2px solid var(--line);border-radius:12px;padding:6px 10px;font-weight:700;font-size:13px}.nav a:hover{background:var(--mint)}.card{border:2px solid var(--line);border-radius:14px;background:var(--card);padding:14px;margin-bottom:14px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:10px}.recent-trend-by-event .metric-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.opponent-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.opponent-event-card{border:1px solid #d6dce6;border-radius:12px;background:linear-gradient(180deg,#ffffff,#f7fbff);padding:10px}.opponent-event-title{margin:0 0 6px;font-size:15px}.opponent-panel-wide{margin-bottom:14px}.opponent-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;margin-bottom:10px}.opponent-toolbar label{font-weight:700}.opponent-legend{display:inline-flex;align-items:center;gap:10px;margin-left:4px;font-size:12px;color:var(--text-sub)}.opponent-legend span{display:inline-flex;align-items:center;gap:4px}.opponent-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.opponent-legend .dot-fast{background:#2ebf79}.opponent-legend .dot-athlete{background:#2d7ff9}.opponent-legend .dot-slow{background:#f45d5d}.opponent-event-card .metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.opponent-event-card .metric .value{font-size:18px}.opponent-range-chart{margin:8px 0 10px}.opponent-range-label-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;font-size:12px;color:var(--text-sub);margin-bottom:6px;grid-gap:8px;gap:8px}.opponent-range-label-row .athlete-label,.opponent-range-label-row .fastest,.opponent-range-label-row .gap,.opponent-range-label-row .slowest{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-range-label-row .slowest{text-align:left}.opponent-range-label-row .athlete-label{text-align:center}.opponent-range-label-row .gap{text-align:center;font-weight:700;color:#2d3748;display:inline-flex;align-items:center;justify-content:center;gap:6px}.opponent-range-label-row .gap .gap-text{display:inline-block}.opponent-range-label-row .gap .gap-deco{color:#6b7280;font-size:13px;line-height:1;transform:translateY(-.5px)}.opponent-range-label-row .fastest{text-align:right}.opponent-range-track{position:relative;height:44px;border-radius:999px;background:linear-gradient(90deg,#ffd8d8,#fff3c4 50%,#d9f5e4);border:1px solid #d5dbe4}.opponent-range-line{position:absolute;left:10px;right:10px;top:50%;height:2px;transform:translateY(-50%);background:rgba(30,30,30,.22)}.opponent-range-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 0 0 1px rgba(20,20,20,.2);z-index:2}.opponent-range-dot.fastest{background:#2ebf79}.opponent-range-dot.athlete{width:14px;height:14px;background:#2d7ff9;z-index:3}.opponent-range-dot.slowest{background:#f45d5d}.opponent-range-dot.athlete.overlap-fastest{box-shadow:0 0 0 1px rgba(20,20,20,.2),0 0 0 3px #2ebf79}.opponent-range-dot.athlete.overlap-slowest{box-shadow:0 0 0 1px rgba(20,20,20,.2),0 0 0 3px #f45d5d}.athlete-profile-card{padding:18px;background:radial-gradient(circle at 14% 18%,rgba(183,235,255,.65) 0,rgba(183,235,255,0) 34%),radial-gradient(circle at 86% 82%,rgba(255,230,194,.6) 0,rgba(255,230,194,0) 38%),linear-gradient(160deg,#f7fbff,#fff7ec 52%,#fffdf7);border-color:#3b3b3b}.athlete-profile-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.athlete-profile-title{margin:0;font-size:16px;font-weight:800;color:var(--text-main)}.athlete-profile-toolbar-right{display:inline-flex;align-items:center;gap:6px}.refresh-icon-btn-flat{width:30px;height:30px;min-height:30px!important;border:1px solid transparent!important;border-radius:8px;background:transparent!important;display:inline-flex;align-items:center;justify-content:center;padding:0!important}.refresh-icon-btn-flat:disabled{opacity:.4}.refresh-icon-glyph-flat{font-size:20px;line-height:1;color:#5a8fb0;font-weight:400}.refresh-icon-btn-flat--spinning{animation:detail-refresh-spin .8s linear infinite}.detail-cache-tip-inline{font-size:12px;color:#5f7487}@keyframes detail-refresh-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pbsb-card{align-self:start}.athlete-profile-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.74);border:1px solid #d9e2ea}.athlete-avatar{width:128px;height:128px;border-radius:50%;object-fit:cover;border:3px solid var(--line);box-shadow:0 6px 0 rgba(23,23,23,.08);flex-shrink:0}.athlete-profile-meta h2{margin:0;font-size:1.8rem;line-height:1.1}.athlete-gender-icon{font-size:1.2rem;font-weight:400;color:#3b82f6}.athlete-profile-meta p{margin:6px 0 0;color:var(--text-sub);font-weight:700}.athlete-metrics .metric{min-height:84px;background:linear-gradient(180deg,#ffffff,#fffaf1);border-color:#4a4a4a}.athlete-metrics .value{font-size:1.25rem}.podium-panel{margin-top:10px;border:2px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#ffffff,#f7fbff);padding:10px}.podium-medals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.podium-medal{border:1px solid #d9e2ea;border-radius:10px;background:#fff;padding:8px 6px;display:flex;gap:6px}.podium-icon,.podium-medal{align-items:center;justify-content:center}.podium-icon{width:28px;height:28px;border-radius:999px;display:inline-flex;font-size:11px;font-weight:900;color:#2f2f2f;border:1px solid rgba(0,0,0,.18)}.podium-icon.gold{background:linear-gradient(180deg,#ffe182,#ffc93f)}.podium-icon.silver{background:linear-gradient(180deg,#f3f6fb,#d9e1ee)}.podium-icon.bronze{background:linear-gradient(180deg,#f2be97,#de9968)}.podium-name{font-size:12px;color:var(--text-sub)}.podium-count{font-weight:800;font-size:18px}.podium-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:10px;align-items:end}.podium-step{border-radius:8px 8px 0 0;border:1px solid rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center;font-weight:900;color:#2f2f2f}.podium-step.silver{height:34px;background:linear-gradient(180deg,#f3f6fb,#d9e1ee)}.podium-step.gold{height:48px;background:linear-gradient(180deg,#ffe182,#ffc93f)}.podium-step.bronze{height:28px;background:linear-gradient(180deg,#f2be97,#de9968)}.metric{border:2px solid var(--line);border-radius:10px;background:#fff;padding:8px}.metric .label{color:var(--text-sub);font-size:12px}.metric .value{margin-top:4px;font-weight:800;font-size:20px}table{width:100%;border-collapse:separate;border-spacing:0 6px}td,th{padding:8px;text-align:left;font-size:13px}th{font-size:12px;color:#555;text-transform:uppercase}tbody tr{background:#fff}tbody td{border-top:2px solid var(--line-soft);border-bottom:2px solid var(--line-soft)}tbody td:first-child{border-left:2px solid var(--line-soft);border-radius:8px 0 0 8px}tbody td:last-child{border-right:2px solid var(--line-soft);border-radius:0 8px 8px 0}.table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}button,input,select{border:2px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px;color:var(--text-main);font-size:13px}button{font-weight:700;background:var(--lavender);cursor:pointer}button:hover{filter:brightness(.97)}form.row{gap:8px;margin-bottom:10px}.chip-row,form.row{display:flex;flex-wrap:wrap}.chip-row{gap:6px}.chip-btn{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(58,58,58,.2);padding:6px 10px;text-decoration:none;color:var(--text-main);font-weight:700;font-size:13px}.chip-btn--0{background:linear-gradient(135deg,#d9f99d,#86efac)}.chip-btn--1{background:linear-gradient(135deg,#bae6fd,#7dd3fc)}.chip-btn--2{background:linear-gradient(135deg,#fde68a,#fbbf24)}.chip-btn--3{background:linear-gradient(135deg,#fecdd3,#fda4af)}.chip-btn.active{border-color:rgba(31,31,31,.58);box-shadow:0 2px 7px rgba(31,31,31,.18),inset 0 0 0 1px rgba(31,31,31,.18)}.chip-btn:visited{color:var(--text-main)}.badge{display:inline-block;border:2px solid var(--line);border-radius:999px;background:var(--mint);font-size:11px;padding:2px 8px}.rank-top td:first-child{font-weight:800}.rank-champion{background:linear-gradient(90deg,var(--peach),#fff)}.rank-badge{display:inline-block;min-width:56px;text-align:center;border:2px solid var(--line);border-radius:999px;font-size:11px;font-weight:800;padding:1px 6px;background:var(--lavender)}.board-loading{opacity:.8}.board-ready{opacity:1}.ranking-shell tbody tr{animation:ranking-rise .25s ease both}@keyframes ranking-rise{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.container{padding:14px 10px 24px}.container.container--full-page{padding:0}body.admin-page .container{max-width:100%;padding:12px 6px 20px}.app-shell{border-radius:22px;padding:12px}.app-shell.app-shell--full-page{border-radius:0;padding:0}.engrave-order-main{padding:12px!important}.engrave-order-main--center{align-items:stretch!important}.engrave-order-panel{padding:16px!important;border-radius:10px!important}.engrave-order-panel,.engrave-order-panel--narrow{max-width:100%!important}.engrave-order-code-input{width:min(100%,220px)!important}.engrave-material-set{padding:12px!important}.engrave-material-set__rarities{gap:6px!important}.engrave-material-set__rarity{padding:10px 6px!important}.engrave-order-actions>button,.engrave-order-main button{max-width:100%}.ladder-toolbar{flex-direction:column;align-items:stretch}.ladder-filters{flex-wrap:wrap;gap:8px}.ladder-filters .multi-select,.ladder-filters select{flex:1 1 auto;min-width:0}.ladder-filters .multi-select-trigger{width:100%;justify-content:space-between}.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.metric-strip{grid-template-columns:1fr}.recent-trend-by-event .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.opponent-event-grid{grid-template-columns:1fr}.opponent-event-card .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-layout,.meet-layout{grid-template-columns:1fr}.athlete-side,.meet-side{max-width:none;width:100%}.athlete-nav-toolbar{flex-wrap:wrap}.athlete-side-actions{width:100%;justify-content:flex-end;margin-left:0}.section-toc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-profile-head{align-items:flex-start}.athlete-avatar{width:96px;height:96px}.athlete-profile-meta h2{font-size:1.35rem}.meet-insight-metrics,.meet-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.meet-champion-body,.meet-champion-grid,.meet-podium{grid-template-columns:1fr}.meet-champion-body{gap:2px}.podium-medals{grid-template-columns:1fr}.nav{border-radius:12px}.season-year-picker{max-width:100%}.pbsb-table td:first-child,.pbsb-table td:not(:first-child),.pbsb-table th:first-child,.pbsb-table th:not(:first-child),.season-summary-table td:first-child,.season-summary-table td:not(:first-child),.season-summary-table th:first-child,.season-summary-table th:not(:first-child){width:auto}}@media (max-width:480px){.app-shell{border-radius:14px;padding:10px 8px}.container{padding:10px 6px 20px}.card{padding:10px}.poster-title span{font-size:clamp(1.6rem,8vw,2.1rem)}.nav{gap:6px;padding:6px}.nav a{flex:1 1;text-align:center;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 6px;font-size:13px}.ladder-toolbar{align-items:stretch}.ladder-filters,.ladder-toolbar{flex-direction:column}.ladder-filters .multi-select,.ladder-filters select{width:100%}.ladder-filters .multi-select-trigger{width:100%;justify-content:space-between}.athlete-search-form,.meet-search-form{flex-direction:column}.athlete-search-form button,.athlete-search-form input,.athlete-search-form select,.meet-search-form button,.meet-search-form input,.meet-search-form select{width:100%}.athlete-search-form button,.meet-search-form button{min-height:44px}.meet-insight-metrics,.meet-summary-metrics,.metric-strip,.recent-trend-by-event .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-profile-head{flex-direction:column;align-items:center;text-align:center}.athlete-avatar{width:80px;height:80px}.athlete-profile-meta h2,.athlete-profile-meta p{text-align:center}.opponent-range-label-row{grid-template-columns:repeat(2,minmax(0,1fr))}.opponent-event-grid{grid-template-columns:1fr}.multi-select-dropdown{max-width:calc(100vw - 24px);max-height:50vh}.multi-select-option{min-height:44px;padding:10px 12px}.admin-nav{flex-direction:column}.admin-nav-link,.admin-nav-logout{width:100%;text-align:center}.admin-nav-logout{margin-left:0}.admin-login-form{flex-direction:column}.admin-login-form input{width:100%}td,th{padding:6px;font-size:11px}th{font-size:10px}.page-head h1{font-size:clamp(1.4rem,6vw,1.8rem)}.btn-reset,.btn-search,.btn-view,.pagination-btn,button,select{min-height:44px}.recent-trend-by-event>[_echarts_instance_],.recent-trend-by-event>div[class*=echarts]{height:200px!important}.boxplot-card>[_echarts_instance_],.boxplot-card>div[class*=echarts]{height:180px!important}.table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.season-summary-table{min-width:640px}table{font-size:11px}td:first-child,th:first-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:380px){.app-shell{border-radius:10px;padding:8px 6px}.poster-title span{font-size:clamp(1.3rem,7vw,1.6rem)}.metric .value{font-size:16px}}.tl-search-bar{display:flex;gap:8px;margin-bottom:16px;max-width:640px}.tl-search-input{flex:1 1;padding:0 12px;background:var(--card)}.tl-search-btn,.tl-search-input{height:38px;border:2px solid var(--line);border-radius:10px;font-size:14px;color:var(--text-main)}.tl-search-btn{padding:0 16px;background:var(--mint);font-weight:800;cursor:pointer;white-space:nowrap}.tl-refresh-btn{background:var(--card)}.tl-refresh-btn--spin{opacity:.5;pointer-events:none}.tl-timeline{max-width:640px}.tl-entry{position:relative}.tl-year{padding:4px 0 8px}.tl-year-text{font-size:16px;font-weight:900;color:var(--text-main)}.tl-row{display:flex;gap:12px;padding-bottom:16px}.tl-left{width:52px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}.tl-month{font-size:12px;font-weight:700;color:var(--text-sub);margin-bottom:6px;white-space:nowrap}.tl-dot{width:10px;height:10px;border-radius:50%;background:#9cd68e;border:2px solid #fff;box-shadow:0 0 0 2px rgba(156,214,142,.3);flex-shrink:0}.tl-line{width:2px;flex:1 1;background:var(--line,#e0e0e0);margin-top:4px;min-height:12px}.tl-card{flex:1 1;min-width:0;padding:14px 18px;border:1px solid var(--line-soft,#e8e8e8);border-radius:12px;background:var(--card);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;flex-direction:column;gap:2px}.tl-card:hover{border-color:#9cd68e;box-shadow:0 4px 12px rgba(0,0,0,.06);transform:translateY(-1px)}.tl-card-inner{display:flex;align-items:stretch;gap:12px}.tl-date-badge{width:52px;min-width:52px;border-radius:10px;background:linear-gradient(180deg,#b9f099,#a7e882);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;border:1px solid #9ad574}.tl-date-month{font-size:11px;color:#1f4717;font-weight:700;line-height:1.1}.tl-date-day{margin-top:2px;font-size:20px;color:#121212;font-weight:900;line-height:1}.tl-date-year{margin-top:1px;font-size:10px;color:#3d5935;font-weight:700}.tl-main{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}.tl-card-title{font-size:15px;font-weight:700;color:var(--text-main);line-height:1.4;word-break:break-word}.tl-card-desc,.tl-card-meta{font-size:13px;color:var(--text-sub);line-height:1.4}.tl-card-loading{font-size:12px;color:var(--text-sub);margin-top:2px}.tl-month-divider{border-top:1px dashed var(--line,#d0d0d0);margin:4px 0 12px}.tl-loading{text-align:center;padding:20px 0;font-size:13px;color:var(--text-sub)}.tl-tone-0{background:linear-gradient(135deg,#fff7ed,#ffedd5)}.tl-tone-1{background:linear-gradient(135deg,#eff6ff,#dbeafe)}.tl-tone-2{background:linear-gradient(135deg,#faf5ff,#f3e8ff)}.tl-tone-3{background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.tl-tone-4{background:linear-gradient(135deg,#fefce8,#fef9c3)}.tl-tone-5{background:linear-gradient(135deg,#fff1f2,#ffe4e6)}.finals-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.finals-toolbar .multi-select-trigger{background:var(--mint)}.finals-all-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}@media (max-width:1100px){.finals-all-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.finals-all-grid{grid-template-columns:1fr}}.finals-group-card{padding:0;overflow:hidden;background:linear-gradient(170deg,#ffffff,#f7fbff 40%,#fffdf7)}.finals-group-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(90deg,var(--sky) 0,var(--mint) 100%);border-bottom:2px solid var(--line)}.finals-group-title{font-size:13px;font-weight:800}.finals-group-count{font-size:11px;font-weight:700;color:var(--text-sub);background:rgba(255,255,255,.7);border-radius:999px;padding:1px 8px}.finals-group-list{padding:6px 10px 10px}.finals-group-item{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:8px;transition:background .12s}.finals-group-item:hover{background:rgba(186,245,159,.2)}.finals-group-item+.finals-group-item{border-top:1px solid #f0f0f0}.finals-group-top{background:linear-gradient(90deg,rgba(255,225,130,.12),transparent)}.finals-group-name{flex:1 1;min-width:0;font-size:13px;font-weight:700;color:var(--text-main);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finals-group-name:hover{color:#0ea5e9}.finals-group-team{width:70px;font-size:11px;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.finals-group-time{font-size:12px;font-weight:800;color:var(--text-main);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finals-group-pb,.finals-group-time{width:68px;text-align:right;flex-shrink:0}.finals-group-pb{font-size:11px;color:var(--text-sub);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finals-rank-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:11px;font-weight:900;background:#f1f5f9;color:#2f2f2f;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.finals-rank-1{background:linear-gradient(180deg,#ffe182,#ffc93f);box-shadow:0 1px 4px rgba(255,193,7,.4)}.finals-rank-2{background:linear-gradient(180deg,#f3f6fb,#d9e1ee);box-shadow:0 1px 4px rgba(0,0,0,.12)}.finals-rank-3{background:linear-gradient(180deg,#f2be97,#de9968);box-shadow:0 1px 4px rgba(205,127,50,.35)}.wawa-search-row{margin-bottom:10px}.wawa-search-input{width:100%;max-width:360px;height:40px;border:2px solid var(--line);border-radius:10px;padding:0 12px;background:var(--card);color:var(--text-main)}.wawa-meta{margin:4px 0 12px;color:var(--text-sub);font-size:13px}.wawa-list-card{padding:8px 10px}.wawa-list{display:flex;flex-direction:column}.wawa-item{display:grid;grid-template-columns:30px minmax(0,1fr) 120px 84px;align-items:center;grid-gap:8px;gap:8px;padding:7px 4px}.wawa-item+.wawa-item{border-top:1px solid #f0f0f0}.wawa-name{font-size:14px;font-weight:700;text-decoration:none;color:var(--text-main)}.wawa-name,.wawa-team{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wawa-team{font-size:12px;color:var(--text-sub)}.wawa-time{text-align:right;font-size:13px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:640px){.wawa-item{grid-template-columns:28px minmax(0,1fr) 72px}.wawa-team{display:none}}.ym-card{background:var(--card);border-radius:16px;border:1px solid var(--line-soft,#e8e8e8);padding:8px 14px}.ym-row{display:flex;align-items:center;gap:6px}.ym-col-rank{width:40px;flex-shrink:0;text-align:center}.ym-col-name{width:80px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ym-col-time{flex:1 1;text-align:center}.ym-col-total{width:80px;flex-shrink:0;text-align:right}.ym-header{padding:8px 0 10px;border-bottom:2px solid var(--line,#e0e0e0);font-size:12px;font-weight:700;color:var(--text-sub)}.ym-data{padding:10px 0;border-radius:10px}.ym-data+.ym-data{border-top:1px solid rgba(0,0,0,.04)}.ym-data--top{background:linear-gradient(90deg,rgba(255,225,130,.12),transparent)}.ym-name-text{font-size:14px;font-weight:700;color:var(--text-main)}.ym-time-text{font-size:13px;color:var(--text-sub);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ym-total-text{font-size:14px;font-weight:800;color:var(--text-main);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ym-rank-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:13px;font-weight:900;background:#f1f5f9;color:#2f2f2f;border:1px solid rgba(0,0,0,.08)}.ym-rank-badge.ym-rank-1{background:linear-gradient(180deg,#ffe182,#ffc93f);box-shadow:0 1px 4px rgba(255,193,7,.4);border:none}.ym-rank-badge.ym-rank-2{background:linear-gradient(180deg,#f3f6fb,#d9e1ee);box-shadow:0 1px 4px rgba(0,0,0,.12);border:none}.ym-rank-badge.ym-rank-3{background:linear-gradient(180deg,#f2be97,#de9968);box-shadow:0 1px 4px rgba(205,127,50,.35);border:none}.site-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;padding:6px 0;font-size:12px;color:var(--text-sub);background:rgba(246,244,239,.9);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;border-top:1px solid var(--line-soft)}.site-footer a{color:var(--text-sub);text-decoration:none}.site-footer a:hover{color:var(--text-main);text-decoration:underline}