:root{--pink:#ffb5c2;--pink-light:#ffe0e6;--pink-dark:#f48fb1;--mint:#c8e6c9;--mint-light:#e8f5e9;--mint-dark:#81c784;--orange:#ffe0b2;--orange-light:#fff8e1;--orange-dark:#ffb74d;--blue:#b3e5fc;--blue-light:#e1f5fe;--blue-dark:#4fc3f7;--purple:#ce93d8;--purple-light:#f3e5f5;--text-primary:#4a4a4a;--text-secondary:#9e9e9e;--text-light:#fff;--bg:#fff8f0;--bg-white:#fff;--shadow:0 2px 12px #00000014;--shadow-lg:0 8px 30px #0000001f;--shadow-xl:0 12px 40px #00000026;--shadow-inner:inset 0 1px 0 #fffc;--radius:16px;--radius-sm:10px;--radius-lg:20px;--radius-full:50%;--font:"PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none}#root{height:100%}input,button,select{font-family:inherit}button{cursor:pointer;background:0 0;border:none}input:focus{outline:none}.app-container{background:#fff8f0;flex-direction:column;max-width:430px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 40px #0000000f}.app-content{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:8px;overflow:hidden auto}.app-content::-webkit-scrollbar{width:0}.auth-page{background:linear-gradient(135deg, var(--pink-light), var(--mint-light));justify-content:center;align-items:center;height:100dvh;padding:20px;display:flex}.auth-card{width:100%;max-width:360px;box-shadow:var(--shadow-xl), var(--shadow-inner);text-align:center;background:linear-gradient(145deg,#fff,#fff5f5);border-radius:24px;padding:40px 28px}.auth-logo{margin-bottom:12px;font-size:64px}.auth-title{color:var(--text-primary);margin-bottom:8px;font-size:28px;font-weight:700}.auth-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-input{border-radius:var(--radius-sm);background:var(--bg);border:1px solid #e8e8e8;width:100%;padding:14px 16px;font-size:15px;transition:border-color .2s,box-shadow .2s}.auth-input:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ffb5c233}.auth-btn{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--pink), var(--pink-dark));color:var(--text-light);padding:14px;font-size:16px;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #f48fb14d}.auth-btn:active{transform:scale(.97);box-shadow:0 2px 6px #f48fb133}.auth-link{color:var(--pink-dark);padding:4px;font-size:13px}.auth-error{color:#e53935;font-size:13px}.pair-code-display{letter-spacing:8px;color:var(--pink-dark);background:var(--pink-light);border-radius:var(--radius-sm);margin:12px 0;padding:12px 20px;font-size:32px;font-weight:700}.page{padding:0 16px 16px;animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-header{padding:env(safe-area-inset-top,8px) 4px 0;justify-content:space-between;align-items:center;min-height:44px;margin-bottom:12px;display:flex}.header-title{color:var(--text-primary);font-size:22px;font-weight:700}.header-note{color:var(--text-secondary);background:var(--mint-light);border-radius:20px;padding:2px 10px;font-size:11px}.sync-badge{background:linear-gradient(135deg, var(--pink-light), var(--orange-light));border-radius:20px;padding:4px 12px;font-size:12px;animation:2s infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.status-area{align-items:center;gap:8px;margin-bottom:16px;display:flex}.status-card{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);flex:1;align-items:center;gap:12px;padding:14px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.status-card:active{transform:scale(.97)}.status-card.me{border-left:3px solid var(--pink)}.status-card.partner{border-left:3px solid var(--blue)}.avatar-circle{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex}.status-card.me .avatar-circle{background:var(--pink-light)}.status-card.partner .avatar-circle{background:var(--blue-light)}.status-avatar{position:relative}.squatting-badge{font-size:16px;position:absolute;bottom:-4px;right:-4px}.squatting-badge.animated{animation:1s infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.status-info{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.status-name{margin-bottom:4px;font-size:15px;font-weight:600}.status-state{color:var(--text-secondary);text-align:center;white-space:nowrap;font-size:11px}.status-meta{color:var(--text-secondary);font-size:11px}.status-divider{flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.status-info.unpaired{justify-content:center;align-items:flex-start;gap:3px}.unpaired-title{font-size:15px;font-weight:600;line-height:1.3}.unpaired-sub{color:var(--text-secondary);word-break:break-word;font-size:12px;line-height:1.3}.dt-entry{border-radius:var(--radius-sm);background:var(--pink-light);border:1.5px solid var(--pink-dark);cursor:pointer;align-items:center;gap:6px;margin:4px 0 12px;padding:10px 16px;transition:transform .2s;display:flex;position:relative}.dt-entry:active{transform:scale(.97)}.dt-entry-icon{font-size:16px}.dt-entry-text{color:var(--text-primary);font-size:14px;font-weight:700}.dt-entry-dot{background:#e53935;border:1.5px solid #000;border-radius:50%;width:10px;height:10px;position:absolute;top:8px;right:8px}.dt-popup{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#ffffffeb;border:1px solid #c8c8c866;width:100%;max-width:430px;max-height:75vh;margin:0 auto;padding:20px;overflow-y:auto;box-shadow:0 -4px 20px #00000014}.dt-list{flex-direction:column;gap:8px;margin-top:4px;display:flex}.dt-item{border-radius:var(--radius-sm);background:var(--bg);border:1px solid #0000;justify-content:space-between;align-items:center;padding:12px 14px;transition:transform .2s,border-color .2s,opacity .2s;display:flex}.dt-item:active{transform:scale(.98)}.dt-item.claimed{opacity:.55}.dt-item.ready{border-color:var(--pink);background:var(--pink-light)}.dt-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dt-name{font-size:13px;font-weight:600}.dt-xp{color:var(--pink-dark);font-size:11px;font-weight:600}.dt-right{flex-shrink:0;margin-left:8px}.dt-btn{border:1.5px solid #000;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background .2s,opacity .2s}.dt-btn:active{transform:scale(.93)}.dt-btn.claim{background:linear-gradient(135deg, var(--pink), var(--pink-dark));color:var(--text-light)}.dt-btn.todo{background:var(--orange-light);color:#bf8c4a;cursor:default;border-color:#bf8c4a}.dt-btn.claimed{background:var(--mint-light);color:#388e3c;cursor:default;border-color:#388e3c}.dt-toast{color:#fff;z-index:300;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;border-radius:24px;padding:10px 24px;font-size:14px;font-weight:600;animation:.25s dtToastIn;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}@keyframes dtToastIn{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.profile-xp-bar{align-items:center;gap:8px;margin-top:8px;display:flex}.pxp-label{color:var(--text-secondary);flex-shrink:0;font-size:11px}.pxp-track{background:#f0f0f0;border-radius:3px;flex:1;height:6px;overflow:hidden}.pxp-fill{background:linear-gradient(90deg, var(--pink), var(--pink-dark));border-radius:3px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.action-area{text-align:center;margin:8px 0 16px}.btn-squat{border-radius:var(--radius-full);backface-visibility:hidden;flex-direction:column;justify-content:center;align-items:center;width:160px;height:160px;margin:0 auto;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.btn-start:before{content:"";pointer-events:none;border:2px solid #ffb5c240;border-radius:50%;animation:3s ease-in-out infinite btnGlow;position:absolute;inset:-6px}.btn-start{color:var(--text-light);background:radial-gradient(circle at 40% 35%,#ffd0d8 0%,#ffb5c2 40%,#f48fb1 100%);box-shadow:0 6px 24px #f48fb140}.btn-start:active{transform:scale(.92)}.btn-start .btn-icon{margin-bottom:2px;font-size:32px}.btn-start .btn-text{letter-spacing:.5px;text-shadow:0 1px 3px #0000001a;font-size:22px;font-weight:800}.btn-finish{color:var(--text-light);background:radial-gradient(circle at 40% 35%,#d4edda 0%,#c8e6c9 40%,#81c784 100%);box-shadow:0 6px 24px #81c78440}.btn-finish:active{transform:scale(.92)}.btn-finish .btn-icon{margin-bottom:2px;font-size:32px}.btn-finish .btn-text{letter-spacing:.5px;text-shadow:0 1px 3px #0000001a;font-size:22px;font-weight:800}@keyframes btnGlow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.04)}}.btn-icon{margin-bottom:6px;font-size:48px}.btn-text{font-size:20px;font-weight:700}.squatting-active{flex-direction:column;align-items:center;gap:8px;display:flex}.squatting-timer{text-align:center}.timer-icon{font-size:36px}.timer-text{font-size:28px;font-weight:700}.timer-label{color:var(--text-secondary);font-size:14px}.squatting-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.btn-squat-action{border-radius:var(--radius-sm);background:var(--bg-white);box-shadow:var(--shadow);padding:8px 16px;font-size:13px;font-weight:600;transition:transform .2s}.btn-squat-action:active{transform:scale(.95)}.btn-squat-action.sos{color:#e53935}.chat-section{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:8px;overflow:hidden}.chat-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.nest-status{color:var(--mint-dark);background:var(--mint-light);border-radius:20px;padding:2px 8px;font-size:11px}.chat-area{padding:10px}.chat-messages{flex-direction:column;gap:6px;max-height:160px;margin-bottom:8px;display:flex;overflow-y:auto}.chat-msg{display:flex}.chat-msg.me{justify-content:flex-end}.chat-msg.partner{justify-content:flex-start}.msg-bubble{word-break:break-all;border-radius:16px;max-width:75%;padding:6px 12px;font-size:13px;line-height:1.4}.chat-msg.me .msg-bubble{background:var(--pink);color:var(--text-light);border-bottom-right-radius:4px}.chat-msg.partner .msg-bubble{background:var(--blue-light);color:var(--text-primary);border-bottom-left-radius:4px}.chat-empty{text-align:center;color:var(--text-secondary);padding:16px;font-size:13px}.chat-waiting{text-align:center;color:var(--text-secondary);padding:20px}.chat-waiting p{font-size:14px}.emoji-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.emoji-btn{border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;align-items:center;gap:2px;padding:6px 4px;transition:transform .2s,background .2s;display:flex}.emoji-btn:active{background:var(--pink-light);transform:scale(.9)}.emoji-char{font-size:24px}.emoji-label{color:var(--text-secondary);font-size:9px}.chat-input-row{gap:6px;display:flex}.chat-input{background:var(--bg);border:1px solid #e0e0e0;border-radius:20px;flex:1;padding:8px 12px;font-size:13px}.chat-emoji-toggle{background:var(--bg);border:1px solid #e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.chat-send{background:var(--pink);color:var(--text-light);border-radius:20px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.emoji-popup{background:var(--bg-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:50;border:1px solid #e8e8e8;margin-bottom:4px;padding:8px;position:absolute;bottom:100%;left:0;right:0}.tab-bar{background:var(--bg-white);padding:4px 0;padding-bottom:max(4px, env(safe-area-inset-bottom));border-top:1px solid #f0f0f0;flex-shrink:0;display:flex;position:relative}.tab-bar:before{content:"";background:linear-gradient(90deg,#0000,#c8c8c84d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.tab-item{color:var(--text-secondary);flex-direction:column;flex:1;align-items:center;gap:1px;padding:3px 0;transition:color .2s;display:flex}.tab-item.active{color:var(--pink-dark);position:relative}.tab-item.active:after{content:"";background:var(--pink);border-radius:2px;width:24px;height:3px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.tab-icon{font-size:20px}.tab-label{font-size:10px;font-weight:500}.panel-overlay{z-index:100;background:#0006;align-items:flex-end;animation:.3s slideUp;display:flex;position:fixed;inset:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.health-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(145deg,#fff,#fff5f5);width:100%;max-width:430px;max-height:85vh;margin:0 auto;padding:20px;overflow-y:auto;box-shadow:0 -4px 20px #0000001a}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.btn-close{color:var(--text-secondary);padding:4px 10px;font-size:13px}.form-group{margin-bottom:16px}.form-group label{margin-bottom:8px;font-size:14px;font-weight:600;display:block}.label-note{color:var(--text-secondary);font-size:11px;font-weight:400}.slider-row{align-items:center;gap:10px;display:flex}.slider-row input[type=range]{accent-color:var(--pink-dark);flex:1}.slider-value{text-align:right;min-width:60px;font-size:14px;font-weight:600}.star-row{justify-content:center;align-items:center;gap:4px;display:flex}.star-btn{color:#e0e0e0;font-size:28px;transition:transform .2s,color .2s}.star-btn.active{color:#ffb300;transform:scale(1.05)}.star-btn:active{transform:scale(1.2)}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag-btn{background:var(--bg);border:1px solid #e8e8e8;border-radius:20px;padding:6px 12px;font-size:12px;transition:transform .2s,background .2s,border-color .2s}.tag-btn.active{background:var(--pink-light);border-color:var(--pink);color:var(--pink-dark);font-weight:600}.tag-btn.positive.active{background:var(--mint-light);border-color:var(--mint-dark);color:#388e3c}.tag-btn.warn.active{background:var(--orange-light);border-color:var(--orange-dark);color:#e65100}.btn-unfold{border-radius:var(--radius-sm);background:var(--bg);color:var(--text-secondary);border:1px dashed #ccc;padding:8px 16px;font-size:13px}.stool-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.stool-btn{border-radius:var(--radius-sm);background:var(--bg);border:1px solid #e8e8e8;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:transform .2s,background .2s,border-color .2s;display:flex}.stool-btn.active{background:var(--orange-light);border-color:var(--orange-dark)}.stool-icon{font-size:24px}.stool-name{font-size:10px;font-weight:600}.btn-submit{background:linear-gradient(135deg, var(--mint), var(--mint-dark));width:100%;color:var(--text-light);border-radius:var(--radius-sm);margin-top:8px;padding:14px;font-size:16px;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #81c7844d}.btn-submit:active{transform:scale(.97);box-shadow:0 2px 6px #81c78433}.btn-primary{border-radius:var(--radius-sm);color:var(--text-light);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:12px 24px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #0000001f}.btn-primary:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#fff3,#0000);height:50%;position:absolute;top:0;left:0;right:0}.btn-primary:active{transform:scale(.96);box-shadow:0 2px 6px #00000026}.btn-primary-green{background:linear-gradient(135deg,#66bb6a,#43a047)}.btn-primary-green:active{background:linear-gradient(135deg,#43a047,#2e7d32)}.btn-primary-pink{background:linear-gradient(135deg, var(--pink), var(--pink-dark))}.btn-primary-pink:active{background:linear-gradient(135deg, var(--pink-dark), #ec407a)}.btn-small{background:var(--pink);color:var(--text-light);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 6px #f48fb133}.btn-small:active{transform:scale(.95)}.btn-small.active{background:var(--pink-dark);color:var(--text-light);box-shadow:0 2px 8px #f48fb14d}.btn-small.cancel{color:var(--text-secondary);box-shadow:none;background:#e0e0e0}.avatar-img{object-fit:cover;border-radius:50%;width:48px;height:48px}.chart-empty-state{text-align:center;color:var(--text-secondary);background:var(--bg);border-radius:var(--radius-sm);margin:8px 0;padding:40px 16px;font-size:14px}.pk-summary{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);justify-content:center;align-items:center;gap:24px;margin-bottom:16px;padding:16px 20px;display:flex;position:relative;overflow:hidden}.pk-summary:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.pk-stat{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.pk-stat-value{color:var(--pink-dark);font-size:24px;font-weight:700}.pk-stat-label{color:var(--text-secondary);white-space:nowrap;font-size:13px}.pk-stat-vs{color:var(--orange-dark);font-size:18px;font-weight:700}.fun-tabs{gap:8px;margin-bottom:14px;display:flex}.fun-tab{border-radius:var(--radius-sm);background:var(--bg-white);box-shadow:var(--shadow);border:2px solid #0000;flex:1;padding:8px;font-size:13px;font-weight:600;transition:transform .2s,border-color .2s,background .2s}.fun-tab.active{border-color:var(--pink);background:linear-gradient(135deg, var(--pink-light), #fff0f0);color:var(--pink-dark);box-shadow:0 2px 8px #f48fb133}.pk-card{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:12px;padding:16px;position:relative;overflow:hidden}.pk-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.pk-card h3{margin-bottom:10px;font-size:14px}.pk-rank{flex-direction:column;gap:8px;display:flex}.pk-rank-item{background:var(--bg);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:8px 12px;display:flex}.rank-pos{font-size:18px}.rank-count{margin-left:auto;font-weight:600}.bet-list{margin-bottom:12px}.bet-card{border-radius:var(--radius-sm);box-shadow:var(--shadow);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:10px;padding:14px}.bet-title{margin-bottom:4px;font-size:14px;font-weight:600}.bet-stake{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.bet-status{margin-bottom:8px;font-size:12px;font-weight:600}.status-active .bet-status{color:var(--pink-dark)}.status-won .bet-status{color:var(--mint-dark)}.status-lost .bet-status{color:#e53935}.btn-bet-new{width:100%;color:var(--pink-dark);background:var(--pink-light);border-radius:var(--radius-sm);border:2px dashed var(--pink);padding:12px;font-size:14px;font-weight:600}.new-bet-form{flex-direction:column;gap:10px;display:flex}.form-input{border-radius:var(--radius-sm);background:var(--bg);border:1px solid #e0e0e0;width:100%;padding:10px 14px;font-size:14px}.form-actions{justify-content:flex-end;gap:8px;display:flex}.empty-state{text-align:center;padding:24px}.empty-state p{color:var(--text-secondary);font-size:14px}.empty-hint{color:var(--text-secondary);margin-top:4px;font-size:12px}.health-tabs{gap:8px;margin-bottom:14px;display:flex}.health-tab{border-radius:var(--radius-sm);background:var(--bg-white);box-shadow:var(--shadow);border:2px solid #0000;flex:1;padding:8px;font-size:13px;font-weight:600;transition:transform .2s,border-color .2s,background .2s}.health-tab.active{border-color:var(--mint-dark);background:linear-gradient(135deg, var(--mint-light), #f0fff0);color:#388e3c;box-shadow:0 2px 8px #81c78433}.risk-card{border-radius:var(--radius);text-align:center;margin-bottom:16px;padding:24px;position:relative;overflow:hidden}.risk-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);height:1px;position:absolute;top:0;left:0;right:0}.risk-emoji{margin-bottom:8px;font-size:48px}.risk-level{margin-bottom:6px;font-size:18px;font-weight:700}.risk-msg{opacity:.8;font-size:14px}.analysis-section h3{margin:14px 0 8px;font-size:14px}.cause-list,.suggestion-list{padding:0;list-style:none}.cause-list li,.suggestion-list li{background:var(--bg);border-radius:var(--radius-sm);margin-bottom:4px;padding:6px 12px;font-size:13px;line-height:1.5}.suggestion-list li:before{content:"💡 "}.disclaimer{color:var(--text-secondary);background:var(--orange-light);border-radius:var(--radius-sm);text-align:center;margin-top:12px;padding:8px;font-size:11px}.data-connect{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-top:16px;padding:16px;position:relative;overflow:hidden}.data-connect:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.data-connect h3{margin-bottom:10px;font-size:14px}.connect-toggle{justify-content:space-between;align-items:center;font-size:13px;display:flex}.toggle-btn{color:var(--text-secondary);background:#e0e0e0;border-radius:20px;padding:4px 14px;font-size:12px;font-weight:600;transition:transform .2s,background .2s}.toggle-btn.on{background:var(--mint-dark);color:var(--text-light)}.connect-info{margin-top:12px}.data-item{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:8px 4px;font-size:13px;display:flex}.data-privacy{color:var(--text-secondary);text-align:center;margin-top:8px;font-size:11px}.care-section{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:16px;padding:16px;position:relative;overflow:hidden}.care-section:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.care-section h3{margin-bottom:8px;font-size:14px}.btn-send-care{background:var(--pink);width:100%;color:var(--text-light);border-radius:var(--radius-sm);padding:10px;font-size:14px;font-weight:600;transition:transform .2s}.btn-send-care:active{transform:scale(.97)}.report-card{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:14px;padding:20px;position:relative;overflow:hidden}.report-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.report-card h3{margin-bottom:14px;font-size:16px}.report-stats{justify-content:space-around;margin-bottom:14px;display:flex}.report-stat{text-align:center}.report-stat-value{color:var(--pink-dark);font-size:28px;font-weight:700}.report-stat-label{color:var(--text-secondary);font-size:12px}.report-trend{text-align:center;margin-bottom:10px;font-size:13px}.trend-up{color:var(--mint-dark);font-weight:600}.profile-card{text-align:center;border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:16px;padding:24px;position:relative;overflow:hidden}.profile-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.profile-avatar-large{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--pink-light), var(--pink));justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 12px;font-size:40px;display:flex;box-shadow:0 4px 12px #ffb5c24d}.profile-name{cursor:pointer;margin-bottom:4px;font-size:18px;font-weight:700}.profile-since{color:var(--text-secondary);font-size:13px}.settings-section{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:16px;padding:16px;position:relative;overflow:hidden}.settings-section:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.settings-section h3{margin-bottom:10px;font-size:14px}.settings-list{flex-direction:column;gap:4px;display:flex}.setting-item{border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:10px 4px;font-size:14px;display:flex}.setting-item:last-child{border:none}.toggle-sm{color:var(--text-secondary);background:#e0e0e0;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600;transition:transform .2s,background .2s}.toggle-sm.on{background:var(--mint-dark);color:var(--text-light)}.setting-arrow{color:var(--text-secondary);font-size:20px}.achievements-section{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);cursor:pointer;background:linear-gradient(145deg,#fff,#fff5f5);flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px;display:flex;position:relative;overflow:hidden}.achievements-section:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.achievements-section h3{font-size:14px}.ach-count{color:var(--text-secondary);font-size:12px;font-weight:400}.achievements-grid{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:12px;display:grid}.ach-card{text-align:center;border-radius:var(--radius-sm);background:var(--bg);padding:10px 6px;font-size:11px}.ach-card.locked{opacity:.6}.ach-icon{margin-bottom:4px;font-size:22px}.ach-name{margin-bottom:2px;font-weight:600}.ach-progress{color:var(--text-secondary);font-size:10px}.danger-section{text-align:center;margin-bottom:16px}.btn-danger{color:#e53935;border-radius:var(--radius-sm);background:#ffebee;padding:8px 20px;font-size:13px;transition:transform .2s}.btn-danger:active{transform:scale(.95)}.about-section{text-align:center;padding:12px}.about-section p{color:var(--text-secondary);font-size:12px}.about-disclaimer{margin-top:4px;font-size:11px}.calendar-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.calendar-nav-btn{color:var(--pink-dark);padding:4px 12px;font-size:24px}.calendar-title{font-size:16px;font-weight:600}.calendar-grid{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px;padding:12px;display:grid;position:relative;overflow:hidden}.calendar-grid:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.calendar-header-cell{text-align:center;color:var(--text-secondary);padding:4px 0;font-size:11px;font-weight:600}.calendar-cell{text-align:center;border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;min-height:48px;padding:6px 2px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.calendar-cell.has-data:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.calendar-cell.selected{outline:2px solid var(--pink-dark);outline-offset:-2px;transform:scale(1.05)}.calendar-cell.selected .calendar-day-num{font-weight:700}.calendar-day-num{z-index:1;font-size:14px;font-weight:600;line-height:1.2;position:relative}.calendar-cell-bottom{z-index:1;justify-content:center;align-items:center;gap:2px;margin-top:2px;display:flex;position:relative}.calendar-stool-icon{font-size:11px;line-height:1}.calendar-count{color:var(--text-secondary);background:#00000014;border-radius:8px;padding:0 4px;font-size:9px;font-weight:600;line-height:1.4}.calendar-cell.smooth{border-radius:var(--radius-sm);background:linear-gradient(135deg,#e3f2fd,#bbdefb);box-shadow:0 2px 8px #2196f326}.calendar-cell.smooth .calendar-day-num{color:#1565c0}.calendar-cell.normal{border-radius:var(--radius-sm);background:linear-gradient(135deg,#ede7f6,#d1c4e9);box-shadow:0 2px 8px #9c27b01f}.calendar-cell.normal .calendar-day-num{color:#7b1fa2}.calendar-cell.bad{border-radius:var(--radius-sm);background:linear-gradient(135deg,#e1f5fe,#b3e5fc);box-shadow:0 2px 8px #03a9f426}.calendar-cell.bad .calendar-day-num{color:#0277bd}.calendar-cell.empty-day{border-radius:var(--radius-sm);background:linear-gradient(135deg,#f5f5f5,#eee)}.calendar-cell.empty-day .calendar-day-num{color:#bdbdbd}.calendar-cell .date-label{z-index:1;margin-top:1px;font-size:9px;font-weight:600;position:relative}.calendar-cell.smooth .date-label{color:#42a5f5}.calendar-cell.normal .date-label{color:#ab47bc}.calendar-cell.bad .date-label{color:#29b6f6}.calendar-cell.empty-day .date-label{color:#bdbdbd}.day-detail{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg), var(--shadow-inner), 0 -2px 20px #0000000f;background:linear-gradient(145deg,#fff,#fff5f5);margin-top:8px;padding:20px;position:relative;overflow:hidden}.day-detail:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.day-detail h3{color:var(--text-primary);margin-bottom:12px;font-size:14px;font-weight:700}.day-empty{text-align:center;padding:20px}.day-records-list{flex-direction:column;gap:12px;display:flex}.day-record-card{border-radius:var(--radius-sm);background:linear-gradient(145deg,#fafafa,#f5f5f5);padding:14px 16px;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f,inset 0 1px #fffc}.record-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.record-time{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.record-card-actions{gap:4px;display:flex}.btn-delete{opacity:.4;padding:2px 6px;font-size:16px;transition:transform .2s,opacity .2s}.btn-delete:hover{opacity:1;transform:scale(1.1)}.btn-confirm-delete{color:#e53935;background:#ffebee;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.record-card-body{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.record-tag{border-radius:14px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex;box-shadow:0 1px 4px #0000000f}.smoothness-tag{background:linear-gradient(135deg, var(--pink-light), var(--pink));color:var(--pink-dark)}.duration-tag{background:linear-gradient(135deg, var(--blue-light), var(--blue));color:#1976d2}.stool-tag{background:linear-gradient(135deg, var(--orange-light), var(--orange));color:#e65100}.amount-tag{background:linear-gradient(135deg, var(--purple-light), var(--purple));color:#7b1fa2}.record-card-feelings{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.feeling-chip{color:var(--text-secondary);background:#f0f0f0;border-radius:8px;padding:2px 8px;font-size:10px}.record-card-abnormal{color:#e53935;margin-bottom:2px;font-size:11px}.record-card-index{color:#ddd;font-size:10px;font-weight:700;position:absolute;bottom:4px;right:8px}.moments-list{flex-direction:column;gap:12px;display:flex}.moment-card{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);padding:16px;position:relative;overflow:hidden}.moment-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.moment-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.moment-avatar{background:linear-gradient(135deg, var(--pink-light), var(--pink));border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex;box-shadow:0 2px 8px #ffb5c24d}.moment-user-info{flex:1}.moment-username{font-size:14px;font-weight:600}.moment-time{color:var(--text-secondary);font-size:11px}.moment-content p{margin-bottom:4px;font-size:14px}.moment-smoothness{color:var(--pink-dark);font-weight:600}.moment-feelings{color:var(--text-secondary);font-size:13px}.moment-actions{border-top:1px solid #f0f0f0;gap:16px;margin-top:10px;padding:10px 0;display:flex}.moment-action{color:var(--text-secondary);border-radius:20px;align-items:center;gap:4px;padding:4px 8px;font-size:13px;transition:background .2s;display:flex}.moment-action:active{background:var(--bg)}.moment-action.liked{color:#e53935}.moment-comments{background:var(--bg);border-radius:var(--radius-sm);margin-top:8px;padding:8px 12px}.moment-comment{border-bottom:1px solid #f0f0f0;padding:4px 0;font-size:13px}.moment-comment:last-child{border:none}.charts-section{margin-bottom:16px}.chart-container{border-radius:var(--radius);box-shadow:var(--shadow), var(--shadow-inner);background:linear-gradient(145deg,#fff,#fff5f5);margin-bottom:12px;padding:16px;position:relative;overflow:hidden}.chart-container:before{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);height:1px;position:absolute;top:0;left:0;right:0}.chart-container h4{margin-bottom:12px;font-size:14px}.chart-empty{text-align:center;color:var(--text-secondary);padding:24px;font-size:14px}.smoothness-label-big{color:var(--pink-dark);text-align:center;font-size:15px;font-weight:700;animation:.3s fadeIn}.sos-toast{color:#fff;border-radius:var(--radius-sm);z-index:150;box-shadow:var(--shadow-xl);white-space:nowrap;background:#e53935;padding:12px 24px;font-size:14px;font-weight:600;animation:.3s slideUp;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--pink);border-radius:4px}.pet-container{cursor:pointer;-webkit-user-select:none;user-select:none;backface-visibility:hidden;background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:3px;width:160px;padding:12px 0 6px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;box-shadow:0 4px 12px #0000000d}.pet-container:active{transform:scale(.95)}.pet-wrap{will-change:transform;width:110px;height:112px;animation:2.5s ease-in-out infinite petBreathe;position:relative;transform:translateZ(0)}.star{color:#fbbf24;font-size:12px;animation:2s ease-in-out infinite petTwinkle;position:absolute}.star1{animation-delay:0s;top:8px;left:4px}.star2{animation-delay:.5s;top:24px;right:4px}.star3{animation-delay:1s;bottom:38px;right:0}.star3.celeb{animation:.6s ease-in-out infinite petTwinkle}.capybara{background:var(--fur);z-index:2;will-change:transform;backface-visibility:hidden;border:1.5px solid #000;border-radius:50% 50% 45% 45%;width:68px;height:62px;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.ear{background:var(--fur);border:1.5px solid #000;border-radius:50%;width:12px;height:12px;position:absolute;top:-5px}.ear-left{left:10px}.ear-right{right:10px}.face{width:100%;position:absolute;top:13px}.eye{background:#000;border-radius:50%;width:4.5px;height:4.5px;transition:transform .15s cubic-bezier(.34,1.56,.64,1);position:absolute;top:0}.eye.closed{transform:scaleY(.1)}.eye-left{left:20px}.eye-right{right:20px}.nose{background:#000;border-radius:50%;width:5px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.blush{opacity:.7;background:#f8a5b9;border-radius:50%;width:8px;height:5px;position:absolute;top:13px}.blush-left{left:7px}.blush-right{right:7px}.mouth{color:#000;font-size:9px;font-weight:700;position:absolute;top:15px;left:50%;transform:translate(-50%)}.body{width:100%;height:34px;position:absolute;bottom:0}.hand{background:var(--fur);will-change:transform;backface-visibility:hidden;border:1.5px solid #000;border-radius:40%;width:10px;height:13px;position:absolute;bottom:6px}.hand-left{left:14px;transform:rotate(12deg)}.hand-right{right:14px;transform:rotate(-12deg)}.toilet{z-index:1;transform-origin:bottom;position:absolute;bottom:0;left:50%;transform:translate(-50%)scale(.72)}.toilet-seat{background:var(--seat);border:1.5px solid #000;border-radius:4px;width:76px;height:20px}.toilet-bowl{background:#fff;border:1.5px solid #000;border-radius:0 0 32px 32px;width:66px;height:32px;margin:-2px auto 0}.state-squatting .pet-wrap{animation:4s ease-in-out infinite petReadSway}.state-squatting .hand-left{animation:2.4s ease-in-out infinite petHandBobL}.state-squatting .hand-right{animation:2.4s ease-in-out infinite petHandBobR}.state-celebrate .pet-wrap{animation:.4s cubic-bezier(.34,1.56,.64,1) infinite petBounce}.fx-wag .pet-wrap{animation:.3s ease-in-out infinite petWag}.fx-hearts .pet-wrap{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards petPop}@keyframes petBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes petTwinkle{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes petReadSway{0%,to{transform:rotate(0)}20%{transform:rotate(-4deg)}45%{transform:rotate(3.5deg)}65%{transform:rotate(-2deg)}}@keyframes petHandBobL{0%,to{transform:rotate(12deg)translateY(0)}50%{transform:rotate(12deg)translateY(-3px)}}@keyframes petHandBobR{0%,to{transform:rotate(-12deg)translateY(0)}50%{transform:rotate(-12deg)translateY(-3px)}}@keyframes petBounce{0%,to{transform:scale(1)translateY(0)}25%{transform:scale(1.06)translateY(-5px)}50%{transform:scale(1.1)translateY(-10px)}75%{transform:scale(1.03)translateY(-3px)}}@keyframes petWag{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}75%{transform:rotate(-6deg)}}@keyframes petPop{0%{transform:scale(1)}35%{transform:scale(1.12)}65%{transform:scale(1.08)}to{transform:scale(1)}}.pet-fx-stars{pointer-events:none;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.star-p{opacity:0;will-change:transform, opacity;font-size:16px;animation:.9s cubic-bezier(.25,.46,.45,.94) forwards petStarBurst}@keyframes petStarBurst{0%{opacity:1;transform:scale(0)translate(0,0)rotate(0)}50%{opacity:1;transform:scale(1.4)translateY(-24px)rotate(180deg)}to{opacity:0;transform:scale(.3)translateY(-44px)rotate(360deg)}}.pet-fx-label{color:var(--pink-dark);min-height:12px;font-size:9px;font-weight:600;animation:.8s cubic-bezier(.25,.46,.45,.94) forwards petFxPop}@keyframes petFxPop{0%{opacity:0;transform:scale(.5)}25%{opacity:1;transform:scale(1.1)}60%{opacity:1}to{opacity:0;transform:scale(.7)}}.pet-name{color:var(--text-secondary);margin:0;font-size:11px;font-weight:600}.pet-status-text{color:var(--pink-dark);margin:0;font-size:10px;font-weight:500}.dragon-icon svg{animation:3s ease-in-out infinite dragonBreathe}@keyframes dragonBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.rank-list-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(145deg,#fff,#fff5f5);width:100%;max-width:430px;max-height:75vh;margin:0 auto;padding:20px;overflow-y:auto;box-shadow:0 -4px 20px #0000001a}.rank-list-body{margin-top:8px}.rank-progress-list{flex-direction:column;gap:6px;display:flex}.rank-list-item{border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:10px;padding:10px 12px;transition:transform .2s;display:flex}.rank-list-item.current{background:var(--pink-light);border:1px solid var(--pink)}.rank-list-item.locked{opacity:.5}.rank-item-trophy{flex-shrink:0;font-size:22px}.rank-item-info{flex:1}.rank-item-name{font-size:14px;font-weight:600;display:block}.rank-item-desc{color:var(--text-secondary);font-size:11px;display:block}.rank-item-badge{color:var(--pink-dark);background:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.rank-item-lock{font-size:14px}.duration-display{text-align:center;background:var(--bg);border-radius:var(--radius-sm);padding:12px}.duration-value{color:var(--pink-dark);font-size:24px;font-weight:700;display:block}.duration-note{color:var(--text-secondary);margin-top:4px;font-size:12px;display:block}.pet-select-grid{grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 0;display:grid}.pet-option{border-radius:var(--radius-sm);background:var(--bg);border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:10px;transition:transform .2s,border-color .2s,background .2s;display:flex}.pet-option.active{border-color:var(--pink);background:var(--pink-light);box-shadow:0 2px 8px #f48fb133}.pet-option:active{transform:scale(.95)}.pet-option-emoji{font-size:32px}.pet-option-name{font-size:12px;font-weight:600}.rankup-overlay{z-index:200;background:#00000059;justify-content:center;align-items:center;animation:.2s rankupFadeIn;display:flex;position:fixed;inset:0}.rankup-overlay.exiting{animation:.5s forwards rankupFadeOut}.rankup-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;opacity:0;background:#ffffffeb;border:1px solid #00000014;border-radius:28px;width:300px;padding:36px 24px 28px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .25s;position:relative;transform:scale(.8)}.rankup-modal.entering{opacity:1;transform:scale(1)}.rankup-modal.exiting{opacity:0;transition:transform .5s,opacity .4s;transform:scale(.9)translateY(20px)}.rankup-trophy-wrap{opacity:0;will-change:transform;margin-bottom:8px;transition:transform .6s cubic-bezier(.34,1.56,.64,1),opacity .3s;display:inline-block;position:relative;transform:scale(.3)}.rankup-trophy-wrap.show{opacity:1;transform:scale(1)}.rankup-trophy-wrap.pulse .rankup-trophy{animation:.5s infinite alternate trophyPulse}.rankup-trophy{z-index:1;font-size:64px;line-height:1;display:inline-block;position:relative}.rankup-glow{background:radial-gradient(circle,#ffd70040 0%,#0000 70%);border-radius:50%;animation:.8s ease-in-out infinite alternate trophyGlow;position:absolute;inset:-10px}.rankup-title-line,.rankup-sub-line,.rankup-hint-line,.rankup-btn-line{opacity:0;transition:opacity .35s,transform .35s;transform:translateY(8px)}.rankup-title-line.show{opacity:1;transition-delay:0s;transform:translateY(0)}.rankup-sub-line.show{opacity:1;transition-delay:.1s;transform:translateY(0)}.rankup-hint-line.show{opacity:1;transition-delay:.2s;transform:translateY(0)}.rankup-btn-line.show{opacity:1;transition-delay:.3s;transform:translateY(0)}.rankup-congrats{color:var(--text-primary);font-size:22px;font-weight:800}.rankup-rank-name{color:var(--pink-dark);font-size:16px;font-weight:700}.rankup-hint-text{color:var(--text-secondary);font-size:12px}.rankup-claim-btn{background:linear-gradient(135deg, var(--pink), var(--pink-dark));color:var(--text-light);cursor:pointer;border:1.5px solid #000;border-radius:28px;margin-top:14px;padding:12px 36px;font-size:16px;font-weight:700;transition:transform .15s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 12px #f48fb14d}.rankup-claim-btn:active{transform:scale(.95)}.rankup-claim-btn.claimed{background:linear-gradient(135deg, var(--mint), var(--mint-dark));cursor:default;border-color:#388e3c;transform:scale(1)}@keyframes rankupFadeIn{0%{opacity:0}to{opacity:1}}@keyframes rankupFadeOut{0%{opacity:1}to{opacity:0}}@keyframes trophyPulse{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes trophyGlow{0%{opacity:.3}to{opacity:.7}}.rank-red-dot{background:#ff4d4f;border:2px solid #fff;border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite dotPulse;position:absolute;top:-2px;right:-10px}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.3)}}.rank-claim-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,gold,#ffa000);border:1.5px solid #000;border-radius:20px;margin:10px auto 0;padding:8px 24px;font-size:14px;font-weight:700;transition:transform .15s;display:block;box-shadow:0 3px 8px #ffa00066}.rank-claim-btn:active{transform:scale(.95)}
