:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#111827cc;--bg-glass:#ffffff0d;--bg-glass-hover:#ffffff1a;--accent-1:#6366f1;--accent-2:#8b5cf6;--accent-3:#a855f7;--accent-gold:#f59e0b;--accent-gold-light:#fbbf24;--rarity-r:#60a5fa;--rarity-r-glow:#60a5fa66;--rarity-sr:#a78bfa;--rarity-sr-glow:#a78bfa66;--rarity-ssr:#f59e0b;--rarity-ssr-glow:#f59e0b80;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--border:#ffffff14;--border-active:#6366f180;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #6366f14d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,Helvetica Neue,sans-serif;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent-1);border-radius:3px}.app-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.app-bg:before{content:"";background:radial-gradient(circle,#6366f126,#0000 70%);width:600px;height:600px;animation:20s ease-in-out infinite float-orb;position:absolute;top:-200px;right:-200px}.app-bg:after{content:"";background:radial-gradient(circle,#a855f71a,#0000 70%);width:500px;height:500px;animation:25s ease-in-out infinite reverse float-orb;position:absolute;bottom:-150px;left:-150px}@keyframes float-orb{0%,to{transform:translate(0)scale(1)}33%{transform:translate(50px,-30px)scale(1.1)}66%{transform:translate(-30px,50px)scale(.9)}}.app-container{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.page-content{flex:1;width:100%;max-width:480px;margin:0 auto;padding:16px 16px 80px}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all .3s}.glass-card:hover{background:var(--bg-glass-hover);border-color:var(--border-active);box-shadow:var(--shadow-glow)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:600;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;background:linear-gradient(135deg,#ffffff1a,#0000);transition:opacity .3s;position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent-1), var(--accent-2));color:#fff;box-shadow:0 4px 15px #6366f166}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f199}.btn-gold{background:linear-gradient(135deg, var(--accent-gold), #d97706);color:#fff;box-shadow:0 4px 15px #f59e0b66}.btn-gold:hover{transform:translateY(-1px);box-shadow:0 6px 20px #f59e0b99}.btn-outline:hover{border-color:var(--accent-1);background:var(--bg-glass)}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.bottom-nav{z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);padding:8px 0;padding-bottom:max(8px, env(safe-area-inset-bottom));background:#0a0e1af2;position:fixed;bottom:0;left:0;right:0}.nav-items{justify-content:space-around;max-width:480px;margin:0 auto;display:flex}.nav-item{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;font-family:inherit;font-size:10px;transition:all .3s;display:flex;position:relative}.nav-item .nav-icon{font-size:22px;transition:transform .3s}.nav-item.active{color:var(--accent-2)}.nav-item.active .nav-icon{transform:scale(1.15)}.nav-item.active:after{content:"";background:linear-gradient(90deg, var(--accent-1), var(--accent-3));border-radius:2px;width:20px;height:3px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.page-header{text-align:center;margin-bottom:24px;padding-top:8px}.page-header h1{background:linear-gradient(135deg, var(--text-primary), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700}.page-header p{color:var(--text-secondary);margin-top:4px;font-size:13px}.task-card{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);align-items:center;gap:14px;margin-bottom:10px;padding:16px;transition:all .3s;display:flex}.task-card:hover{border-color:var(--border-active)}.task-card.completed{background:#22c55e0d;border-color:#22c55e4d}.task-icon{border-radius:var(--radius-md);background:var(--bg-glass);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex}.task-info{flex:1;min-width:0}.task-name{margin-bottom:2px;font-size:15px;font-weight:600}.task-meta{color:var(--text-muted);font-size:12px}.checkin-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .3s}.checkin-btn.pending{background:linear-gradient(135deg, var(--accent-1), var(--accent-2));color:#fff}.checkin-btn.done{color:var(--success);cursor:default;background:#22c55e33}.checkin-btn:disabled{color:var(--text-muted);cursor:not-allowed;background:#64748b33}.progress-section{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:20px;margin-bottom:24px;padding:20px;display:flex}.progress-ring-container{flex-shrink:0;width:80px;height:80px;position:relative}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:#ffffff14;stroke-width:6px}.progress-ring-fill{fill:none;stroke:url(#progressGradient);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .6s}.progress-text{justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:absolute;inset:0}.progress-info h3{margin-bottom:4px;font-size:15px}.progress-info p{color:var(--text-secondary);font-size:12px}.points-badge{color:var(--accent-gold-light);background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:20px;align-items:center;gap:4px;margin-top:8px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.gacha-banner{border-radius:var(--radius-xl);text-align:center;background:linear-gradient(135deg,#1a1035,#0f172a,#1a1035);border:1px solid #8b5cf633;margin-bottom:24px;padding:40px 24px;position:relative;overflow:hidden}.gacha-banner:before{content:"";background:radial-gradient(at 50% 0,#8b5cf633,#0000 60%);position:absolute;inset:0}.gacha-banner h2{background:linear-gradient(135deg, #c084fc, var(--accent-gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:28px;font-weight:900;position:relative}.gacha-banner p{color:var(--text-secondary);font-size:13px;position:relative}.gacha-buttons{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.gacha-btn{border-radius:var(--radius-lg);cursor:pointer;text-align:center;border:none;padding:16px;font-family:inherit;transition:all .3s;position:relative;overflow:hidden}.gacha-btn .label{margin-bottom:4px;font-size:16px;font-weight:700;display:block}.gacha-btn .cost{opacity:.8;font-size:12px}.gacha-btn-single{background:linear-gradient(135deg, var(--accent-1), var(--accent-2));color:#fff}.gacha-btn-ten{background:linear-gradient(135deg, var(--accent-gold), #d97706);color:#fff}.gacha-btn:hover{transform:translateY(-2px)}.gacha-btn:active{transform:scale(.97)}.gacha-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.pity-section{margin-bottom:24px}.pity-bar{margin-bottom:12px}.pity-label{color:var(--text-secondary);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.pity-track{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.pity-fill{border-radius:3px;height:100%;transition:width .6s}.pity-fill.sr{background:linear-gradient(90deg, var(--rarity-sr), #c084fc)}.pity-fill.ssr{background:linear-gradient(90deg, var(--rarity-ssr), #fbbf24)}.gacha-result-overlay{z-index:200;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gacha-result-container{text-align:center;padding:32px}.result-cards{flex-wrap:wrap;justify-content:center;gap:12px;max-width:400px;margin-bottom:24px;display:flex}.result-card{border-radius:var(--radius-md);text-align:center;width:100px;padding:16px 8px;position:relative;overflow:hidden}.result-card.single{width:200px;padding:32px 16px}.result-card.R{background:linear-gradient(135deg,#60a5fa26,#60a5fa0d);border:1px solid #60a5fa4d}.result-card.SR{box-shadow:0 0 20px var(--rarity-sr-glow);background:linear-gradient(135deg,#a78bfa33,#a78bfa0d);border:1px solid #a78bfa66}.result-card.SSR{box-shadow:0 0 30px var(--rarity-ssr-glow);background:linear-gradient(135deg,#f59e0b40,#f59e0b0d);border:1px solid #f59e0b80;animation:2s ease-in-out infinite alternate ssr-glow}@keyframes ssr-glow{0%{box-shadow:0 0 20px var(--rarity-ssr-glow)}to{box-shadow:0 0 40px var(--rarity-ssr-glow), 0 0 60px #f59e0b33}}.result-card .rarity-badge{border-radius:10px;margin-bottom:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.result-card.R .rarity-badge{color:var(--rarity-r);background:#60a5fa33}.result-card.SR .rarity-badge{color:var(--rarity-sr);background:#a78bfa33}.result-card.SSR .rarity-badge{color:var(--rarity-ssr);background:#f59e0b33}.result-card .card-emoji{margin:8px 0;font-size:36px}.result-card.single .card-emoji{font-size:56px}.result-card .card-name{color:var(--text-primary);font-size:12px;font-weight:600}.result-card.single .card-name{font-size:16px}.new-badge{background:var(--accent-gold);color:#000;border-radius:8px;padding:2px 6px;font-size:9px;font-weight:700;position:absolute;top:6px;right:6px}.collection-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.stat-card{text-align:center;border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);padding:14px 8px}.stat-card .stat-value{font-size:22px;font-weight:700}.stat-card .stat-label{color:var(--text-muted);margin-top:2px;font-size:11px}.stat-card.r .stat-value{color:var(--rarity-r)}.stat-card.sr .stat-value{color:var(--rarity-sr)}.stat-card.ssr .stat-value{color:var(--rarity-ssr)}.collection-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.collect-card{border-radius:var(--radius-md);text-align:center;cursor:pointer;padding:12px 8px;transition:all .3s}.collect-card:hover{transform:translateY(-2px)}.collect-card .card-count{color:var(--text-muted);margin-top:4px;font-size:10px}.collect-card.used{opacity:.5}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:380px;padding:40px 28px}.login-card h1{text-align:center;background:linear-gradient(135deg, var(--accent-2), var(--accent-gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:28px;font-weight:900}.login-card .subtitle{text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:13px}.login-switch{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:13px}.login-switch button{color:var(--accent-2);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:600}.login-switch button:hover{text-decoration:underline}.partner-card{border-radius:var(--radius-lg);background:var(--bg-glass);border:1px solid var(--border);align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.partner-avatar{background:linear-gradient(135deg, var(--accent-1), var(--accent-3));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:22px;display:flex}.bind-section p{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.wish-item{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);align-items:center;gap:12px;margin-bottom:8px;padding:14px;transition:all .3s;display:flex}.wish-item.fulfilled{opacity:.6;border-color:#22c55e4d}.wish-actions button{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 10px;font-size:12px;transition:all .3s}.wish-fulfill{color:var(--success);background:#22c55e33}.wish-delete{color:var(--danger);background:#ef444433}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px;display:grid}.stats-card{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);text-align:center;padding:16px}.stats-card .stats-value{background:linear-gradient(135deg, var(--accent-2), var(--accent-gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700}.stats-card .stats-label{color:var(--text-muted);margin-top:4px;font-size:12px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:3px;margin-top:12px;display:grid}.cal-day{aspect-ratio:1;background:#ffffff0d;border-radius:3px}.cal-day.level-1{background:#6366f133}.cal-day.level-2{background:#6366f166}.cal-day.level-3{background:#6366f199}.cal-day.level-4{background:#22c55e80}.cal-day.level-5{background:#22c55ecc}.toast{z-index:300;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 24px;font-size:14px;font-weight:500;animation:.3s slide-down;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast.success{color:#fff;background:#22c55ee6}.toast.error{color:#fff;background:#ef4444e6}.toast.info{color:#fff;background:#6366f1e6}@keyframes slide-down{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle{background:var(--accent-gold-light);border-radius:50%;width:4px;height:4px;animation:3s ease-in-out infinite particle-float;position:absolute}@keyframes particle-float{0%{opacity:0;transform:translate(0)scale(1)}20%{opacity:1}to{transform:translate(var(--tx), var(--ty)) scale(0);opacity:0}}@media (width<=480px){.page-content{padding:12px 12px 76px}.result-cards{max-width:340px}.result-card{width:80px;padding:12px 6px}.result-card .card-emoji{font-size:28px}.result-card .card-name{font-size:11px}}.config-item{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 16px;display:flex}.config-info{flex:1}.config-key{color:var(--text-primary);font-size:13px;font-weight:600}.config-desc{color:var(--text-muted);font-size:11px}.config-value-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:80px;color:var(--text-primary);text-align:center;background:#ffffff0d;outline:none;padding:6px 10px;font-family:inherit;font-size:14px}.config-value-input:focus{border-color:var(--accent-1)}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:400px;padding:28px}.modal-content h2{text-align:center;margin-bottom:20px;font-size:18px}.modal-actions{gap:10px;margin-top:20px;display:flex}.modal-actions .btn{flex:1}.form-select{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);appearance:none;cursor:pointer;background:#ffffff0d;outline:none;padding:12px 16px;font-family:inherit;font-size:15px}.form-select option{background:var(--bg-secondary);color:var(--text-primary)}.loading-spinner{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent-1);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-input{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background:#ffffff0d;outline:none;padding:12px 16px;font-family:inherit;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--accent-1);box-shadow:0 0 0 3px #6366f126}.form-input::placeholder{color:var(--text-muted)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent-1), var(--accent-3));color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #6366f14d}.btn-outline{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-outline:hover:not(:disabled){border-color:var(--accent-1);color:var(--accent-1)}.btn-gold{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-gold:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #f59e0b4d}.btn-block{width:100%;display:flex}.btn-sm{padding:8px 14px;font-size:13px}.wish-item{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;display:flex}.wish-item.fulfilled{opacity:.6}.wish-icon{flex-shrink:0;font-size:18px}.wish-text{flex:1;font-size:14px}.wish-actions{flex-shrink:0;gap:6px;display:flex}.wish-fulfill{color:var(--success);cursor:pointer;background:#22c55e26;border:1px solid #22c55e4d;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:600}.wish-delete{color:var(--danger);cursor:pointer;background:#ef44441a;border:1px solid #ef444433;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:12px}.partner-card{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.partner-avatar{background:linear-gradient(135deg, var(--accent-1), var(--accent-3));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:flex}.bind-section{text-align:center;padding:32px 20px}:root{--rarity-r:#6b7280;--rarity-sr:#a855f7;--rarity-ssr:#f59e0b}
