*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Segoe UI',system-ui,sans-serif;background:#0f0f1a;color:#e0e0e0;min-height:100vh;padding:24px 16px 48px}a{color:#7ec8e3;text-decoration:none}a:hover{opacity:.8}.topbar{display:flex;align-items:center;justify-content:space-between;max-width:820px;margin:0 auto 32px}.topbar h1{font-size:1.4rem;color:#7ec8e3;letter-spacing:2px}.topbar .back{font-size:.85rem}#user-chip{display:none;align-items:center;gap:8px;text-decoration:none;margin-left:8px;background:#13132a;border:1px solid #2a2a4a;border-radius:20px;padding:3px 10px 3px 4px}#user-chip:hover{border-color:#7ec8e3}#uc-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;overflow:hidden;flex-shrink:0}#uc-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}#uc-title{font-size:.72rem;color:#f0c040;font-weight:700}#uc-name{font-size:.72rem;color:#e0e0e0}.page{max-width:820px;margin:0 auto;display:flex;gap:24px;flex-wrap:wrap}.card{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:10px;padding:24px}.profile-card{width:240px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:12px}.avatar-circle{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#0f0f1a;user-select:none}.profile-username{font-size:1.2rem;font-weight:700;text-align:center}.premium-medal{display:inline-block;font-size:.85em;margin-left:3px;line-height:1;vertical-align:middle}.title-badge{display:inline-block;background:#c8a84b;color:#0f0f1a;font-size:.7rem;font-weight:700;letter-spacing:1px;padding:2px 7px;border-radius:4px}.bio-display{font-size:.82rem;color:#aaa;text-align:center;line-height:1.5;word-break:break-word}.flag{font-size:1.5rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.stat-box{background:#0f0f1a;border:1px solid #2a2a4a;border-radius:8px;padding:10px 12px;text-align:center}.stat-box .label{font-size:.68rem;color:#888;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.stat-box .value{font-size:1.3rem;font-weight:700;color:#7ec8e3}.stat-box .sub{font-size:.7rem;color:#666;margin-top:2px}.record-row{display:flex;gap:10px}.record-pill{flex:1;background:#0f0f1a;border:1px solid #2a2a4a;border-radius:8px;padding:8px;text-align:center}.record-pill .num{font-size:1.1rem;font-weight:700}.record-pill .lbl{font-size:.65rem;color:#888;text-transform:uppercase;letter-spacing:1px;margin-top:2px}.num-win{color:#6bbf6b}.num-loss{color:#e07070}.num-draw{color:#aaa}.main-col{flex:1;min-width:280px;display:flex;flex-direction:column;gap:20px}.card h2{font-size:.85rem;color:#7ec8e3;text-transform:uppercase;letter-spacing:1px;margin-bottom:16px}.puzzle-strip{display:flex;gap:8px;flex-wrap:wrap}.puz-stat{flex:1;min-width:70px;text-align:center;background:#0f0f1a;border:1px solid #2a2a4a;border-radius:8px;padding:8px 4px}.puz-stat .pv{font-size:1.1rem;font-weight:800;color:#7ec8e3}.puz-stat .pl{font-size:.62rem;color:#666;margin-top:2px}.puz-streak-fire{font-size:1rem}.social-counts{display:flex;justify-content:center;gap:18px;width:100%;margin-top:8px;font-size:.8rem;color:var(--cf-muted)}.social-counts strong{color:var(--cf-text);font-weight:700}.streak-freeze-box{margin-top:10px;background:#0f0f1a;border:1px solid #2a2a4a;border-radius:8px;padding:10px 12px}.streak-freeze-box .sfb-top{font-size:.9rem;color:#9bd0e8}.streak-freeze-box .sfb-top strong{color:#7ec8e3}.streak-freeze-box .sfb-note{font-size:.72rem;color:var(--cf-muted);margin-top:4px;line-height:1.45}.follow-row{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid #1c1c34;text-decoration:none;color:inherit}.follow-row:last-child{border-bottom:none}.follow-row:hover{background:rgba(126,200,227,.06)}.follow-row .fr-av{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#0f0f1a;overflow:hidden}.follow-row .fr-av img{width:100%;height:100%;object-fit:cover}.follow-row .fr-name{flex:1;min-width:0;font-size:.84rem;color:var(--cf-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.follow-row .fr-rating{font-size:.78rem;color:var(--cf-muted);font-variant-numeric:tabular-nums}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.ach-badge{background:#0f0f1a;border:1px solid #2a2a4a;border-radius:10px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;transition:border-color .15s,transform .15s}.ach-badge:not(.locked):hover{border-color:#7ec8e3;transform:translateY(-2px)}.ach-badge.locked{opacity:.38;filter:grayscale(.8)}.ach-badge .b-icon{font-size:1.8rem;line-height:1}.ach-badge .b-name{font-size:.72rem;font-weight:700;color:#e0e0e0}.ach-badge .b-desc{font-size:.6rem;color:#666;line-height:1.3}.ach-badge .b-xp{font-size:.6rem;font-weight:700;color:#6ecb6e}.ach-badge .b-date{font-size:.58rem;color:#8a8aa5}.rarity-common .b-name{color:#aaa}.rarity-uncommon .b-name{color:#7ec8e3}.rarity-rare .b-name{color:#88f}.rarity-epic .b-name{color:#c7f}.rarity-legendary .b-name{color:#fa0}.ach-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.ach-filter-btn{padding:3px 10px;border-radius:10px;border:1px solid #2a2a4a;background:0 0;color:#888;font-size:.7rem;cursor:pointer}.ach-filter-btn.sel{background:#1a2a3a;border-color:#7ec8e3;color:#7ec8e3}.xp-level-badge{display:flex;align-items:center;gap:8px;background:#13132a;border:1px solid #2a2a4a;border-radius:10px;padding:10px 14px;margin-bottom:14px}.xp-lv-num{font-size:1.6rem;font-weight:900;color:#7ec8e3;line-height:1}.xp-lv-bar-wrap{flex:1}.xp-lv-label{font-size:.65rem;color:#888;margin-bottom:3px}.xp-lv-track{height:6px;background:#1e1e3a;border-radius:3px;overflow:hidden}.xp-lv-fill{height:100%;background:linear-gradient(90deg,#7ec8e3,#4a9fd5);border-radius:3px;transition:width .6s}label{display:block;font-size:.78rem;color:#aaa;margin-bottom:4px;margin-top:12px}label:first-of-type{margin-top:0}input,select,textarea{width:100%;padding:8px 10px;border-radius:6px;border:1px solid #2a2a4a;background:#0f0f1a;color:#e0e0e0;font-size:.85rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:0;border-color:#7ec8e3}textarea{resize:vertical;min-height:72px}.char-count{font-size:.7rem;color:#666;text-align:right;margin-top:3px}.btn-row{display:flex;gap:10px;margin-top:16px}button{flex:1;padding:9px;border-radius:6px;border:none;cursor:pointer;font-size:.85rem;font-weight:600;transition:opacity .15s}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:default}.btn-primary{background:#7ec8e3;color:#0f0f1a}.btn-secondary{background:#2a2a4a;color:#e0e0e0}.btn-danger{background:#e07070;color:#0f0f1a}.msg{margin-top:10px;font-size:.78rem;padding:8px 10px;border-radius:6px;display:none}.msg.ok{background:#1a3a1a;border:1px solid #3a6b3a;color:#7ec87e;display:block}.msg.err{background:#3a1a1a;border:1px solid #6b3a3a;color:#e07070;display:block}.divider{border:none;border-top:1px solid #2a2a4a;margin:16px 0}.logout-row{display:flex;justify-content:flex-end;margin-top:8px}.logout-btn{background:0 0;border:1px solid #2a2a4a;color:#888;font-size:.75rem;padding:6px 14px;border-radius:6px;cursor:pointer;transition:all .15s;flex:0}.logout-btn:hover{border-color:#e07070;color:#e07070;opacity:1}.tab-btn{flex:0;padding:5px 14px;border-radius:20px;border:1px solid #2a2a4a;font-size:.75rem;font-weight:600;cursor:pointer;background:#2a2a4a;color:#e0e0e0;transition:all .15s}.tab-btn.active{background:#7ec8e3;color:#0f0f1a;border-color:#7ec8e3}.game-card{background:#0f0f1a;border:1px solid #2a2a4a;border-radius:10px;padding:14px 18px;margin-bottom:10px;transition:border-color .15s}.game-card:hover{border-color:#3a3a6a}.card-main{display:flex;align-items:center;gap:12px}.card-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.color-dot.white{background:#e8e8e8;border:1.5px solid #888}.color-dot.black{background:#2a2a2a;border:1.5px solid #666}.opponent-name{font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-control{font-size:.72rem;color:#888;white-space:nowrap}.card-center{flex-shrink:0}.result-badge{padding:3px 12px;border-radius:12px;font-size:.75rem;font-weight:700;white-space:nowrap}.result-badge.win{background:#1a3a1a;color:#6ecb6e;border:1px solid #2a5a2a}.result-badge.loss{background:#3a1a1a;color:#cb6e6e;border:1px solid #5a2a2a}.result-badge.draw{background:#2a2a2a;color:#aaa;border:1px solid #444}.card-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.game-date{font-size:.72rem;color:#888;white-space:nowrap}.analyze-btn{padding:4px 12px;border-radius:6px;border:1px solid #2a2a4a;background:#1a1a2e;color:#7ec8e3;font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;text-decoration:none;display:inline-block}.analyze-btn:hover{border-color:#7ec8e3;opacity:1}.card-sub{display:flex;align-items:center;gap:16px;margin-top:8px;font-size:.72rem;color:#777}.rating-change{font-weight:700}.rating-change.pos{color:#6ecb6e}.rating-change.neg{color:#cb6e6e}.rating-change.neu{color:#aaa}.gh-spinner{width:28px;height:28px;border-radius:50%;border:3px solid #2a2a4a;border-top-color:#7ec8e3;animation:spin .8s linear infinite;margin:32px auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.gh-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.gh-filter-select{background:#0f0f1a;border:1px solid #2a2a4a;color:#e0e0e0;padding:5px 8px;border-radius:6px;font-size:.75rem;cursor:pointer}.gh-filter-input{flex:1;min-width:120px;background:#0f0f1a;border:1px solid #2a2a4a;color:#e0e0e0;padding:5px 8px;border-radius:6px;font-size:.75rem}.gh-filter-input:focus,.gh-filter-select:focus{outline:0;border-color:#7ec8e3}.accuracy-badge{font-size:.68rem;font-weight:700;padding:1px 6px;border-radius:8px;background:#1a2a3a;color:#7ec8e3;white-space:nowrap}.other-profile-actions{display:flex;gap:8px;width:100%;margin-top:4px}.btn-follow{padding:7px 0;border-radius:6px;border:1px solid #7ec8e3;background:0 0;color:#7ec8e3;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;flex:1}.btn-follow:hover{background:#7ec8e320;opacity:1}.btn-follow.following{background:#7ec8e3;color:#0f0f1a}.btn-msg-sm{padding:7px 12px;border-radius:6px;border:1px solid #2a2a4a;background:#13132a;color:#aaa;font-size:.82rem;cursor:pointer;transition:all .15s;flex:0 0 auto;text-decoration:none;display:inline-flex;align-items:center}.btn-msg-sm:hover{border-color:#7ec8e3;color:#7ec8e3;opacity:1}.btn-report-sm{padding:7px 12px;border-radius:6px;border:1px solid #2a2a2a;background:0 0;color:#666;font-size:.82rem;cursor:pointer;transition:all .15s;flex:0 0 auto}.btn-report-sm:hover{border-color:#e07070;color:#e07070;opacity:1}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.modal-box{background:#1a1a2e;border:1px solid #3a3a6a;border-radius:12px;padding:24px;max-width:400px;width:100%}.modal-box h3{font-size:1rem;color:#7ec8e3;margin-bottom:16px}.pref-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #1e1e3a;gap:12px}.pref-row:last-child{border-bottom:none}.pref-label{font-size:.85rem;color:#ccc}.pref-desc{font-size:.7rem;color:#666;margin-top:2px}.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;background:#2a2a4a;border-radius:24px;cursor:pointer;transition:.2s}.toggle-slider:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#888;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background:#7ec8e3}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px);background:#0f0f1a}.pgn-btn{padding:4px 8px;border-radius:6px;border:1px solid #2a3a2a;background:#1a2a1a;color:#6ecb6e;font-size:.68rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}.pgn-btn:hover{border-color:#6ecb6e;opacity:1}@media (max-width:768px){body{height:auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;min-height:100dvh}.page{flex-direction:column;padding:12px;gap:14px}.profile-card{width:100%}}.psych-archetype{display:flex;align-items:center;gap:12px;margin-bottom:16px}.psych-archetype-icon{font-size:2rem;line-height:1}.psych-archetype-name{font-size:1rem;font-weight:700;color:#e0e0e0}.psych-archetype-desc{font-size:.78rem;color:#999;margin-top:2px}.psych-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.psych-bar-label{font-size:.75rem;color:#999;width:120px;flex-shrink:0;text-align:right}.psych-bar-track{flex:1;height:8px;background:#1e1e3a;border-radius:4px;overflow:hidden}.psych-bar-fill{height:100%;border-radius:4px;transition:width .6s}.psych-bar-val{font-size:.72rem;color:#ccc;width:36px;flex-shrink:0}.psych-section-title{font-size:.7rem;color:#8a8aa5;text-transform:uppercase;letter-spacing:.6px;margin:14px 0 8px}.season-badge{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:3px;min-width:130px}.season-badge-icon{font-size:1.4rem;line-height:1}.season-badge-type{font-size:.7rem;font-weight:700;color:#f0c040;text-transform:uppercase;letter-spacing:.5px}.season-badge-season{font-size:.68rem;color:#777}.season-badge-rating{font-size:.75rem;color:#aaa}