*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#e0e0e0;background-color:#1a1a2e;-webkit-text-size-adjust:100%}body{min-height:100vh;min-width:320px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#root{width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-content{background:#16213e;border:1px solid #1a2744;border-radius:12px;padding:32px 28px;width:100%;max-width:380px;position:relative}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:#888;font-size:1.4rem;cursor:pointer;padding:4px;line-height:1}.modal-content h2{color:#fff;font-size:1.2rem;margin-bottom:20px;text-align:center}.modal-content form{display:flex;flex-direction:column;gap:12px}.modal-content input{padding:12px 14px;border-radius:8px;border:1px solid #333;background:#1a1a2e;color:#e0e0e0;font-size:16px;outline:none;transition:border-color .2s}.modal-content input:focus{border-color:#0f3460}.modal-content input::placeholder{color:#666}.discord-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border-radius:8px;border:none;background:#5865f2;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.discord-btn:hover{background:#4752c4}.discord-icon{width:22px;height:22px;fill:#fff}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#666;font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#333}.auth-error{color:#f87171;font-size:.8rem;text-align:center}.auth-success{color:#4ade80;font-size:.8rem;text-align:center}.auth-submit{padding:12px;border-radius:8px;border:none;background:#0f3460;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.auth-submit:hover{background:#1a4a80}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:16px;font-size:.8rem;color:#888}.auth-switch-btn{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.8rem;padding:0}.auth-switch-btn:hover{text-decoration:underline}@media (max-width: 600px){.modal-content{padding:24px 20px;border-radius:10px}}.charts-section{margin-top:16px}.charts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.charts-header h2{font-size:1.2rem;color:#fff}.charts-controls{display:flex;align-items:center;gap:8px}.time-range-buttons{display:flex;gap:4px}.time-btn{padding:6px 14px;border-radius:6px;border:1px solid #333;background:#16213e;color:#aaa;font-size:.8rem;cursor:pointer;transition:all .2s}.time-btn.active{background:#0f3460;color:#fff;border-color:#0f3460}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.stat-card{background:#16213e;border:1px solid #1a2744;border-radius:10px;padding:14px 12px;text-align:center}.stat-value{font-size:1.4rem;font-weight:700;color:#60a5fa;margin-bottom:4px}.stat-label{font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.chart-card{background:#16213e;border:1px solid #1a2744;border-radius:10px;padding:16px;margin-bottom:12px}.chart-card h3{font-size:.9rem;color:#ccc;margin-bottom:12px}.chart-row{display:flex;gap:12px;margin-bottom:0}.chart-half{flex:1;min-width:0}.charts-loading,.charts-empty{text-align:center;padding:40px 20px;color:#888;font-size:.9rem}.map-bars{display:flex;flex-direction:column;gap:8px}.map-bar-row{display:flex;align-items:center;gap:10px}.map-bar-label{width:100px;font-size:.8rem;color:#ccc;text-align:right;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-bar-track{flex:1;height:16px;background:#1a1a2e;border-radius:4px;overflow:hidden}.map-bar-fill{height:100%;background:linear-gradient(90deg,#60a5fa,#a78bfa);border-radius:4px;transition:width .3s;min-width:2px}.map-bar-fill-alt{background:linear-gradient(90deg,#4ade80,#60a5fa)}.map-bar-value{width:40px;font-size:.75rem;color:#aaa;flex-shrink:0}.pie-container{display:flex;justify-content:center}@media (max-width: 600px){.charts-section{margin-top:12px}.charts-header{flex-direction:column;align-items:flex-start;gap:8px}.charts-header h2{font-size:1.05rem}.charts-controls{width:100%;flex-direction:column;gap:8px}.charts-controls .filter-select,.time-range-buttons{width:100%}.time-btn{flex:1;text-align:center;padding:8px 0}.stats-cards{grid-template-columns:repeat(2,1fr);gap:8px}.stat-value{font-size:1.1rem}.stat-label{font-size:.62rem}.chart-card{padding:10px 6px 10px 0;border-radius:8px}.chart-card h3{padding-left:10px;font-size:.8rem}.chart-row{flex-direction:column;gap:0}.map-bar-label{width:70px;font-size:.68rem}.map-bar-value{width:32px;font-size:.68rem}}.like-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s;flex-shrink:0}.like-btn:hover{background:#ffffff0d}.heart-icon{width:20px;height:20px;fill:#555;transition:fill .15s,transform .15s}.like-btn.liked .heart-icon{fill:#f87171}.like-btn:active .heart-icon{transform:scale(1.2)}.like-count{font-size:.7rem;color:#888;line-height:1}.like-btn.liked .like-count{color:#f87171}.server-detail{padding-top:8px}.back-btn{padding:8px 16px;border-radius:6px;border:1px solid #333;background:transparent;color:#60a5fa;font-size:.85rem;cursor:pointer;margin-bottom:16px;transition:background .2s}.back-btn:hover{background:#16213e}.detail-header{margin-bottom:16px}.detail-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.detail-header h2{font-size:1.2rem;color:#fff;word-break:break-word;margin-bottom:8px}.detail-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.85rem;color:#aaa;align-items:center}.detail-info{background:#16213e;border:1px solid #1a2744;border-radius:10px;padding:12px 16px;margin-bottom:20px}.info-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.8rem;border-bottom:1px solid #1a2744}.info-row:last-child{border-bottom:none}.info-row span:first-child{color:#888}.info-row span:last-child{color:#ccc;text-align:right;word-break:break-all}.detail-chart-section{margin-top:8px}.detail-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.detail-chart-header h3{font-size:1rem;color:#fff}.detail-chart-card{background:#16213e;border:1px solid #1a2744;border-radius:10px;padding:16px 8px 8px 0}.detail-chart-empty{text-align:center;padding:40px 20px;color:#888;font-size:.85rem;background:#16213e;border:1px solid #1a2744;border-radius:10px}@media (max-width: 600px){.detail-header h2{font-size:1rem}.detail-meta{gap:6px 10px;font-size:.78rem}.detail-info{padding:10px 12px}.info-row{font-size:.75rem}.detail-chart-header{flex-direction:column;align-items:flex-start}.detail-chart-header .time-range-buttons{width:100%}.detail-chart-header .time-btn{flex:1;text-align:center;padding:8px 0}.detail-chart-card{padding:10px 4px 4px 0}.back-btn{padding:10px 16px}}.notify-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid #333;cursor:pointer;padding:2px 8px;border-radius:14px;transition:all .15s;flex-shrink:0;justify-self:start;color:#666;font-size:.7rem}.notify-btn:hover:not(:disabled){border-color:#555;color:#aaa}.notify-btn.disabled{cursor:default;opacity:.5}.notify-btn:hover .bell-icon{fill:#aaa}.notify-btn.subscribed{border-color:#facc1544;color:#facc15}.notify-btn.subscribed:hover{border-color:#facc1588}.bell-icon{width:13px;height:13px;fill:#666;transition:fill .15s}.notify-btn.subscribed .bell-icon{fill:#facc15}.notify-label{line-height:1;white-space:nowrap}.comment-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s;flex-shrink:0}.comment-btn:hover{background:#ffffff0d}.comment-icon{width:20px;height:20px;fill:none;stroke:#555;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s,fill .15s,transform .15s}.comment-btn.has-comments .comment-icon{stroke:#60a5fa;fill:#60a5fa33}.comment-btn:active .comment-icon{transform:scale(1.2)}.comment-count{font-size:.7rem;color:#888;line-height:1}.comment-btn.has-comments .comment-count{color:#60a5fa}.comments-section{margin-top:20px;padding-top:16px;border-top:1px solid #1a2744}.comments-section h3{font-size:.95rem;color:#fff;margin-bottom:12px}.comment-form{display:flex;gap:8px;margin-bottom:16px}.comment-input{flex:1;padding:8px 12px;border-radius:8px;border:1px solid #333;background:#16213e;color:#e0e0e0;font-size:14px;outline:none;transition:border-color .2s}.comment-input:focus{border-color:#0f3460}.comment-input::placeholder{color:#666}.comment-submit{padding:8px 16px;border-radius:8px;border:1px solid #0f3460;background:#0f3460;color:#fff;font-size:14px;cursor:pointer;transition:background .2s;white-space:nowrap}.comment-submit:hover{background:#1a4a8a}.comment-submit:disabled{opacity:.5;cursor:default}.comments-empty{color:#666;font-size:.8rem;padding:8px 0}.comments-list{display:flex;flex-direction:column;gap:10px}.comment-item{padding:8px 12px;background:#1a2744;border-radius:8px}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.comment-author{font-size:.8rem;font-weight:600;color:#60a5fa}.comment-discord-link{display:flex;align-items:center;gap:3px;text-decoration:none;color:#60a5fa}.comment-discord-link:hover{text-decoration:underline}.comment-discord-icon{flex-shrink:0}.comment-admin-tag{font-size:.65rem;color:#facc15;opacity:.8}.comment-time{font-size:.7rem;color:#666}.comment-delete{background:none;border:none;color:#666;font-size:.7rem;cursor:pointer;margin-left:auto;padding:0}.comment-delete:hover{color:#f87171}.comment-text{font-size:.85rem;color:#ccc;line-height:1.4;word-break:break-word}.anticipate-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s;flex-shrink:0}.anticipate-btn:hover{background:#ffffff0d}.eye-icon{width:20px;height:20px;fill:#555;transition:fill .15s,transform .15s}.anticipate-btn.active .eye-icon{fill:#facc15}.anticipate-btn:active .eye-icon{transform:scale(1.2)}.anticipate-count{font-size:.7rem;color:#888;line-height:1}.anticipate-btn.active .anticipate-count{color:#facc15}.wipes-controls{align-items:center}.wipes-controls .filter-select{flex:1;min-width:0}.add-wipe-btn{padding:10px 18px;border-radius:8px;border:1px solid #333;background:#0f3460;color:#fff;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .2s}.add-wipe-btn:hover{background:#1a4a8a}.wipe-form{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.wipe-form .filter-select{flex:2;min-width:140px}.wipe-input{padding:10px 14px;border-radius:8px;border:1px solid #333;background:#16213e;color:#e0e0e0;font-size:16px;outline:none}.wipe-input:focus{border-color:#0f3460}.wipe-tz-label{color:#888;font-size:.8rem}.wipe-countdown{color:#facc15;font-weight:600}.wipe-now{color:#f87171}.wipe-delete-btn{background:none;border:none;color:#666;font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s;flex-shrink:0}.wipe-delete-btn:hover{color:#f87171}.wipes-empty{text-align:center;color:#666;padding:40px 20px;font-size:.9rem}@media (max-width: 600px){.wipe-form{gap:6px}.wipe-form .filter-select{flex-basis:100%}.wipe-input{flex:1;min-width:0}}.app{max-width:960px;margin:0 auto;padding:16px}.header{text-align:center;padding:24px 0 16px}.header-top{display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.6rem;color:#fff;margin-bottom:4px}.header .subtitle{font-size:.85rem;color:#888}.user-area{display:flex;align-items:center;gap:10px;flex-shrink:0}.username{font-size:.8rem;color:#aaa;display:flex;align-items:center;gap:4px}.discord-badge{flex-shrink:0}.auth-btn{padding:6px 14px;border-radius:6px;border:1px solid #333;background:transparent;color:#60a5fa;font-size:.8rem;cursor:pointer;transition:background .2s}.auth-btn:hover{background:#16213e}.tab-bar{display:flex;justify-content:center;gap:4px;margin-top:14px}.tab-btn{padding:8px 24px;border-radius:6px;border:1px solid #333;background:transparent;color:#aaa;font-size:.9rem;cursor:pointer;transition:all .2s}.tab-btn.active{background:#0f3460;color:#fff;border-color:#0f3460}.controls{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.search-input{flex:1;min-width:0;padding:10px 14px;border-radius:8px;border:1px solid #333;background:#16213e;color:#e0e0e0;font-size:16px;outline:none;transition:border-color .2s}.search-input:focus{border-color:#0f3460}.search-input::placeholder{color:#666}.filter-select{padding:10px 14px;border-radius:8px;border:1px solid #333;background:#16213e;color:#e0e0e0;font-size:16px;outline:none;cursor:pointer;min-width:130px}.cluster-controls .filter-select{flex:1;min-width:0}.stats-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.8rem;color:#888;padding:0 4px}.stats-bar-left{display:flex;align-items:center;gap:10px}.show-empty-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.show-empty-toggle input{cursor:pointer}.server-list{display:flex;flex-direction:column;gap:8px}.server-card{background:#16213e;border:1px solid #1a2744;border-radius:10px;padding:12px 16px;transition:border-color .2s;display:flex;align-items:center;gap:8px}.server-card-main{flex:1;min-width:0;cursor:pointer}.server-card.clickable{cursor:default}.server-card:hover{border-color:#0f3460}.server-name{font-size:.95rem;font-weight:600;color:#fff;margin-bottom:6px;word-break:break-word}.server-details{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.8rem;color:#aaa;align-items:center}.server-details span{white-space:nowrap}.badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.badge-pve{background:#0a3d2e;color:#4ade80}.badge-pvp{background:#3d0a0a;color:#f87171}.cluster-tag{font-size:.75rem;color:#666;margin-top:4px;cursor:pointer}.cluster-link{color:#60a5fa;text-decoration:underline;text-decoration-color:#60a5fa66;text-underline-offset:2px}.cluster-link:hover{text-decoration-color:#60a5fa}.cluster-detail-header{margin-bottom:16px}.cluster-detail-header h2{font-size:1.2rem;color:#fff;margin-bottom:8px}.cluster-detail-stats{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.85rem;color:#aaa}.server-card-actions{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.server-card-actions .like-btn,.server-card-actions .comment-btn{padding:3px 6px}.detail-header-actions{display:flex;align-items:center;gap:2px}.players{color:#60a5fa;font-weight:600}.peak{color:#a78bfa}.age{color:#facc15}.status-message{text-align:center;padding:60px 20px;color:#888;font-size:1rem}.status-message.error{color:#f87171}.loading-spinner{display:inline-block;width:32px;height:32px;border:3px solid #333;border-top-color:#60a5fa;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 600px){.app{padding:10px}.header{padding:14px 0 10px}.header h1{font-size:1.2rem}.header .subtitle{font-size:.75rem}.tab-bar{margin-top:10px}.tab-btn{flex:1;padding:10px 0;text-align:center;font-size:.85rem}.controls{gap:6px}.search-input{flex-basis:100%;padding:10px 12px}.filter-select{flex:1;min-width:0;padding:10px 8px;font-size:14px}.server-controls .filter-select:last-child{flex-basis:100%}.server-card{padding:10px;gap:6px}.server-name{font-size:.85rem;margin-bottom:4px}.server-details{gap:3px 10px;font-size:.72rem}.cluster-stats-grid{display:grid;grid-template-columns:auto auto 1fr;gap:4px 10px}.cluster-tag{font-size:.68rem}.stats-bar{font-size:.75rem}.auth-btn{padding:6px 10px;font-size:.75rem}.username{font-size:.72rem;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.data-range-note{font-size:.7rem;color:#888;font-weight:400;margin-left:8px}
