.avatar{border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;-webkit-user-select:none;user-select:none}.avatar-sm{width:32px;height:32px;font-size:.75rem}.avatar-md{width:42px;height:42px;font-size:.95rem}.avatar-lg{width:72px;height:72px;font-size:1.6rem}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-clickable{cursor:pointer;transition:opacity .2s}.avatar-clickable:hover{opacity:.85}.nav-icon--badge{position:relative;display:inline-flex}.nav-badge{position:absolute;top:-4px;right:-6px;background:#ef4444;color:#fff;border-radius:100px;font-size:.6rem;padding:1px 4px;font-weight:700;line-height:1.2;min-width:14px;text-align:center;border:1.5px solid var(--color-primary)}.header{background:var(--color-primary);color:#fff;padding:0;box-shadow:0 1px #ffffff14,var(--shadow-md);position:sticky;top:0;z-index:200}.header-container{max-width:1440px;margin:0 auto;padding:0 1.25rem;height:60px;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.logo{font-size:1.4rem;font-weight:800;cursor:pointer;transition:opacity .18s;margin:0;letter-spacing:-.02em;display:flex;align-items:center;gap:.3rem;-webkit-user-select:none;user-select:none}.logo:hover{opacity:.8}.header-nav{flex-grow:1;display:flex;align-items:center;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.4rem;color:#ffffffbf;text-decoration:none;font-weight:500;font-size:.9rem;padding:.45rem .75rem;border-radius:var(--radius-md);transition:color .18s,background .18s}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#fff;background:#ffffff26;font-weight:600}.nav-icon{display:flex;align-items:center;width:18px;height:18px;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.header-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:#fff;cursor:pointer;transition:background .18s,transform .18s;flex-shrink:0}.btn-icon svg{width:17px;height:17px}.btn-theme-emoji{font-size:1.1rem;line-height:1}.btn-icon:hover{background:#ffffff38}.btn-theme-emoji:hover{transform:scale(1.15)}.header-avatar-btn{padding:0!important;overflow:hidden}.btn-logout{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.4rem .85rem;font-size:.83rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background .18s}.btn-logout:hover{background:#e74c3ca6;border-color:#e74c3c80}[data-theme=dark] .header{background:#12122a;border-bottom:1px solid #2a2a4a;box-shadow:0 2px 20px #00000080}.bottom-nav{display:none}@media (max-width: 768px){.header-nav{display:none}.header-container{height:52px;padding:0 1rem;gap:.5rem}.logo-text{display:inline}.btn-logout{display:none}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--color-primary);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -4px 24px #00000040;padding-bottom:env(safe-area-inset-bottom,0);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:.55rem .25rem .5rem;color:#ffffff80;text-decoration:none;transition:color .15s;min-width:0}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item.active{color:#fff}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0}.bottom-nav-icon svg{width:100%;height:100%;transition:stroke-width .15s}.bottom-nav-item.active .bottom-nav-icon svg{stroke-width:2.5}.bottom-nav-icon :global(.avatar){width:24px!important;height:24px!important}.bottom-nav-label{font-size:.6rem;font-weight:500;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.bottom-nav-item.active .bottom-nav-label{font-weight:700}}[data-theme=dark] .bottom-nav{background:#12122af2;border-top-color:#2a2a4a;box-shadow:0 -4px 28px #00000080}@media (min-width: 769px) and (max-width: 1024px){.header-container{gap:1rem}.nav-link{padding:.45rem .55rem;font-size:.85rem}.header-username{max-width:80px}}.layout{display:flex;flex-direction:column;min-height:100vh}.layout-main{flex:1;padding:2rem 1rem;background-color:var(--layout-bg, #f5f5f5);transition:background-color .2s}.layout-container{max-width:1440px;margin:0 auto;width:100%}.layout-footer{background-color:var(--color-primary);color:#fff;text-align:center;padding:2rem;margin-top:4rem}@media (max-width: 768px){.layout-footer{display:none}.layout-main{padding-bottom:calc(72px + env(safe-area-inset-bottom,0))}}.layout-footer p{margin:0}.auth-form{max-width:400px;margin:0 auto;background:#fff;padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-form h2{text-align:center;margin-bottom:1.5rem;color:var(--color-primary)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-dark)}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:var(--radius-md);font-size:1rem;transition:var(--transition)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2c3e501a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;color:var(--color-danger);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem;border:1px solid #fcc}.btn-submit{width:100%;padding:.75rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);margin-top:1rem}.btn-submit:hover:not(:disabled){background-color:#1a3a45}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.form-link{text-align:center;margin-top:1rem;font-size:.9rem}.form-link a{color:var(--color-primary);font-weight:600}.google-signin-container{margin:1.5rem 0;padding:1rem 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.btn-google-signin{width:100%;padding:.75rem;background-color:#fff;border:1px solid #d3d3d3;border-radius:var(--radius-md);font-size:1rem;font-weight:500;color:#444;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:var(--transition)}.btn-google-signin:hover:not(:disabled){background-color:#f8f8f8;border-color:#4285f4;box-shadow:0 1px 3px #4285f44d}.btn-google-signin:disabled{opacity:.6;cursor:not-allowed}.google-icon{width:20px;height:20px}.divider-text{text-align:center;color:#999;margin:1rem 0;font-size:.9rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);padding:1rem}.auth-container{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:900px;width:100%;align-items:center}.auth-welcome{color:#fff}.auth-welcome h1{font-size:2.5rem;margin-bottom:1rem}.auth-welcome p{font-size:1.2rem;opacity:.9;margin:0}@media (max-width: 768px){.auth-container{grid-template-columns:1fr;gap:2rem}.auth-welcome{text-align:center}.auth-welcome h1{font-size:2rem}.auth-welcome p{font-size:1rem}}.file-upload-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.upload-card{background:#fff;border-radius:16px;padding:3rem;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-card h2{color:#2c3e50;margin-bottom:.5rem;font-size:1.8rem}.upload-subtitle{color:#7f8c8d;margin-bottom:2rem;line-height:1.6}.upload-form{margin-bottom:2rem}.file-input-wrapper{position:relative;margin-bottom:1.5rem}.file-input{display:none}.file-input-label{display:block;padding:2rem;border:2px dashed #3498db;border-radius:12px;background:linear-gradient(135deg,#3498db0d,#3498db05);cursor:pointer;transition:all .3s ease;font-weight:500;color:#2c3e50}.file-input-label:hover{border-color:#2980b9;background:linear-gradient(135deg,#3498db1a,#3498db0d)}.file-input:checked+.file-input-label,.file-input:has(~.file-input-label){border-color:#27ae60;background:linear-gradient(135deg,#27ae600d,#27ae6005)}.file-size{display:block;font-size:.85rem;color:#7f8c8d;margin-top:.5rem;font-weight:400}.progress-bar{width:100%;height:8px;background:#ecf0f1;border-radius:10px;overflow:hidden;margin-bottom:1rem}.progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2980b9);transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700}.btn-upload{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:1rem}.btn-upload:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.btn-upload:disabled{opacity:.5;cursor:not-allowed}.error-message{background-color:#fee;color:#c0392b;padding:1rem;border-radius:8px;margin-bottom:1rem;font-weight:500;border-left:4px solid #c0392b}.instructions{text-align:left;padding:1.5rem;background:#f8f9fa;border-radius:12px;margin-top:2rem}.instructions h3{color:#2c3e50;margin-bottom:1rem;font-size:1rem}.instructions ol{list-style:decimal;padding-left:1.5rem;color:#555;line-height:1.8}.instructions li{margin-bottom:.5rem}.instructions a{color:#3498db;text-decoration:none;font-weight:600}.instructions a:hover{text-decoration:underline}.processing-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;gap:1rem}.processing-overlay h3{color:#2c3e50;font-size:1.4rem;margin:0}.processing-overlay p{color:#7f8c8d;line-height:1.6;margin:0;font-size:.95rem}.processing-spinner{width:56px;height:56px;border:5px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin .9s linear infinite}.processing-dots{display:flex;gap:8px;margin-top:.5rem}.processing-dots span{width:10px;height:10px;background:#667eea;border-radius:50%;animation:bounce 1.2s ease-in-out infinite}.processing-dots span:nth-child(2){animation-delay:.2s}.processing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}@media (max-width: 640px){.upload-card{padding:2rem}.upload-card h2{font-size:1.4rem}.file-input-label{padding:1.5rem}.instructions{font-size:.9rem}}.dashboard{margin:-2rem -1rem;padding:2rem 1.5rem 4rem;min-height:calc(100vh - 64px);background:#0f0f1a;color:#e0e0e0}.dashboard-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:2rem 2.5rem;background:linear-gradient(135deg,#1a0a2e,#2d1b69 60%,#3d1f8a);border-radius:20px;border:1px solid rgba(124,92,191,.3);box-shadow:0 8px 32px #7c5cbf33;position:relative;overflow:hidden}.dashboard-hero:before{content:"🎲";position:absolute;right:2rem;top:50%;transform:translateY(-50%) rotate(-15deg);font-size:7rem;opacity:.06;pointer-events:none}.dashboard-hero-text h1{font-size:1.9rem;font-weight:800;margin:0 0 .2rem;color:#fff;letter-spacing:-.3px}.dashboard-hero-text p{font-size:.92rem;color:#ffffff8c;margin:0}.dashboard-summary{display:flex;align-items:center;gap:1.5rem;background:#ffffff12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1rem 2rem;flex-shrink:0}.summary-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem}.summary-stat-value{font-size:1.75rem;font-weight:800;color:#fff;line-height:1}.summary-stat-label{font-size:.68rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.summary-stat-div{width:1px;height:36px;background:#ffffff26}.section-title{font-size:.85rem;font-weight:700;color:#a0a0c0;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:.4rem}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.player-card{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:16px;padding:1.25rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s;position:relative}.player-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #7c5cbf33;border-color:#7c5cbf}.player-card.selected{border-color:#7c5cbf;background:#1e1a36;box-shadow:0 0 0 2px #7c5cbf40,0 10px 28px #7c5cbf33}.player-card.grupo-card{border-style:dashed;background:#161626;opacity:.85}.favorite-badge{display:inline-flex;align-items:center;background:#facc151f;border:1px solid rgba(250,204,21,.35);border-radius:20px;padding:.15rem .55rem;font-size:.68rem;color:#fbbf24;font-weight:700;letter-spacing:.03em;margin-bottom:.65rem}.player-card-header{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}.player-avatar{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#5b2da0,#7c5cbf);display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:800;color:#ffffffeb;flex-shrink:0;box-shadow:0 3px 10px #7c5cbf59;letter-spacing:-.5px}.grupo-card .player-avatar{background:linear-gradient(135deg,#2a2a4a,#3a3a60);font-size:1.3rem}.player-name{font-size:1rem;font-weight:700;color:#e8e8ff;margin:0}.player-subtitle{font-size:.75rem;color:#6868a0;margin:.1rem 0 0}.player-stats-row{display:flex;gap:.5rem;margin-bottom:.9rem}.mini-stat{flex:1;background:#12122a;border-radius:10px;padding:.45rem .5rem;text-align:center;border:1px solid #22224a}.mini-stat-value{font-size:1.1rem;font-weight:700;color:#e8e8ff;line-height:1}.mini-stat-label{font-size:.63rem;color:#6868a0;text-transform:uppercase;letter-spacing:.03em;margin-top:.15rem}.win-rate-bar{margin-bottom:.9rem}.win-rate-label{display:flex;justify-content:space-between;font-size:.72rem;color:#6868a0;margin-bottom:.3rem}.win-rate-track{height:5px;background:#22224a;border-radius:4px;overflow:hidden}.win-rate-fill{height:100%;background:linear-gradient(90deg,#5b2da0,#9b6dd6);border-radius:4px;transition:width .5s ease}.player-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem}.tag{background:#1e1e38;border:1px solid #2e2e58;border-radius:12px;padding:.18rem .55rem;font-size:.68rem;color:#8888b8;white-space:nowrap}.tag.mechanic{background:#7c5cbf1f;border-color:#7c5cbf59;color:#b48ee8}.tag.category{background:#38bdf814;border-color:#38bdf840;color:#7dd3fc}.co-players{font-size:.75rem;color:#6868a0;margin-top:.2rem}.co-players strong{color:#c0c0e0}.player-detail-panel{background:#1a1a2e;border:1px solid #7c5cbf;border-radius:16px;padding:1.75rem;margin-top:1.5rem;box-shadow:0 8px 32px #7c5cbf33;animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid #2a2a4a}.detail-avatar{width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,#5b2da0,#7c5cbf);display:flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:800;color:#ffffffeb;flex-shrink:0;box-shadow:0 4px 14px #7c5cbf66;letter-spacing:-.5px}.detail-title{font-size:1.3rem;font-weight:800;color:#e8e8ff;margin:0 0 .2rem}.detail-subtitle{font-size:.82rem;color:#6868a0;margin:0}.detail-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem;margin-bottom:1.5rem}.detail-stat{background:#12122a;border:1px solid #22224a;border-radius:12px;padding:.75rem 1rem;text-align:center}.detail-stat-value{font-size:1.5rem;font-weight:800;color:#9b6dd6;line-height:1}.detail-stat-label{font-size:.67rem;color:#6868a0;text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem}.detail-section{margin-bottom:1.1rem}.detail-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6868a0;margin-bottom:.5rem}.dashboard-empty{text-align:center;padding:5rem 2rem;color:#6868a0;display:flex;flex-direction:column;align-items:center}.dashboard-empty-icon{font-size:4rem;margin-bottom:1rem;animation:float 3s ease-in-out infinite}.dashboard-empty h2{font-size:1.25rem;font-weight:700;color:#c0c0e0;margin:0 0 .5rem}.dashboard-empty p{font-size:.9rem;margin:0 0 1.5rem;max-width:320px}.upload-link-btn{display:inline-block;background:linear-gradient(135deg,#5b2da0,#7c5cbf);color:#fff;border:none;border-radius:10px;padding:.7rem 1.5rem;font-size:.9rem;font-weight:700;cursor:pointer;text-decoration:none;transition:opacity .15s;box-shadow:0 4px 16px #7c5cbf59}.upload-link-btn:hover{opacity:.85;color:#fff}.dashboard-loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.sk-card{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.sk{border-radius:8px;background:linear-gradient(90deg,#1e1e38 25%,#28284a,#1e1e38 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}.sk-avatar{width:46px;height:46px;border-radius:12px;flex-shrink:0}.sk-name{height:1rem;width:55%}.sk-sub{height:.75rem;width:40%}.sk-bar{height:.75rem;border-radius:4px}.sk-tag{height:1.4rem;width:70px;border-radius:12px}[data-theme=light] .dashboard{background:#f5f5f5;color:#2c3e50}[data-theme=light] .dashboard-hero{background:linear-gradient(135deg,#2c3e50,#3d5a80);border:none;box-shadow:0 8px 32px #2c3e5040}[data-theme=light] .section-title{color:#64748b}[data-theme=light] .player-card{background:#fff;border-color:#e2e8f0;box-shadow:0 2px 8px #0000000f}[data-theme=light] .player-card:hover{border-color:#2c3e50;box-shadow:0 10px 24px #2c3e501f}[data-theme=light] .player-card.selected{border-color:#2c3e50;background:#f8faff;box-shadow:0 0 0 3px #2c3e5014,0 10px 24px #2c3e501f}[data-theme=light] .player-card.grupo-card{background:#fafbfc}[data-theme=light] .favorite-badge{background:#fef3c7;border-color:#fde68a;color:#92400e}[data-theme=light] .player-avatar{background:linear-gradient(135deg,#2c3e50,#3d5a80);box-shadow:0 3px 8px #2c3e5040}[data-theme=light] .grupo-card .player-avatar{background:linear-gradient(135deg,#636e72,#b2bec3)}[data-theme=light] .player-name{color:#2c3e50}[data-theme=light] .player-subtitle{color:#95a5a6}[data-theme=light] .mini-stat{background:#f7f9fc;border-color:#edf0f4}[data-theme=light] .mini-stat-value{color:#2c3e50}[data-theme=light] .mini-stat-label,[data-theme=light] .win-rate-label{color:#95a5a6}[data-theme=light] .win-rate-track{background:#edf0f4}[data-theme=light] .win-rate-fill{background:linear-gradient(90deg,#2c3e50,#3d5a80)}[data-theme=light] .tag{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}[data-theme=light] .tag.mechanic{background:#ede9fe;border-color:#ddd6fe;color:#5b21b6}[data-theme=light] .tag.category{background:#e0f2fe;border-color:#bae6fd;color:#0369a1}[data-theme=light] .co-players{color:#95a5a6}[data-theme=light] .co-players strong{color:#2c3e50}[data-theme=light] .player-detail-panel{background:#fff;border-color:#2c3e50;box-shadow:0 8px 24px #2c3e501a}[data-theme=light] .detail-header{border-bottom-color:#edf0f4}[data-theme=light] .detail-avatar{background:linear-gradient(135deg,#2c3e50,#3d5a80);box-shadow:0 4px 12px #2c3e504d}[data-theme=light] .detail-title{color:#2c3e50}[data-theme=light] .detail-subtitle{color:#95a5a6}[data-theme=light] .detail-stat{background:#f7f9fc;border-color:#edf0f4}[data-theme=light] .detail-stat-value{color:#2c3e50}[data-theme=light] .detail-stat-label,[data-theme=light] .detail-section-label,[data-theme=light] .dashboard-empty{color:#95a5a6}[data-theme=light] .dashboard-empty h2{color:#2c3e50}[data-theme=light] .upload-link-btn{background:linear-gradient(135deg,#2c3e50,#3d5a80);box-shadow:0 4px 12px #2c3e5040}[data-theme=light] .sk-card{background:#fff;border-color:#e2e8f0}[data-theme=light] .sk{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:600px 100%}.player-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:400;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.player-modal{position:fixed;z-index:410;top:50%;left:50%;transform:translate(-50%,-50%);width:min(680px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);overflow-y:auto;border-radius:20px;animation:popIn .22s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.player-modal-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);color:#ffffffbf;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;z-index:1}.player-modal-close:hover{background:#e74c3c80;color:#fff}.player-modal .player-detail-panel{margin-top:0;border-radius:20px}[data-theme=light] .player-modal-close{background:#0000000f;border-color:#0000001f;color:#64748b}@media (max-width: 768px){.dashboard{margin:-2rem -1rem;padding:1.5rem 1rem 3rem}.dashboard-hero{flex-direction:column;padding:1.5rem}.dashboard-hero:before{display:none}.dashboard-summary{width:100%;justify-content:space-around;padding:.75rem 1rem;gap:.75rem;overflow:hidden}.summary-stat--extra,.summary-stat-div--extra{display:none}.summary-stat-value{font-size:1.4rem}.players-grid{grid-template-columns:1fr}.player-modal{top:auto;bottom:0;left:0;right:0;transform:none;width:100%;max-height:88vh;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0);animation:slideUp .28s cubic-bezier(.32,.72,0,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.player-modal .player-detail-panel{border-radius:20px 20px 0 0}}.pl-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pl-modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:580px;max-height:88vh;overflow-y:auto;box-shadow:0 24px 64px #0000004d;display:flex;flex-direction:column}.pl-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid #e8e8f0;gap:1rem}.pl-header-left{display:flex;align-items:center;gap:.85rem}.pl-game-thumb{width:52px;height:52px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.pl-label{font-size:.72rem;color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:.1rem}.pl-game-name{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0}.pl-close{background:none;border:none;font-size:1rem;color:var(--color-gray);cursor:pointer;padding:.3rem;border-radius:50%;transition:background .15s;flex-shrink:0}.pl-close:hover{background:#f0f2f5}.pl-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;text-align:center}.pl-progress-wrap{width:100%;max-width:320px;height:6px;background:#e8e8f0;border-radius:99px;overflow:hidden}.pl-progress-bar{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:99px;transition:width .4s ease}[data-theme=dark] .pl-progress-wrap{background:#2a2a4a}.pl-loading p{font-size:1rem;font-weight:500;color:var(--color-text);margin:0}.pl-loading-sub{font-size:.85rem!important;color:var(--color-gray)!important}.pl-error{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;text-align:center}.pl-error-icon{font-size:2rem}.pl-error p{font-size:.9rem;color:var(--color-text);max-width:340px;margin:0}.pl-retry-btn{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer;margin-top:.25rem}.pl-retry-btn:hover{opacity:.9}.pl-stats{display:flex;align-items:center;gap:1rem;padding:.85rem 1.25rem;background:#f8f8fd;border-bottom:1px solid #e8e8f0}.pl-stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.pl-stat strong{font-size:1.05rem;font-weight:700;color:var(--color-text)}.pl-stat span{font-size:.7rem;color:var(--color-gray);text-transform:uppercase;letter-spacing:.04em}.pl-stat-div{width:1px;height:28px;background:#e0e0ef}.pl-theme{padding:.9rem 1.25rem .75rem;border-bottom:1px solid #e8e8f0}.pl-theme-text{font-size:.88rem;color:var(--color-text);margin:0 0 .5rem;font-style:italic}.pl-vibes{display:flex;flex-wrap:wrap;gap:.35rem}.pl-vibe-chip{background:linear-gradient(135deg,#667eea22,#764ba222);color:var(--color-primary);border:1px solid #667eea44;border-radius:20px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;text-transform:capitalize}.pl-songs{padding:.5rem 0}.pl-songs-header{display:grid;grid-template-columns:32px 1fr auto;gap:.5rem;align-items:center;padding:.35rem 1.25rem;font-size:.7rem;font-weight:700;color:var(--color-gray);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #f0f0f8}.pl-song{display:grid;grid-template-columns:32px 1fr auto;gap:.5rem;align-items:center;padding:.65rem 1.25rem;cursor:pointer;transition:background .12s;border-bottom:1px solid #f8f8fd;flex-wrap:wrap}.pl-song:hover{background:#f8f8fd}.pl-song.expanded{background:#f4f4fc}.pl-song-track{font-size:.75rem;color:var(--color-gray);font-weight:600;text-align:center}.pl-song-info{display:flex;flex-direction:column;min-width:0}.pl-song-title{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-song-artist{font-size:.78rem;color:var(--color-gray)}.pl-song-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.pl-song-genre{font-size:.7rem;color:var(--color-primary);background:#667eea18;border-radius:10px;padding:.15rem .5rem;white-space:nowrap;font-weight:600}.energy-bar{display:flex;gap:3px;align-items:center}.energy-dot{width:7px;height:7px;border-radius:50%;display:inline-block;transition:background .15s}.pl-song-why{grid-column:1 / -1;font-size:.8rem;color:var(--color-gray);font-style:italic;padding:.4rem 0 .15rem 32px;display:flex;gap:.4rem;align-items:flex-start}.pl-why-icon{flex-shrink:0}.pl-tip{text-align:center;font-size:.75rem;color:var(--color-gray);padding:.75rem 1.25rem 1rem;margin:0}[data-theme=dark] .pl-modal{background:#12122a}[data-theme=dark] .pl-header,[data-theme=dark] .pl-theme,[data-theme=dark] .pl-songs-header,[data-theme=dark] .pl-song{border-color:#2a2a4a}[data-theme=dark] .pl-stats{background:#1a1a3a;border-color:#2a2a4a}[data-theme=dark] .pl-song:hover,[data-theme=dark] .pl-song.expanded{background:#1e1e3a}[data-theme=dark] .pl-song{border-color:#22224a}[data-theme=dark] .pl-close:hover{background:#22224a}[data-theme=dark] .pl-stat-div{background:#2a2a4a}.pl-spotify-loading{display:flex;flex-direction:column;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid #e8e8f0}.pl-spotify-loading-label{font-size:.8rem;color:var(--color-gray);margin:0}[data-theme=dark] .pl-spotify-loading{border-color:#2a2a4a}.pl-spotify-bar{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid #e8e8f0}.btn-create-spotify{display:flex;align-items:center;gap:.5rem;background:#1db954;color:#fff;border:none;border-radius:var(--radius-md);padding:.55rem 1.15rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-create-spotify:hover:not(:disabled){background:#17a349}.btn-create-spotify:disabled{opacity:.65;cursor:not-allowed}.pl-spotify-error{font-size:.78rem;color:#ef4444;margin:0}.pl-spotify-cta{display:flex;align-items:center;gap:.6rem;padding:.75rem 1.25rem;border-top:1px solid #e8e8f0;font-size:.8rem;color:var(--color-gray)}.pl-spotify-result{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-top:1px solid #e8e8f0;background:#f0fdf6;flex-wrap:wrap}.pl-spotify-result-check{font-size:1.1rem;color:#1db954;flex-shrink:0}.pl-spotify-result-name{font-size:.85rem;font-weight:600;color:var(--color-text);margin:0 0 .1rem}.pl-spotify-result-meta{font-size:.75rem;color:var(--color-gray);margin:0}.btn-open-spotify{display:flex;align-items:center;gap:.4rem;background:#1db954;color:#fff;border-radius:var(--radius-md);padding:.4rem .9rem;font-size:.82rem;font-weight:600;text-decoration:none;margin-left:auto;white-space:nowrap;transition:background .15s}.btn-open-spotify:hover{background:#17a349}[data-theme=dark] .pl-spotify-bar,[data-theme=dark] .pl-spotify-cta,[data-theme=dark] .pl-spotify-result{border-color:#2a2a4a}[data-theme=dark] .pl-spotify-result{background:#12201a}.gd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:900;animation:gd-fade-in .2s ease}@keyframes gd-fade-in{0%{opacity:0}to{opacity:1}}.gd-drawer{position:fixed;top:0;right:0;width:380px;max-width:100vw;height:100vh;background:var(--color-surface);box-shadow:-8px 0 32px #0003;z-index:901;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;animation:gd-slide-in .25s ease}@keyframes gd-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.gd-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.1rem;color:var(--color-gray);cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm)}.gd-close:hover{background:#f0f0f8}.gd-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:var(--color-gray)}.gd-spinner{width:32px;height:32px;border:3px solid #e8e8f0;border-top-color:var(--color-primary);border-radius:50%;animation:gd-spin .7s linear infinite}@keyframes gd-spin{to{transform:rotate(360deg)}}.gd-header{display:flex;gap:1rem;align-items:flex-start;padding-top:1.5rem}.gd-image{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;box-shadow:var(--shadow-md)}.gd-image-placeholder{width:90px;height:90px;border-radius:var(--radius-md);background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}.gd-header-info{flex:1;min-width:0}.gd-title{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 .25rem;line-height:1.3}.gd-year{font-size:.8rem;color:var(--color-gray);margin:0 0 .2rem}.gd-designers{font-size:.78rem;color:var(--color-gray);margin:0}.gd-stats{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:#f8f8fd;border-radius:var(--radius-md)}.gd-stat{display:flex;flex-direction:column;align-items:center;flex:1;min-width:70px;gap:.1rem}.gd-stat-val{font-size:.95rem;font-weight:700;color:var(--color-text)}.gd-stat-key{font-size:.65rem;color:var(--color-gray);text-transform:uppercase;letter-spacing:.04em}.gd-stat-sub{font-size:.6rem;color:var(--color-gray)}.gd-stat-personal .gd-stat-val{color:#667eea}.gd-section{display:flex;flex-direction:column;gap:.4rem}.gd-section-label{font-size:.7rem;font-weight:700;color:var(--color-gray);text-transform:uppercase;letter-spacing:.06em;margin:0}.gd-weight{display:flex;align-items:center;gap:.75rem}.gd-weight-bar{display:flex;gap:3px}.gd-weight-seg{width:28px;height:6px;border-radius:3px;background:#e0e0ef}.gd-weight-seg.filled{background:#667eea}.gd-weight-label{font-size:.78rem;color:var(--color-gray)}.gd-chips{display:flex;flex-wrap:wrap;gap:.3rem}.gd-chip{background:#667eea18;color:#667eea;border:1px solid #667eea33;border-radius:20px;padding:.15rem .6rem;font-size:.73rem;font-weight:500}.gd-chip-cat{background:#f59e0b18;color:#d97706;border-color:#f59e0b33}.gd-description{font-size:.82rem;color:var(--color-text);line-height:1.6;margin:0}[data-theme=dark] .gd-drawer{background:#12122a}[data-theme=dark] .gd-stats{background:#1a1a3a}[data-theme=dark] .gd-close:hover{background:#22224a}[data-theme=dark] .gd-weight-seg{background:#2a2a4a}@media (max-width: 480px){.gd-drawer{width:100vw}}.lib-page{max-width:1400px;margin:0 auto;padding:2rem 1.5rem 4rem;min-height:100vh}.lib-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:2rem 2.5rem;background:linear-gradient(135deg,#2c3e50,#3d5a80);border-radius:20px;color:#fff;box-shadow:0 8px 32px #2c3e5040;position:relative;overflow:hidden}.lib-hero:before{content:"🎲";position:absolute;right:2rem;top:50%;transform:translateY(-50%) rotate(-15deg);font-size:7rem;opacity:.08;pointer-events:none}.lib-hero-text{display:flex;flex-direction:column;gap:.25rem}.lib-title{font-size:2rem;font-weight:800;margin:0;letter-spacing:-.5px;color:#fff}.lib-subtitle{font-size:.95rem;color:#ffffffa6;margin:0}.lib-stats{display:flex;align-items:center;gap:1.5rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:1rem 2rem}.lib-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.lib-stat-number{font-size:1.8rem;font-weight:800;color:#fff;line-height:1}.lib-stat-label{font-size:.72rem;color:#fff9;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.lib-stat-div{width:1px;height:40px;background:#fff3}.lib-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.lib-search-wrap{flex:1;min-width:240px;position:relative;display:flex;align-items:center}.lib-search-icon{position:absolute;left:.85rem;font-size:.9rem;pointer-events:none}.lib-search{width:100%;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:.65rem 2.5rem;font-size:.95rem;color:var(--color-dark);transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 4px #0000000f}.lib-search:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2c3e501a;outline:none}.lib-search-clear{position:absolute;right:.75rem;background:none;border:none;color:#aaa;font-size:.8rem;cursor:pointer;padding:.2rem .3rem}.lib-search-clear:hover{color:var(--color-dark)}.lib-controls-right{display:flex;align-items:center;gap:.75rem}.lib-sort{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem .85rem;font-size:.88rem;color:var(--color-dark);cursor:pointer;box-shadow:0 1px 4px #0000000f}.lib-sort:focus{outline:none;border-color:var(--color-primary)}.lib-view-toggle{display:flex;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.view-btn{background:none;border:none;padding:.55rem .8rem;cursor:pointer;font-size:1rem;color:#aaa;transition:background .15s,color .15s;border-radius:0}.view-btn:hover{background:#f5f7fa;color:var(--color-dark)}.view-btn.active{background:var(--color-primary);color:#fff}.lib-results-info{font-size:.85rem;color:var(--color-gray);margin-bottom:1rem}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.lib-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #00000012;display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease;cursor:default}.lib-card:hover{transform:translateY(-5px);box-shadow:0 12px 28px #00000021}.lib-card-banner{height:100px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.lib-card-banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000014}.lib-card-initials{font-size:2rem;font-weight:800;color:#ffffffe6;letter-spacing:-1px;text-shadow:0 2px 8px rgba(0,0,0,.2);position:relative;z-index:1;-webkit-user-select:none;user-select:none}.lib-card-body{padding:.9rem 1rem .75rem;display:flex;flex-direction:column;gap:.6rem;flex:1}.lib-card-title{font-size:.92rem;font-weight:700;color:var(--color-dark);margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lib-card-pills{display:flex;flex-wrap:wrap;gap:.35rem}.pill{font-size:.73rem;font-weight:600;border-radius:20px;padding:.2rem .55rem;white-space:nowrap}.pill-bgg{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.pill-personal{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}.lib-rating-row{padding-top:.25rem}.star-rater{display:flex;gap:1px}.star-btn{background:none;border:none;color:#d1d5db;font-size:1.1rem;cursor:pointer;padding:0;line-height:1;transition:color .1s,transform .1s}.star-btn.filled{color:#f59e0b}.star-btn:hover{transform:scale(1.2)}.lib-card-footer{display:flex;gap:.5rem;margin-top:auto;padding-top:.4rem;border-top:1px solid #f1f5f9}.lib-btn{border:none;border-radius:8px;font-size:.78rem;font-weight:600;padding:.35rem .6rem;cursor:pointer;transition:background .15s,opacity .15s}.lib-btn-rate{flex:1;background:#f0f9ff;color:#0369a1}.lib-btn-rate:hover{background:#e0f2fe}.lib-btn-cancel{flex:1;background:#fef2f2;color:#dc2626}.lib-btn-cancel:hover{background:#fee2e2}.lib-btn-remove{background:#fff7ed;color:#c2410c;padding:.35rem .55rem}.lib-btn-remove:hover{background:#ffedd5}.lib-btn-playlist{background:#f0f4ff;color:#4a6cf7;padding:.35rem .55rem;position:relative}.lib-btn-playlist:hover{background:#e0e8ff}.lib-btn-locked{opacity:.55;cursor:not-allowed;filter:grayscale(.4)}.lib-btn-locked:after{content:"🔒";position:absolute;top:-6px;right:-6px;font-size:.6rem;line-height:1}.lib-list{display:flex;flex-direction:column;gap:.6rem}.lib-row{background:#fff;border-radius:12px;box-shadow:0 1px 6px #0000000f;display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;transition:box-shadow .18s,transform .18s;position:relative;overflow:hidden}.lib-row:hover{box-shadow:0 4px 14px #0000001a;transform:translate(3px)}.lib-row-accent{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px}.lib-row-initials{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:800;color:#ffffffe6;flex-shrink:0;margin-left:.5rem}.lib-row-info{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:0}.lib-row-name{font-size:.95rem;font-weight:600;color:var(--color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-row-pills,.lib-row-actions{display:flex;gap:.4rem;flex-shrink:0}.lib-empty{text-align:center;padding:5rem 2rem;color:var(--color-gray);display:flex;flex-direction:column;align-items:center;gap:.5rem}.lib-empty-icon{font-size:4rem;filter:grayscale(.3);margin-bottom:.5rem;animation:float 3s ease-in-out infinite}.lib-empty h3{font-size:1.25rem;color:var(--color-dark);margin:0}.lib-empty p{font-size:.9rem;margin:0;max-width:320px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.lib-error{text-align:center;padding:4rem;font-size:1.1rem;color:var(--color-danger)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.sk{border-radius:8px;background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}.sk-title{height:2rem;width:200px;margin-bottom:.5rem}.sk-subtitle{height:1rem;width:280px}.sk-stat{height:3.5rem;width:100px;border-radius:10px}.sk-search{height:2.75rem;flex:1;border-radius:12px}.sk-banner{height:100px;border-radius:0}.sk-line{height:.85rem;width:90%;border-radius:4px}.sk-line.short{width:55%}.lib-hero-actions{display:flex;gap:.6rem;margin-top:.75rem;flex-wrap:wrap}.lib-btn-add{background:#ffffff2e;color:#fff;border:1.5px solid rgba(255,255,255,.35);border-radius:10px;padding:.5rem 1.1rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.lib-btn-add:hover{background:#ffffff47}.lib-btn-upload{background:transparent;color:#ffffffbf;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:.5rem 1.1rem;font-size:.88rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s}.lib-btn-upload:hover{color:#fff;border-color:#ffffff80}.lib-empty-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap;justify-content:center}.lib-btn-add-lg{background:var(--color-primary, #4f46e5);color:#fff;border:none;border-radius:12px;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.lib-btn-add-lg:hover{opacity:.88}.lib-btn-upload-lg{background:#fff;color:var(--color-dark);border:1.5px solid #e2e8f0;border-radius:12px;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:border-color .15s}.lib-btn-upload-lg:hover{border-color:#94a3b8}.add-game-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-game-panel{background:var(--color-surface, white);border-radius:20px;width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden}.add-game-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid #f1f5f9}.add-game-header h3{margin:0;font-size:1.05rem;font-weight:700;color:var(--color-dark)}.add-game-close{background:none;border:none;font-size:1rem;color:#94a3b8;cursor:pointer;padding:.25rem .4rem;border-radius:6px;transition:background .15s,color .15s}.add-game-close:hover{background:#f1f5f9;color:var(--color-dark)}.add-game-search-wrap{position:relative;display:flex;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid #f1f5f9}.add-game-search-icon{position:absolute;left:2.3rem;font-size:.9rem;pointer-events:none}.add-game-search{width:100%;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem 2.2rem .6rem 2.4rem;font-size:.95rem;color:var(--color-dark);background:#f8fafc;transition:border-color .2s,box-shadow .2s}.add-game-search:focus{outline:none;border-color:var(--color-primary, #4f46e5);box-shadow:0 0 0 3px #4f46e51a;background:#fff}.add-game-spinner{position:absolute;right:2.3rem;font-size:1rem;color:#94a3b8;animation:spin .8s linear infinite}.add-game-results{overflow-y:auto;flex:1;padding:.5rem 0}.add-game-hint{text-align:center;color:#94a3b8;font-size:.88rem;padding:2rem 1.5rem;margin:0}.add-game-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.5rem;gap:1rem;transition:background .12s}.add-game-row:hover{background:#f8fafc}.add-game-info{display:flex;align-items:baseline;gap:.5rem;min-width:0;flex:1}.add-game-name{font-size:.9rem;font-weight:600;color:var(--color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-game-year{font-size:.78rem;color:#94a3b8;flex-shrink:0}.add-game-btn{background:var(--color-primary, #4f46e5);color:#fff;border:none;border-radius:8px;padding:.4rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:opacity .15s,background .15s}.add-game-btn:hover:not(:disabled){opacity:.88}.add-game-btn:disabled{cursor:default}.add-game-btn.added{background:#dcfce7;color:#166534}[data-theme=dark] .add-game-panel{background:#1a1a2e;box-shadow:0 20px 60px #00000080}[data-theme=dark] .add-game-header{border-bottom-color:#22224a}[data-theme=dark] .add-game-header h3{color:#e8e8ff}[data-theme=dark] .add-game-close:hover{background:#22224a;color:#e8e8ff}[data-theme=dark] .add-game-search-wrap{border-bottom-color:#22224a}[data-theme=dark] .add-game-search{background:#12122a;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .add-game-search:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33;background:#1a1a2e}[data-theme=dark] .add-game-row:hover{background:#22224a}[data-theme=dark] .add-game-name{color:#e8e8ff}[data-theme=dark] .add-game-btn{background:#7c5cbf}[data-theme=dark] .add-game-btn.added{background:#16653440;color:#86efac}[data-theme=dark] .lib-btn-add-lg{background:#7c5cbf}[data-theme=dark] .lib-btn-upload-lg{background:#1a1a2e;color:#e8e8ff;border-color:#2a2a4a}[data-theme=dark] .lib-btn-upload-lg:hover{border-color:#7c5cbf}@media (max-width: 768px){.lib-hero{flex-direction:column;padding:1.5rem}.lib-hero:before{display:none}.lib-stats{width:100%;justify-content:space-around;padding:.75rem 1rem}.lib-controls{flex-direction:column;align-items:stretch}.lib-controls-right{justify-content:space-between}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.9rem}}@media (max-width: 480px){.lib-grid{grid-template-columns:1fr 1fr}}[data-theme=dark] .lib-page{color:#e8e8ff}[data-theme=dark] .lib-hero{background:linear-gradient(135deg,#1a0a2e,#2d1b69 60%,#3d1f8a);box-shadow:0 8px 32px #7c5cbf40;border:1px solid rgba(124,92,191,.2)}[data-theme=dark] .lib-stats{background:#ffffff0f;border-color:#ffffff1a}[data-theme=dark] .lib-search{background:#1a1a2e;border-color:#2a2a4a;color:#e8e8ff;box-shadow:none}[data-theme=dark] .lib-search:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33}[data-theme=dark] .lib-sort{background:#1a1a2e;border-color:#2a2a4a;color:#e8e8ff;box-shadow:none}[data-theme=dark] .lib-sort:focus{border-color:#7c5cbf}[data-theme=dark] .lib-view-toggle{background:#1a1a2e;border-color:#2a2a4a;box-shadow:none}[data-theme=dark] .view-btn{color:#6868a0}[data-theme=dark] .view-btn:hover{background:#22224a;color:#e8e8ff}[data-theme=dark] .view-btn.active{background:#7c5cbf;color:#fff}[data-theme=dark] .lib-results-info{color:#6868a0}[data-theme=dark] .lib-card{background:#1a1a2e;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .lib-card:hover{box-shadow:0 12px 28px #7c5cbf33}[data-theme=dark] .lib-card-title{color:#e8e8ff}[data-theme=dark] .pill-bgg{background:#fbbf241a;color:#fbbf24;border-color:#fbbf2440}[data-theme=dark] .pill-personal{background:#7c5cbf26;color:#b48ee8;border-color:#7c5cbf4d}[data-theme=dark] .star-btn{color:#2a2a4a}[data-theme=dark] .star-btn.filled{color:#fbbf24}[data-theme=dark] .lib-card-footer{border-top-color:#22224a}[data-theme=dark] .lib-btn-rate{background:#38bdf814;color:#7dd3fc}[data-theme=dark] .lib-btn-rate:hover{background:#38bdf826}[data-theme=dark] .lib-btn-cancel,[data-theme=dark] .lib-btn-remove{background:#ef444414;color:#f87171}[data-theme=dark] .lib-btn-cancel:hover,[data-theme=dark] .lib-btn-remove:hover{background:#ef444426}[data-theme=dark] .lib-btn-playlist{background:#4a6cf71a;color:#818cf8}[data-theme=dark] .lib-btn-playlist:hover{background:#4a6cf72e}[data-theme=dark] .lib-row{background:#1a1a2e;box-shadow:0 1px 6px #0000004d}[data-theme=dark] .lib-row:hover{box-shadow:0 4px 14px #7c5cbf26}[data-theme=dark] .lib-row-name{color:#e8e8ff}[data-theme=dark] .lib-empty h3{color:#c0c0e0}[data-theme=dark] .lib-empty{color:#6868a0}[data-theme=dark] .sk{background:linear-gradient(90deg,#1e1e38 25%,#28284a,#1e1e38 75%);background-size:600px 100%}[data-theme=dark] .lib-search-icon{color:#6868a0}.rec-layout{display:flex;height:calc(100vh - 64px);overflow:hidden}.rec-history{width:210px;min-width:180px;background:var(--surface, #13131f);border-right:1px solid var(--border, #1e1e30);padding:.85rem .65rem;display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;flex-shrink:0}.new-chat-btn{display:flex;align-items:center;gap:.4rem;background:var(--primary, #7c5cbf);border:none;border-radius:8px;color:#fff;font-size:.82rem;font-weight:600;padding:.55rem .75rem;cursor:pointer;transition:opacity .15s;width:100%}.new-chat-btn:hover{opacity:.85}.new-chat-plus{font-size:1rem;line-height:1}.history-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #555570);margin:.25rem 0 .1rem .1rem}.history-empty{font-size:.78rem;color:var(--text-muted, #555570);font-style:italic;text-align:center;margin-top:.5rem}.history-list{display:flex;flex-direction:column;gap:.15rem}.history-item{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .5rem;border-radius:8px;cursor:pointer;transition:background .12s;border-left:2px solid transparent}.history-item:hover{background:var(--surface-2, #1a1a2e)}.history-item.active{background:#7c5cbf24;border-left-color:var(--primary, #7c5cbf)}.history-item-icon{font-size:.95rem;line-height:1;flex-shrink:0;margin-top:.1rem}.history-item-body{flex:1;min-width:0}.history-item-title{font-size:.78rem;font-weight:600;color:var(--text, #dcdcf0);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.history-item-meta{font-size:.65rem;color:var(--text-muted, #555570);margin:.12rem 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-delete{display:none;background:none;border:none;color:var(--text-muted, #555570);font-size:.68rem;cursor:pointer;padding:.15rem .3rem;border-radius:4px;flex-shrink:0;line-height:1;transition:color .12s,background .12s}.history-item:hover .history-item-delete{display:block}.history-item-delete:hover{color:#e05555;background:#e055551f}.rec-sidebar{width:280px;min-width:240px;background:var(--surface, #1e1e2e);border-right:1px solid var(--border, #2a2a3e);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.sidebar-title{font-size:1.1rem;font-weight:700;margin:0;color:var(--text, #e0e0e0)}.sidebar-section{display:flex;flex-direction:column;gap:.5rem}.sidebar-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888)}.sidebar-select{background:var(--surface-2, #2a2a3e);border:1px solid var(--border, #3a3a5e);border-radius:8px;color:var(--text, #e0e0e0);padding:.5rem .75rem;font-size:.9rem;cursor:pointer;width:100%}.sidebar-select:focus{outline:2px solid var(--primary, #7c5cbf)}.sidebar-loading,.sidebar-empty{font-size:.85rem;color:var(--text-muted, #888);font-style:italic}.player-stats-card{display:flex;gap:.75rem;background:var(--surface-2, #2a2a3e);border-radius:10px;padding:.75rem 1rem}.stat{display:flex;flex-direction:column;align-items:center;flex:1}.stat-value{font-size:1.4rem;font-weight:700;color:var(--primary, #7c5cbf)}.stat-label{font-size:.7rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.04em}.mode-buttons{display:flex;flex-direction:column;gap:.4rem}.mode-btn{background:var(--surface-2, #2a2a3e);border:1px solid var(--border, #3a3a5e);border-radius:8px;color:var(--text, #e0e0e0);padding:.45rem .75rem;font-size:.85rem;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.mode-btn:hover{background:var(--surface-3, #35354e)}.mode-btn.active{background:var(--primary, #7c5cbf);border-color:var(--primary, #7c5cbf);color:#fff;font-weight:600}.clear-btn{margin-top:auto;background:transparent;border:1px solid var(--border, #3a3a5e);border-radius:8px;color:var(--text-muted, #888);padding:.5rem;font-size:.85rem;cursor:pointer;transition:border-color .15s,color .15s}.clear-btn:hover{border-color:#e05555;color:#e05555}.rec-chat{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg, #12121e)}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem 1.5rem .5rem;display:flex;flex-direction:column;gap:1rem}.chat-empty{margin:auto;text-align:center;max-width:480px;padding:2rem}.chat-empty-icon{font-size:3rem;margin-bottom:.5rem}.chat-empty h3{font-size:1.4rem;font-weight:700;color:var(--text, #e0e0e0);margin:0 0 .5rem}.chat-empty p{color:var(--text-muted, #888);margin:0 0 1.25rem}.suggestion-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.suggestion-chip{background:var(--surface, #1e1e2e);border:1px solid var(--border, #3a3a5e);border-radius:20px;color:var(--text, #e0e0e0);padding:.4rem .85rem;font-size:.82rem;cursor:pointer;transition:border-color .15s}.suggestion-chip:hover{border-color:var(--primary, #7c5cbf);color:var(--primary, #7c5cbf)}.message{display:flex;gap:.75rem;max-width:780px;width:100%}.user-message{align-self:flex-end;flex-direction:row-reverse}.assistant-message{align-self:flex-start}.message-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface, #1e1e2e);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.message-body{background:var(--surface, #1e1e2e);border-radius:12px;padding:.75rem 1rem;max-width:680px}.user-message .message-body{background:var(--primary, #7c5cbf);border-bottom-right-radius:4px}.assistant-message .message-body{border-bottom-left-radius:4px}.message-text{margin:0;line-height:1.6;color:var(--text, #e0e0e0);white-space:pre-wrap;font-size:.92rem}.user-message .message-text{color:#fff}.message-player-badge{display:inline-block;margin-top:.4rem;font-size:.72rem;color:#ffffffb3;background:#ffffff26;border-radius:10px;padding:.1rem .5rem}.message-mode-badge{display:inline-block;margin-top:.5rem;font-size:.72rem;color:var(--primary, #7c5cbf);background:#7c5cbf1f;border:1px solid rgba(124,92,191,.3);border-radius:10px;padding:.1rem .5rem}.games-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.game-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-2, #2a2a3e);border:1px solid var(--border, #3a3a5e);border-radius:14px;padding:.25rem .65rem;font-size:.8rem;color:var(--text, #e0e0e0);white-space:nowrap}.game-chip-rating{font-size:.72rem;color:var(--text-muted, #888)}.typing-indicator{display:flex;align-items:center;gap:5px;padding:.75rem 1rem;min-width:56px}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:var(--text-muted, #888);animation:bounce 1.2s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}.chat-input-bar{display:flex;align-items:flex-end;gap:.75rem;padding:1rem 1.5rem;background:var(--surface, #1e1e2e);border-top:1px solid var(--border, #2a2a3e)}.chat-input{flex:1;background:var(--surface-2, #2a2a3e);border:1px solid var(--border, #3a3a5e);border-radius:10px;color:var(--text, #e0e0e0);padding:.6rem .9rem;font-size:.92rem;resize:none;line-height:1.5;font-family:inherit;transition:border-color .15s}.chat-input:focus{outline:none;border-color:var(--primary, #7c5cbf)}.chat-input:disabled{opacity:.5}.send-btn{background:var(--primary, #7c5cbf);border:none;border-radius:10px;color:#fff;width:44px;height:44px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.send-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn:not(:disabled):hover{opacity:.85}@media (max-width: 640px){.rec-sidebar{display:none}}[data-theme=light] .rec-sidebar{background:#fff;border-right-color:#e2e8f0}[data-theme=light] .sidebar-title{color:#2c3e50}[data-theme=light] .sidebar-label{color:#95a5a6}[data-theme=light] .sidebar-select{background:#f7f9fc;border-color:#e2e8f0;color:#2c3e50}[data-theme=light] .sidebar-select:focus{outline-color:#2c3e50}[data-theme=light] .sidebar-loading,[data-theme=light] .sidebar-empty{color:#95a5a6}[data-theme=light] .player-stats-card{background:#f7f9fc}[data-theme=light] .stat-value{color:#2c3e50}[data-theme=light] .stat-label{color:#95a5a6}[data-theme=light] .mode-btn{background:#f7f9fc;border-color:#e2e8f0;color:#2c3e50}[data-theme=light] .mode-btn:hover{background:#edf0f4}[data-theme=light] .mode-btn.active{background:#2c3e50;border-color:#2c3e50;color:#fff}[data-theme=light] .clear-btn{border-color:#e2e8f0;color:#95a5a6}[data-theme=light] .clear-btn:hover{border-color:#e05555;color:#e05555}[data-theme=light] .rec-chat{background:#f5f5f5}[data-theme=light] .chat-empty h3{color:#2c3e50}[data-theme=light] .chat-empty p{color:#95a5a6}[data-theme=light] .suggestion-chip{background:#fff;border-color:#e2e8f0;color:#2c3e50}[data-theme=light] .suggestion-chip:hover{border-color:#2c3e50;color:#2c3e50}[data-theme=light] .message-avatar{background:#fff}[data-theme=light] .message-body{background:#fff;box-shadow:0 1px 4px #0000000f}[data-theme=light] .user-message .message-body{background:#2c3e50;box-shadow:none}[data-theme=light] .message-text{color:#2c3e50}[data-theme=light] .user-message .message-text{color:#fff}[data-theme=light] .message-mode-badge{color:#3d5a80;background:#2c3e5014;border-color:#2c3e5033}[data-theme=light] .game-chip{background:#f7f9fc;border-color:#e2e8f0;color:#2c3e50}[data-theme=light] .game-chip-rating{color:#95a5a6}[data-theme=light] .typing-indicator span{background:#c0c0d0}[data-theme=light] .chat-input-bar{background:#fff;border-top-color:#e2e8f0}[data-theme=light] .chat-input{background:#f7f9fc;border-color:#e2e8f0;color:#2c3e50}[data-theme=light] .chat-input:focus{border-color:#2c3e50}[data-theme=light] .send-btn{background:#2c3e50}[data-theme=light] .rec-history{background:#f0f4f8;border-right-color:#e2e8f0}[data-theme=light] .new-chat-btn{background:#2c3e50}[data-theme=light] .history-label,[data-theme=light] .history-empty{color:#95a5a6}[data-theme=light] .history-item:hover{background:#e2e8f0}[data-theme=light] .history-item.active{background:#2c3e5014;border-left-color:#2c3e50}[data-theme=light] .history-item-title{color:#2c3e50}[data-theme=light] .history-item-meta{color:#95a5a6}@media (max-width: 900px){.rec-history{display:none}}.rec-fab,.rec-panel-overlay,.rec-float-panel{display:none}@media (max-width: 768px){.rec-layout{height:calc(100vh - 114px - env(safe-area-inset-bottom,0))}.chat-messages{scrollbar-width:none;-ms-overflow-style:none}.chat-messages::-webkit-scrollbar{display:none}.rec-fab{display:flex;align-items:center;justify-content:center;position:fixed;top:62px;left:12px;width:42px;height:42px;border-radius:12px;background:var(--surface, #1e1e2e);border:1px solid var(--border, #3a3a5e);box-shadow:0 2px 12px #0000004d;cursor:pointer;z-index:150;transition:background .15s,transform .15s}.rec-fab:active{transform:scale(.92)}.rec-fab-icon{width:20px;height:20px;color:#fffc;flex-shrink:0}.rec-fab-badge{position:absolute;top:-5px;right:-5px;width:17px;height:17px;border-radius:50%;background:var(--primary, #7c5cbf);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface, #1e1e2e)}.rec-panel-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s}.rec-panel-overlay.open{opacity:1;pointer-events:all}.rec-float-panel{display:flex;flex-direction:column;gap:0;position:fixed;bottom:0;left:0;right:0;max-height:82vh;background:var(--surface, #1e1e2e);border-radius:20px 20px 0 0;border-top:1px solid var(--border, #2a2a3e);box-shadow:0 -8px 40px #00000073;z-index:310;overflow-y:auto;padding:0 1rem calc(env(safe-area-inset-bottom,0) + 1rem);transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1)}.rec-float-panel.open{transform:translateY(0)}.rec-panel-handle{width:36px;height:4px;background:var(--border, #3a3a5e);border-radius:2px;margin:10px auto 14px;flex-shrink:0}.rec-panel-new{margin-bottom:.25rem}.rec-panel-section{padding:.85rem 0;border-top:1px solid var(--border, #2a2a3e)}.rec-panel-section .history-label{margin-bottom:.5rem}.rec-panel-history .history-list{max-height:240px;overflow-y:auto}[data-theme=light] .rec-float-panel{background:#fff;border-top-color:#e2e8f0;box-shadow:0 -8px 40px #0000002e}[data-theme=light] .rec-panel-handle{background:#e2e8f0}[data-theme=light] .rec-panel-section{border-top-color:#e2e8f0}[data-theme=light] .rec-fab{background:#fff;border-color:#e2e8f0;box-shadow:0 2px 12px #0000001f}[data-theme=light] .rec-fab-icon{color:#475569}[data-theme=light] .rec-fab-badge{border-color:#fff}}.create-post{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem;margin-bottom:1.25rem}.create-post__top{display:flex;align-items:center;gap:.75rem}.create-post__trigger{flex:1;text-align:left;background:#f0f2f5;border:none;border-radius:20px;padding:.6rem 1rem;color:var(--color-gray);font-size:.95rem;cursor:pointer;transition:background .2s}.create-post__trigger:hover{background:#e4e6ea}.create-post__types{display:flex;gap:.5rem;flex-wrap:wrap}.post-type-btn{padding:.35rem .75rem;border-radius:20px;border:1.5px solid #ddd;background:#fff;font-size:.82rem;cursor:pointer;transition:all .15s}.post-type-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.post-type-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.create-post__textarea{width:100%;margin-top:.75rem;border:1px solid #ddd;border-radius:var(--radius-md);padding:.75rem;font-size:.95rem;resize:none;line-height:1.5;transition:border-color .2s}.create-post__textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c3e5014}.create-post__footer{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem}.create-post__hint{font-size:.78rem;color:var(--color-gray)}.create-post__actions{display:flex;gap:.5rem}.btn-cancel{padding:.4rem 1rem;border-radius:var(--radius-md);border:1px solid #ddd;background:#fff;color:var(--color-dark);font-size:.88rem}.btn-cancel:hover{background:#f0f2f5}.btn-post{padding:.4rem 1.25rem;border-radius:var(--radius-md);border:none;background:var(--color-primary);color:#fff;font-size:.88rem;font-weight:600}.btn-post:hover:not(:disabled){opacity:.88}.btn-post:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .create-post{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .create-post__trigger{background:#22224a;color:#6868a0}[data-theme=dark] .create-post__trigger:hover{background:#2a2a5a}[data-theme=dark] .post-type-btn{background:#1a1a2e;border-color:#2a2a4a;color:#8888b0}[data-theme=dark] .post-type-btn:hover{border-color:#7c5cbf;color:#b48ee8}[data-theme=dark] .post-type-btn.active{background:#7c5cbf;border-color:#7c5cbf;color:#fff}[data-theme=dark] .create-post__textarea{background:#22224a;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .create-post__textarea:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33}[data-theme=dark] .btn-cancel{background:#22224a;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .btn-cancel:hover{background:#2a2a5a}.create-post__image-preview{position:relative;margin-top:.75rem;border-radius:var(--radius-md);overflow:hidden;max-height:300px;background:#000}.create-post__image-preview img{width:100%;max-height:300px;object-fit:contain;display:block}.create-post__remove-image{position:absolute;top:.4rem;right:.4rem;background:#0009;color:#fff;border:none;border-radius:50%;width:26px;height:26px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.create-post__remove-image:hover{background:#e74c3ccc}.btn-attach{background:none;border:1.5px solid #ddd;border-radius:20px;padding:.3rem .85rem;font-size:.82rem;cursor:pointer;color:var(--color-gray);transition:all .15s;flex-shrink:0}.btn-attach:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-attach:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .create-post__image-preview{background:#0a0a18}[data-theme=dark] .btn-attach{border-color:#2a2a4a;color:#6868a0}[data-theme=dark] .btn-attach:hover:not(:disabled){border-color:#7c5cbf;color:#b48ee8}.comment-section{padding:.75rem 1rem 1rem;border-top:1px solid #f0f0f0;background:#fafafa}.comment-loading{font-size:.85rem;color:var(--color-gray);margin:0 0 .5rem}.comment-list{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.75rem}.comment-item{display:flex;align-items:flex-start;gap:.5rem}.comment-bubble{flex:1;background:#fff;border-radius:12px;padding:.4rem .7rem;box-shadow:0 1px 2px #00000012;display:flex;flex-direction:column;gap:.1rem}.comment-author{font-size:.8rem;font-weight:700;color:var(--color-primary);cursor:pointer}.comment-author:hover{text-decoration:underline}.comment-text{font-size:.88rem;color:var(--color-dark);line-height:1.4}.comment-delete{background:none;border:none;color:var(--color-gray);font-size:.75rem;cursor:pointer;padding:.2rem;opacity:.6;flex-shrink:0;align-self:center}.comment-delete:hover{opacity:1;color:var(--color-danger)}.comment-form{display:flex;gap:.4rem;align-items:center}.comment-input{flex:1;border-radius:20px;padding:.45rem .85rem;font-size:.88rem;border:1px solid #ddd;background:#fff}.comment-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2c3e5014}.comment-submit{background:var(--color-primary);color:#fff;border:none;border-radius:50%;width:34px;height:34px;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.comment-submit:disabled{opacity:.45;cursor:not-allowed}.comment-submit:hover:not(:disabled){opacity:.85}[data-theme=dark] .comment-section{background:#12122a;border-top-color:#2a2a4a}[data-theme=dark] .comment-bubble{background:#1a1a2e;box-shadow:0 1px 3px #0000004d}[data-theme=dark] .comment-text{color:#e8e8ff}[data-theme=dark] .comment-input{background:#1a1a2e;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .comment-input:focus{border-color:#7c5cbf;box-shadow:0 0 0 2px #7c5cbf33}.post-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1rem;overflow:hidden}.post-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem .7rem}.post-meta{flex:1;display:flex;flex-direction:column;gap:.05rem}.post-username{font-weight:700;font-size:.95rem;color:var(--color-dark);cursor:pointer}.post-username:hover{color:var(--color-primary);text-decoration:underline}.post-time{font-size:.78rem;color:var(--color-gray)}.post-header-right{display:flex;align-items:center;gap:.5rem}.post-type-badge{font-size:.75rem;background:#f0f2f5;border-radius:12px;padding:.2rem .6rem;color:var(--color-primary);font-weight:600;white-space:nowrap}.btn-delete{background:none;border:none;color:var(--color-gray);font-size:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius-sm);transition:all .15s}.btn-delete:hover{color:var(--color-danger);background:#ffeaea}.post-content{padding:0 1rem .75rem}.post-content p{margin:0;line-height:1.6;font-size:.95rem;white-space:pre-wrap;word-break:break-word}.post-game-tag{display:inline-block;margin-top:.5rem;background:#eef6ff;color:var(--color-info);font-size:.8rem;font-weight:600;padding:.25rem .6rem;border-radius:12px}.post-stats-bar{display:flex;align-items:center;gap:1rem;padding:.4rem 1rem;font-size:.85rem;color:var(--color-gray);border-top:1px solid #f0f0f0}.post-stats-comments{background:none;border:none;padding:0;font-size:.85rem;color:var(--color-gray);cursor:pointer;font-weight:500}.post-stats-comments:hover{color:var(--color-primary);text-decoration:underline}.post-actions{display:flex;border-top:1px solid #f0f0f0}.btn-action{flex:1;background:none;border:none;padding:.6rem;font-size:.88rem;font-weight:600;color:var(--color-gray);cursor:pointer;transition:background .15s,color .15s;border-radius:0}.btn-action:hover{background:#f5f5f5;color:var(--color-primary)}.btn-action.liked{color:var(--color-danger)}.btn-action.liked:hover{background:#fff0f0}[data-theme=dark] .post-card{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .post-username{color:#e8e8ff}[data-theme=dark] .post-type-badge{background:#22224a;color:#b48ee8}[data-theme=dark] .post-stats-bar,[data-theme=dark] .post-actions{border-top-color:#2a2a4a}[data-theme=dark] .btn-action:hover{background:#22224a;color:#e8e8ff}[data-theme=dark] .btn-action.liked:hover{background:#e74c3c26}[data-theme=dark] .btn-delete:hover{background:#e74c3c1f}[data-theme=dark] .post-game-tag{background:#3498db1f;color:#7dd3fc}.post-image{max-height:480px;overflow:hidden;background:#000}.post-image img{width:100%;max-height:480px;object-fit:contain;display:block}[data-theme=dark] .post-image{background:#0a0a18}.user-search-panel{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem}.panel-title{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:var(--color-dark)}.search-input-wrap{position:relative;margin-bottom:.75rem}.search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);font-size:.85rem;pointer-events:none}.search-input{width:100%;padding:.5rem .75rem .5rem 2rem;border-radius:20px;border:1.5px solid #ddd;font-size:.88rem;transition:border-color .2s}.search-input:focus{border-color:var(--color-primary);outline:none}.search-loading,.search-empty,.search-hint{font-size:.82rem;color:var(--color-gray);text-align:center;padding:.5rem 0;margin:0}.search-results{display:flex;flex-direction:column;gap:.25rem}.user-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .4rem;border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.user-row:hover{background:#f5f5f5}.user-row-info{flex:1;display:flex;flex-direction:column;min-width:0}.user-row-name{font-size:.88rem;font-weight:700;color:var(--color-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row-handle{font-size:.78rem;color:var(--color-gray)}.follow-btn{padding:.28rem .75rem;border-radius:20px;border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.follow-btn.following{background:#fff;color:var(--color-primary)}.follow-btn:hover:not(:disabled){opacity:.85}.follow-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .user-search-panel{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .panel-title{color:#e8e8ff}[data-theme=dark] .search-input{background:#22224a;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .search-input:focus{border-color:#7c5cbf}[data-theme=dark] .user-row:hover{background:#22224a}[data-theme=dark] .user-row-name{color:#e8e8ff}[data-theme=dark] .follow-btn.following{background:#22224a;color:#b48ee8;border-color:#7c5cbf}.frp{display:flex;flex-direction:column;gap:0}.frp-loading{color:var(--color-text-muted);font-size:.875rem;padding:1rem 0;text-align:center}.frp-section{padding:.75rem 0;border-bottom:1px solid var(--color-border)}.frp-section:last-child{border-bottom:none}.frp-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 .6rem;display:flex;align-items:center;gap:.4rem}.frp-badge{background:var(--color-primary);color:#fff;border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:700}.frp-count{background:var(--color-bg);color:var(--color-text-muted);border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:600}.frp-empty{font-size:.82rem;color:var(--color-text-muted);margin:0;font-style:italic}.frp-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0}.frp-row__info{flex:1;min-width:0;cursor:pointer}.frp-row__info:hover .frp-row__name{color:var(--color-primary)}.frp-row__name{display:block;font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.frp-row__handle{display:block;font-size:.75rem;color:var(--color-text-muted)}.frp-row__actions{display:flex;gap:.4rem;flex-shrink:0}.frp-btn{border:none;border-radius:6px;padding:4px 10px;font-size:.78rem;font-weight:600;cursor:pointer;transition:opacity .15s;white-space:nowrap}.frp-btn:hover{opacity:.8}.frp-btn--accept{background:var(--color-primary);color:#fff}.frp-btn--decline{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.frp-btn--cancel{background:#fee2e2;color:#dc2626}.frp-btn--remove{background:none;color:var(--color-text-muted);font-size:.85rem}.frp-btn--remove:hover{color:#dc2626}.frp-btn--add{background:var(--color-primary);color:#fff}.social-tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--color-border);margin-bottom:1rem}.social-tab{background:none;border:none;cursor:pointer;padding:.55rem 1rem;font-size:.9rem;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:.35rem}.social-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.social-tab-badge{background:var(--color-primary);color:#fff;border-radius:100px;font-size:.68rem;padding:1px 6px;font-weight:700}.social-friends-tab{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem}.social-layout{display:grid;grid-template-columns:240px 1fr 280px;gap:1.25rem;align-items:start;max-width:1100px;margin:0 auto;padding:1.25rem 0}.social-sidebar-left{position:sticky;top:1.25rem;display:flex;flex-direction:column;gap:.75rem}.sidebar-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem;text-align:center}.sidebar-card__icon{font-size:2.5rem;margin-bottom:.4rem}.sidebar-card h3{font-size:.95rem;margin-bottom:.4rem}.sidebar-card p{font-size:.82rem;color:var(--color-gray);margin:0;line-height:1.4}.sidebar-profile-mini{text-align:left}.spm-info{display:flex;flex-direction:column;gap:.2rem}.spm-name{font-weight:700;font-size:.9rem}.spm-stats{font-size:.78rem;color:var(--color-gray)}.social-feed{min-width:0}.feed-skeleton{display:flex;flex-direction:column;gap:1rem}.skeleton-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:140px;animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.feed-error{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem;text-align:center}.feed-error p{color:var(--color-danger);margin-bottom:.75rem}.feed-error button{background:var(--color-primary);color:#fff;padding:.4rem 1rem;border:none;border-radius:var(--radius-md)}.feed-empty{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:3rem 2rem;text-align:center}.feed-empty__icon{font-size:3rem;display:block;margin-bottom:.75rem}.feed-empty h3{margin-bottom:.5rem}.feed-empty p{color:var(--color-gray);font-size:.9rem;margin:0}.social-sidebar-right{position:sticky;top:1.25rem}@media (max-width: 1024px){.social-layout{grid-template-columns:1fr 260px}.social-sidebar-left{display:none}}@media (max-width: 700px){.social-layout{grid-template-columns:1fr;padding:.75rem;gap:.75rem}.social-sidebar-right{position:static}.social-sidebar-left{display:none}}[data-theme=dark] .sidebar-card{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .sidebar-card h3{color:#e8e8ff}[data-theme=dark] .skeleton-card,[data-theme=dark] .feed-error,[data-theme=dark] .feed-empty{background:#1a1a2e;box-shadow:none}[data-theme=dark] .feed-empty h3{color:#e8e8ff}.event-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem;transition:box-shadow .2s}.event-card:hover{box-shadow:0 4px 16px #00000014}.event-card--past{opacity:.65}.event-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.event-card__organizer{display:flex;align-items:center;gap:.5rem}.event-card__organizer-name{background:none;border:none;cursor:pointer;font-weight:600;font-size:.875rem;color:var(--color-text);padding:0}.event-card__organizer-name:hover{color:var(--color-primary)}.event-card__delete{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:1rem;line-height:1;padding:4px 8px;border-radius:4px}.event-card__delete:hover{background:#fee2e2;color:#dc2626}.event-badge{font-size:.7rem;padding:2px 6px;border-radius:4px;font-weight:600}.event-badge--private{background:#fef3c7;color:#92400e}.event-card__body{display:flex;gap:1rem}.event-card__date-col{flex-shrink:0;width:48px;text-align:center;background:var(--color-primary);border-radius:8px;padding:6px 4px;color:#fff}.event-card__month{font-size:.6rem;font-weight:700;letter-spacing:.05em;opacity:.9}.event-card__day{font-size:1.5rem;font-weight:800;line-height:1}.event-card__info{flex:1;min-width:0}.event-card__title{font-size:1.05rem;font-weight:700;margin:0 0 .4rem;color:var(--color-text)}.event-card__meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.82rem;color:var(--color-text-muted);margin-bottom:.5rem}.event-card__desc{font-size:.875rem;color:var(--color-text-muted);margin:0 0 .6rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.event-card__stats{display:flex;align-items:center;gap:.75rem;font-size:.82rem;color:var(--color-text-muted)}.event-countdown{background:#dbeafe;color:#1e40af;padding:2px 8px;border-radius:100px;font-size:.75rem;font-weight:600}.event-card__rsvp-wrap{position:relative}.btn-rsvp{border:none;border-radius:8px;padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-rsvp:hover{opacity:.85}.btn-rsvp--default{background:var(--color-primary);color:#fff}.btn-rsvp--going{background:#d1fae5;color:#065f46}.btn-rsvp--maybe{background:#fef3c7;color:#92400e}.btn-rsvp--not_going{background:#fee2e2;color:#991b1b}.rsvp-dropdown{position:absolute;right:0;bottom:calc(100% + 4px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0000001f;overflow:hidden;min-width:140px;z-index:50}.rsvp-dropdown button{display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--color-text);transition:background .15s}.rsvp-dropdown button:hover{background:var(--color-bg)}.rsvp-dropdown .rsvp-cancel{color:#dc2626;border-top:1px solid var(--color-border)}.cem-modal{background:var(--color-surface);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;margin:auto}.cem-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.cem-header h2{font-size:1.1rem;font-weight:700;margin:0}.cem-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--color-text-muted);padding:4px 8px;border-radius:4px}.cem-close:hover{background:var(--color-bg)}.cem-form{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.cem-error{background:#fee2e2;color:#991b1b;border-radius:8px;padding:.6rem 1rem;font-size:.875rem}.cem-field{display:flex;flex-direction:column;gap:.35rem}.cem-field label{font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.cem-field input,.cem-field textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:.55rem .75rem;font-size:.9rem;color:var(--color-text);width:100%;box-sizing:border-box;font-family:inherit;resize:vertical;transition:border-color .15s}.cem-field input:focus,.cem-field textarea:focus{outline:none;border-color:var(--color-primary)}.cem-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.cem-toggle-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--color-text)}.cem-toggle-hint{font-weight:400;color:var(--color-text-muted);font-size:.82rem}.cem-toggle{width:44px;height:24px;background:var(--color-border);border-radius:100px;position:relative;transition:background .2s;flex-shrink:0}.cem-toggle.on{background:var(--color-primary)}.cem-toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 4px #0003}.cem-toggle.on .cem-toggle-thumb{transform:translate(20px)}.cem-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem;border-top:1px solid var(--color-border)}.cem-actions .btn-primary,.cem-actions .btn-secondary{padding:.55rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.cem-actions .btn-primary{background:var(--color-primary);color:#fff}.cem-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.cem-actions .btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}@media (max-width: 540px){.cem-row{grid-template-columns:1fr}}.events-page{max-width:720px;margin:0 auto;padding:1.5rem 1rem 4rem}.events-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.events-title{font-size:1.5rem;font-weight:800;margin:0 0 .25rem;color:var(--color-text)}.events-subtitle{font-size:.875rem;color:var(--color-text-muted);margin:0}.btn-create-event{background:var(--color-primary);color:#fff;border:none;border-radius:10px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .15s}.btn-create-event:hover{opacity:.85}.events-tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--color-border);margin-bottom:1.25rem}.events-tab{background:none;border:none;cursor:pointer;padding:.6rem 1rem;font-size:.9rem;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:.4rem}.events-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.events-tab-count{background:var(--color-primary);color:#fff;border-radius:100px;font-size:.7rem;padding:1px 6px;font-weight:700}.events-skeleton{display:flex;flex-direction:column;gap:.75rem}.events-skeleton .skeleton-card{height:140px;border-radius:12px;background:linear-gradient(90deg,var(--color-border) 25%,var(--color-bg) 50%,var(--color-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.events-empty{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.events-empty__icon{font-size:3rem;display:block;margin-bottom:1rem}.events-empty h3{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 .5rem}.events-empty p{font-size:.875rem;margin:0 0 1.25rem}.events-list{display:flex;flex-direction:column;gap:.75rem}@media (max-width: 600px){.events-header{flex-direction:column;align-items:stretch}.btn-create-event{width:100%;text-align:center}}.profile-page{max-width:700px;margin:0 auto;padding-bottom:2rem}.profile-cover{position:relative;height:160px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:visible;margin-bottom:52px}.profile-cover__bg{width:100%;height:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(135deg,var(--color-primary) 0%,#4a90d9 100%)}.profile-cover__avatar{position:absolute;bottom:-44px;left:1.5rem;border:4px solid white;border-radius:50%;box-shadow:var(--shadow-md)}.profile-info-bar{background:#fff;border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-md);padding:.75rem 1.5rem 1.25rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.profile-identity{display:flex;flex-direction:column;gap:.15rem}.profile-display-name{font-size:1.4rem;font-weight:800;margin:0}.profile-handle{font-size:.85rem;color:var(--color-gray)}.profile-bio{font-size:.88rem;color:var(--color-dark);margin:.3rem 0 0;max-width:360px}.profile-stats-follow{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.profile-counts{display:flex;gap:1rem}.count-btn{background:none;border:none;display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius-sm);transition:background .15s}.count-btn:hover{background:#f0f2f5}.count-btn strong{font-size:1.1rem;font-weight:800}.count-btn span{font-size:.75rem;color:var(--color-gray)}.follow-action-btn{padding:.45rem 1.25rem;border-radius:20px;border:none;background:var(--color-primary);color:#fff;font-weight:700;font-size:.88rem;cursor:pointer;transition:opacity .15s}.follow-action-btn.following{background:#f0f2f5;color:var(--color-dark)}.follow-action-btn:hover:not(:disabled){opacity:.85}.follow-action-btn:disabled{opacity:.5;cursor:not-allowed}.follows-you-badge{font-size:.75rem;background:#f0f2f5;color:var(--color-gray);padding:.2rem .55rem;border-radius:12px;font-weight:600}.profile-posts__title{font-size:1.1rem;margin-bottom:.75rem}.profile-loading{color:var(--color-gray);font-size:.9rem}.profile-no-posts{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2.5rem;text-align:center;color:var(--color-gray)}.profile-no-posts span{font-size:2.5rem;display:block;margin-bottom:.5rem}.profile-no-posts p{margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:var(--radius-lg);width:360px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:1rem}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--color-gray);padding:.2rem .4rem;border-radius:var(--radius-sm)}.modal-close:hover{background:#f0f2f5}.modal-list{overflow-y:auto;padding:.5rem 0}.modal-empty{text-align:center;color:var(--color-gray);padding:1.5rem;margin:0;font-size:.9rem}.modal-user-row{display:flex;align-items:center;gap:.65rem;padding:.6rem 1.25rem;transition:background .15s;cursor:pointer}.modal-user-row:hover{background:#f5f5f5}.modal-username{font-size:.88rem;font-weight:700}.modal-handle{font-size:.78rem;color:var(--color-gray)}[data-theme=dark] .profile-cover__avatar{border-color:#1a1a2e}[data-theme=dark] .profile-info-bar{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .profile-display-name{color:#e8e8ff}[data-theme=dark] .profile-bio{color:#c0c0e0}[data-theme=dark] .count-btn:hover{background:#22224a}[data-theme=dark] .count-btn strong{color:#e8e8ff}[data-theme=dark] .follow-action-btn.following{background:#22224a;color:#e8e8ff}[data-theme=dark] .follows-you-badge{background:#22224a;color:#8888b0}[data-theme=dark] .profile-no-posts{background:#1a1a2e;box-shadow:none}[data-theme=dark] .modal-box{background:#1a1a2e}[data-theme=dark] .modal-header{border-bottom-color:#2a2a4a}[data-theme=dark] .modal-header h3{color:#e8e8ff}[data-theme=dark] .modal-close:hover,[data-theme=dark] .modal-user-row:hover{background:#22224a}[data-theme=dark] .modal-username{color:#e8e8ff}.profile-tabs{display:flex;gap:0;border-bottom:2px solid #e8e8f0;margin:1rem 0 0;padding:0 .5rem}.profile-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500;color:var(--color-gray);cursor:pointer;transition:color .15s,border-color .15s}.profile-tab:hover{color:var(--color-primary)}.profile-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.profile-library{padding:1rem 0}.profile-lib-search-wrap{position:relative;display:flex;align-items:center;margin-bottom:1rem}.profile-lib-search-wrap .lib-search-icon{position:absolute;left:.75rem;font-size:.9rem;pointer-events:none}.profile-lib-search-wrap .lib-search{width:100%;padding:.5rem 2.5rem;border:1px solid #e0e0ef;border-radius:var(--radius-md);font-size:.9rem;background:var(--color-surface);color:var(--color-text)}.profile-lib-search-wrap .lib-search-clear{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;color:var(--color-gray);font-size:.85rem}.profile-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.profile-lib-card{border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);border:1px solid #e8e8f0;display:flex;flex-direction:column}.profile-lib-card__img{width:100%;aspect-ratio:1;object-fit:cover}.profile-lib-card__placeholder{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff}.profile-lib-card__body{padding:.5rem .6rem .6rem;display:flex;flex-direction:column;gap:.3rem}.profile-lib-card__name{font-size:.8rem;font-weight:600;line-height:1.3;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.profile-lib-card__pills{display:flex;flex-wrap:wrap;gap:.25rem}[data-theme=dark] .profile-tabs{border-bottom-color:#2a2a4a}[data-theme=dark] .profile-tab{color:#888}[data-theme=dark] .profile-lib-card{border-color:#2a2a4a}[data-theme=dark] .profile-lib-search-wrap .lib-search{border-color:#2a2a4a;background:#1a1a3a}.settings-page{max-width:860px;margin:0 auto;padding:1.5rem 0 3rem}.settings-title{font-size:1.5rem;margin-bottom:1.5rem}.settings-layout{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}.settings-form{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.88rem;font-weight:700;color:var(--color-dark)}.form-group input,.form-group textarea{width:100%;padding:.6rem .85rem;border:1.5px solid #ddd;border-radius:var(--radius-md);font-size:.93rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c3e5014}.form-group textarea{resize:vertical;min-height:80px}.form-hint{font-size:.78rem;color:var(--color-gray)}.settings-error{color:var(--color-danger);font-size:.88rem;margin:0}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem}.settings-saved{font-size:.88rem;color:var(--color-success);font-weight:600;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.btn-save{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.55rem 1.5rem;font-weight:700;font-size:.9rem;cursor:pointer;transition:opacity .15s}.btn-save:hover:not(:disabled){opacity:.88}.btn-save:disabled{opacity:.5;cursor:not-allowed}.settings-preview{display:flex;flex-direction:column;gap:1rem}.preview-label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray);margin:0}.preview-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.25rem;display:flex;gap:1rem;align-items:center}.preview-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.preview-name{font-size:1.05rem;font-weight:800;color:var(--color-dark)}.preview-handle{font-size:.82rem;color:var(--color-gray)}.preview-bio{font-size:.85rem;color:var(--color-dark);margin:.25rem 0 0;line-height:1.4;word-break:break-word}.settings-account-info{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1rem 1.25rem}.account-info-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray);margin:0 0 .75rem}.account-info-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid #f0f0f0;font-size:.85rem}.account-info-row:last-child{border-bottom:none}.account-info-row span:first-child{color:var(--color-gray)}.account-info-row span:last-child{font-weight:600;color:var(--color-dark)}.plan-badge{padding:.2rem .55rem;border-radius:12px;font-size:.78rem;font-weight:700}.plan-free{background:#f0f2f5;color:var(--color-gray)}.plan-pro{background:#fff3cd;color:#856404}@media (max-width: 700px){.settings-layout{grid-template-columns:1fr}}[data-theme=dark] .settings-form{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .settings-title,[data-theme=dark] .form-group label{color:#e8e8ff}[data-theme=dark] .form-group input,[data-theme=dark] .form-group textarea{background:#22224a;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group textarea:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33}[data-theme=dark] .preview-card{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .preview-name{color:#e8e8ff}[data-theme=dark] .preview-bio{color:#c0c0e0}[data-theme=dark] .settings-account-info{background:#1a1a2e;box-shadow:0 2px 8px #00000059}[data-theme=dark] .account-info-row{border-bottom-color:#2a2a4a}[data-theme=dark] .account-info-row span:last-child{color:#e8e8ff}[data-theme=dark] .plan-free{background:#22224a;color:#8888b0}.avatar-picker{display:flex;align-items:center;gap:1rem}.avatar-picker-actions{display:flex;flex-direction:column;gap:.4rem}.btn-pick-avatar{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s;width:fit-content}.btn-pick-avatar:hover:not(:disabled){opacity:.85}.btn-pick-avatar:disabled{opacity:.5;cursor:not-allowed}.avatar-picker-hint{font-size:.78rem;color:var(--color-success);font-weight:600}[data-theme=dark] .btn-pick-avatar{background:#7c5cbf}.settings-spotify{margin-top:1.25rem;padding:1rem 1.1rem;border:1px solid #e8e8f0;border-radius:var(--radius-md);background:#f9fffe}.spotify-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}.spotify-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#e8fdf1;border-radius:50%;flex-shrink:0}.spotify-title{font-weight:700;font-size:.95rem;margin:0 0 .1rem;color:var(--color-text)}.spotify-subtitle{font-size:.78rem;color:var(--color-gray);margin:0}.spotify-loading{font-size:.85rem;color:var(--color-gray);margin:0}.spotify-connected{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.spotify-connected-info{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text)}.spotify-dot{width:8px;height:8px;border-radius:50%;background:#1db954;display:inline-block;flex-shrink:0}.btn-spotify-connect{display:flex;align-items:center;gap:.5rem;background:#1db954;color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem 1.1rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-spotify-connect:hover:not(:disabled){background:#17a349}.btn-spotify-connect:disabled{opacity:.6;cursor:not-allowed}.btn-spotify-disconnect{background:#fff;color:#666;border:1px solid #ddd;border-radius:var(--radius-md);padding:.35rem .85rem;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.btn-spotify-disconnect:hover:not(:disabled){background:#fff0f0;color:#ef4444;border-color:#fca5a5}.btn-spotify-disconnect:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .settings-spotify{background:#12201a;border-color:#1a3a2a}[data-theme=dark] .spotify-icon{background:#1a3a2a}[data-theme=dark] .btn-spotify-disconnect{background:#1a1a2e;border-color:#2a2a4a;color:#aaa}:root,[data-theme=light]{--layout-bg: #f5f5f5;--color-surface: #ffffff;--color-text: #1a1a2e}[data-theme=dark]{--layout-bg: #0f0f1a;--color-surface: #12122a;--color-text: #e8e8f5}:root{--color-primary: #2c3e50;--color-secondary: #e74c3c;--color-success: #27ae60;--color-warning: #f39c12;--color-danger: #e74c3c;--color-info: #3498db;--color-light: #ecf0f1;--color-dark: #2c3e50;--color-gray: #95a5a6;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--transition: all .3s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--layout-bg, #f5f5f5);color:var(--color-dark);line-height:1.6;transition:background-color .2s}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:.5rem}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.1rem}h6{font-size:1rem}p{margin-bottom:1rem}a{color:var(--color-primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--color-secondary)}button{font-family:inherit;cursor:pointer;border:none;padding:.5rem 1rem;border-radius:var(--radius-md);font-weight:500;transition:var(--transition)}button:disabled{opacity:.6;cursor:not-allowed}input,textarea,select{font-family:inherit;padding:.5rem;border:1px solid #ddd;border-radius:var(--radius-md);font-size:1rem;transition:var(--transition)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2c3e501a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}[data-theme=dark] body{color:#e8e8ff}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:#1a1a2e;border-color:#2a2a4a;color:#e8e8ff}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33}
