:root{--brand:#6366f1;--brand-light:#818cf8;--brand-bg:#eef2ff;--brand-gradient:linear-gradient(145deg, #6366f1, #818cf8);--radius:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #6366f11f;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--bg-body:#f0f4ff;--bg-card:#ffffffeb}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-body);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#6366f10f 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:fixed;top:-200px;right:-200px}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#818cf80d 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:fixed;bottom:-100px;left:-100px}.gradient-header{background:linear-gradient(135deg,#6366f1 0%,#7c3aed 40%,#818cf8 70%,#a78bfa 100%) 0 0/300% 300%;animation:8s infinite gradientShift;position:relative;overflow:hidden}.gradient-header:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff1f 0%,#0000 70%);border-radius:50%;width:200px;height:200px;position:absolute;top:-50%;right:-30%}.gradient-header:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff14 0%,#0000 70%);border-radius:50%;width:160px;height:160px;position:absolute;bottom:-40%;left:-20%}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);border:1px solid #fffc;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #6366f10a,0 1px 3px #0000000a}.glass-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #6366f114,0 2px 6px #0000000f}.glass-card:active{transform:scale(.99)translateY(0)}.glass-detail{border-radius:var(--radius-lg);background:#fff;border:1px solid #f1f5f9;box-shadow:0 2px 12px #6366f10f,0 1px 4px #0000000a}.fade-in{animation:.35s fadeIn}.slide-up{animation:.35s slideUp}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.bottom-nav{padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(20px);z-index:100;background:#fffffff2;border-top:1px solid #e2e8f080;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav:before{content:"";background:linear-gradient(90deg,#0000,#6366f14d,#0000);height:1px;position:absolute;top:0;left:10%;right:10%}.bottom-nav a{color:#94a3b8;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;font-size:11px;text-decoration:none;transition:all .2s;display:flex;position:relative}.bottom-nav a:active{background:#6366f114;transform:scale(.93)}.bottom-nav a.active{color:var(--brand);font-weight:600}.bottom-nav a.active:after{content:"";background:var(--brand);border-radius:0 0 3px 3px;width:20px;height:3px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.nav-icon{font-size:20px;line-height:1;transition:transform .2s}.bottom-nav a.active .nav-icon{transform:scale(1.1)}button{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button:active{transform:scale(.96)}.mood-btn{cursor:pointer;background:#fff;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 6px #0000000a}.mood-btn:hover{transform:scale(1.08);box-shadow:0 4px 12px #6366f11f}.mood-btn:active{transform:scale(.9)}.mood-btn.active{border-width:3px;box-shadow:0 0 0 4px #6366f126,0 2px 8px #6366f133}.cal-cell{aspect-ratio:1;cursor:default;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;transition:background .2s;display:flex}.cal-cell:hover{background:#6366f10a!important}input:focus,textarea:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px #6366f11a!important}.toast{border-radius:var(--radius);z-index:1000;box-shadow:var(--shadow-lg);padding:12px 24px;font-size:14px;font-weight:500;animation:.3s slideDown;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast-success{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.toast-error{color:#9d174d;background:#fce7f3;border:1px solid #fbcfe8}.toast-loading{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe}.toast-loading:after{content:"";vertical-align:middle;border:2px solid #4338ca;border-top-color:#0000;border-radius:50%;width:12px;height:12px;margin-left:8px;animation:.6s linear infinite spin;display:inline-block}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.welcome-banner{border-radius:var(--radius-lg);background:linear-gradient(135deg,#6366f10f,#818cf80a);border:1px solid #6366f114;align-items:center;gap:14px;margin-bottom:14px;padding:16px 20px;display:flex}.welcome-banner .welcome-icon{flex-shrink:0;font-size:32px}.welcome-banner .welcome-text{color:#475569;font-size:14px;line-height:1.6}.welcome-banner .welcome-text strong{color:#6366f1;font-weight:600}@media (width<=430px){.gradient-header{border-radius:0 0 24px 24px!important;padding:28px 16px 24px!important}.glass-card{padding:14px!important}.mood-btn{width:46px;height:46px;font-size:20px}}@media (width<=375px){.mood-btn{width:40px;height:40px;font-size:18px}.bottom-nav a{padding:4px 8px;font-size:10px}.nav-icon{font-size:18px}}
