.loading-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-in-out}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;background:var(--color-surface);padding:2rem 3rem;border-radius:16px;box-shadow:0 8px 32px #0003}.loading-spinner{position:relative;width:64px;height:64px}.spinner-ring{position:absolute;width:100%;height:100%;border:4px solid transparent;border-top-color:var(--color-primary);border-radius:50%;animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite}.spinner-ring:nth-child(1){animation-delay:-.45s}.spinner-ring:nth-child(2){animation-delay:-.3s;border-top-color:var(--color-primary-dark)}.spinner-ring:nth-child(3){animation-delay:-.15s;border-top-color:var(--color-primary);opacity:.8}.spinner-ring:nth-child(4){animation-delay:0s;border-top-color:var(--color-primary-dark);opacity:.6}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{margin:0;color:var(--color-muted);font-size:.95rem;font-weight:500}@media(max-width:480px){.loading-content{padding:1.5rem 2rem}.loading-spinner{width:48px;height:48px}.spinner-ring{border-width:3px}.loading-message{font-size:.85rem}}.login-confirm-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-in-out}.login-confirm-modal{background:var(--color-surface);border-radius:16px;padding:1.5rem;max-width:400px;width:90%;box-shadow:0 8px 32px #0003;animation:slideUp .3s ease-out}.login-confirm-header{margin-bottom:1rem}.login-confirm-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1c1c1c}.login-confirm-body{margin-bottom:1.5rem}.login-confirm-body p{margin:.5rem 0;color:#334155;line-height:1.6}.login-confirm-body p.hint{color:var(--color-muted);font-size:.9rem}.login-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.login-confirm-actions button{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.login-confirm-actions button.ghost{background:#f1f5f9;color:#475569;border:1px solid var(--color-border)}.login-confirm-actions button.ghost:hover{background:#e2e8f0}.login-confirm-actions button.primary{background:var(--color-primary);color:var(--color-primary-contrast);border:none}.login-confirm-actions button.primary:hover{background:var(--color-primary-dark)}@media(max-width:480px){.login-confirm-modal{padding:1.25rem;max-width:95%}.login-confirm-header h3{font-size:1.1rem}.login-confirm-actions{flex-direction:column-reverse}.login-confirm-actions button{width:100%}}.confirm-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.confirm-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:400px;width:100%;overflow:hidden;animation:slideUp .3s ease}.confirm-modal-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border)}.confirm-modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1c1c1c}.confirm-modal-body{padding:1.5rem}.confirm-modal-body p{margin:0;font-size:1rem;color:#475569;line-height:1.6}.confirm-modal-actions{padding:1rem 1.5rem 1.5rem;display:flex;gap:.75rem;justify-content:flex-end}.confirm-modal-actions button{min-width:80px}.alert-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.alert-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:400px;width:100%;overflow:hidden;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.alert-modal-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border);border-top:4px solid}.alert-modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1c1c1c}.alert-modal-body{padding:1.5rem}.alert-modal-body p{margin:0;font-size:1rem;color:#475569;line-height:1.6}.alert-modal-actions{padding:1rem 1.5rem 1.5rem;display:flex;justify-content:flex-end}.alert-modal-actions button{min-width:80px}.teams-layout{display:grid;grid-template-columns:minmax(280px,320px) 1fr;gap:1.5rem;align-items:start;width:100%;box-sizing:border-box}.page{width:100%;max-width:100%;box-sizing:border-box;padding:0!important;margin:0!important}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #e5393566}50%{transform:scale(1.08);box-shadow:0 0 0 10px #e5393500}to{transform:scale(1.05);box-shadow:0 0 #e5393500}}@media screen and (max-width:1024px){.teams-layout{grid-template-columns:minmax(260px,300px) 1fr;gap:1.25rem}}@media screen and (max-width:768px){.teams-layout{grid-template-columns:1fr!important;gap:1rem;margin-top:1rem!important}.teams-layout>div:first-child{position:static!important;width:100%!important}.teams-layout>div:first-child .card{max-height:none!important;width:100%!important}.teams-layout>div:first-child .card>div{max-height:250px!important}.teams-layout>div:first-child .card>div{display:flex!important;flex-direction:row!important;overflow-x:auto!important;overflow-y:hidden!important;gap:.75rem!important;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.teams-layout>div:first-child .card>div>div{min-width:200px!important;flex-shrink:0}.teams-layout>div:last-child{width:100%!important}.teams-layout>div:last-child .card{width:100%!important}.team-slots-grid{grid-template-columns:1fr!important;gap:1rem!important;width:100%!important}.team-slots-grid>div{min-height:180px!important;width:100%!important;box-sizing:border-box}}@media screen and (max-width:480px){.teams-layout{gap:.75rem;margin-top:1rem!important;padding:0!important;box-sizing:border-box}.teams-layout .card{padding:1rem!important;border-radius:12px!important;width:100%!important;box-sizing:border-box}.page-header{flex-direction:column!important;align-items:flex-start!important;gap:.75rem!important;padding:0!important;margin:0!important;min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important}.page-header>div:first-child{flex:1 1 100%!important;min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important}.page-header h1{font-size:1.5rem!important;margin:0!important;padding:0!important;word-wrap:break-word!important;overflow-wrap:break-word!important;max-width:100%!important;box-sizing:border-box!important}.page-header p{font-size:.85rem!important;margin:0!important;padding:0!important;word-wrap:break-word!important;overflow-wrap:break-word!important;max-width:100%!important;box-sizing:border-box!important}.page-actions{flex:0 0 100%!important;min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;margin:0!important;padding:0!important}.page-actions button{flex:1 1 auto!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}.teams-layout>div:first-child .card>div>div{min-width:160px!important;padding:.75rem!important;box-sizing:border-box}.teams-layout>div:first-child .card h3{font-size:1rem!important;margin-bottom:.75rem!important}.team-slots-grid{width:100%!important;box-sizing:border-box}.team-slots-grid>div{min-height:160px!important;padding:1rem!important;width:100%!important;box-sizing:border-box}.team-slots-grid>div img{width:100px!important;height:100px!important;max-width:100%!important}.teams-layout>div:last-child .card input{font-size:.9rem!important;padding:.6rem .75rem!important;width:100%!important;box-sizing:border-box}.teams-layout button{font-size:.85rem!important;padding:.5rem .75rem!important;white-space:nowrap}.teams-layout button.primary.small{padding:.5rem 1rem!important}.teams-layout>div:last-child .card>div[style*="display: flex"][style*="gap: 0.75rem"]{flex-direction:column!important;gap:.5rem!important}.teams-layout>div:last-child .card>div[style*="display: flex"][style*="gap: 0.75rem"]>*{width:100%!important}}@media screen and (max-width:360px){.teams-layout{gap:.5rem;padding:0!important}.teams-layout .card{padding:.75rem!important}.teams-layout>div:first-child .card>div>div{min-width:140px!important;padding:.6rem!important}.team-slots-grid>div{min-height:140px!important;padding:.75rem!important}.team-slots-grid>div img{width:80px!important;height:80px!important}.page-header{padding:0 .25rem!important}.page-header h1{font-size:1.25rem!important}}.teams-layout>div:first-child .card>div::-webkit-scrollbar{width:6px;height:6px}.teams-layout>div:first-child .card>div::-webkit-scrollbar-track{background:transparent;border-radius:10px}.teams-layout>div:first-child .card>div::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.teams-layout>div:first-child .card>div::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media screen and (max-width:768px){div[style*="position: fixed"][style*="zIndex: 1000"]{padding:.5rem!important}div[style*="position: fixed"][style*="zIndex: 1000"]>.card{max-width:100%!important;width:100%!important;max-height:95vh!important;padding:1rem!important;border-radius:16px 16px 0 0!important;margin:auto 0 0!important}div[style*="position: fixed"] .card>div[style*="padding: 1.25rem"]{padding:.75rem!important}div[style*="position: fixed"] .card>div[style*="padding: 1.25rem"]>div{gap:.5rem!important}div[style*="position: fixed"] .card>div[style*="padding: 1.25rem"]>div>span{font-size:.75rem!important;padding:.3rem .6rem!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))!important;gap:.75rem!important;padding:.25rem!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]>div{padding:.6rem!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]>div img{width:70px!important;height:70px!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]>div p{font-size:.8rem!important}div[style*="position: fixed"] .card>div[style*="flexDirection: column"]>div{padding:1rem!important}div[style*="position: fixed"] .card>div[style*="flexDirection: column"]>div>div[style*=gridTemplateColumns]{grid-template-columns:repeat(3,1fr)!important;gap:.5rem!important}div[style*="position: fixed"] .card>div[style*="flexDirection: column"]>div>div[style*=gridTemplateColumns]>div img{width:50px!important;height:50px!important}}@media screen and (max-width:480px){div[style*="position: fixed"][style*="zIndex: 1000"]>.card{padding:.75rem!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))!important;gap:.5rem!important}div[style*="position: fixed"] .card>div[style*=gridTemplateColumns]>div img{width:60px!important;height:60px!important}div[style*="position: fixed"] .card input{font-size:.9rem!important;padding:.6rem .75rem!important}}.battle-note-empty{color:#999;font-style:italic}.battle-note-simple{color:#333;line-height:1.5;word-break:break-word}.battle-note-replay{padding:.75rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;font-size:.9rem;line-height:1.6}.battle-note-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e9ecef}.battle-note-links{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.battle-note-replay-link{color:#06c;text-decoration:none;font-weight:500;transition:color .2s;display:inline-flex;align-items:center;gap:.25rem}.battle-note-replay-link:hover{color:#0052a3;text-decoration:underline}.battle-note-format{display:inline-block;padding:.25rem .5rem;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:.85rem;font-weight:500;white-space:nowrap}.battle-note-toggle{background:none;border:none;color:#06c;cursor:pointer;font-size:.85rem;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.battle-note-toggle:hover{background:#e3f2fd}.battle-note-players{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.battle-note-player,.battle-note-opponent{display:flex;align-items:center;gap:.5rem}.battle-note-player-label,.battle-note-opponent-label{color:#666;font-weight:500;min-width:60px}.battle-note-player-name{color:#333;font-weight:500}.battle-note-opponent{margin-top:.25rem;padding-top:.5rem;border-top:1px solid #e9ecef}.battle-note-opponent-name{color:#d32f2f;font-weight:600}.battle-note-pokemon{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e9ecef;display:flex;flex-direction:column;gap:1rem}.battle-note-pokemon-group{display:flex;flex-direction:column;gap:.5rem}.battle-note-pokemon-label{color:#666;font-weight:500;margin-bottom:.25rem;display:block}.battle-note-pokemon-label-my{color:#1976d2;font-weight:600}.battle-note-pokemon-label-opponent{color:#d32f2f;font-weight:600}.battle-note-pokemon-list{display:flex;flex-wrap:wrap;gap:.5rem}.battle-note-pokemon-tag{display:inline-block;padding:.35rem .65rem;background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;font-size:.85rem;font-weight:500;transition:all .2s}.battle-note-pokemon-tag:hover{background:#f0f0f0;border-color:#adb5bd;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.battle-note-pokemon-tag-my{background:#e3f2fd;border-color:#90caf9;color:#1565c0}.battle-note-pokemon-tag-my:hover{background:#bbdefb;border-color:#64b5f6}.battle-note-pokemon-tag-opponent{background:#ffebee;border-color:#ef9a9a;color:#c62828}.battle-note-pokemon-tag-opponent:hover{background:#ffcdd2;border-color:#e57373}.battle-note-message{margin-top:.75rem;padding:.5rem .75rem;border-radius:6px;font-size:.85rem;line-height:1.5}.battle-note-message.warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.battle-note-message.tip{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}@media screen and (max-width:768px){.battle-note-replay{padding:.5rem;font-size:.85rem}.battle-note-header{flex-direction:column;align-items:flex-start}.battle-note-links{width:100%}.battle-note-pokemon-list{gap:.35rem}.battle-note-pokemon-tag{padding:.25rem .5rem;font-size:.8rem}}.battle-turn-log{margin-top:.5rem}.turn-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.turn-log-total{font-size:.85rem;color:#666;font-weight:500}.turn-log-timeline{display:flex;flex-direction:column;gap:.35rem;max-height:500px;overflow-y:auto;padding-right:.25rem}.turn-item{border:1px solid #e9ecef;border-radius:8px;overflow:hidden;transition:border-color .15s;flex-shrink:0}.turn-item:hover{border-color:#ced4da}.turn-item.open{border-color:#90caf9}.turn-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;background:#fafbfc;-webkit-user-select:none;user-select:none}.turn-header:hover{background:#f0f2f5}.turn-number{font-size:.8rem;font-weight:700;color:#1976d2;background:#e3f2fd;padding:.15rem .5rem;border-radius:10px;flex-shrink:0;min-width:36px;text-align:center}.turn-summary{flex:1;font-size:.82rem;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.turn-event-count{font-size:.7rem;color:#999;background:#f0f0f0;padding:.1rem .4rem;border-radius:8px;flex-shrink:0}.turn-events{padding:.5rem .75rem .5rem 1.5rem;border-top:1px solid #e9ecef;background:#fff;display:flex;flex-direction:column;gap:.3rem}.turn-event{display:flex;align-items:center;gap:.4rem;font-size:.82rem;padding:.2rem 0}.event-icon{flex-shrink:0;font-size:.8rem;width:20px;text-align:center}.event-pokemon{font-weight:600;color:#333;min-width:70px}.event-detail{color:#666}.turn-event.player-p1 .event-pokemon{color:#1565c0}.turn-event.player-p2 .event-pokemon{color:#c62828}.turn-event:has(.event-icon-faint) .event-pokemon{text-decoration:line-through;opacity:.7}.turn-event:has(.event-icon-terastallize){background:linear-gradient(90deg,#fff9c4,transparent);border-radius:4px;margin:.1rem -.5rem;padding:.3rem .5rem}.turn-log-timeline::-webkit-scrollbar{width:5px}.turn-log-timeline::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.turn-log-timeline::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.turn-log-timeline::-webkit-scrollbar-thumb:hover{background:#aaa}@media screen and (max-width:768px){.turn-summary{max-width:150px}.turn-events{padding-left:1rem}}.battle-detail-result-card{display:flex;align-items:center;gap:1.25rem;padding:1.5rem 2rem;border-radius:12px;margin-bottom:1.5rem;color:#fff;font-weight:600;position:relative;overflow:hidden}.battle-detail-result-card:before{content:"";position:absolute;top:0;right:0;width:200px;height:100%;opacity:.08;background:radial-gradient(circle at 80% 50%,#fff,transparent 70%)}.battle-detail-result-card.result-win{background:linear-gradient(135deg,#2e7d32,#43a047)}.battle-detail-result-card.result-loss{background:linear-gradient(135deg,#c62828,#e53935)}.battle-detail-result-card.result-draw{background:linear-gradient(135deg,#546e7a,#78909c)}.result-icon{font-size:2.5rem;line-height:1;flex-shrink:0}.result-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.result-label{font-size:1.5rem;font-weight:700;letter-spacing:.02em}.result-opponent{font-size:1rem;opacity:.9;font-weight:400}.result-date{font-size:.95rem;opacity:.8;white-space:nowrap}.battle-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.battle-detail-grid>.card:first-child{grid-column:1 / -1}.card-title{font-size:1rem;font-weight:600;color:var(--color-muted, #64748b);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.battle-detail-team-name{font-size:1.1rem;font-weight:600;color:#333;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.badge-public{display:inline-block;padding:.15rem .5rem;background:#e8f5e9;color:#2e7d32;border-radius:10px;font-size:.75rem;font-weight:500}.battle-detail-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem}.battle-detail-pokemon-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem .5rem;background:#f8f9fa;border-radius:10px;border:1px solid #e9ecef;transition:all .2s;cursor:default}.battle-detail-pokemon-card:hover{border-color:#dee2e6;box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.pokemon-sprite{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}.pokemon-sprite-placeholder{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#e9ecef;border-radius:8px;color:#999;font-size:1.5rem;font-weight:600}.pokemon-name{font-size:.85rem;font-weight:500;color:#333;text-align:center;word-break:break-word}.pokemon-types{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:center}.type-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.65rem;font-weight:600;color:#fff;text-transform:capitalize;letter-spacing:.03em}.type-badge.type-fire{background:#ee8130}.type-badge.type-water{background:#6390f0}.type-badge.type-grass{background:#7ac74c}.type-badge.type-electric{background:#f7d02c;color:#333}.type-badge.type-psychic{background:#f95587}.type-badge.type-ice{background:#96d9d6;color:#333}.type-badge.type-dragon{background:#6f35fc}.type-badge.type-dark{background:#705746}.type-badge.type-fairy{background:#d685ad}.type-badge.type-normal{background:#a8a77a}.type-badge.type-fighting{background:#c22e28}.type-badge.type-flying{background:#a98ff3}.type-badge.type-poison{background:#a33ea1}.type-badge.type-ground{background:#e2bf65;color:#333}.type-badge.type-rock{background:#b6a136}.type-badge.type-bug{background:#a6b91a}.type-badge.type-ghost{background:#735797}.type-badge.type-steel{background:#b7b7ce;color:#333}.battle-detail-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem}.meta-item{display:flex;flex-direction:column;gap:.15rem}.meta-label{font-size:.8rem;color:#999;font-weight:500}.meta-value{font-size:.95rem;color:#333;font-weight:500}.rating-change{font-size:.85rem;font-weight:600}.rating-change.positive{color:#2e7d32}.rating-change.negative{color:#c62828}.battle-detail-pokemon-sections{display:flex;flex-direction:column;gap:1rem}.battle-detail-pokemon-section-label{font-size:.85rem;font-weight:600;color:#555;margin-bottom:.5rem}.battle-detail-pokemon-chips{display:flex;flex-wrap:wrap;gap:.4rem}.battle-detail-pokemon-chip{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:16px;font-size:.85rem;font-weight:500;border:1px solid transparent}.battle-detail-pokemon-chip-user{background:#e3f2fd;color:#1565c0;border-color:#bbdefb}.battle-detail-pokemon-chip-opponent{background:#fce4ec;color:#c62828;border-color:#f8bbd0}@media screen and (max-width:768px){.battle-detail-result-card{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.25rem}.result-icon{font-size:2rem}.result-label{font-size:1.25rem}.battle-detail-grid{grid-template-columns:1fr}.battle-detail-team-grid{grid-template-columns:repeat(3,1fr)}.battle-detail-meta-grid{grid-template-columns:1fr}}@media screen and (max-width:480px){.battle-detail-team-grid{grid-template-columns:repeat(2,1fr)}}.section-card{background:var(--color-surface);border-radius:20px;padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05);margin-top:32px;transition:box-shadow .3s ease}.section-card:hover{box-shadow:0 8px 32px #0000001f}.section-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--color-border)}.section-header h3{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:-.02em}.range-options button{padding:10px 20px;border-radius:12px;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-weight:500;font-size:.9rem;transition:all .2s ease;cursor:pointer;position:relative;overflow:hidden}.range-options button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.range-options button:hover:before{left:100%}.range-options button:hover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.range-options button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600;box-shadow:0 4px 16px rgba(var(--color-primary-rgb, 59, 130, 246),.3)}.range-options button.active:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-primary-rgb, 59, 130, 246),.4)}.section-card .hint{margin-top:12px;padding:12px 16px;background:linear-gradient(135deg,var(--color-primary-light) 0%,rgba(255,255,255,.5) 100%);border-radius:12px;border-left:4px solid var(--color-primary);font-size:.9rem;color:var(--color-text);line-height:1.6}.rankings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-top:1.5rem}.rankings-grid.small{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.ranking-card{background:var(--color-surface);border-radius:16px;padding:1rem;text-align:center;border:1px solid var(--color-border);transition:all .2s ease;position:relative;cursor:default}.ranking-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:var(--color-primary)}.ranking-card-rank{position:absolute;top:8px;left:10px;font-size:.75rem;font-weight:700;color:var(--color-primary);opacity:.8}.ranking-card-image{display:flex;justify-content:center;align-items:center;padding:.5rem 0}.ranking-card-image img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15));transition:transform .2s ease}.ranking-card:hover .ranking-card-image img{transform:scale(1.08)}.rankings-grid.small .ranking-card-image img{width:72px;height:72px}.ranking-card-name{font-size:.9rem;font-weight:600;color:var(--color-text);margin:.5rem 0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-card-usage{font-size:.8rem;color:var(--color-primary);font-weight:600}@media(max-width:768px){.section-card{padding:20px 16px;margin-top:24px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.section-header h3{font-size:1.3rem}.range-options{width:100%}.range-options button{flex:1;min-width:80px}.rankings-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}}.report-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:reportFadeIn .2s ease}@keyframes reportFadeIn{0%{opacity:0}to{opacity:1}}.report-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:460px;width:100%;overflow:hidden;animation:reportSlideUp .3s ease}@keyframes reportSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.report-modal-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border)}.report-modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1c1c1c}.report-modal-body{padding:1.5rem}.report-modal-body textarea{width:100%;resize:vertical;min-height:80px}.report-modal-actions{padding:1rem 1.5rem 1.5rem;display:flex;gap:.75rem;justify-content:flex-end}.report-modal-actions button{min-width:100px}.post-content{line-height:1.8;word-break:break-word;white-space:pre-wrap}.post-tag{color:#1976d2;font-weight:500;cursor:pointer;transition:all .2s;display:inline;text-decoration:none}.post-tag:hover{color:#1565c0;text-decoration:underline}.post-mention{color:#d32f2f;background:#ffebee;padding:.15rem .4rem;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-block;margin:0 .1rem}.post-mention:hover{background:#ffcdd2;color:#c62828;transform:translateY(-1px)}.post-editor-textarea{width:100%!important;min-height:400px!important;font-size:1rem!important;line-height:1.8!important;padding:1rem!important;border:2px solid #e9ecef!important;border-radius:12px!important;resize:vertical!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;transition:border-color .2s!important;box-sizing:border-box!important}.post-editor-textarea:focus{outline:none!important;border-color:#1976d2!important;box-shadow:0 0 0 3px #1976d21a!important}.post-editor-textarea:disabled{background:#f5f5f5!important;cursor:not-allowed!important}.mention-suggestions{scrollbar-width:thin;scrollbar-color:#ccc transparent}.mention-suggestions::-webkit-scrollbar{width:6px}.mention-suggestions::-webkit-scrollbar-track{background:transparent}.mention-suggestions::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.mention-suggestions::-webkit-scrollbar-thumb:hover{background:#999}.suggestion-active{background:#e3f2fd!important}.admin-imports-table .table-row{grid-template-columns:minmax(100px,1fr) minmax(80px,auto) minmax(120px,auto) minmax(150px,1.5fr) minmax(150px,1.5fr)}@media screen and (max-width:768px){.admin-imports-table .table-row{grid-template-columns:1fr;gap:8px;align-items:start}.admin-imports-table .table-row.header{display:none}.admin-imports-table .table-row>span:before{content:attr(data-label);font-weight:600;color:var(--color-muted);margin-right:.5rem;display:inline-block}.admin-imports-table .table-row>span{display:flex;align-items:center;padding:4px 0}}@media screen and (max-width:480px){.admin-imports-table .table-row{padding:10px 12px;gap:6px}.admin-imports-table .table-row>span{font-size:.9rem}.admin-imports-table .table-row>span:before{font-size:.85rem;min-width:80px}}@media screen and (max-width:768px){.admin-imports-page pre{font-size:.85rem;padding:10px!important;overflow-x:auto;word-break:break-all;white-space:pre-wrap}}.app-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg);color:#1c1c1c}.app-shell.no-sidebar{display:block}.main-area{flex:1;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 24px;background:#fff;position:sticky;top:0;left:0;right:0;z-index:100;width:100%;box-sizing:border-box;border-bottom:3px solid;border-image:linear-gradient(90deg,#ef4444,#f97316 40%,#f59e0b,#ef4444) 1}.menu-toggle{background:none;border:none;font-size:1.4rem;cursor:pointer;padding:4px 8px;border-radius:6px;color:#334155;display:none}.menu-toggle:hover{background:#f1f5f9}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:1.25rem;cursor:pointer;box-shadow:0 4px 12px #ef444459;z-index:999;transition:opacity .2s ease}.back-to-top:hover{opacity:.85}@media(max-width:1199px){.menu-toggle{display:block}.topbar-nav{display:none}}@media(min-width:1200px){.menu-toggle{display:none}}.topbar-nav{display:flex;align-items:center;gap:0;flex:1;flex-wrap:wrap}.topbar-nav-group{display:flex;align-items:center;gap:4px}.topbar-nav-group-title{font-size:.7rem;text-transform:uppercase;color:#94a3b8;font-weight:600;padding:0 8px 0 0;white-space:nowrap}.topbar-nav-separator{color:#e2e8f0;font-size:.9rem;margin:0 6px;flex-shrink:0}.topbar-nav-items{display:flex;gap:2px;flex-wrap:nowrap}.topbar-nav-item{padding:6px 12px;border-radius:8px;font-size:.88rem;color:#475569;white-space:nowrap;transition:background .2s ease,color .2s ease;text-decoration:none}.topbar-nav-item:hover{background:#fee2e2;color:#dc2626}.topbar-nav-item.active{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-weight:600}.mobile-nav-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:3px solid #ef4444;box-shadow:0 8px 24px #0000001f;padding:12px 16px;z-index:9;display:flex;flex-direction:column;gap:8px}.mobile-nav-group{display:flex;flex-direction:column;gap:2px}.mobile-nav-group-title{font-size:.7rem;text-transform:uppercase;color:#94a3b8;font-weight:600;padding:4px 8px 2px;margin:0}.mobile-nav-item{padding:8px 12px;border-radius:8px;font-size:.95rem;color:#334155;text-decoration:none;transition:background .15s ease}.mobile-nav-item:hover{background:#f1f5f9}.mobile-nav-item.active{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-weight:600}@media(max-width:768px){.topbar{padding:10px 14px}}@media(max-width:480px){.topbar{padding:10px 12px}}.topbar-actions{display:flex;gap:12px;align-items:center}.link{color:var(--color-muted)}.link-button{background:transparent;border:none;color:var(--color-muted);cursor:pointer;font:inherit}.content{padding:24px 20px 40px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.pokedex-content{min-height:calc(100vh - 60px);position:relative}.pokedex-content:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none}.pokedex-content>*{position:relative;z-index:1}.pokedex-content .card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #0000001f}.pokedex-content .page-header-with-filters{background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-radius:12px;margin-bottom:20px;box-shadow:0 4px 12px #00000014}.pokedex-content .page-header-with-filters .page-header{margin-bottom:0;padding:0}.pokedex-content .page-header-with-filters .filters{margin-top:0}.pokedex-content .empty-state{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(max-width:768px){.content{padding:16px 12px 32px}}@media(max-width:480px){.content{padding:12px 8px 24px}}.page{display:grid;gap:20px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden;min-width:0}.page.narrow{max-width:520px}.container{width:min(1100px,92vw);margin:0 auto}.menu-toggle{background:var(--color-primary-light);padding:8px 12px;border-radius:8px}.primary{background:var(--color-primary);color:var(--color-primary-contrast);padding:10px 18px;border-radius:8px}.small{padding:6px 12px;font-size:.85rem;border-radius:8px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.primary.small{padding:6px 12px;font-size:.85rem}.ghost{background:#fff;border:1px solid var(--color-primary);color:var(--color-primary-dark);padding:10px 18px;border-radius:8px}.ghost.small{padding:6px 12px;font-size:.85rem}.user-chip{background:var(--color-primary-light);padding:6px 10px;border-radius:999px;font-size:.85rem;color:#475569}.hero{padding:48px 0 32px;border-radius:16px;position:relative}.hero-inner{display:grid;gap:24px}.hero-content h1{font-size:2rem;margin-bottom:12px}.hero-content p{color:#4b5563;margin-bottom:20px;line-height:1.6}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-card{background:var(--color-surface);border-radius:16px;padding:20px;display:grid;gap:12px;box-shadow:0 10px 30px #10182814}.stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8fafc;border-radius:12px}.stat-label{color:#6b7280}.stat-value{font-size:1.1rem}.section{padding:24px 0}.section h2{margin-bottom:20px}.muted{background:var(--color-surface)}.muted-text{color:var(--color-muted)}.grid{display:grid;gap:16px}.card{background:var(--color-surface);padding:16px;border-radius:14px;box-shadow:0 8px 24px var(--color-shadow)}.card-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.avatar{width:64px;height:64px;object-fit:cover}.tag{background:var(--color-primary-light);padding:6px 10px;border-radius:999px;font-size:.8rem;color:var(--color-primary-dark)}.tag.version-tag{background:#e0f2fe;color:#0c4a6e}.tag.variety-tag{background:#f3e8ff;color:#6b21a8}.badge.generation-badge{background:#fef3c7;color:#92400e;font-weight:600;padding:8px 14px;font-size:.85rem}.tag.variety-tag{cursor:help;transition:transform .2s ease,box-shadow .2s ease}.tag.variety-tag:hover{transform:translateY(-2px);box-shadow:0 4px 8px #6b21a833}.tag.variety-tag:hover+.variety-tooltip,div:hover>.variety-tooltip{opacity:1!important;pointer-events:auto!important}.page-header-with-filters{display:grid;gap:16px;margin-bottom:20px}.page-header-with-filters .page-header{margin-bottom:0;padding-bottom:0}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}.filters .filter-input,.filters .filter-select-wrapper{flex:1 1 auto;min-width:150px}.input{padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;color:#1c1c1c;transition:all .2s ease;outline:none}.input::placeholder{color:#94a3b8}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ef44441a}.input[type=select],select.input{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;cursor:pointer;background-image:none}.hint{color:var(--color-muted)}.hint.danger{color:#ef4444}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;margin:0;padding:16px 20px}.page-header>div:first-child{flex:1 1 0%;min-width:0;overflow:hidden;box-sizing:border-box}.page-header h1{margin:0 0 6px;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.page-header p{margin:0;color:var(--color-muted);word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.page-actions{display:flex;gap:12px;flex:0 0 auto;flex-wrap:wrap;min-width:0;box-sizing:border-box;overflow:hidden}@media(max-width:768px){.page-header{gap:12px}.page-header>div:first-child{flex-basis:100%}.page-actions{flex-basis:100%;width:100%}}.table{display:grid;gap:8px}.table-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,auto) minmax(100px,auto) minmax(200px,2fr);gap:12px;background:var(--color-surface);padding:12px 16px;border-radius:12px;align-items:start}.table-note-cell{min-width:0;overflow:visible}.table-row.header{background:transparent;font-weight:600;color:var(--color-muted)}@media screen and (max-width:768px){.table-row{grid-template-columns:1fr;gap:8px;align-items:start}.table-row.header{display:none}.table-row>span:not(.table-note-cell):before{content:attr(data-label);font-weight:600;color:var(--color-muted);margin-right:.5rem}}.badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:.75rem;background:#f1f5f9;color:#475569}.badge.win{background:#dcfce7;color:#166534}.badge.loss{background:#fee2e2;color:#991b1b}.badge.draw{background:#e0f2fe;color:#0c4a6e}.meta{display:flex;justify-content:space-between;font-size:.85rem;color:#94a3b8}.detail-card{display:grid;grid-template-columns:1fr;gap:20px;background:var(--color-surface);padding:20px;border-radius:16px}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.stat-item{background:#f8fafc;padding:8px 10px;border-radius:10px;display:flex;justify-content:space-between}.empty-state{text-align:center;padding:24px;background:var(--color-surface);border-radius:16px;color:var(--color-muted)}.form-field{display:grid;gap:6px;margin-bottom:14px;color:#475569}.auth-layout{min-height:100vh;background:var(--color-primary-light);display:grid;place-items:center;padding:32px 16px}.auth-card{width:min(420px,100%);background:var(--color-surface);padding:24px;border-radius:16px;box-shadow:0 12px 32px #0f172a1f}.modal-overlay{position:fixed;inset:0;background:#0f172a66;display:grid;place-items:center;padding:24px;z-index:50}.modal{width:min(420px,100%);background:var(--color-surface);border-radius:16px;padding:20px;box-shadow:0 16px 40px #0f172a33}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-tabs{display:flex;gap:8px;margin-bottom:16px}.modal-tabs button{flex:1;padding:8px 12px;border-radius:10px;border:1px solid var(--color-border);background:#f8fafc;cursor:pointer;font:inherit}.modal-tabs button.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark);font-weight:600}.modal-body{display:grid;gap:12px}.pagination{display:flex;gap:12px;align-items:center;justify-content:center}.chips{display:flex;gap:8px;flex-wrap:wrap}.section-card{background:var(--color-surface);border-radius:16px;padding:16px;box-shadow:0 8px 24px var(--color-shadow);display:grid;gap:12px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.range-options{display:flex;gap:8px;flex-wrap:wrap}.ghost.small.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.skeleton-card{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 37%,#f1f5f9 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;height:96px;border-radius:14px}.loading-inline{display:flex;justify-content:center;padding:12px 0}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes spin{to{transform:rotate(360deg)}}.clickable-card{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.clickable-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px var(--color-shadow)}.guide-content{display:grid;gap:20px;max-height:70vh;overflow-y:auto;padding-right:8px}.guide-section{padding:16px;background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border)}.guide-section h3{margin-top:0;margin-bottom:8px;color:var(--color-primary-dark)}.guide-section p{margin:8px 0;color:var(--color-muted);line-height:1.6}.guide-section button{margin-top:8px}.detail-back-button{position:fixed;top:80px;left:20px;z-index:100}.back-arrow-button{width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px var(--color-shadow);transition:all .2s ease;color:var(--color-primary-dark)}.back-arrow-button:hover{background:var(--color-primary-light);transform:scale(1.05)}@media(min-width:960px){.detail-back-button{left:240px}}@media(min-width:720px){.detail-card{grid-template-columns:auto 1fr;align-items:start}.detail-card img{width:180px;height:180px}.hero-inner{grid-template-columns:1.1fr .9fr;align-items:center}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.sidebar{position:fixed;transform:none;height:100vh}.sidebar.collapsed{transform:translate(-100%)}.main-area{margin-left:220px;width:calc(100% - 220px);transition:margin-left .2s ease,width .2s ease}.sidebar.collapsed~.main-area{margin-left:0;width:100%}.menu-toggle{display:none}.sidebar.collapsed~.main-area .menu-toggle{display:block}.sidebar-overlay{display:none}.sidebar.collapsed.is-open~.sidebar-overlay{display:block}}@media(max-width:959px){.main-area{width:100%;margin-left:0}}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--color-border)}.language-select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;color:#1c1c1c;cursor:pointer}@media(min-width:1024px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1200px){.topbar{flex-wrap:wrap;gap:8px}}@media(max-width:1199px){.topbar-nav{display:none}}:root{--color-primary: #e53935;--color-primary-dark: #c62828;--color-primary-light: #ffebee;--color-primary-contrast: #ffffff;--color-accent: #1e3a8a;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-muted: #64748b;--color-border: #e6e8ef;--color-shadow: rgba(15, 23, 42, .06)}.filter-input{padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;color:#1c1c1c;transition:all .2s ease;outline:none}.filter-input::placeholder{color:#94a3b8}.filter-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ef44441a}.filter-select-wrapper{position:relative;display:inline-block;width:100%;min-width:0}.filter-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;cursor:pointer;background-image:none;width:100%;box-sizing:border-box}.filter-select-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#64748b;font-size:.75rem;transition:color .2s ease;z-index:1}.filter-select-wrapper:hover .filter-select-arrow{color:var(--color-primary-dark)}.filter-select:focus+.filter-select-arrow{color:var(--color-primary-dark)}.filter-select option{padding:8px 12px;background:var(--color-surface);color:#1c1c1c;border-radius:6px;margin:2px 0}@-moz-document url-prefix(){.filter-select{text-indent:.01px;text-overflow:""}.filter-select option{border-radius:6px}}select{padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;color:#1c1c1c;transition:all .2s ease;outline:none;cursor:pointer}select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ef44441a}select option{padding:8px 12px;background:var(--color-surface);color:#1c1c1c;border-radius:6px;margin:2px 0}select option:hover,select option:checked{background:var(--color-primary-light);color:var(--color-primary-dark)}.filter-select-wrapper{position:relative}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ef44441a}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft Yahei,sans-serif;background:var(--color-bg);color:#1c1c1c}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer;font:inherit}
