*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1e6b45;--bg2: #175c3a;--card: #2d8f5e;--card-dark: #236b47;--accent: #a8e6cf;--accent2: #5cba8a;--text: #e8f8f0;--text-muted:#a8cfba;--me: #f0faf4;--radius: 16px;--shadow: 0 4px 20px rgba(0,0,0,.25);--text-xs: .65rem;--text-sm: .75rem;--text-base: .85rem;--text-md: 1rem;--text-lg: 1.2rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.6rem;--text-hero: 3.2rem;--error: #ffaaaa}html,body{height:100%;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100%}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;gap:16px;font-size:var(--text-lg);color:var(--text-muted)}.splash-icon-wrap{position:relative;width:96px;height:96px}.splash-icon-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:splashFade 12s ease-in-out infinite}@keyframes splashFade{0%{opacity:0;transform:scale(.88)}6%{opacity:1;transform:scale(1)}9.58%{opacity:1;transform:scale(1)}12.08%{opacity:0;transform:scale(.88)}to{opacity:0}}@media (prefers-reduced-motion: reduce){.splash-icon-img{animation:none;opacity:0}.splash-icon-img:first-child{opacity:1}}.onboarding{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:radial-gradient(ellipse at 50% 30%,#1e6b45,#0f3d25)}.onboarding-card{background:var(--card);border-radius:20px;padding:36px 28px 32px;width:100%;max-width:380px;box-shadow:0 8px 40px #0006,0 0 0 1px #a8e6cf1f;text-align:center;display:flex;flex-direction:column;gap:16px}.onboarding-header{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:4px}.onboarding-icon{font-size:var(--text-hero);filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.onboarding-logo-img{height:32px;width:auto;display:block}.onboarding-card h1{font-size:var(--text-2xl);font-weight:800;color:var(--text);letter-spacing:-.5px}.onboarding-tagline{font-size:var(--text-base);color:var(--text-muted);margin:0}.onboarding-lang-picker{display:flex;gap:6px;justify-content:center}.onboarding-lang-btn{padding:6px;border-radius:12px;background:var(--card-dark);line-height:0}.onboarding-lang-btn.active{background:var(--accent2)}.onboarding-units-picker{display:flex;gap:6px;justify-content:center;margin-top:8px}.onboarding-units-btn{padding:6px 14px;border-radius:20px;background:var(--card-dark);color:var(--text-muted);font-size:var(--text-sm);font-weight:600}.onboarding-units-btn.active{background:var(--accent2);color:#fff}.onboarding-card form{display:flex;flex-direction:column;gap:10px;margin-top:4px}.onboarding-submit-btn{width:100%;padding:15px;border-radius:14px;background:var(--accent2);color:#fff;font-size:var(--text-md);font-weight:700;margin-top:4px;letter-spacing:.2px}.onboarding-submit-btn:not(:disabled):hover{opacity:.9}.forgot-link{background:transparent;color:var(--text-muted);font-size:var(--text-base);font-weight:500;padding:4px;text-decoration:underline;text-underline-offset:3px}.forgot-link:hover{color:var(--accent)}.forgot-section{display:flex;flex-direction:column;gap:12px;margin-top:4px}.forgot-desc{font-size:var(--text-md);color:var(--text-muted);margin:0;line-height:1.5}.forgot-sent{display:flex;flex-direction:column;gap:12px}.forgot-sent p{color:var(--accent);font-size:var(--text-md)}.forgot-back-btn{background:transparent;color:var(--text-muted);font-size:var(--text-md);padding:8px;text-decoration:underline;text-underline-offset:3px}.forgot-back-btn:hover{color:var(--accent)}input[type=text],input[type=email],input[type=password]{background:var(--card-dark);border:2px solid var(--accent2);border-radius:12px;color:var(--text);font-size:var(--text-lg);padding:14px 16px;outline:none;transition:border-color .2s;width:100%}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder{color:var(--text-muted)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus{border-color:var(--accent)}.error{color:var(--error);font-size:var(--text-base)}button{cursor:pointer;border:none;font-size:var(--text-md);font-weight:600;transition:opacity .15s,transform .1s}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:default}.app{display:flex;flex-direction:column;min-height:100dvh;background:var(--bg)}.tabs{display:flex;background:var(--card-dark);border-radius:10px;padding:4px;gap:6px}.tab{flex:1;padding:9px;border-radius:8px;font-size:var(--text-md);font-weight:600;background:var(--card-dark);color:var(--text-muted)}.tab.active{background:var(--accent2);color:#fff;font-weight:700}.app-header{background:var(--bg2);position:sticky;top:0;z-index:10}.app-header-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px 0 16px;height:52px;max-width:480px;margin:0 auto}.header-center{display:flex;align-items:center;justify-content:center;gap:8px}.header-logo{font-size:var(--text-xl)}.header-logo-img{height:28px;width:auto;display:block}.header-title{font-size:var(--text-lg);font-weight:700}.header-right{display:flex;align-items:center;justify-content:flex-end}.header-nick-wrap{display:flex;flex-direction:column;align-items:flex-start;background:var(--card);padding:4px 10px;border-radius:12px}.header-nick{font-size:var(--text-base);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.header-coins{font-size:var(--text-sm);color:var(--accent);white-space:nowrap}.logout-btn{background:transparent;color:var(--text-muted);font-size:var(--text-lg);padding:4px 8px;border-radius:8px}.app-main{display:flex;flex-direction:column;padding:20px 16px 112px;max-width:480px;width:100%;margin:0 auto}@keyframes slide-from-right{0%{transform:translate(32px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-from-left{0%{transform:translate(-32px);opacity:0}to{transform:translate(0);opacity:1}}.tab-content{position:relative}.tab-pane{display:flex;flex-direction:column;gap:16px;position:absolute;visibility:hidden;pointer-events:none;height:0;overflow:hidden}.tab-pane--active{position:relative;visibility:visible;pointer-events:auto;height:auto;overflow:visible}.tab-slide-left{animation:slide-from-right .22s ease}.tab-slide-right{animation:slide-from-left .22s ease}.bottom-nav-wrap{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--bg2);border-top:1px solid var(--border)}.bottom-nav{display:flex;align-items:stretch;max-width:480px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px 16px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:color .15s;position:relative}.bottom-nav-btn:first-child{padding-left:12px}.bottom-nav-btn:last-child{padding-right:12px}.bottom-nav-btn.active{color:var(--accent)}.bottom-nav-btn.active:not(.center):after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:40px;height:5px;border-radius:0 0 2px 2px;background:var(--accent)}.bottom-nav-btn.center .bottom-nav-icon{background:var(--accent);color:#fff;border-radius:50%;width:68px;height:68px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0003}.bottom-nav-btn.center.active .bottom-nav-icon{background:var(--accent)}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;height:48px}.bottom-nav-label{display:none}.duel-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid #e06c6c;cursor:pointer;width:100%;text-align:left;color:var(--text)}.duel-banner:active{opacity:.8}.duel-banner-icon{font-size:var(--text-xl);flex-shrink:0}.duel-banner-text{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}.duel-banner-title{font-weight:700;font-size:var(--text-md)}.duel-banner-sub{font-size:var(--text-sm);color:var(--text-muted)}.duel-banner-arrow{color:var(--text-muted);font-size:var(--text-lg);flex-shrink:0}.nastaveni-page{display:flex;flex-direction:column;gap:16px}.nastaveni-row{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--card);border:none;border-radius:var(--radius);cursor:pointer;color:var(--text);font-size:var(--text-md);text-align:left;box-shadow:var(--shadow)}.nastaveni-row:active{opacity:.7}.nastaveni-row-icon{font-size:var(--text-lg);width:28px;text-align:center}.nastaveni-row-label{flex:1;font-weight:500}.nastaveni-row-arrow{color:var(--text-muted);font-size:var(--text-lg);line-height:1}.nastaveni-logout-btn{margin-top:16px;padding:14px;background:#e06c6c;color:#fff;border:none;border-radius:var(--radius);font-size:var(--text-md);font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.nastaveni-logout-btn:active{opacity:.85}.card{background:var(--card);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow)}.card h2,.card h3{font-size:var(--text-md);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:16px}.loading-text{color:var(--text-muted);font-size:var(--text-md)}.empty-text{text-align:center;color:var(--text-muted);font-size:var(--text-base);line-height:1.5;padding:12px 0}.loading-card{color:var(--text-muted);text-align:center}.collapsible-section{border-radius:var(--radius);overflow:hidden;background:var(--card);box-shadow:var(--shadow);margin-bottom:4px}.collapsible-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:none;border:none;color:var(--text);font-size:var(--text-md);font-weight:700;cursor:pointer;letter-spacing:.01em}.collapsible-btn:hover{background:#ffffff0d}.collapse-arrow{font-size:var(--text-lg);transition:transform .2s;display:inline-block}.collapse-arrow.open{transform:rotate(180deg)}.collapsible-body{padding:12px 16px 16px;border-top:1px solid var(--card-dark)}.confirm-modal{border-radius:var(--radius)!important;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px 24px;max-width:320px;width:100%}.confirm-icon{font-size:var(--text-3xl)}.confirm-title{font-size:var(--text-lg);font-weight:700;color:var(--text)}.confirm-message{font-size:var(--text-base);color:var(--text-muted);line-height:1.5}.confirm-actions{display:flex;gap:10px;margin-top:8px;width:100%}.confirm-btn-cancel{flex:1;padding:12px;border-radius:12px;background:var(--card-dark);color:var(--text-muted);font-size:var(--text-md);font-weight:600}.confirm-btn-danger{flex:1;padding:12px;border-radius:12px;background:#e06c6c;color:#fff;font-size:var(--text-md);font-weight:700}.confirm-btn-danger:hover{background:#c85a5a}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:200;padding:56px 16px 92px;touch-action:none}.modal-card{background:var(--card);border-radius:var(--radius);padding:24px 20px;width:100%;max-width:480px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 40px #00000073}.modal-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.modal-card>h3{font-size:var(--text-md);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0}.modal-header h3{font-size:var(--text-lg);font-weight:700;margin:0;text-transform:none;letter-spacing:normal;color:var(--text)}.modal-close-btn{background:transparent;color:var(--text-muted);border-radius:8px;padding:4px 10px;font-size:var(--text-md);border:none;cursor:pointer;transition:color .15s}.modal-close-btn:hover{color:var(--text)}.app-root{position:relative}@keyframes spin{to{transform:rotate(360deg)}}.tx-dots:after{content:"";animation:tx-dots-anim 1.2s steps(1) infinite}@keyframes tx-dots-anim{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.ptr-indicator{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;justify-content:center;align-items:flex-end;overflow:hidden;pointer-events:none}.ptr-coin-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:12px}.ptr-ready-label{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.03em}.activity-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.activity-btn{background:var(--card-dark);border-radius:10px;padding:14px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;border:2px solid transparent;transition:border-color .15s,background .15s}.activity-btn.active{border-color:var(--accent);background:#1a5c35}.activity-btn.logged .act-done-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;background:var(--accent);border-radius:50%}.act-done-dot{display:none}.activity-btn.logged .act-done-dot{display:block}.activity-btn.event-active{overflow:hidden}.activity-btn.event-active:before{content:"2×";position:absolute;top:6px;left:-16px;width:56px;background:#4ade80;color:#14532d;font-size:var(--text-xs);font-weight:900;text-align:center;padding:3px 0 2px;transform:rotate(-45deg);pointer-events:none;line-height:1.4}.act-emoji{font-size:var(--text-xl);line-height:1}.act-name{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.activity-btn.active .act-name{color:var(--text)}.act-input-row{display:flex;gap:8px;margin-bottom:12px;align-items:stretch}.act-input-wrap{flex:2;display:flex;flex-direction:column;gap:4px}.act-input{width:100%;background:var(--card-dark);border:2px solid var(--accent2);border-radius:12px;color:var(--text);font-size:var(--text-2xl);font-weight:700;text-align:center;padding:10px 8px;outline:none;min-width:0}.act-input:focus{border-color:var(--accent)}.act-input::placeholder{color:transparent}.plank-timer{display:flex;flex-direction:column;align-items:center;gap:10px;margin:8px 0 4px}.plank-timer-start-btn{width:100%;padding:10px;border-radius:10px;border:none;background:var(--card-dark);color:var(--text);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background .15s}.plank-timer-start-btn:hover{background:var(--accent2)}.plank-timer-stop-btn{width:100%;padding:10px;border-radius:10px;border:none;background:#e06c6c;color:#fff;font-size:var(--text-md);font-weight:700;cursor:pointer}.plank-timer-display{font-size:var(--text-3xl);font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}.plank-timer-display sup{font-size:var(--text-md);font-weight:500;color:var(--text-muted);vertical-align:super}.plank-timer-display--stopped{color:var(--text-muted)}.plank-timer-actions{display:flex;gap:8px;width:100%}.plank-timer-actions button{flex:1;padding:9px 4px;border-radius:10px;border:none;font-size:var(--text-base);font-weight:600;cursor:pointer}.plank-timer-resume-btn{background:var(--card-dark);color:var(--text)}.plank-timer-resume-btn:hover{background:var(--accent2)}.plank-timer-reset-btn{background:#e06c6c;color:#fff}.plank-timer-write-btn{background:var(--accent);color:#fff}.act-limit-error{color:var(--error);font-size:var(--text-base);font-weight:600;text-align:center;margin:4px 0 0;animation:fade-in .2s ease}.act-unit-label{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.act-points-box{flex:1;background:var(--card-dark);border:2px solid var(--bg2);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;gap:2px;min-width:0}.act-points-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.act-points-value{font-size:var(--text-xl);font-weight:800;color:var(--accent);line-height:1}.today-summary{margin-top:16px;border-top:1px solid var(--card-dark);padding-top:12px;display:flex;flex-direction:column;gap:6px}.summary-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.summary-row{display:flex;justify-content:space-between;font-size:var(--text-base)}.summary-pts{color:var(--accent);font-weight:700}.summary-coins{display:inline-flex;align-items:center;gap:3px;color:var(--text-muted);font-weight:600;font-size:var(--text-base)}.summary-row-right{display:flex;align-items:center;gap:10px}.delete-activity-btn{background:none;border:none;color:var(--text-muted);font-size:var(--text-base);cursor:pointer;padding:0 2px;line-height:1;opacity:.6;transition:opacity .15s,color .15s}.delete-activity-btn:hover{opacity:1;color:#ff6b6b}.delete-activity-modal{max-width:320px;width:88%;text-align:center;padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;gap:10px}.delete-activity-modal-icon{font-size:var(--text-2xl);line-height:1}.delete-activity-modal-title{margin:0;font-size:var(--text-md)}.delete-activity-modal-desc{margin:0;font-size:var(--text-base);color:var(--text-muted);line-height:1.5}.delete-activity-modal-btns{display:flex;gap:10px;margin-top:6px;width:100%}.delete-activity-modal-btns .profile-cancel-btn{flex:1}.delete-activity-modal-confirm{flex:1;background:#e06c6c;color:#fff;border:none;border-radius:10px;padding:15px;font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background .15s}.delete-activity-modal-confirm:hover{background:#c85a5a}.summary-total{display:flex;justify-content:space-between;font-size:var(--text-md);font-weight:700;border-top:1px solid var(--card-dark);padding-top:6px;margin-top:2px;color:var(--accent)}.summary-total-right{display:flex;align-items:center;gap:8px}.summary-total-coins{display:inline-flex;align-items:center;gap:3px;color:var(--text-muted);font-size:var(--text-base);font-weight:600}.points-summary-card h2{margin-bottom:12px}.points-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.points-summary-cell{display:flex;flex-direction:column;align-items:center;background:var(--card-dark);border-radius:10px;padding:10px 4px}.points-summary-value{font-size:var(--text-lg);font-weight:800;color:var(--accent);line-height:1.1}.points-summary-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.act-stat-block{padding:12px 0;border-bottom:1px solid var(--card-dark)}.act-stat-block:last-child{border-bottom:none}.act-stat-block.act-stat-empty{opacity:.45}.act-stat-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:var(--text-md)}.act-stat-name{font-weight:700;color:var(--accent)}.act-stat-unit{color:var(--text-muted);font-size:var(--text-base)}.act-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.act-stat-cell{display:flex;flex-direction:column;align-items:center;background:var(--card-dark);border-radius:8px;padding:6px 4px}.act-stat-value{font-size:var(--text-md);font-weight:700;color:var(--text)}.act-stat-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.daily-card{text-align:center}.date-label{font-size:var(--text-md);color:var(--text-muted);margin-bottom:20px;text-transform:capitalize}.count-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.stepper{width:52px;height:52px;border-radius:50%;background:var(--card-dark);color:var(--accent);font-size:var(--text-xl);line-height:1;display:flex;align-items:center;justify-content:center}.stepper:active{background:var(--bg2)}.count-input{width:110px;background:var(--card-dark);border:2px solid var(--accent2);border-radius:12px;color:var(--text);font-size:var(--text-3xl);font-weight:700;text-align:center;padding:8px 0;outline:none}.count-input:focus{border-color:var(--accent)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.best-day-hint{font-size:var(--text-base);color:var(--text-muted);margin-bottom:8px}.best-day-hint strong{color:var(--accent)}.new-record-label{font-size:var(--text-md);font-weight:700;color:var(--accent);margin-bottom:4px;animation:pop .4s ease}@keyframes pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.saved-hint{font-size:var(--text-base);color:var(--text-muted);margin-bottom:4px}.challenges-combo-card{display:flex;gap:16px;align-items:stretch}.combo-streak{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;flex-shrink:0;min-width:90px;padding-right:4px}.combo-streak-title{font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.combo-challenges{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.combo-divider{height:1px;background:#ffffff14}.combo-challenges .challenge-header h2,.combo-challenges .weekly-header h2{font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.combo-challenges .challenge-header,.combo-challenges .weekly-header{margin-bottom:6px}.combo-challenges .challenge-body,.combo-challenges .weekly-body{margin-bottom:8px}.combo-challenges .challenge-emoji,.combo-challenges .weekly-emoji{font-size:var(--text-xl)}.combo-challenges .challenge-card.challenge-done,.combo-challenges .weekly-challenge-card.weekly-done{border:none}.combo-streak .streak-warning{margin-top:6px;font-size:var(--text-sm)}.challenge-card.challenge-done{border:1px solid var(--accent2)}.challenge-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.challenge-header h2{margin-bottom:0}.challenge-bonus-chip{font-size:var(--text-sm);font-weight:700;background:var(--card-dark);color:var(--accent);border-radius:20px;padding:3px 10px;white-space:nowrap}.challenge-card.challenge-done .challenge-bonus-chip{background:var(--accent2);color:#fff}.challenge-body{display:flex;align-items:center;gap:14px;margin-bottom:12px}.challenge-emoji{font-size:var(--text-2xl);flex-shrink:0}.challenge-info{display:flex;flex-direction:column;gap:3px}.challenge-text{font-size:var(--text-md);font-weight:600}.challenge-completed{font-size:var(--text-base);color:var(--accent);font-weight:700}.challenge-time-left{font-size:var(--text-sm);color:var(--text-muted)}.challenge-time-urgent{color:#fca5a5;font-weight:700}.challenge-bar-wrap{position:relative;background:var(--card-dark);border-radius:8px;height:22px;overflow:hidden}.challenge-bar{height:100%;background:var(--accent2);border-radius:8px;transition:width .4s ease;min-width:4px}.challenge-bar-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:var(--text-sm);color:var(--text);font-weight:700}.save-btn{width:100%;padding:15px;border-radius:14px;background:var(--accent2);color:#fff;font-size:var(--text-md);margin-top:8px}.save-btn:not(:disabled):hover{opacity:.9}.streak-card{text-align:center}.streak-emoji{font-size:var(--text-3xl);margin-bottom:4px}.streak-number{font-size:var(--text-hero);font-weight:800;line-height:1;color:var(--accent)}.streak-number-idle{color:var(--text-muted);opacity:.5}.streak-label{font-size:var(--text-md);color:var(--text-muted);margin-top:4px}.streak-bonus-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:700;background:#ef444433;color:#fca5a5;border-radius:20px;padding:3px 10px;white-space:nowrap;margin-top:6px}.streak-warning{margin-top:10px;font-size:var(--text-base);font-weight:700;color:#f0a500;line-height:1.5}.streak-warning span{font-weight:400;color:var(--text-muted);font-size:var(--text-base)}.streak-idle{border:1px solid rgba(240,165,0,.3)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-item{background:var(--card-dark);border-radius:12px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-value{font-size:var(--text-2xl);font-weight:800;color:var(--accent)}.stat-label{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.avatar-builder{display:flex;flex-direction:column;gap:14px}.ab-preview{display:flex;justify-content:center;padding:8px 0}.ab-top-row{display:flex;align-items:center;gap:12px;margin-bottom:0}.ab-top-row .ab-preview{flex:1;min-width:0;display:flex;justify-content:center;align-items:center}.ab-tabs{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.ab-tab{background:var(--card-dark);border:1.5px solid transparent;border-radius:12px;color:var(--text-muted);font-weight:600;padding:5px 10px;cursor:pointer;transition:border-color .15s,color .15s;display:flex;flex-direction:row;align-items:center;gap:7px;white-space:nowrap}.ab-tab-icon{display:flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ab-tab-label{font-size:var(--text-sm)}.ab-tab:hover{border-color:var(--accent2);color:var(--text)}.ab-tab.active{border-color:var(--accent);color:var(--accent)}.ab-tab-content{min-height:80px}.ab-tab-frames{display:flex;flex-direction:column;gap:8px}.ab-controls{display:flex;flex-direction:column;gap:10px}.ab-row{display:flex;flex-direction:column;gap:5px}.ab-label{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.ab-options{display:flex;flex-wrap:wrap;gap:6px}.ab-color-btn{width:30px;height:30px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:border-color .15s,transform .1s;outline:none}.ab-color-btn.sel{border-color:#fff;transform:scale(1.15)}.ab-color-btn:hover{transform:scale(1.1)}.ab-chips{flex-wrap:wrap}.ab-chip{background:var(--card-dark);border:2px solid transparent;border-radius:20px;color:var(--text);font-size:var(--text-base);padding:4px 12px;cursor:pointer;transition:border-color .15s}.ab-chip.sel{border-color:var(--accent);color:var(--accent)}.ab-chip:hover{border-color:var(--accent2)}.ab-hair-options{flex-wrap:wrap;gap:8px}.ab-hair-btn{position:relative;width:52px;height:52px;border-radius:10px;border:2px solid transparent;background:var(--card-dark);padding:2px;cursor:pointer;transition:border-color .15s;display:flex;align-items:center;justify-content:center;overflow:visible}.ab-hair-btn:hover{border-color:var(--accent2)}.ab-hair-check{position:absolute;bottom:-4px;right:-4px;font-size:var(--text-xs);font-weight:700;color:#fff;background:var(--accent);border-radius:50%;width:15px;height:15px;display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1;box-shadow:0 1px 3px #0006}.ab-hair-img{width:100%;height:100%;object-fit:contain}.ab-hair-none{font-size:var(--text-lg);color:var(--text-muted)}.ab-hair-locked{background:var(--card-dark)!important;border-color:#ffffff1a!important;opacity:.7}.ab-hair-locked:hover{border-color:#ffffff1a!important}.ab-hair-incompatible{opacity:.3;filter:grayscale(1);border-color:#ffffff1a!important}.ab-hair-incompatible:hover{border-color:#ffffff1a!important}.ab-hair-question{font-size:var(--text-xl);color:var(--text-muted);font-weight:700}.ab-hair-label{font-size:var(--text-xs);font-weight:600;color:var(--text);text-align:center;line-height:1.2;padding:2px}.profile-page{display:flex;flex-direction:column;gap:16px}.profile-header{display:flex;align-items:center;justify-content:space-between;padding:4px 0 8px}.profile-header h2{margin:0}.profile-back-btn{background:none;border:none;color:var(--accent);font-size:var(--text-md);font-weight:700;cursor:pointer;padding:6px 0}.profile-avatar-section{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0}.profile-avatar-wrap{position:relative;cursor:pointer}.profile-avatar-overlay{position:absolute;bottom:2px;right:2px;background:var(--card-dark);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--text-md);border:2px solid var(--bg)}.profile-upload-hint{font-size:var(--text-sm);color:var(--text-muted)}.profile-info-card{padding:16px 20px}.profile-info-layout{display:flex;gap:14px;align-items:stretch}.profile-info-left{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex-shrink:0;width:fit-content}.profile-info-avatar-wrap{overflow:hidden;display:flex;justify-content:center;align-items:center}.profile-info-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.profile-info-nick-row,.profile-info-coins-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.profile-info-coins-row .profile-coins{margin:0}.profile-wins-col{display:flex;flex-direction:column;gap:3px;flex:1}.profile-nick-row{display:flex;justify-content:space-between;align-items:center}.profile-nick-name{font-size:var(--text-lg);font-weight:800}.profile-coins{font-size:var(--text-base);color:var(--accent);margin-top:2px;display:flex;align-items:center;gap:6px}.coin-history-btn{background:var(--accent2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:var(--text-md);font-weight:600;padding:7px 14px}.coin-history-btn:hover{opacity:.85}.coin-history-modal{width:min(420px,92vw);display:flex;flex-direction:column;gap:12px}.coin-history-list{overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px;flex:1}.coin-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--card-dark);border-radius:10px}.coin-history-info{display:flex;flex-direction:column;gap:2px}.coin-history-label{font-size:var(--text-base);font-weight:600;color:var(--text)}.coin-history-date{font-size:var(--text-xs);color:var(--text-muted)}.coin-history-amount{font-size:var(--text-base);font-weight:700;white-space:nowrap}.coin-history-amount.positive{color:#4ade80}.coin-history-amount.negative{color:#f87171}.profile-change-nick-btn{background:var(--card-dark);border:none;color:var(--text);border-radius:10px;padding:8px 14px;font-size:var(--text-base);font-weight:700;cursor:pointer;text-align:center;line-height:1.4}.profile-change-nick-btn span{color:var(--accent);font-size:var(--text-sm)}.profile-nick-edit{display:flex;flex-direction:column;gap:8px}.profile-nick-btns{display:flex;gap:8px}.profile-cancel-btn{flex:1;background:var(--card-dark);border:none;color:var(--text-muted);border-radius:10px;padding:10px;font-size:var(--text-md);cursor:pointer}.profile-frames-card h3{margin-bottom:10px;font-size:var(--text-md)}.profile-avatar-editor-inline{margin-top:16px;padding-top:16px;border-top:1px solid var(--card-dark)}.profile-avatar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.profile-avatar-header h3{margin-bottom:0}.profile-edit-avatar-btn{background:var(--accent2);color:#fff;border:none;border-radius:10px;padding:7px 14px;font-size:var(--text-md);font-weight:600;cursor:pointer;transition:opacity .15s;white-space:nowrap}.profile-edit-avatar-btn:hover{opacity:.85}.profile-avatar-preview-only{display:flex;justify-content:center;padding:8px 0 4px}.profile-shop-msg{font-size:var(--text-base);color:var(--accent);margin-bottom:8px}.lootbox-coming-soon{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 0 10px;color:var(--text-muted)}.lootbox-lock-icon{font-size:var(--text-2xl)}.lootbox-coming-soon p{font-size:var(--text-md);font-weight:700;color:var(--text);margin:0}.lootbox-lock-sub{font-size:var(--text-base)!important;font-weight:400!important;color:var(--text-muted)!important}.frames-scroll{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:6px}.frame-option{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:2px solid transparent;border-radius:12px;padding:8px;cursor:pointer;transition:border-color .15s}.frame-option.active{border-color:var(--accent)}.frame-option.locked{opacity:.6}.frame-option.loot-locked{opacity:.5;border-color:#ffffff1a}.frame-option.loot-locked:hover{border-color:#ffffff1a}.frame-option.loot-locked .frame-preview-inner{font-size:var(--text-lg);font-weight:700;color:var(--text-muted)}.frame-preview{width:64px;height:64px;display:flex;align-items:center;justify-content:center}.frame-preview-inner{width:40px;height:40px;border-radius:16%;background:var(--card-dark);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);color:var(--accent);font-weight:700}.frame-name{font-size:var(--text-sm);font-weight:700;color:var(--text);text-shadow:0 0 3px #000,0 0 3px #000,0 0 3px #000}.frame-cost{font-size:var(--text-xs);color:var(--text-muted)}.frame-option.active .frame-cost{color:var(--accent)}.frame-preview-modal{align-items:center;text-align:center;gap:10px;border-radius:var(--radius) var(--radius) var(--radius) var(--radius)!important}.frame-preview-avatar{margin:8px 0}.frame-preview-name{font-size:var(--text-lg);font-weight:700;color:var(--text)}.frame-preview-cost{font-size:var(--text-md);color:var(--accent);font-weight:600}.frame-preview-btns{display:flex;gap:10px;width:100%;margin-top:8px}.frame-preview-btns .save-btn{flex:1;margin-top:0}.frame-preview-btns .profile-cancel-btn{flex:1;padding:15px;border-radius:14px;font-size:var(--text-md);font-weight:600}.user-stats-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}.user-stats-row:last-child{border-bottom:none}.user-stats-name{font-size:var(--text-base);color:var(--text-muted)}.user-stats-val{font-size:var(--text-md);font-weight:700;color:var(--text)}.activity-ranks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rank-tile{background:var(--card-dark);border-radius:12px;min-width:0;padding:10px 8px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:transform .1s}.rank-tile:active{transform:scale(.97)}.rank-tile-name{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.rank-tile-left{font-size:var(--text-xs);color:var(--text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.rank-tile-badge-wrap{height:76px;display:flex;align-items:center;justify-content:center}.rank-tile-badge{filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.rank-tile-badge-none{font-size:var(--text-xl);color:var(--text-muted)}.rank-tile-progress{height:6px}.rank-card{background:var(--card-dark);border-radius:12px;padding:12px 64px 12px 14px;display:flex;flex-direction:column;gap:8px;position:relative}.rank-card-header{display:flex;align-items:center;justify-content:space-between}.rank-activity-name{font-size:var(--text-md);font-weight:600}.rank-badge{font-size:var(--text-sm);font-weight:700;padding:2px 8px;border-radius:20px;border:1px solid;text-transform:uppercase;letter-spacing:.04em}.rank-badge.rank-none{color:var(--text-muted);border-color:transparent;background:transparent;position:absolute;right:26px;top:50%;transform:translateY(-50%)}.rank-badge-img{width:56px;object-fit:contain;position:absolute;right:4px;top:50%;transform:translateY(-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.rank-progress{width:100%;height:8px;background:#ffffff1a;border-radius:99px;overflow:hidden}.rank-progress-bar{height:100%;border-radius:99px;transition:width .6s ease}.rank-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--text-muted)}.rank-value{font-weight:600}.rank-next strong{color:var(--text)}.rank-max{color:#f5c518;font-weight:700}.rank-guide{background:var(--card-dark);border-radius:12px;padding:14px;margin-top:4px}.rank-guide-title{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.rank-guide-list{display:flex;flex-wrap:nowrap;gap:6px;justify-content:space-between}.rank-guide-col{display:flex;align-items:center;justify-content:center;flex:1}.rank-guide-circle{width:28px;height:28px;border-radius:50%;box-shadow:0 2px 6px #00000059}.rank-guide-img{width:auto;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.rank-guide-list{align-items:center}.profile-medals-card h3{margin-bottom:12px;font-size:var(--text-md)}.medals-group{margin-bottom:16px}.medals-group:last-child{margin-bottom:0}.medals-group-label{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.medals-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.medal-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;background:var(--card-dark)}.medal-tile.unlocked{background:#a8e6cf1f}.medal-tile.locked{opacity:.4}.medal-emoji{font-size:var(--text-xl)}.medal-name{font-size:var(--text-xs);color:var(--text-muted);text-align:center;line-height:1.2}.medal-tile.unlocked .medal-name{color:var(--text)}.lootbox-section{display:flex;flex-direction:column;gap:16px}.lootbox-sub-section{display:flex;flex-direction:column;gap:16px;background:var(--card);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow)}.lootbox-sub-label{display:flex;align-items:center;gap:7px;font-size:var(--text-md);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.lootbox-count-badge{background:#e06c6c;color:#fff;font-size:var(--text-xs);font-weight:700;border-radius:20px;padding:1px 7px;min-width:18px;text-align:center}.lootbox-owned-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lootbox-owned-card{background:var(--card-dark);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}.lootbox-owned-card-icon{line-height:1}.lootbox-owned-card-name{font-size:var(--text-base);font-weight:700;color:var(--text)}.lootbox-owned-card-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.4;min-height:2.6em;display:flex;align-items:center;justify-content:center}.lootbox-owned-card-count{font-size:var(--text-sm);color:var(--accent);font-weight:600}.lootbox-owned-open-btn{margin-top:4px;width:100%;background:#e06c6c;color:#fff;border:none;border-radius:10px;padding:8px 10px;font-size:var(--text-base);font-weight:700;cursor:pointer;transition:opacity .15s}.lootbox-owned-open-btn:hover{opacity:.85}.lootbox-owned-preview-btn{margin-top:4px;width:100%;background:#ffffff12;color:var(--text-muted);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px 10px;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.lootbox-owned-preview-btn:hover{background:#ffffff1f;color:var(--text)}.lootbox-coins-card{background:var(--card);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:12px}.lootbox-coins-balance{display:flex;align-items:center;gap:7px}.lootbox-coins-amount{font-size:var(--text-lg);font-weight:800;color:var(--text)}.lootbox-coins-label{font-size:var(--text-base);color:var(--text-muted);font-weight:500}.lootbox-coins-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.lootbox-coins-lifetime{font-size:var(--text-sm);color:var(--text-muted)}.lootbox-coins-history-btn{background:#ffffff12;color:var(--text-muted);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:4px 12px;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.lootbox-coins-history-btn:hover{background:#ffffff1f;color:var(--text)}.lootbox-shop-simple-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lootbox-shop-simple-card{background:var(--card-dark);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}.lootbox-shop-simple-icon{line-height:1}.lootbox-shop-simple-name{font-size:var(--text-base);font-weight:700;color:var(--text)}.lootbox-shop-simple-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.4;min-height:2.6em;display:flex;align-items:center;justify-content:center}.lootbox-buy-simple-btn{margin-top:4px;width:100%;background:#f0a500;color:#fff;border:none;border-radius:10px;padding:8px 10px;font-size:var(--text-base);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:opacity .15s}.lootbox-buy-simple-btn:not(:disabled):hover{opacity:.85}.lootbox-buy-simple-btn:disabled{opacity:.4;cursor:default}.lootbox-carousel{display:flex;align-items:center;gap:8px;overflow:hidden}.lootbox-card-wrap{flex:1;min-width:0}@keyframes lbExitLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}@keyframes lbExitRight{0%{transform:translate(0);opacity:1}to{transform:translate(40px);opacity:0}}@keyframes lbEnterRight{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes lbEnterLeft{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes lbFadeOut{0%{opacity:1}to{opacity:0}}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}.lootbox-preview-card{background:var(--card);border-radius:var(--radius);padding:12px 0;box-shadow:var(--shadow);overflow:hidden}.lootbox-preview-wrap--out{animation:lbFadeOut .22s ease forwards}.lootbox-preview-wrap--in{animation:lbFadeIn .22s ease forwards}.lootbox-card-wrap--exit-left{animation:lbExitLeft .22s ease forwards}.lootbox-card-wrap--exit-right{animation:lbExitRight .22s ease forwards}.lootbox-card-wrap--enter-right{animation:lbEnterRight .22s ease forwards}.lootbox-card-wrap--enter-left{animation:lbEnterLeft .22s ease forwards}.lootbox-arrow{background:var(--card-dark);border:1px solid rgba(255,255,255,.1);border-radius:50%;width:36px;height:36px;flex-shrink:0;font-size:var(--text-xl);line-height:1;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}.lootbox-arrow:active{opacity:.7}.lootbox-dots{display:flex;justify-content:center;gap:6px;margin:8px 0 4px}.lootbox-dot{width:7px;height:7px;border-radius:50%;background:#fff3;cursor:pointer;transition:background .2s}.lootbox-dot--active{background:var(--accent)}.lootbox-shop-card{background:var(--card-dark);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;width:100%;min-height:200px;justify-content:center}.lootbox-shop-card-icon{font-size:var(--text-hero);line-height:1}.lootbox-shop-card-name{font-size:var(--text-base);font-weight:700}.lootbox-shop-card-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.4;min-height:2.8em;display:flex;align-items:center;justify-content:center}.lootbox-shop-card-count{font-size:var(--text-sm);color:var(--accent);font-weight:600}.lootbox-shop-card-btns{display:flex;flex-direction:column;gap:5px;width:100%;margin-top:4px}.lootbox-buy-btn{background:var(--card-dark);color:var(--text-muted);border-radius:12px;padding:10px 14px;font-size:var(--text-md);font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.lootbox-buy-btn:not(:disabled):hover{opacity:.85;color:var(--text)}.lootbox-buy-btn:disabled{opacity:.4;cursor:default}.lootbox-buy-btn--card{flex:unset;width:100%;padding:7px 8px;font-size:var(--text-base);background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:4px}.lootbox-buy-btn--card:not(:disabled):hover{background:#ffffff1f;color:var(--text)}.lootbox-open-btn{background:var(--accent2);color:#fff;border-radius:12px;padding:10px 14px;font-size:var(--text-md);font-weight:700;border:none;cursor:pointer;transition:opacity .15s}.lootbox-open-btn:hover{opacity:.85}.lootbox-open-btn:disabled{opacity:.4;cursor:default}.lootbox-open-btn--card{width:100%;padding:7px 8px;font-size:var(--text-base)}.slot-machine{display:flex;flex-direction:column;gap:12px}.slot-window{position:relative;overflow:hidden;border-radius:14px;background:var(--card-dark);padding:10px 0;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%)}.slot-center-marker{position:absolute;left:50%;transform:translate(-55px);top:0;width:110px;height:100%;border:2px solid var(--accent2);border-radius:10px;pointer-events:none;z-index:2;box-shadow:0 0 14px color-mix(in srgb,var(--accent2) 50%,transparent)}.slot-strip{display:flex;will-change:transform}@keyframes loot-preview-scroll{0%{transform:translate(0)}to{transform:translate(calc(-1 * var(--preview-w)))}}.slot-window--preview{cursor:default}.slot-strip--preview{animation:loot-preview-scroll var(--preview-dur, 40s) linear infinite}.slot-item{width:104px;flex-shrink:0;margin:0 3px;height:118px;border:2px solid;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--card);overflow:hidden;padding:4px 4px 20px;position:relative}.slot-item-img{width:68px;height:54px;object-fit:contain}.slot-item-emoji{font-size:var(--text-2xl);line-height:1}.slot-item-label{font-size:var(--text-sm);font-weight:700;text-align:center;line-height:1.2;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;bottom:6px;left:4px;right:4px;text-shadow:0 0 3px #000,0 0 3px #000,0 0 3px #000}.lootbox-reveal{border:2px solid;border-radius:16px;padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--card-dark);text-align:center;animation:fade-in .4s ease}@keyframes fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.lootbox-rarity-badge{font-size:var(--text-sm);font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#000;border-radius:20px;padding:3px 12px;opacity:.9}.lootbox-item-emoji{font-size:var(--text-hero)}.event-banner{display:flex;align-items:center;gap:12px;border-radius:14px;padding:12px 16px;margin-bottom:4px}.event-banner--active{background:linear-gradient(135deg,#dc2626,#f97316);color:#fff;animation:event-pulse 2.5s ease-in-out infinite}.event-banner--upcoming{background:var(--card-dark);border:1px solid var(--accent2);color:var(--text)}@keyframes event-pulse{0%,to{box-shadow:0 0 #f9731666}50%{box-shadow:0 0 0 8px #f9731600}}.event-banner-icon{font-size:var(--text-2xl);flex-shrink:0}.event-banner-text{display:flex;flex-direction:column;gap:2px}.event-banner-text strong{font-size:var(--text-md)}.event-banner-text span{font-size:var(--text-base);opacity:.9}.lootbox-item-preview-img{width:90px;height:72px;object-fit:contain}.lootbox-item-name{font-size:var(--text-lg);font-weight:700}.lootbox-duplicate{font-size:var(--text-base);color:var(--text-muted)}.lootbox-coins-msg{font-size:var(--text-base);color:var(--accent)}.lootbox-new-msg{font-size:var(--text-base);color:#7eff7e}.lootbox-close-btn{background:transparent;border:1.5px solid rgba(255,255,255,.2);border-radius:12px;color:var(--text-muted);font-size:var(--text-md);font-weight:600;padding:8px 20px;cursor:pointer;width:100%;transition:border-color .15s,color .15s}.lootbox-close-btn:hover{border-color:#ffffff80;color:var(--text)}.profile-level-wrap{display:flex;flex-direction:column;gap:4px;margin:2px 0;width:100%}.profile-level-row{display:flex;align-items:center;gap:8px}.profile-level-badge{font-size:var(--text-base);font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:4px}.level-badge-img{width:26px;height:26px;vertical-align:middle}.level-badge-chip{background:var(--card-dark);border-radius:10px;padding:3px 10px 3px 5px;display:inline-flex;align-items:center;gap:6px}.profile-info-avatar{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;border-radius:18px;transition:opacity .15s}.profile-info-avatar:hover{opacity:.85}.profile-nick-level-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-wins-row{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0}.profile-win-stat{font-size:var(--text-base);color:var(--text-muted);font-weight:600}.profile-info-bottom{display:flex;align-items:center;gap:12px;margin-top:12px}.profile-info-bottom .profile-edit-avatar-btn{flex-shrink:0;white-space:nowrap}.profile-info-bottom-row{display:flex;align-items:stretch;gap:10px;margin-top:10px}.profile-info-bottom-row .profile-edit-avatar-btn{flex-shrink:0}.profile-info-bottom-row .profile-level-bar-row{flex:1;min-width:0}.profile-info-bottom-row .profile-level-bar-track{height:auto}.profile-level-bar-row{display:flex;align-items:center;gap:6px;min-width:0}.profile-level-bar-row{align-items:stretch}.profile-level-bar-row .profile-level-bar-track{flex:1;height:auto;border-radius:10px}.profile-level-reward{position:absolute;right:-8px;top:50%;transform:translateY(-50%);line-height:1;pointer-events:none}.profile-level-xp{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.profile-level-bar-track{height:26px;width:100%;position:relative;overflow:visible}.profile-level-bar-inner{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg2);border-radius:10px;overflow:hidden}.profile-level-bar-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:10px;transition:width .4s ease;min-width:4px}.profile-level-bar-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);pointer-events:none}.user-profile-level{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-base);font-weight:700;color:var(--accent2);background:var(--card-dark);border-radius:20px;padding:3px 10px;margin-top:2px}.user-profile-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.user-profile-streak{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-base);font-weight:700;color:var(--text-muted);background:var(--card-dark);border-radius:20px;padding:3px 10px;margin-top:2px}.user-profile-streak .level-badge-img{width:26px;height:26px}.compare-modal{display:flex;flex-direction:column;gap:12px}.compare-header{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:16px 12px}.compare-header-side{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.compare-header-side .avatar-wrap,.compare-header-side>:first-child{margin:0 auto}.compare-nick{font-size:var(--text-md);font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-vs{font-size:var(--text-lg);font-weight:900;color:var(--text-muted);align-self:center;flex-shrink:0}.compare-level-chip{margin-top:0}.compare-close{position:absolute;top:10px;right:10px;z-index:2}.compare-card h3{margin-bottom:10px;font-size:var(--text-md)}.compare-streak-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compare-streak-box{background:var(--card-dark);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:2px}.compare-streak-value{font-size:var(--text-xl);font-weight:800;color:var(--accent)}.compare-streak-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.compare-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}.compare-row:last-child{border-bottom:none}.compare-score-row{margin-top:4px;border-top:1px solid rgba(255,255,255,.12);padding-top:10px}.compare-score-row .compare-val{font-size:var(--text-2xl)}.compare-score-label{font-weight:700;color:var(--text-muted)}.compare-val{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-base);font-weight:500;color:var(--text-muted);flex:1;min-width:0}.compare-val--right{justify-content:flex-end;text-align:right}.compare-val--win{color:#fff;font-weight:700;font-size:var(--text-md)}.compare-rank-img{width:20px;height:20px;flex-shrink:0}.compare-activity{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--text-muted);font-weight:600;flex-shrink:0}.compare-medals-totals{display:flex;justify-content:space-between;margin-bottom:10px}.compare-medal-cat{padding:6px 0}.compare-medal-cat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.compare-medal-count{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);flex:1}.compare-medal-count--right{text-align:right}.compare-medal-bars{display:flex;gap:12px}.compare-medal-bar-track{flex:1;height:6px;background:var(--card-dark);border-radius:99px;overflow:hidden}.compare-medal-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:99px;min-width:2px}.compare-medal-cat-head{width:100%;background:none;border:none;cursor:pointer;padding:0}.compare-medal-list{margin-top:8px;display:flex;flex-direction:column}.compare-medal-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}.compare-medal-row:last-child{border-bottom:none}.compare-medal-check{font-size:var(--text-base);color:var(--text-muted);width:24px;text-align:center;flex-shrink:0}.compare-medal-name{font-size:var(--text-sm);font-weight:600;color:var(--text);text-align:center;flex:1;min-width:0}.compare-medal-name--none{color:var(--text-muted);opacity:.7}.weekly-challenge-card.weekly-done{border:1px solid #9c7af0}.weekly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.weekly-header h2{margin-bottom:0}.weekly-bonus-chip{font-size:var(--text-sm);font-weight:700;background:#8b5cf633;color:#c4b5fd;border-radius:20px;padding:3px 10px;white-space:nowrap}.weekly-done .weekly-bonus-chip{background:#8b5cf659;color:#ddd6fe}.weekly-body{display:flex;align-items:center;gap:14px;margin-bottom:12px}.weekly-emoji{font-size:var(--text-2xl);flex-shrink:0}.weekly-info{display:flex;flex-direction:column;gap:3px}.weekly-text{font-size:var(--text-md);font-weight:600}.weekly-completed{font-size:var(--text-base);color:#c4b5fd;font-weight:700}.weekly-days-left{font-size:var(--text-sm);color:var(--text-muted)}.weekly-bar-wrap{position:relative;background:var(--card-dark);border-radius:8px;height:22px;overflow:hidden;margin-bottom:4px}.weekly-bar{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:8px;transition:width .4s ease;min-width:4px}.weekly-done .weekly-bar{background:linear-gradient(90deg,#7c3aed,#c4b5fd)}.weekly-bar-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:var(--text-sm);color:var(--text);font-weight:700}.weekly-claim-btn{width:100%;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;border:none;border-radius:var(--radius);padding:11px;font-size:var(--text-md);font-weight:700;cursor:pointer;margin-top:8px;transition:opacity .2s}.weekly-claim-btn:hover{opacity:.88}.weekly-claim-btn:disabled{opacity:.55;cursor:not-allowed}.rank-card-clickable{cursor:pointer;transition:transform .1s}.rank-card-clickable:active{transform:scale(.98)}.rank-journey-modal{overflow:hidden;padding:0 0 12px;width:min(480px,100%)}.rank-journey-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px}.rank-journey-header .rank-journey-current,.rank-journey-header .rank-journey-current-none{position:absolute;left:50%;transform:translate(-50%)}.rank-journey-unit-close{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px}.rank-journey-unit{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.rank-journey-title{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:var(--text-lg)}.rank-journey-current{height:44px}.rank-journey-current-none{font-size:var(--text-base);color:var(--text-muted)}.rank-journey-scroll{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}.rank-journey-track{position:relative;width:100%}.rank-journey-line{position:absolute;left:50%;width:6px;transform:translate(-50%);background:var(--card-dark);border-radius:99px}.rank-journey-line-fill{position:absolute;left:50%;width:6px;transform:translate(-50%);border-radius:99px}.rank-journey-zero{position:absolute;left:calc(50% + 14px);transform:translateY(-50%);font-size:var(--text-sm);font-weight:700;color:var(--text-muted)}.rank-journey-tier{position:absolute;left:0;right:0;transform:translateY(-50%)}.rank-journey-tier-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;border:3px solid var(--card);z-index:1}.rank-journey-tier-info{position:absolute;left:calc(50% + 24px);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}.rank-journey-tier-locked{filter:grayscale(.4);opacity:.75}.rank-journey-tier--final .rank-journey-tier-info--final{position:absolute;left:50%;top:50%;transform:translate(-50%,34px);display:flex;align-items:center;gap:10px}.rank-journey-tier-meta{display:flex;flex-direction:column;gap:3px}.rank-journey-tier-value{font-weight:800;font-size:var(--text-md)}.rank-journey-tier-chip{border:1.5px solid;border-radius:20px;font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;padding:1px 8px;text-align:center;background:var(--card-dark)}.rank-journey-player{position:absolute;right:calc(50% + 8px);transform:translateY(-50%);display:flex;align-items:center;gap:6px;z-index:2}.rank-journey-player-value{font-weight:800;font-size:var(--text-md);white-space:nowrap}.rank-journey-player-line{width:20px;border-top:2px dashed rgba(255,255,255,.45)}.redeem-code-card{display:flex;flex-direction:column;gap:16px}.redeem-code-card h3{margin-bottom:0}.redeem-code-hint{font-size:var(--text-base);color:var(--text-muted);margin:-4px 0 2px}.redeem-code-form{display:flex;gap:8px}.redeem-code-input{flex:1;min-width:0;background:var(--card-dark);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-size:var(--text-md);padding:10px 12px;outline:none;text-transform:uppercase}.redeem-code-input::placeholder{text-transform:none}.redeem-code-input:focus{border-color:var(--accent2)}.redeem-code-btn{background:var(--accent2);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:var(--text-md);font-weight:700;white-space:nowrap}.redeem-code-btn:disabled{opacity:.5}.redeem-code-status{font-size:var(--text-base);color:var(--accent);margin:2px 0 0}.redeem-code-status.error{color:var(--error)}.frame-shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.frame-shop-item{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card-dark);border-radius:12px;padding:12px 8px}.frame-shop-name{font-size:var(--text-sm);font-weight:600;color:var(--text);text-align:center}.avatar-shop-empty{text-align:center;padding:12px 0}.profile-collection-btn{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;font-size:var(--text-md);font-weight:600;color:var(--text);cursor:pointer}.profile-collection-btn:active{opacity:.7}.col-modal{padding:0;overflow:hidden;max-width:480px}.col-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.col-tab{flex:1;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px}.col-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.col-tab-icon{display:flex;align-items:center;justify-content:center;height:36px}.col-tab-count{font-size:var(--text-sm);font-weight:600}.col-tab-pct--p0,.col-tab-pct--p10,.col-tab-pct--p25,.col-tab-pct--p45,.col-tab-pct--p65,.col-tab-pct--p85,.col-tab-pct--p100{border-radius:20px;padding:0 7px;color:#fff;display:inline-flex;align-items:center;justify-content:center;height:18px;line-height:1}.col-tab-pct--p0{background:#dc2626}.col-tab-pct--p10{background:#ea580c}.col-tab-pct--p25{background:#d97706}.col-tab-pct--p45{background:#ca8a04}.col-tab-pct--p65{background:#65a30d}.col-tab-pct--p85{background:#16a34a}.col-tab-pct--p100{background:#22c55e;font-weight:700}.col-section{overflow-y:auto;overscroll-behavior:contain;flex:1;padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px}.col-section-header{display:flex;align-items:center;justify-content:flex-end}.col-section-count{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.col-rarity-group{display:flex;flex-direction:column;gap:8px}.col-rarity-badge{display:inline-block;padding:3px 12px;border-radius:20px;font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#000;align-self:flex-start}.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.col-item{height:118px;border:2px solid transparent;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--card-dark);overflow:hidden;padding:4px 4px 22px;position:relative}.col-item--locked{opacity:.4}.col-item-lock{font-size:var(--text-2xl);font-weight:800;color:var(--text-muted);line-height:1}.col-item-none{font-size:var(--text-xl);color:var(--text-muted);line-height:1}.col-item-img{width:68px;height:54px;object-fit:contain}.col-item-crop{width:68px;height:54px;overflow:hidden;position:relative}.col-item-label{font-size:var(--text-sm);font-weight:700;text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:96px;position:absolute;bottom:5px;left:4px;right:4px;text-shadow:0 0 3px #000,0 0 3px #000,0 0 3px #000}.avatar-shop-empty p{color:var(--text-muted);font-size:var(--text-base);line-height:1.5}.frame-shop-owned{font-size:var(--text-xs);font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.05em}.profile-info-top{display:flex;align-items:flex-start;gap:16px}.profile-info-text{display:flex;flex-direction:column;gap:4px;flex:1}.friends-card{display:flex;flex-direction:column;gap:12px}.friends-card--in-tab{background:var(--card);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow)}.friends-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.friends-card-title{display:flex;align-items:center;gap:8px}.friends-card-label{font-size:var(--text-md);font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.friends-card-count{background:#e06c6c;color:#fff;font-size:var(--text-sm);font-weight:700;border-radius:20px;padding:1px 7px;min-width:20px;text-align:center}.friends-add-toggle-btn{background:var(--accent2);color:#fff;border:none;border-radius:10px;padding:7px 14px;font-size:var(--text-md);font-weight:600;cursor:pointer;white-space:nowrap}.friends-add-toggle-btn:hover{opacity:.85}.friends-add-toggle-btn--close{background:#e06c6c}.friends-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.friends-grid-card{display:flex;align-items:center;gap:7px;background:var(--card-dark, rgba(0,0,0,.15));border-radius:12px;padding:10px 8px;cursor:pointer;transition:background .15s;position:relative;overflow:hidden}.friends-grid-card:hover{background:#ffffff0f}.friends-grid-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.friends-grid-nick{font-size:var(--text-base);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friends-grid-level,.friends-grid-streak{font-size:var(--text-sm);color:var(--text-muted)}.friends-fav-btn{background:transparent;border:none;font-size:var(--text-lg);color:var(--text-muted);cursor:pointer;padding:2px 4px;flex-shrink:0;align-self:flex-start;line-height:1;transition:color .15s}.friends-fav-btn.active{color:#f6c90e}.friends-fav-btn:not(.active):hover{color:var(--text)}.friends-collapse-btn{background:var(--accent2);border:none;color:#fff;font-size:var(--text-md);font-weight:600;cursor:pointer;padding:7px 14px;border-radius:10px;display:block;margin:0 auto}.friends-collapse-btn:hover{opacity:.85}.friends-collapse-btn--close{background:#e06c6c}.friends-wrapper{position:relative}.friends-btn{background:transparent;font-size:var(--text-lg);padding:4px 6px;border-radius:8px;position:relative;line-height:1}.friends-count{position:absolute;top:0;right:0;background:var(--accent2);color:#fff;font-size:var(--text-xs);font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none}.friends-panel{position:absolute;top:calc(100% + 8px);right:0;width:260px;max-height:380px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);z-index:200;display:flex;flex-direction:column;overflow:hidden}.friends-panel-header{padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.friends-panel-title{font-size:var(--text-md);font-weight:700;color:var(--text)}.friends-list{list-style:none;overflow-y:auto;overscroll-behavior:contain;flex:1}.friends-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .15s}.friends-row:hover{background:#ffffff0d}.friends-row:last-child{border-bottom:none}.friends-nick{flex:1;font-size:var(--text-base);font-weight:600;color:var(--text)}.friends-remove-btn{background:transparent;color:var(--text-muted);font-size:var(--text-base);padding:3px 7px;border-radius:6px;flex-shrink:0}.friends-remove-btn:hover{color:var(--error);background:#ff50501a}.friends-search-wrap{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:6px}.friends-search-input{background:var(--card-dark);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-size:var(--text-base);padding:8px 12px;outline:none;width:100%}.friends-search-input:focus{border-color:var(--accent2)}.friends-search-hint{font-size:var(--text-sm);color:var(--text-muted);margin:0}.friends-search-hint.error{color:var(--error)}.friends-search-result{display:flex;align-items:center;gap:8px;background:var(--card-dark);border-radius:10px;padding:6px 10px}.friends-search-nick{flex:1;font-size:var(--text-base);font-weight:600;color:var(--text)}.friends-add-btn{background:var(--accent2);color:#fff;border-radius:8px;padding:5px 10px;font-size:var(--text-base);font-weight:700;flex-shrink:0}.user-profile-actions{display:flex;flex-direction:column;gap:8px;width:100%}.friend-add-btn,.friend-remove-btn{width:100%;border-radius:14px;padding:12px;font-size:var(--text-md);font-weight:600}.friend-add-btn{background:#ffffff12;color:var(--text-muted);border:1px solid rgba(255,255,255,.12)}.friend-add-btn:hover{background:#ffffff1f}.friend-remove-btn{background:transparent;color:#ff6464b3;border:1px solid rgba(255,100,100,.2)}.friend-remove-btn:hover{background:#ff505014}.notif-wrapper{position:relative}.notif-bell-btn{background:transparent;font-size:var(--text-lg);padding:4px 6px;border-radius:8px;position:relative;line-height:1}.notif-badge{position:absolute;top:0;right:0;background:#e06c6c;color:#fff;font-size:var(--text-xs);font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none}.notif-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:200;touch-action:none}.notif-panel{position:fixed;top:60px;right:12px;width:300px;max-width:calc(100vw - 24px);max-height:400px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);z-index:201;display:flex;flex-direction:column;overflow:hidden}.notif-panel-header{padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.notif-panel-title{font-size:var(--text-md);font-weight:700;color:var(--text)}.notif-list{list-style:none;overflow-y:auto;flex:1;overscroll-behavior:contain}.notif-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .15s}.notif-row.unread{background:#5cba8a1a}.notif-row:last-child{border-bottom:none}.notif-type-icon{font-size:var(--text-lg);flex-shrink:0;margin-top:1px}.notif-content{flex:1;min-width:0}.notif-title{font-size:var(--text-base);font-weight:700;color:var(--text);margin:0}.notif-body{font-size:var(--text-sm);color:var(--text-muted);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-time{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;margin-top:2px}.header-right{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.header-profile-btn{gap:8px;background:none;border:none;cursor:pointer;padding:1px 0 0;display:flex;align-items:center;justify-content:center;border-radius:16%;transition:opacity .15s;flex-shrink:0}.header-profile-btn:hover{opacity:.8}.user-profile-modal{background:var(--bg2);border-radius:var(--radius);padding:24px 20px;width:100%;max-width:480px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;position:relative}.user-profile-close{margin-left:auto;align-self:flex-start;flex-shrink:0}.user-profile-close-solo{position:absolute;top:16px;right:16px}.user-profile-header{display:flex;align-items:center;gap:16px;padding:16px;background:var(--card);border-radius:var(--radius)}.user-profile-header-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.user-profile-nick{font-size:var(--text-lg);font-weight:700;color:var(--text)}.user-profile-sub{font-size:var(--text-base);color:var(--text-muted);margin-top:2px}.calendar-card{overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-title{font-size:var(--text-md);font-weight:700;text-transform:capitalize;color:var(--text)}.cal-nav{background:var(--card-dark);color:var(--accent);border-radius:8px;width:32px;height:32px;font-size:var(--text-lg);display:flex;align-items:center;justify-content:center}.cal-nav:disabled{opacity:.3;cursor:default}.calendar-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}.calendar-dow span{text-align:center;font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-cell{aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;font-size:var(--text-sm);overflow:hidden}.cal-empty{background:transparent}.cal-future{background:var(--card-dark);opacity:.4;color:var(--text-muted)}.cal-future .cal-num{font-size:var(--text-sm)}.cal-done{background:#1a5c35;border:1px solid var(--accent2)}.cal-done .cal-day-label{font-size:var(--text-xs);color:var(--text-muted);line-height:1}.cal-done .cal-count{font-size:var(--text-md);font-weight:800;color:var(--accent);line-height:1}.cal-miss{background:#b4282833}.cal-miss .cal-day-label{font-size:var(--text-xs);color:var(--text-muted);line-height:1}.cal-miss .cal-emoji{font-size:var(--text-md);line-height:1}.cal-today{outline:2px solid var(--accent);outline-offset:1px}.cal-clickable{cursor:pointer}.cal-clickable:hover{filter:brightness(1.15)}.cal-selected{outline:2px solid #fff;outline-offset:1px}.cal-bonus-icon{position:absolute;top:1px;right:2px;font-size:var(--text-xs);line-height:1}.cal-detail{margin-top:12px;background:var(--card-dark);border-radius:12px;padding:12px 14px;animation:fadeSlideIn .18s ease}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.cal-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}.cal-detail-date{font-size:var(--text-base);font-weight:700;color:var(--text);text-transform:capitalize}.cal-detail-bonus{font-size:var(--text-sm);color:var(--accent2);font-weight:600;white-space:nowrap}.cal-detail-empty{font-size:var(--text-base);color:var(--text-muted);text-align:center;padding:6px 0}.cal-detail-list{list-style:none;display:flex;flex-direction:column;gap:6px}.cal-detail-row{display:flex;align-items:center;gap:8px;font-size:var(--text-base)}.cal-detail-emoji{font-size:var(--text-md);flex-shrink:0}.cal-detail-name{flex:1;color:var(--text)}.cal-detail-val{font-weight:700;color:var(--accent);white-space:nowrap}.activity-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.activity-chart-header h3{margin:0}.activity-chart-period{display:flex;gap:6px}.chart-period-toggle{display:flex;gap:6px;background:var(--card-dark);border-radius:10px;padding:4px}.chart-period-btn{flex:1;background:transparent;border:none;border-radius:8px;color:var(--text-muted);padding:8px 20px;white-space:nowrap;font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.chart-period-btn.active{background:var(--accent2);color:#fff}.chart-period-btn:hover:not(.active){color:var(--text)}.chart-detail-panel{margin-top:10px;padding:12px 14px;background:var(--card-dark);border-radius:10px;border:1px solid rgba(168,230,207,.12);animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.chart-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.chart-detail-date{font-size:var(--text-base);color:var(--text-muted)}.chart-detail-total{font-size:var(--text-md);font-weight:700;color:var(--accent)}.chart-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.chart-detail-item{display:flex;align-items:center;gap:6px;background:#a8e6cf12;border-radius:7px;padding:6px 8px}.chart-detail-emoji{font-size:var(--text-md);flex-shrink:0}.chart-detail-name{font-size:var(--text-sm);color:var(--text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-detail-value{font-size:var(--text-base);font-weight:700;color:var(--text);white-space:nowrap}.chart-detail-empty{font-size:var(--text-base);color:var(--text-muted);text-align:center;padding:4px 0}.achievements-wrap{display:flex;flex-direction:column;gap:20px}.achievements-category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;width:100%;background:transparent;color:var(--text);padding:4px 0;border-radius:0}.achievements-category-header:active{transform:none}.achievements-cat-title{font-size:var(--text-base);font-weight:700;color:var(--text)}.achievements-cat-right{display:flex;align-items:center;gap:8px}.achievements-cat-count{font-size:var(--text-sm);color:var(--accent2);font-weight:600}.achievements-cat-arrow{font-size:var(--text-lg);color:var(--text-muted);transition:transform .2s;display:inline-block}.achievements-cat-arrow.open{transform:rotate(90deg)}.achievements-cat-progress-track{height:6px;background:var(--bg2);border-radius:99px;margin-bottom:10px;overflow:hidden;width:100%}.achievements-cat-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:99px;transition:width .4s ease;min-width:4px}.achievements-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.achievement-badge{background:var(--card-dark);border-radius:12px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;transition:opacity .2s;min-height:120px}.achievement-badge.locked{opacity:.3;filter:grayscale(1)}.achievement-badge.unlocked{border:1px solid var(--accent2)}.achievement-badge.hidden-locked{opacity:.6;background:var(--card-dark);border:1px dashed rgba(168,230,207,.2)}.achievement-badge.hidden-locked .badge-emoji{font-size:var(--text-xl);color:var(--text-muted);font-style:normal;font-weight:700}.achievement-badge.hidden-unlocked{border:2px solid #f0c040;box-shadow:0 0 8px #f0c04040}.badge-emoji{font-size:var(--text-2xl)}.badge-name{font-size:var(--text-base);font-weight:700;color:var(--text)}.badge-desc{font-size:var(--text-xs);color:var(--text-muted)}.badge-date{font-size:var(--text-xs);color:var(--accent2);margin-top:2px}.badge-hint{font-size:var(--text-xs);color:var(--text-muted);font-style:italic;margin-top:2px}.hidden-progress-wrap{display:flex;flex-direction:column;gap:3px;margin-top:6px;width:100%}.hidden-progress-track{width:100%;height:4px;background:#ffffff14;border-radius:99px;overflow:hidden}.hidden-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent2),var(--accent));min-width:3px;transition:width .4s ease}.hidden-progress-label{display:none}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%) translateY(0);background:var(--accent2);color:#fff;border-radius:16px;padding:14px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 6px 24px #0006;z-index:100;min-width:260px;max-width:340px;transition:opacity .35s,transform .35s}.toast-in{opacity:1;transform:translate(-50%) translateY(0)}.toast-out{opacity:0;transform:translate(-50%) translateY(16px)}.toast-emoji{font-size:var(--text-2xl);flex-shrink:0}.toast-text{display:flex;flex-direction:column;gap:2px}.toast-title{font-size:var(--text-sm);opacity:.85;text-transform:uppercase;letter-spacing:.05em}.toast-name{font-size:var(--text-md);font-weight:700}.rank-up-toast{background:#1a2a1a;border:2px solid var(--rank-color, #f5c518);bottom:100px}.rank-up-title{color:#ffffffb3}.rank-up-name{font-size:var(--text-md)}.rank-up-coins{font-size:var(--text-base);font-weight:700;color:#fbbf24;margin-top:1px}.rank-up-badge-img{height:48px;width:auto;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.achievement-toast{background:#1a2a1a;border:2px solid #f5c518}.achievement-toast-title{color:#ffffffb3}.achievement-toast-coins{font-size:var(--text-base);font-weight:700;color:#fbbf24;margin-top:1px}.toast-desc{font-size:var(--text-sm);color:#ffffff8c;margin-top:1px}.leaderboard-list{list-style:none;display:flex;flex-direction:column;gap:8px}.leaderboard-row{display:flex;align-items:center;gap:12px;background:var(--card-dark);border-radius:12px;padding:12px 14px}.leaderboard-row.me{background:var(--accent2);color:#fff}.leaderboard-row.me .lb-name,.leaderboard-row.me .lb-count{color:#fff}.lb-rank{width:28px;text-align:center;font-size:var(--text-lg);flex-shrink:0}.lb-name{flex:1;font-weight:600;font-size:var(--text-md)}.lb-count{font-size:var(--text-md);font-weight:700;color:var(--accent);flex-shrink:0}.groups-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.groups-header h2{margin:0}.create-group-btn{background:var(--accent2);color:#fff;border-radius:10px;padding:7px 14px;font-size:var(--text-md);font-weight:600}.create-group-btn:hover{opacity:.85}.group-tabs{display:flex;gap:6px;margin-bottom:14px;background:var(--card-dark);border-radius:10px;padding:4px}.group-tab{flex:1;background:transparent;color:var(--text-muted);border-radius:8px;padding:8px;font-size:var(--text-md);font-weight:600;transition:background .15s,color .15s}.group-tab.active{background:var(--accent2);color:#fff}.group-list{display:flex;flex-direction:column;gap:8px}.group-row{display:flex;align-items:center;background:var(--card-dark);border-radius:12px;padding:12px 14px;width:100%;text-align:left;cursor:pointer;transition:opacity .15s;border:none;color:var(--text)}.group-row:hover{opacity:.85}.group-row.discover-row{cursor:default}.group-row.discover-row:hover{opacity:1}.group-row-info{flex:1;display:flex;flex-direction:column;gap:3px}.group-row-name{font-weight:700;font-size:var(--text-md)}.group-row-meta{font-size:var(--text-base);color:var(--text-muted)}.group-row-arrow{font-size:var(--text-xl);color:var(--text-muted)}.join-btn{background:var(--accent2);color:#fff;border-radius:8px;padding:6px 14px;font-size:var(--text-base);font-weight:600;flex-shrink:0}.join-btn:hover{opacity:.85}.joined-badge{font-size:var(--text-base);color:var(--accent);font-weight:600;flex-shrink:0}.join-code-section{margin-top:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.join-code-label{font-size:var(--text-base);color:var(--text-muted);margin-bottom:6px}.join-code-row{display:flex;gap:8px;align-items:center}.join-code-input{flex:1;font-size:var(--text-lg);font-weight:700;letter-spacing:.15em;text-align:center;padding:10px 12px;text-transform:uppercase}.join-code-btn{background:var(--accent2);color:#fff;border-radius:10px;padding:0 16px;font-weight:600;font-size:var(--text-md);flex-shrink:0;align-self:stretch}.join-code-btn:disabled{opacity:.5}.group-back-btn{background:transparent;color:var(--text-muted);font-size:var(--text-base);padding:0 0 10px;border:none;cursor:pointer;display:block}.group-back-btn:hover{color:var(--text)}.group-detail-header{margin-bottom:14px}.group-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.group-detail-name{font-size:var(--text-lg);font-weight:700;margin:0}.group-type-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);background:var(--card-dark);border-radius:20px;padding:4px 10px;color:var(--text-muted);line-height:1}.group-locked-info{font-size:var(--text-base);color:var(--accent);margin:4px 0 2px;line-height:1.4}.group-member-count{font-size:var(--text-base);color:var(--text-muted);margin:0}.group-refresh-btn{background:transparent;color:var(--text-muted);font-size:var(--text-base);padding:4px 0;border:none;cursor:pointer;margin-bottom:10px;display:block}.group-refresh-btn:hover{color:var(--text)}.group-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.group-action-btn{background:var(--card-dark);color:var(--text);border-radius:10px;padding:8px 14px;font-size:var(--text-base);font-weight:600;border:none;cursor:pointer;flex:1}.group-action-btn:hover{opacity:.85}.group-action-btn.danger{color:var(--error)}.group-action-btn.danger:hover{background:#ff505026}.group-action-full{width:100%;margin-top:8px}.kick-btn{background:transparent;color:var(--text-muted);font-size:var(--text-base);width:28px;height:28px;padding:0;border-radius:8px;line-height:1;margin-left:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.kick-btn:hover{color:var(--error);background:#ff50501f}.winners-modal{border-radius:var(--radius)!important}.winners-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.winner-row{display:flex;align-items:center;gap:10px;background:var(--card-dark);border-radius:10px;padding:10px 14px}.winner-month{font-size:var(--text-base);color:var(--text-muted);flex:1;text-transform:capitalize}.winner-name{font-size:var(--text-md);font-weight:700;color:var(--text)}.winner-score{font-size:var(--text-base);color:var(--accent);margin-left:auto}.invite-box{margin-top:12px;background:var(--card-dark);border-radius:12px;padding:14px}.invite-label{font-size:var(--text-base);color:var(--text-muted);margin:0 0 8px}.invite-code-row{display:flex;align-items:center;gap:10px}.invite-code{font-size:var(--text-xl);font-weight:800;letter-spacing:.2em;color:var(--accent);flex:1}.copy-btn{background:var(--accent2);color:#fff;border-radius:8px;padding:7px 14px;font-size:var(--text-base);font-weight:600;flex-shrink:0}.copy-btn:hover{opacity:.85}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.toggle-label{font-size:var(--text-md);font-weight:600}.toggle-options{display:flex;gap:6px}.group-period-toggle{justify-content:center;margin:2px 0 6px}.group-period-toggle .toggle-opt{flex:1;max-width:160px}.toggle-opt{background:var(--card-dark);color:var(--text-muted);border-radius:8px;padding:7px 12px;font-size:var(--text-base);font-weight:600;border:none;cursor:pointer;transition:background .15s,color .15s}.toggle-opt.active{background:var(--accent2);color:#fff}.act-lock-section{display:flex;flex-direction:column;gap:6px}.act-lock-label{font-size:var(--text-md);font-weight:600;margin:0}.act-lock-opt{font-weight:400;color:var(--text-muted);font-size:var(--text-base)}.act-lock-hint{font-size:var(--text-base);color:var(--text-muted);margin:0}.act-lock-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.act-lock-btn{background:var(--card-dark);color:var(--text-muted);border-radius:8px;padding:8px 10px;font-size:var(--text-base);font-weight:600;border:2px solid transparent;cursor:pointer;text-align:left;transition:all .15s}.act-lock-btn.selected{background:#5cba8a2e;color:var(--text);border-color:var(--accent2)}.act-lock-btn .act-img{position:relative;top:2px}.board-post-act-img{position:relative;top:2px;margin-right:3px}.event-banner-act-img,.rank-up-act-img,.group-locked-act-img,.duel-meta-act-img,.delete-modal-act-img,.coin-history-act-img{vertical-align:-3px}.group-add-member-btn{width:100%;background:var(--card-dark);color:var(--text);border:none;border-radius:10px;padding:8px 14px;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .15s;text-align:center;margin-top:8px}.group-add-member-btn:hover{background:#ffffff1a}.group-add-member-panel{background:var(--card-dark);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;margin-top:4px;animation:fadeSlideIn .15s ease}.leave-admin-list{display:flex;flex-direction:column;gap:6px;margin:4px 0 8px;max-height:220px;overflow-y:auto;overscroll-behavior:contain}.leave-admin-option{display:flex;align-items:center;gap:10px;background:var(--card-dark);border:2px solid transparent;border-radius:10px;padding:8px 12px;cursor:pointer;color:var(--text);transition:border-color .15s,background .15s;text-align:left;width:100%}.leave-admin-option:hover{background:#ffffff12}.leave-admin-option.selected{border-color:var(--accent2);background:#5cba8a1f}.leave-admin-nick{flex:1;font-size:var(--text-md);font-weight:600}.leave-admin-check{color:var(--accent2);font-weight:700;font-size:var(--text-md);width:1.2rem;text-align:center;flex-shrink:0}.leave-self-btn{font-size:var(--text-md);width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.lb-avatar-wrap{position:relative;flex-shrink:0;display:flex}.lb-pos-badge{position:absolute;top:-4px;left:-4px;font-size:var(--text-lg);line-height:1;z-index:1;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.lb-pos-num{background:var(--accent2);color:#fff;border-radius:50%;width:17px;height:17px;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:800;box-shadow:0 1px 3px #0006}.lb-role-badge{position:absolute;bottom:-2px;right:-2px;font-size:var(--text-sm);line-height:1;background:var(--card-dark);border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0006;cursor:default;z-index:1}.lb-role-clickable{cursor:pointer}.lb-role-clickable:hover{background:#ffffff1a}.role-picker-list{display:flex;flex-direction:column;gap:6px}.role-picker-option{display:flex;align-items:center;gap:12px;background:var(--card-dark);border:2px solid transparent;border-radius:10px;padding:10px 14px;cursor:pointer;color:var(--text);transition:border-color .15s,background .15s;text-align:left;width:100%}.role-picker-option:hover{background:#ffffff0f}.role-picker-option.selected{border-color:var(--accent2);background:#5cba8a1f}.role-picker-emoji{font-size:var(--text-xl);flex-shrink:0}.role-picker-text{display:flex;flex-direction:column;flex:1;gap:1px}.role-picker-label{font-size:var(--text-md);font-weight:700}.role-picker-desc{font-size:var(--text-sm);color:var(--text-muted)}.group-lb-scroll{max-height:350px;overflow-y:auto;overscroll-behavior:contain;margin-bottom:8px}.group-board-section{margin-top:16px;padding-top:14px;border-top:1px solid rgba(168,230,207,.15)}.group-board-title{font-size:var(--text-md);font-weight:700;margin-bottom:6px}.group-board{margin-top:8px;background:#1a3028;border-radius:10px;padding:12px 14px 14px;border:2px solid #2a4a38;box-shadow:inset 0 2px 8px #00000059,0 1px 3px #0000004d;max-height:510px;overflow-y:auto;overscroll-behavior:contain}.board-retro-btn{background:none;border:1px solid rgba(168,230,207,.25);border-radius:20px;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;padding:3px 10px;transition:all .15s;margin-left:auto}.board-retro-btn:hover:not(:disabled){border-color:var(--accent2);color:var(--text)}.board-retro-btn:disabled{opacity:.5;cursor:default}.board-migrate-msg{font-size:var(--text-base);color:var(--accent);margin-bottom:6px}.board-post{background:#ffffff0a;border-radius:7px;padding:9px 11px;margin-bottom:7px;border:1px solid rgba(255,255,255,.07)}.board-post:last-child{margin-bottom:0}.board-post-header{display:flex;align-items:center;gap:6px;margin-bottom:3px}.board-post-author{font-size:var(--text-base);font-weight:700;color:#a8e6cf}.board-type-badge{font-size:var(--text-md)}.board-post-time{font-size:var(--text-sm);color:#a8e6cf73;margin-left:auto}.board-post-text{font-size:var(--text-base);color:#dcf0e6d9;line-height:1.4;word-break:break-word}.board-post-text--activity{color:#7dd3a8}.board-post-text--achievement{color:#fbbf24}.board-post-text--challenge{color:#f97316}.board-post-text--weekly{color:#a78bfa}.board-reactions{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}.board-reaction-btn{background:#00000040;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:3px 10px;font-size:var(--text-sm);font-weight:600;cursor:pointer;color:#a8e6cf8c;transition:background .15s,border-color .15s,color .15s;display:flex;align-items:center;gap:4px;white-space:nowrap}.board-reaction-btn:hover{border-color:#a8e6cf66;color:#a8e6cf}.board-reaction-btn.active{background:#5cba8a33;border-color:#5cba8a8c;color:#a8e6cf}.board-reaction-count{font-size:var(--text-sm);opacity:.85}.board-reaction-btn.readonly{cursor:default;pointer-events:none}.board-reaction-actions{display:flex;gap:4px;margin-left:auto;align-items:center}.board-reaction-quick,.board-reaction-more{width:36px;padding:3px 0;font-size:var(--text-base);justify-content:center}.board-reaction-more{font-size:var(--text-md);letter-spacing:1px}.board-reaction-more.board-reaction-more--picked{font-size:var(--text-base);letter-spacing:normal}.board-reaction-more-wrap{position:relative}.reaction-dropdown{position:absolute;right:0;bottom:calc(100% + 6px);background:var(--bg2);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:6px;min-width:180px;z-index:200;box-shadow:0 8px 24px #00000080;animation:fadeInUp .12s ease}.reaction-dropdown--fixed{position:fixed;right:unset;bottom:unset}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.reaction-dropdown-section{display:flex;flex-direction:column;gap:2px}.reaction-dd-btn{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;border:none;background:transparent;color:#fffc;font-size:var(--text-base);cursor:pointer;transition:background .12s;text-align:left;width:100%}.reaction-dd-btn:hover{background:#ffffff12}.reaction-dd-btn.active{background:#5cba8a26;color:#a8e6cf}.reaction-dd-btn.locked{opacity:.45;cursor:not-allowed}.reaction-dd-btn.locked:hover{background:transparent}.reaction-dd-emoji{font-size:var(--text-lg);width:22px;text-align:center;flex-shrink:0}.reaction-dd-text{flex:1}.reaction-dd-count{font-size:var(--text-sm);background:#ffffff1a;border-radius:10px;padding:1px 6px;margin-left:auto;flex-shrink:0}.reaction-dd-locked-hint{font-size:var(--text-xs);color:#ffffff59;margin-left:auto;flex-shrink:0}.reaction-dd-divider{height:1px;background:#ffffff14;margin:4px 0}.reaction-dd-label{font-size:var(--text-xs);color:#ffffff59;text-transform:uppercase;letter-spacing:.07em;padding:2px 8px 4px;display:block}.duels-section{display:flex;flex-direction:column;gap:10px}.duels-section h2{margin-bottom:0}.duels-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.duels-header h2{margin:0}.duel-challenge-btn{background:#5cba8a26;border:1px solid rgba(92,186,138,.4);border-radius:20px;color:var(--accent);font-size:var(--text-base);font-weight:600;padding:7px 20px;cursor:pointer;transition:all .15s;white-space:nowrap;align-self:center;width:fit-content}.duel-challenge-btn:hover{background:#5cba8a40;border-color:var(--accent)}.friend-picker-modal{max-width:340px;width:90%;padding:20px}.friend-picker-list{display:flex;flex-direction:column;gap:6px;margin-top:14px}.friend-picker-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;transition:background .15s;color:var(--text);text-align:left;width:100%}.friend-picker-row:hover{background:#5cba8a1f;border-color:#5cba8a4d}.friend-picker-nick{flex:1;font-weight:600;font-size:var(--text-md)}.friend-picker-arrow{color:var(--text-muted);font-size:var(--text-lg)}.duel-pending-row{background:var(--card-dark);border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.duel-pending-row.duel-sent{opacity:.75}.duel-pending-info{display:flex;align-items:center;gap:10px;flex:1}.duel-pending-icon{font-size:var(--text-xl);flex-shrink:0}.duel-pending-title{font-size:var(--text-md);color:var(--text);margin:0}.duel-pending-meta{font-size:var(--text-sm);color:var(--text-muted);margin:2px 0 0}.duel-pending-actions{display:flex;gap:8px;flex-shrink:0}.duel-accept-btn{background:var(--accent2);color:#fff;border-radius:10px;padding:8px 14px;font-size:var(--text-base);font-weight:700}.duel-decline-btn{background:#dc3c3c33;color:var(--error);border-radius:10px;padding:8px 14px;font-size:var(--text-base);font-weight:600}.duel-card{background:var(--card-dark);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.duel-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.duel-player-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px}.duel-player-col.right{align-items:center}.duel-player-name{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.duel-vs-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}.duel-countdown{font-size:var(--text-lg);font-weight:800;color:var(--accent);letter-spacing:.03em;font-variant-numeric:tabular-nums}.duel-activities-label{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.duel-progress-track{height:12px;border-radius:8px;background:var(--bg2);display:flex;overflow:hidden}.duel-progress-me{background:var(--accent2);border-radius:8px 0 0 8px;transition:width .4s ease;min-width:2px}.duel-progress-opponent{background:#b4b4b44d;border-radius:0 8px 8px 0;transition:width .4s ease;min-width:2px}.duel-score-labels{display:flex;justify-content:space-between;font-size:var(--text-base)}.duel-score-me{color:var(--accent);font-weight:700}.duel-score-opp{color:var(--text-muted)}.duel-card-actions{display:flex;gap:8px;justify-content:flex-end}.duel-refresh-btn{background:var(--card);color:var(--text-muted);border-radius:8px;padding:6px 12px;font-size:var(--text-base)}.duel-giveup-btn{background:transparent;color:#ff6464b3;border-radius:8px;padding:6px 10px;font-size:var(--text-base)}.duel-finished-row{display:flex;align-items:center;gap:12px;background:#ffffff0a;border-radius:8px;padding:10px 14px;border:2px solid rgba(255,255,255,.06);margin-bottom:6px}.modal-card.coin-history-modal.duel-history-modal{overflow:hidden}.duel-history-modal .duel-history-list{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;max-height:calc(100% - 110px);padding-right:10px;padding-left:10px}.duel-history-list .group-board{margin-top:0;max-height:none;overflow-y:visible}.duel-finished-row:last-child{margin-bottom:0}.duel-finished-row.won{border-width:3px;border-color:#5cba8aa6}.duel-finished-row.lost{border-width:3px;border-color:#dc3c3ca6}.duel-finished-row.draw{border-width:3px;border-color:#f0c040a6}.duel-finished-icon{font-size:var(--text-xl);flex-shrink:0}.duel-finished-title{font-size:var(--text-base);color:var(--text);margin:0}.duel-finished-score{font-size:var(--text-sm);color:var(--text-muted);margin:2px 0 0}.duel-challenge-btn{width:100%;background:#5cba8a26;border:2px solid var(--accent2);color:var(--accent);border-radius:14px;padding:14px;font-size:var(--text-md);font-weight:700;margin-top:8px;transition:background .2s}.duel-challenge-btn:hover{background:#5cba8a47}.duel-already-active{width:100%;text-align:center;padding:10px 16px;background:var(--card-dark);border-radius:var(--radius);font-size:var(--text-base);color:var(--text-muted);font-weight:600}.duel-duration-row{display:flex;gap:8px}.duel-duration-btn{flex:1;padding:10px 8px;border-radius:10px;font-size:var(--text-base);font-weight:600;background:var(--card-dark);color:var(--text-muted);transition:background .15s,color .15s}.duel-duration-btn.selected{background:#5cba8a2e;color:var(--accent2);border:1px solid var(--accent2)}.duel-target-label{font-size:var(--text-md);color:var(--text-muted);margin-bottom:4px}.duel-target-label strong{color:var(--text)}.duel-sent{display:flex;align-items:center;gap:10px}.duel-cancel-btn{margin-left:auto;flex-shrink:0;background:#ffffff14;border:none;color:var(--text-muted);border-radius:8px;width:30px;height:30px;font-size:var(--text-base);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}.duel-cancel-btn:hover{background:#c83c3c40;color:#e06c6c}.profile-header-actions{display:flex;align-items:center;gap:4px}.profile-settings-btn,.profile-logout-btn{background:none;border:none;font-size:var(--text-lg);cursor:pointer;padding:4px 6px;border-radius:8px;transition:background .15s;line-height:1}.profile-settings-btn:hover,.profile-logout-btn:hover{background:#ffffff14}.settings-lang-list{display:flex;flex-direction:row;gap:10px}.settings-lang-btn{padding:6px;border-radius:12px;background:var(--card-dark);line-height:0}.settings-lang-btn.active{background:var(--accent2)}.lang-flag-img{width:40px;height:40px;border-radius:8px;object-fit:cover;display:block}.settings-units-list{display:flex;flex-direction:row;gap:10px}.settings-units-btn{padding:10px 16px;border-radius:12px;background:var(--card-dark);color:var(--text);font-size:var(--text-base);font-weight:600}.settings-units-btn.active{background:var(--accent2);color:#fff}.settings-modal{width:min(420px,92vw);padding:0;overflow:hidden}.settings-modal .modal-header{padding:18px 20px 14px 24px}.settings-menu{display:flex;flex-direction:column;gap:0}.settings-menu-btn{display:flex;align-items:center;gap:14px;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.07);padding:16px 20px;cursor:pointer;color:var(--text);transition:background .15s;text-align:left;width:100%}.settings-menu-btn:last-child{border-bottom:none}.settings-menu-btn:hover{background:#ffffff0d}.settings-menu-icon{font-size:var(--text-lg);flex-shrink:0}.settings-menu-text{display:flex;flex-direction:column;flex:1;gap:2px}.settings-menu-label{font-size:var(--text-md);font-weight:600}.settings-menu-sub{font-size:var(--text-sm);color:var(--text-muted)}.settings-menu-arrow{color:var(--text-muted);font-size:var(--text-lg)}.settings-form-wrap{padding:4px 20px 20px;display:flex;flex-direction:column;gap:10px}.settings-form-wrap h4{margin:0 0 4px;font-size:var(--text-md);color:var(--text)}.settings-back-btn{background:none;border:none;color:var(--accent);font-size:var(--text-base);font-weight:700;cursor:pointer;padding:10px 0 4px;text-align:left}.settings-label{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:-4px}.settings-success{display:flex;flex-direction:column;align-items:center;gap:14px;padding:12px 0 4px;text-align:center;color:var(--accent2);font-weight:600}.settings-menu-btn--danger .settings-menu-label{color:#e06c6c}.settings-menu-btn--danger .settings-menu-icon{filter:grayscale(.2)}.settings-delete-title{color:#e06c6c;margin:0 0 2px}.settings-delete-warning{font-size:var(--text-base);color:var(--text-muted);line-height:1.5;margin:0 0 4px}.settings-delete-warning strong{color:#e06c6c}.settings-math-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.settings-math-problem{font-size:var(--text-lg);font-weight:700;color:var(--text);white-space:nowrap}.settings-math-input{width:72px;text-align:center;font-size:var(--text-lg);font-weight:700;padding:8px 10px;border-radius:10px;border:1.5px solid rgba(255,255,255,.12);background:var(--card-dark);color:var(--text)}.settings-math-input::-webkit-outer-spin-button,.settings-math-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-math-input[type=number]{-moz-appearance:textfield}.settings-delete-btn{width:100%;padding:12px;border-radius:12px;border:none;background:#c0392b;color:#fff;font-size:var(--text-md);font-weight:700;cursor:pointer;margin-top:4px;transition:background .15s}.settings-delete-btn:hover:not(:disabled){background:#a93226}.settings-delete-btn:disabled{opacity:.6;cursor:not-allowed}.header-help-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:50%;width:30px;height:30px;color:var(--text-muted);font-size:var(--text-md);font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-help-btn:hover{background:#ffffff26;color:var(--text)}.help-modal{max-width:480px;width:92%;display:flex;flex-direction:column;padding:0;overflow:hidden}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.help-modal-header h3,.help-modal-header .confirm-title{font-size:var(--text-lg);font-weight:700;color:var(--text);margin:0;text-transform:none;letter-spacing:normal}.help-modal-title{margin:0;font-size:var(--text-lg)}.modal-close-btn{background:none;border:none;color:var(--text-muted);font-size:var(--text-md);cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .15s}.modal-close-btn:hover{color:var(--text);background:#ffffff14}.help-modal-body{overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px}.help-section-title{font-size:var(--text-md);font-weight:700;margin-bottom:4px}.help-section-text{font-size:var(--text-base);color:var(--text-muted);line-height:1.5;margin:0}.help-section-hint{background:#5cba8a1f;border-left:3px solid var(--accent);border-radius:6px;padding:8px 12px;font-size:var(--text-base);color:var(--text);line-height:1.5;margin-bottom:6px}.help-section--welcome{background:var(--card-dark);border-radius:12px;padding:14px 16px}@media (max-width: 520px){.friends-panel,.notif-panel{position:fixed;top:56px;left:8px;right:8px;width:auto;max-width:none}.calendar-grid,.calendar-dow{width:100%;overflow:hidden}.cal-cell{min-width:0;min-height:0}}
