body{padding-top:0!important;padding-bottom:0!important;display:flex;flex-direction:column;height:100vh;overflow:hidden}.home-container{flex:1;padding:0 16px 12px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;min-height:0;overflow:hidden}#content{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.menu-btn{background:#33342f0f!important}.menu-btn:active{background:#f0da5a40!important}.menu-icon-img{width:20px;height:20px;object-fit:contain}.search-btn{background:#33342f0f!important}.search-btn:active{background:#f0da5a40!important}.search-icon-img{width:20px;height:20px;object-fit:contain}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;opacity:0;visibility:hidden;transition:all .3s ease}.menu-overlay.active{opacity:1;visibility:visible}.side-menu{position:fixed;top:0;left:0;width:280px;height:100vh;background:#fffae6;z-index:9999;transform:translate(-100%);transition:transform .3s ease;box-shadow:2px 0 10px #0000001a}.side-menu.active{transform:translate(0)}.menu-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-divider)}.menu-title{font-size:18px;font-weight:600;color:var(--color-text-primary)}.menu-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;transition:all .2s ease}.menu-close:active{background:#33342f0f}.menu-content{padding:12px 0}.menu-item{display:flex;align-items:center;gap:16px;padding:16px 20px;cursor:pointer;transition:background .2s ease}.menu-item:active{background:#33342f0a}.menu-icon-item{font-size:20px;width:24px;text-align:center}.menu-icon-img-item{width:20px;height:20px;object-fit:contain}.menu-text{font-size:15px;color:var(--color-text-primary)}.menu-divider{height:1px;background:var(--color-divider);margin:8px 20px}.next-race-banner{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:12px;padding:16px 20px;margin:12px 16px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.next-race-banner:active{transform:scale(.98);opacity:.9}.race-info{display:flex;flex-direction:column;gap:4px}.race-round{font-size:12px;color:#f0da5a;font-weight:600;letter-spacing:1px}.race-date{font-size:11px;color:#fff9}.race-location{display:flex;align-items:center;gap:6px;margin-top:2px}.race-flag{font-size:16px}.race-city{font-size:18px;font-weight:700;color:#fff}.race-arrow{font-size:20px;color:#f0da5a;margin-left:4px}.race-sponsor{width:40px;height:40px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center}.sponsor-logo{width:24px;height:24px;object-fit:contain;filter:brightness(0) invert(1)}.medal-stats{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-divider)}.medal-item{display:flex;align-items:center;gap:8px}.medal-icon{font-size:16px}.medal-count{font-size:14px;font-weight:600;color:var(--color-text-primary)}.stats-grid-3{grid-template-columns:repeat(3,1fr)!important}.athlete-card-fina{background:var(--color-background);border-radius:16px;padding:16px 20px;margin-top:6px;margin-bottom:2px;box-shadow:var(--shadow-card);display:flex;justify-content:space-between;align-items:stretch;gap:16px;min-height:180px;overflow:visible}.stats-disclaimer{text-align:right;font-size:10px;color:var(--color-text-tertiary);margin-top:-20px;margin-bottom:6px;padding-right:20px}.athlete-info-left{flex:0 0 auto;min-width:80px;display:flex;flex-direction:column;align-items:flex-start;overflow:visible}.athlete-name-section{display:flex;flex-direction:column;gap:2px}.athlete-name-row{display:flex;align-items:center;gap:8px;margin-bottom:0;flex-wrap:nowrap}.athlete-name-fina{font-size:24px;font-weight:700;color:var(--color-text-primary);line-height:1.1;white-space:nowrap;margin-bottom:0}.athlete-birthday{font-size:11px;color:var(--color-text-secondary);white-space:nowrap;line-height:1.2}.athlete-name-en-fina{font-size:13px;font-weight:400;color:var(--color-text-secondary);letter-spacing:.5px;margin-bottom:0;white-space:nowrap;line-height:1.2}.athlete-info-left .athlete-birthday{display:block;font-size:11px;color:var(--color-text-secondary);line-height:1.2}.athlete-center{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;overflow:visible}.athlete-photo-fina{display:flex;flex-direction:column;align-items:center;width:100%}.carousel-wrapper-fina{width:100px;flex-shrink:0;margin-left:20px;display:flex;flex-direction:column;align-items:center;gap:4px}.carousel-image-box{width:100px;height:125px;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#f5f5f5,#e8e8e8)}.carousel-container-fina{width:100%;height:100%;display:flex;transition:transform .3s ease}.carousel-container-fina .carousel-slide{min-width:100%;height:100%}.carousel-container-fina .carousel-slide img{width:100%;height:100%;object-fit:cover}.carousel-dots-fina{display:flex;justify-content:center;gap:6px;margin-top:4px}.carousel-dot-fina{width:6px;height:6px;border-radius:50%;background:#33342f4d;cursor:pointer;transition:all .3s ease}.carousel-dot-fina.active{background:var(--color-primary);width:14px;border-radius:3px}.athlete-medals-left{margin-top:40px;margin-left:-4px;position:relative;z-index:10}.medals-breakdown-left{display:flex;gap:8px}.medal-box-left{display:flex;flex-direction:column;align-items:center;width:32px}.medal-bar-wrapper{position:relative;width:28px;height:50px;display:flex;align-items:flex-end;justify-content:center}.medal-num-left{font-size:14px;font-weight:700;color:var(--color-text-primary);position:absolute;bottom:100%;margin-bottom:6px;transition:bottom .3s ease}.medal-bar-container{width:28px;height:50px;display:flex;align-items:flex-end;justify-content:center}.medal-bar-left{width:100%;border-radius:3px 3px 0 0;transition:height .3s ease}.gold-bar-left{background:linear-gradient(135deg,gold,orange)}.silver-bar-left{background:linear-gradient(135deg,#e8e8e8,silver)}.bronze-bar-left{background:linear-gradient(135deg,#cd7f32,#8b4513)}.medal-label-left{font-size:9px;color:var(--color-text-tertiary);letter-spacing:.5px;margin-top:4px}.athlete-stats-right{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;min-width:70px;margin-left:20px}.stats-breakdown-right{display:flex;flex-direction:column;gap:20px}.stat-box-right{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-num-right{font-size:22px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.stat-label-right{font-size:12px;color:var(--color-text-secondary)}.stats-breakdown-right.vertical{gap:6px}.stats-breakdown-right.vertical .stat-box-right{align-items:flex-end}.stat-box-right.two-line{display:flex;flex-direction:column;align-items:flex-end;gap:0}.stat-label-line1{font-size:12px;color:var(--color-text-secondary);line-height:1.2}.stat-label-line2{font-size:18px;color:var(--color-text-primary);font-weight:600;line-height:1.3}.athlete-stats-below{margin-top:12px}.stats-breakdown-below{display:flex;gap:10px}.stat-box-below{display:flex;flex-direction:column;align-items:center;gap:2px;width:32px}.stat-num-below{font-size:12px;font-weight:600;color:var(--color-text-primary);height:18px;line-height:18px;display:flex;align-items:flex-end;justify-content:center}.stat-bar-container{width:20px;height:32px;display:flex;align-items:flex-end;justify-content:center}.stat-bar-below{width:100%;height:16px;border-radius:2px 2px 0 0}.stat-bar-gray{background:linear-gradient(135deg,#e0e0e0,#bdbdbd)}.stat-label-below{font-size:7px;color:var(--color-text-tertiary);letter-spacing:.5px}.athlete-stat-value{font-size:18px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.athlete-stat-label{font-size:10px;color:var(--color-text-secondary);margin-top:2px}.medal-bar-below{width:32px;height:16px;border-radius:2px}.gold-bar-below{background:linear-gradient(135deg,gold,orange)}.silver-bar-below{background:linear-gradient(135deg,#e8e8e8,silver)}.bronze-bar-below{background:linear-gradient(135deg,#cd7f32,#8b4513)}.medal-label-below{font-size:7px;color:var(--color-text-tertiary);letter-spacing:.5px}.athlete-right-placeholder{flex:1;min-width:120px}.athlete-card{background:var(--color-background);border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow-card);display:flex;gap:16px}.athlete-photo-carousel{width:100px;height:120px;flex-shrink:0;position:relative;overflow:hidden;border-radius:12px}.carousel-container{display:flex;height:100%;transition:transform .3s ease}.carousel-slide{min-width:100%;height:100%}.carousel-slide img{width:100%;height:100%;object-fit:cover;border-radius:12px}.carousel-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:10}.carousel-dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;transition:all .3s ease;cursor:pointer}.carousel-dot.active{background:#fffffff2;width:12px;border-radius:3px}.athlete-info{flex:1;display:flex;flex-direction:column;justify-content:center}.athlete-name{font-size:24px;font-weight:700;color:var(--color-text-primary);margin-bottom:4px}.athlete-name-en{font-size:14px;color:var(--color-text-secondary);margin-bottom:12px}.athlete-quote{font-size:13px;color:var(--color-text-tertiary);line-height:1.5;font-style:italic}.stats-card{background:var(--color-primary);border-radius:16px;padding:20px;margin-bottom:16px;color:var(--color-text-white)}.stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stats-title{font-size:16px;font-weight:600}.stats-more{font-size:13px;color:#fffae6b3;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-item{text-align:center;padding:12px 8px;background:#fffae61a;border-radius:12px}.stat-value{font-size:24px;font-weight:700;margin-bottom:4px;font-family:DIN Alternate,Roboto Mono,monospace}.stat-label{font-size:12px;color:#fffae6b3}.quick-access-section{background:var(--color-background);border-radius:12px;padding:2px 16px;margin-bottom:4px;box-shadow:var(--shadow-card)}.quick-access-section.horizontal{margin-top:6px}.quick-access-grid{display:flex;flex-direction:column;gap:6px}.quick-access-grid.horizontal{flex-direction:row;justify-content:space-around;gap:16px}.quick-access-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;cursor:pointer;border-radius:8px;transition:all .2s ease}.quick-access-grid.horizontal .quick-access-item{flex:1;max-width:100px;padding:8px 4px}.quick-access-item:active{background:#33342f0f}.quick-access-icon{width:38px;height:38px;background:linear-gradient(135deg,var(--color-primary) 0%,#e6d180 100%);border-radius:10px;display:flex;align-items:center;justify-content:center}.quick-access-grid.horizontal .quick-access-icon{width:44px;height:44px}.quick-access-icon img{width:20px;height:20px;object-fit:contain;filter:brightness(0) invert(1)}.quick-access-label{font-size:10px;color:var(--color-text-secondary);text-align:center;line-height:1.2;white-space:nowrap}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 4px}.section-header.compact{margin-bottom:6px}.section-title{font-size:16px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:6px}.section-title:before{content:"";width:3px;height:14px;background:var(--color-burgundy);border-radius:2px}.section-more{font-size:12px;color:var(--color-text-tertiary);cursor:pointer}.recent-section{margin-top:16px}.recent-section.compact{margin-top:0;background:var(--color-background);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-card)}.event-table{width:100%}.event-table-header{display:grid;grid-template-columns:70px 1fr 80px;gap:8px;padding:8px 12px;background:#33342f0a;border-radius:8px;margin-bottom:8px}.event-table-header-cell{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.event-table-row{display:grid;grid-template-columns:70px 1fr 80px;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(51,52,47,.06);cursor:pointer;transition:background .2s ease;align-items:center}.event-table-row:last-child{border-bottom:none}.event-table-row.alt{background:#33342f05}.event-table-row:active{background:#33342f0f}.event-table-cell{font-size:13px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-table-cell.date{color:var(--color-text-secondary);font-size:12px}.event-table-cell.type{text-align:right}.event-tag-table{display:inline-block;font-size:10px;padding:2px 8px;border-radius:4px;font-weight:500}.event-table-footer{text-align:center;padding:10px 12px;font-size:12px;color:var(--color-text-secondary);border-top:1px solid rgba(51,52,47,.06)}.month-count{font-weight:600;color:var(--color-primary)}.event-list{background:var(--color-background);border-radius:20px;border:3px solid rgba(51,52,47,.15);padding:16px;display:flex;flex-direction:column;gap:12px}.event-list.compact{background:transparent;border:none;border-radius:0;padding:0;gap:8px}.event-card{background:#33342f0a;border-radius:16px;border:2px solid rgba(51,52,47,.08);padding:16px;cursor:pointer}.event-card:active{background:#33342f14}.event-list.compact .event-card{padding:10px 12px;border-radius:10px;border-width:1px}.event-date{font-size:12px;color:var(--color-text-secondary);margin-bottom:6px}.event-list.compact .event-date{font-size:11px;margin-bottom:4px}.event-title{font-size:15px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px;line-height:1.3}.event-list.compact .event-title{font-size:13px;margin-bottom:4px;line-height:1.2}.event-tag{display:inline-block;font-size:11px;padding:3px 8px;border-radius:4px;font-weight:500;margin-bottom:6px}.event-list.compact .event-tag{font-size:10px;padding:2px 6px;margin-bottom:4px}.event-tag-competition{background:#80002026;color:#800020}.event-tag-daily{background:#228b2226;color:#228b22}.event-tag-business{background:#1e3a8a26;color:#1e3a8a}.event-tag-honor{background:#b48c3233;color:#8b6914}.event-tag-social{background:#d2691e26;color:#d2691e}.event-tag-other{background:#64646426;color:#666}.event-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.3}.event-list.compact .event-desc{font-size:11px;line-height:1.2}.history-section{margin-top:16px}.history-section.compact{margin-top:0;background:var(--color-background);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-card);flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;margin-bottom:12px}.history-card{background:var(--color-background);border-radius:12px;padding:16px;box-shadow:var(--shadow-card)}.history-date{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--color-divider)}.history-date-today{font-size:12px;color:var(--color-text-secondary);font-weight:400}.history-list{display:flex;flex-direction:column}.history-list-horizontal{display:flex;flex-direction:column;gap:0;overflow:hidden;padding-bottom:4px;flex:1;min-height:80px}.history-card-single{background:linear-gradient(135deg,#80002008,#80002014);border-radius:10px;padding:16px;cursor:pointer;transition:all .3s ease;border:1px solid rgba(128,0,32,.1);min-height:80px;display:flex;flex-direction:column;justify-content:center}.history-card-single:active{transform:scale(.98);background:linear-gradient(135deg,#8000200d,#8000201f)}.history-card-year{font-size:14px;font-weight:600;color:var(--color-burgundy);margin-bottom:6px}.history-card-title{font-size:15px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px;line-height:1.4}.history-card-subtitle{font-size:13px;color:var(--color-text-secondary);line-height:1.5;display:flex;flex-wrap:wrap;gap:8px}.history-card-subtitle span{background:#8000200f;padding:2px 8px;border-radius:4px;font-size:12px}.history-card-subtitle span.time{background:#f0da5a33;color:var(--color-text-primary);font-weight:500}.history-card-subtitle span.rank{background:#b48c3226;color:#b48c32;font-weight:500}.history-list-horizontal::-webkit-scrollbar{height:4px}.history-list-horizontal::-webkit-scrollbar-track{background:transparent}.history-list-horizontal::-webkit-scrollbar-thumb{background:#33342f33;border-radius:2px}.history-year-header{text-align:center;font-size:16px;font-weight:600;color:var(--color-burgundy);padding:8px 0;margin-bottom:8px}.history-items-row{display:flex;gap:0;min-height:80px}.history-item-flex{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 12px;border-right:1px solid var(--color-divider);box-sizing:border-box;text-align:center}.history-item-flex:last-child{border-right:none}.history-item-flex .history-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.history-item-flex .history-title,.history-item-flex .history-subtitle{text-align:center}.history-item-flex .result-info{align-items:center}.history-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-divider)}.history-item:last-child{border-bottom:none;padding-bottom:0}.history-list-horizontal .history-item{flex-direction:column;align-items:center;gap:6px;padding:10px 14px;border-bottom:none;border-right:1px solid var(--color-divider);min-width:100px;text-align:center}.history-list-horizontal .history-item:last-child{border-right:none}.history-year{font-size:14px;font-weight:600;color:var(--color-burgundy);min-width:40px}.history-list-horizontal .history-year{font-size:16px;min-width:auto}.history-content{flex:1}.history-title{font-size:14px;color:var(--color-text-primary);margin-bottom:2px}.history-list-horizontal .history-title{font-size:12px;line-height:1.3}.history-subtitle{font-size:12px;color:var(--color-text-tertiary)}.history-list-horizontal .history-subtitle{font-size:11px}.result-info{display:flex;flex-direction:column;gap:2px}.result-line{line-height:1.4}.history-dots{display:flex;justify-content:center;gap:8px;margin-top:12px;padding-bottom:4px}.history-dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-tertiary);opacity:.3;cursor:pointer;transition:all .3s ease}.history-dot.active{background:var(--color-primary);opacity:1;transform:scale(1.2)}.skeleton-container{padding:0 16px 12px}.skeleton-athlete-card{background:var(--color-background);border-radius:16px;padding:20px;margin-top:8px;margin-bottom:16px;display:flex;gap:16px}.skeleton-photo{width:100px;height:120px;border-radius:12px;background:#bfb6a74d}.skeleton-info{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton-line{height:16px;background:#bfb6a74d;border-radius:4px}.skeleton-line.short{width:60%}.skeleton-stats-card{background:var(--color-primary);border-radius:16px;padding:20px;margin-bottom:16px}.skeleton-stats-header{height:20px;width:40%;background:#fffae633;border-radius:4px;margin-bottom:16px}.skeleton-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.skeleton-stat-item{height:60px;background:#fffae61a;border-radius:12px}.search-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;opacity:0;visibility:hidden;transition:all .3s ease;z-index:999}.search-overlay.active{opacity:1;visibility:visible}.search-modal{position:fixed;top:0;left:0;right:0;background:var(--color-background);transform:translateY(-100%);transition:transform .3s ease;z-index:1000;max-height:80vh;border-radius:0 0 16px 16px;box-shadow:0 4px 20px #00000026}.search-modal.active{transform:translateY(0)}.search-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(51,52,47,.08)}.search-input-wrapper{flex:1;display:flex;align-items:center;background:#33342f0f;border-radius:20px;padding:8px 12px;gap:8px}.search-input-icon{width:16px;height:16px;opacity:.5}.search-input{flex:1;border:none;background:transparent;font-size:14px;color:var(--color-text-primary);outline:none}.search-input::placeholder{color:var(--color-text-tertiary)}.search-clear-btn{width:18px;height:18px;border-radius:50%;background:#33342f33;border:none;color:var(--color-text-white);font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer}.search-cancel-btn{font-size:14px;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:4px 8px}.search-content{padding:16px;max-height:calc(80vh - 60px);overflow-y:auto}.search-section{margin-bottom:20px}.search-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.search-section-title{font-size:13px;font-weight:600;color:var(--color-text-primary)}.search-clear-all{font-size:12px;color:var(--color-text-tertiary);cursor:pointer}.search-tags{display:flex;flex-wrap:wrap;gap:8px}.search-tag{padding:6px 12px;background:#33342f0f;border-radius:16px;font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.search-tag:hover,.search-tag:active{background:#f0da5a4d;color:var(--color-text-primary)}
