@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--moss-green:#8b9556;--moss-green-light:#a8b376;--moss-green-dark:#6d7841;--terra-cotta:#e07856;--terra-cotta-light:#f39675;--terra-cotta-dark:#c65d3d;--sky-blue:#87ceeb;--sky-blue-light:#a8dcf0;--sky-blue-dark:#6ab8e0;--glass-bg:#ffffffbf;--glass-bg-hover:#ffffffd9;--glass-border:#ffffff4d;--glass-shadow:0 8px 32px 0 #1f268726;--glass-blur:blur(10px);background-color:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-weight:400;line-height:1.6}body{background:linear-gradient(135deg,#e8f4f8 0%,#f0f4e8 50%,#fef0eb 100%) fixed;min-height:100vh;margin:0}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-card:hover{background:var(--glass-bg-hover)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;color:#0f172a;margin:0;font-weight:600}a{color:inherit;text-decoration:none}button{font-family:inherit}ul{margin:0;padding:0;list-style:none}:root{--primary:#1e293b;--primary-light:#334155;--primary-dark:#0f172a;--primary-hover:#475569;--secondary:#64748b;--accent:#3b82f6;--accent-light:#60a5fa;--success:#10b981;--background:#f8fafc;--surface:#fff;--surface-elevated:#fff;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-light:#f1f5f9;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:2px;--radius:3px;--radius-md:4px;--radius-lg:4px;--radius-xl:6px;--theme-forest-900:#17352c;--theme-forest-800:#1f3f34;--theme-forest-700:#2a5444;--theme-wheat-100:#f8f4e8;--theme-wheat-200:#fff2bf;--theme-gold-400:#ffd867;--theme-surface-border:#e5e7eb;--theme-surface-shadow:0 8px 24px #0f172a17;--theme-surface-shadow-lg:0 14px 36px #14302733;--theme-hero-gradient:linear-gradient(135deg, #274c3d 0%, #1f3f34 45%, #17352c 100%);--theme-hero-glow:radial-gradient(circle at 0% 0%, #fff4c7eb, transparent 42%)}*{box-sizing:border-box;margin:0;padding:0}#root{background:var(--background);max-width:428px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 60px #00000014}.route-loading{min-height:calc(100vh - 60px);color:var(--text-secondary);justify-content:center;align-items:center;padding:1rem;font-size:.95rem;display:flex}.page{min-height:calc(100vh - 60px);padding:1rem 1rem 80px}.page-title{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:.5rem;font-size:1.875rem;font-weight:700}.title-with-edit{align-items:center;gap:.5rem;display:flex}.btn-edit-title{color:#6b7280;cursor:pointer;background:0 0;border:2px solid #d1d5db;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:1rem;transition:all .2s;display:flex}.btn-edit-title:hover{color:#374151;background:#f3f4f6;border-color:#9ca3af}.btn-edit-title:active{transform:scale(.95)}.page-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9375rem;font-weight:400;line-height:1.6}.card{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-bottom:1rem;padding:1.25rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.card:hover{border-color:#0000001f;transform:translateY(-1px);box-shadow:0 0 0 1px #0000000a,0 2px 4px #00000014,0 4px 8px #0000000a}.btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:100%;box-shadow:none;letter-spacing:.01em;border:none;padding:.625rem 1rem;font-size:.8125rem;font-weight:600;transition:all .15s}.btn:hover{background:var(--primary-hover);box-shadow:none;transform:none}.btn:active{box-shadow:none;transform:none}.btn-secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);box-shadow:none}.btn-secondary:hover{background:var(--background);border-color:var(--text-secondary);color:var(--text-primary);box-shadow:none;transform:none}.input{width:100%;color:var(--text-primary);background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:.875rem 1rem;font-family:inherit;font-size:.9375rem;transition:all .2s}select.input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.25rem;padding-right:2.5rem}input[type=date].input{cursor:pointer}.input:hover{border-color:#d1d5db;box-shadow:0 1px 2px #0000000a}.input:focus{background:#fff;border-color:#2d5016;outline:none;box-shadow:0 0 0 3px #2d501626,0 0 0 1px #2d5016,0 2px 4px #0000000f}.input::placeholder{color:#9ca3af}.bottom-nav{z-index:1000;background:#fff;border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;width:100%;max-width:428px;padding:.65rem .2rem;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 20px #0f172a14}.nav-item{color:var(--text-muted);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:.3rem;padding:.45rem .4rem;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-dot{background:#f97316;border-radius:999px;width:8px;height:8px;position:absolute;top:2px;right:6px;box-shadow:0 0 0 2px #fff}.nav-item:hover{color:var(--text-secondary)}.nav-item.active{color:var(--moss-green-dark)}.nav-item.active:before{content:"";background:#2f5f4f;width:32px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.nav-icon{width:22px;height:22px;transition:none}.nav-item.active .nav-icon{transform:none}.nav-label{letter-spacing:.02em;font-size:.6rem;font-weight:500}.nav-avatar{background:#ffffffd9;border:1.5px solid #2e7d3240;border-radius:50%;width:28px;height:28px;overflow:hidden;box-shadow:0 3px 8px #0000001f}.nav-avatar-image{object-fit:cover;width:100%;height:100%;display:block}.reward-celebration-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;opacity:0;background:#000000d9;justify-content:center;align-items:center;padding:20px;transition:opacity .3s;display:flex;position:fixed;inset:0}.reward-celebration-overlay.visible{opacity:1}.level-up-overlay{background:#0b1126e6}.reward-celebration-card{opacity:0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:24px;width:100%;max-width:400px;padding:40px 30px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);position:relative;overflow:hidden;transform:scale(.8);box-shadow:0 20px 60px #00000080}.reward-celebration-card.visible{opacity:1;transform:scale(1)}.level-up-card{background:linear-gradient(140deg,#1d3557 0%,#457b9d 40%,#f4a261 100%);max-width:460px;box-shadow:0 24px 70px #00000094}.confetti-container{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti{opacity:.9;background:linear-gradient(45deg,gold,#ffed4e,#ff6b6b,#4ecdc4);width:10px;height:10px;animation:3s ease-in forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(120vh)rotate(720deg)}}.celebration-avatar{width:120px;height:120px;margin:0 auto 30px;position:relative}.avatar-glow{background:radial-gradient(circle,#fff6 0%,#0000 70%);border-radius:50%;width:140px;height:140px;animation:2s ease-in-out infinite glow-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes glow-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:.3;transform:translate(-50%,-50%)scale(1.2)}}.celebration-avatar-image{object-fit:contain;z-index:2;filter:drop-shadow(0 4px 12px #0000004d);width:100px;height:100px;margin:10px auto 0;animation:1s ease-in-out .3s avatar-bounce;display:block;position:relative}@keyframes avatar-bounce{0%,to{transform:translateY(0)}25%{transform:translateY(-15px)}50%{transform:translateY(0)}75%{transform:translateY(-8px)}}.sparkles{z-index:3;position:absolute;inset:0}.sparkle{opacity:0;font-size:24px;animation:2s ease-in-out infinite sparkle-float;position:absolute}.sparkle:first-child{animation-delay:0s;top:10%;left:10%}.sparkle:nth-child(2){animation-delay:.3s;top:15%;right:10%}.sparkle:nth-child(3){animation-delay:.6s;bottom:20%;left:15%}@keyframes sparkle-float{0%,to{opacity:0;transform:translateY(0)scale(.5)}50%{opacity:1;transform:translateY(-10px)scale(1)}}.achievement-display{text-align:center;color:#fff;z-index:4;position:relative}.achievement-icon{margin-bottom:15px;font-size:60px;animation:1s ease-in-out trophy-spin}@keyframes trophy-spin{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}.achievement-title{text-shadow:0 2px 8px #0000004d;margin-bottom:10px;font-size:24px;font-weight:700}.achievement-name{color:gold;text-shadow:0 2px 12px #ffd70080;margin-bottom:12px;font-size:28px;font-weight:800}.achievement-description{opacity:.95;margin-bottom:15px;font-size:16px;line-height:1.5}.achievement-xp{color:#4ade80;margin-top:10px;font-size:20px;font-weight:700}.xp-display{text-align:center;color:#fff;z-index:4;position:relative}.xp-level-up-display .xp-icon{font-size:70px;animation:1.2s ease-out crown-pop}.xp-level-up-display .xp-title{letter-spacing:.04em;font-size:29px}.xp-level-up-display .xp-amount{font-size:54px}@keyframes crown-pop{0%{opacity:0;transform:scale(.4)rotate(-18deg)}55%{opacity:1;transform:scale(1.15)rotate(7deg)}to{opacity:1;transform:scale(1)rotate(0)}}.xp-icon{margin-bottom:15px;font-size:60px;animation:1.5s ease-in-out infinite star-pulse}@keyframes star-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.xp-title{text-shadow:0 2px 8px #0000004d;margin-bottom:15px;font-size:24px;font-weight:700}.xp-amount{color:#4ade80;text-shadow:0 4px 16px #4ade8080;margin-bottom:12px;font-size:48px;font-weight:900;animation:.8s cubic-bezier(.68,-.55,.265,1.55) xp-grow}@keyframes xp-grow{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.xp-description{opacity:.95;font-size:16px;line-height:1.5}.level-up-bonus-line{color:#ffe083;text-shadow:0 2px 10px #ffe08373;margin-top:12px;font-size:20px;font-weight:800}.celebration-continue{color:#667eea;cursor:pointer;z-index:4;background:#fff;border:none;border-radius:12px;width:100%;margin-top:30px;padding:16px;font-size:18px;font-weight:700;transition:all .2s;position:relative;box-shadow:0 4px 12px #0003}.celebration-continue:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.celebration-continue:active{transform:translateY(0)}.location-permission-modal-overlay{z-index:3000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.location-permission-modal{background:linear-gradient(135deg,#fff 0%,#f8f9fa 100%);border-radius:20px;width:100%;max-width:500px;animation:.4s cubic-bezier(.4,0,.2,1) slideUp;overflow:hidden;box-shadow:0 20px 60px #0000004d,inset 0 1px #fff9}.location-permission-header{color:#fff;text-align:center;background:linear-gradient(135deg,#10b981 0%,#059669 100%);padding:2rem 1.5rem}.location-permission-header h2{margin:0 0 .5rem;font-size:1.8rem;font-weight:700}.location-permission-subtitle{opacity:.9;margin:0;font-size:.95rem}.location-permission-content{max-height:350px;padding:1.5rem;overflow-y:auto}.location-benefit{background:#fff;border:1px solid #e5e7eb;border-radius:12px;gap:1rem;margin-bottom:1.5rem;padding:1rem;transition:all .2s;display:flex}.location-benefit:hover{background:#f0fdf4;border-color:#10b981;transform:translate(4px)}.benefit-icon{flex-shrink:0;font-size:1.8rem}.benefit-text{flex:1}.benefit-text strong{color:#1f2937;margin-bottom:.25rem;display:block}.benefit-text p{color:#6b7280;margin:0;font-size:.85rem;line-height:1.4}.location-permission-actions{border-top:1px solid #e5e7eb;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.btn-allow-location{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;display:flex}.btn-allow-location:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #10b9814d}.btn-allow-location:disabled{opacity:.6;cursor:not-allowed}.btn-dismiss-location{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;width:100%;padding:.75rem 1.5rem;font-weight:500;transition:all .2s}.btn-dismiss-location:hover:not(:disabled){color:#374151;background:#f3f4f6;border-color:#9ca3af}.btn-dismiss-location:disabled{opacity:.5;cursor:not-allowed}.location-permission-footer{color:#9ca3af;text-align:center;background:#f9fafb;border-top:1px solid #e5e7eb;margin:0;padding:1rem 1.5rem;font-size:.8rem;line-height:1.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.location-permission-modal{max-width:90vw}.location-permission-header{padding:1.5rem 1rem}.location-permission-header h2{font-size:1.5rem}.location-permission-content{padding:1rem}.location-benefit{margin-bottom:1rem;padding:.75rem}.benefit-icon{font-size:1.5rem}.location-permission-actions{padding:1rem}.btn-allow-location,.btn-dismiss-location{padding:.875rem 1rem;font-size:.95rem}}.layout{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;padding-top:58px;padding-bottom:80px}.account-fab{z-index:1400;color:#1f3f33;background:linear-gradient(135deg,#fdfdfb 0%,#ecf7f2 100%);border:1px solid #b8d9ca;border-radius:999px;align-items:center;gap:.42rem;padding:.42rem .72rem;text-decoration:none;transition:transform .2s,box-shadow .2s,background-color .2s;display:inline-flex;position:fixed;top:12px;right:14px;box-shadow:0 8px 20px #0f3d2e2e}.share-fab{z-index:1398;color:#1f3f33;cursor:pointer;background:linear-gradient(135deg,#fdfdfb 0%,#ecf7f2 100%);border:1px solid #b8d9ca;border-radius:999px;align-items:center;gap:.42rem;padding:.42rem .72rem;transition:transform .2s,box-shadow .2s,background-color .2s;display:inline-flex;position:fixed;top:12px;right:108px;box-shadow:0 8px 20px #0f3d2e29}.share-fab:hover{background:linear-gradient(135deg,#fff 0%,#e7f5ee 100%);transform:translateY(-1px);box-shadow:0 10px 22px #0f3d2e33}.share-fab-icon{color:#fff;background:#2f8a6f;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.78rem;display:inline-flex}.share-fab-text{letter-spacing:.01em;font-size:.78rem;font-weight:700}.account-fab:hover{background:linear-gradient(135deg,#fff 0%,#e7f5ee 100%);transform:translateY(-1px);box-shadow:0 10px 22px #0f3d2e3d}.account-fab-icon{color:#fff;background:#2f8a6f;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.78rem;display:inline-flex}.account-fab-text{letter-spacing:.01em;font-size:.78rem;font-weight:700}.daily-spin-banner{z-index:1390;color:#1f3f33;touch-action:pan-y;background:linear-gradient(135deg,#f8fffb 0%,#ebf6ef 100%);border:1px solid #cde2d7;border-radius:999px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.45rem;width:min(70vw,360px);padding:.42rem .56rem;text-decoration:none;animation:.28s cubic-bezier(.2,.8,.2,1) daily-chip-in;display:grid;position:fixed;top:12px;left:12px;box-shadow:0 8px 20px #0c291f2e}.daily-spin-banner.compact{grid-template-columns:auto;justify-items:center;width:44px;min-width:44px;padding:.34rem}.daily-spin-banner.ready{background:linear-gradient(135deg,#fff7e8 0%,#fff3da 100%);border-color:#efb052}.daily-spin-banner-icon{background:#fff;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.82rem;animation:2s ease-in-out infinite daily-chip-pulse;display:inline-flex}.daily-spin-banner.compact .daily-spin-banner-icon{animation-duration:1.5s}.daily-spin-banner-text{white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:700;line-height:1;overflow:hidden}.daily-spin-banner.compact .daily-spin-banner-text,.daily-spin-banner.compact .daily-spin-banner-cta,.daily-spin-banner.compact .daily-banner-close{display:none}.daily-spin-banner-cta{background:#fff;border:1px solid #c9ded3;border-radius:999px;padding:.2rem .42rem;font-size:.68rem;font-weight:800}.daily-login-banner{z-index:1388;color:#1f3f33;touch-action:pan-y;background:linear-gradient(135deg,#f4fbff 0%,#e8f4ff 100%);border:1px solid #cde2d7;border-radius:999px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.45rem;width:min(74vw,390px);padding:.42rem .56rem;text-decoration:none;animation:.32s cubic-bezier(.2,.8,.2,1) daily-chip-in;display:grid;position:fixed;top:54px;left:12px;box-shadow:0 8px 18px #0c291f29}.daily-login-banner.compact{grid-template-columns:auto;justify-items:center;width:44px;min-width:44px;padding:.34rem}.daily-login-banner.ready{background:linear-gradient(135deg,#eef7ff 0%,#dff0ff 100%);border-color:#45a3ff}.daily-login-banner.claimed{background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%);border-color:#cdd5e1}.daily-login-banner-icon{background:#fff;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.82rem;animation:2.2s ease-in-out infinite daily-chip-pulse;display:inline-flex}.daily-login-banner.compact .daily-login-banner-icon{animation-duration:1.6s}.daily-login-banner-text{white-space:nowrap;text-overflow:ellipsis;font-size:.73rem;font-weight:700;line-height:1;overflow:hidden}.daily-login-banner.compact .daily-login-banner-text,.daily-login-banner.compact .daily-login-banner-cta,.daily-login-banner.compact .daily-banner-close{display:none}.daily-login-banner-cta{background:#fff;border:1px solid #c9d5e6;border-radius:999px;padding:.2rem .42rem;font-size:.66rem;font-weight:800}.daily-banner-close{color:#334155;cursor:pointer;background:#ffffffe0;border:1px solid #94a3b873;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1rem;line-height:1;display:inline-flex}.daily-banner-close:hover{background:#fff}.daily-chip-dot{background:#f97316;border-radius:999px;width:8px;height:8px;animation:1.4s ease-out infinite chip-dot-ping;display:none;box-shadow:0 0 #f9731680}.daily-spin-banner.compact .daily-chip-dot,.daily-login-banner.compact .daily-chip-dot{display:block}@media (max-width:640px){.main-content{padding-top:58px}.account-fab{padding:.4rem .62rem;top:12px;right:10px}.share-fab{padding:.4rem .62rem;top:12px;right:62px}.account-fab.account-fab-with-one-banner{top:58px}.account-fab.account-fab-with-two-banners{top:104px}.account-fab-text,.share-fab-text{display:none}.daily-spin-banner{width:min(92vw,420px);padding:.4rem .52rem;top:8px;left:8px}.daily-login-banner{width:min(92vw,420px);padding:.38rem .52rem;top:48px;left:8px}.daily-spin-banner-text{font-size:.73rem}.daily-login-banner-text{font-size:.71rem}}.global-toast{z-index:1600;color:#1f3f34;text-align:left;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:pan-y;background:#fffffff2;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:.46rem;max-width:min(84vw,360px);padding:.48rem .56rem;font-size:.8rem;font-weight:600;animation:.28s cubic-bezier(.2,.8,.2,1) toast-in;display:flex;position:fixed;bottom:92px;left:auto;right:14px;transform:translateY(0);box-shadow:0 12px 28px #0f172a33}.global-toast-info{border-left:4px solid #2f5f4f}.global-toast-success{border-left:4px solid #1f7d39}.global-toast-error{border-left:4px solid #b1323d}.global-toast-icon{color:#1f3f34;background:#edf7f2;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.76rem;font-weight:800;display:inline-flex}.global-toast-copy{flex-direction:column;gap:.1rem;min-width:0;display:flex}.global-toast-copy strong{color:#1f3f34;font-size:.72rem}.global-toast-copy span{color:#4b5563;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.74rem;display:-webkit-box;overflow:hidden}.global-toast-action{color:#1f3f34;cursor:pointer;background:#edf7f2;border:1px solid #d8ebe1;border-radius:999px;flex-shrink:0;padding:.28rem .5rem;font-size:.68rem;font-weight:700}.global-toast-action:hover{background:#e2f0e9}.global-toast-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;width:20px;height:20px;font-size:1rem;line-height:1}.global-toast-close:hover{background:#f1f5f9}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes daily-chip-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes daily-chip-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes chip-dot-ping{0%{box-shadow:0 0 #f9731680}to{box-shadow:0 0 0 9px #f9731600}}@media (max-width:640px){.global-toast{width:min(92vw,360px);bottom:86px;left:50%;right:auto;transform:translate(-50%)}}.app-dialog-backdrop{z-index:1800;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121f1885;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.app-dialog{color:#163529;background:linear-gradient(155deg,#fffdf7 0%,#edf7f2 100%);border:1px solid #cfe4d9;border-radius:18px;width:min(92vw,460px);padding:1rem;box-shadow:0 26px 54px #0c291f47}.app-dialog h3{margin:0;font-size:1rem;font-weight:800}.app-dialog p{color:#315246;margin:.48rem 0 0;font-size:.9rem;line-height:1.4}.app-dialog-input{color:#163529;background:#fff;border:1px solid #bcd8cb;border-radius:12px;outline:none;width:100%;margin-top:.72rem;padding:.64rem .72rem;font-size:.92rem}.app-dialog-input:focus{border-color:#2f8a6f;box-shadow:0 0 0 3px #2f8a6f29}.app-dialog-actions{justify-content:flex-end;gap:.52rem;margin-top:.9rem;display:flex}.app-dialog-cancel,.app-dialog-confirm{cursor:pointer;border-radius:11px;padding:.46rem .8rem;font-size:.84rem;font-weight:800}.app-dialog-cancel{color:#315246;background:#fff;border:1px solid #c8ddd2}.app-dialog-confirm{color:#fff;background:linear-gradient(135deg,#2f8a6f 0%,#20664f 100%);border:1px solid #1f5f4b}.tutorial-backdrop{z-index:1900;-webkit-backdrop-filter:none;backdrop-filter:none;background:#121f1847;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.tutorial-card{color:#163529;background:linear-gradient(155deg,#fffdf7 0%,#edf7f2 100%);border:1px solid #cfe4d9;border-radius:18px;width:min(92vw,520px);padding:1rem;box-shadow:0 26px 54px #0c291f4d}.tutorial-avatar-wrap{background:#fff;border:2px solid #d8ebe1;border-radius:999px;justify-content:center;align-items:center;width:76px;height:76px;margin-bottom:.75rem;display:flex;overflow:hidden}.tutorial-avatar-image{object-fit:contain;width:100%;height:100%}.tutorial-copy h3{margin:0;font-size:1rem;font-weight:800}.tutorial-copy p{color:#315246;margin:.5rem 0 0;font-size:.92rem;line-height:1.4}.tutorial-step-count{color:#2f8a6f;letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:800}.tutorial-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.tutorial-btn{cursor:pointer;border-radius:11px;padding:.46rem .8rem;font-size:.84rem;font-weight:800}.tutorial-btn.ghost{color:#315246;background:#fff;border:1px solid #c8ddd2}.tutorial-btn.ghost:disabled{opacity:.5;cursor:not-allowed}.tutorial-btn.solid{color:#fff;background:linear-gradient(135deg,#2f8a6f 0%,#20664f 100%);border:1px solid #1f5f4b}.auth-page{background:radial-gradient(circle at 0 0,#fff4c7d1,#0000 42%),linear-gradient(145deg,#274c3d 0%,#1f3f34 45%,#17352c 100%);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{background:#fffffff5;border:1px solid #f8f4e83d;border-radius:18px;width:min(96vw,460px);padding:1.2rem;box-shadow:0 20px 44px #1430274d}.auth-card h1{color:#1f3f34;margin:0}.auth-subtitle{color:#4b5563;margin:.35rem 0 1rem}.auth-recovery-box{background:#fff9e8;border:1px solid #f6d36d;border-radius:12px;margin-bottom:.9rem;padding:.65rem .72rem}.auth-recovery-title{color:#6a4a00;margin:0;font-size:.84rem;font-weight:700}.auth-recovery-code{letter-spacing:.08em;color:#3f2a00;margin:.3rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-weight:700}.auth-recovery-copy{color:#6b7280;margin:.35rem 0 0;font-size:.78rem}.auth-mode-toggle{background:#f8fafc;border:1px solid #d1d5db;border-radius:999px;margin-bottom:1rem;padding:3px;display:inline-flex}.auth-mode-toggle button{color:#475569;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem .8rem;font-weight:700}.auth-mode-toggle button.active{color:#fff;background:#2f5f4f}.auth-form{gap:.75rem;display:grid}.auth-form label{color:#334155;gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.auth-form input{border:1px solid #d1d5db;border-radius:10px;padding:.6rem .72rem;font-size:.95rem}.auth-form input:focus{border-color:#2f5f4f;outline:none;box-shadow:0 0 0 3px #2f5f4f29}.auth-checkbox{grid-template-columns:auto 1fr;align-items:start;gap:.5rem;font-size:.82rem;font-weight:500;line-height:1.35}.auth-checkbox input{margin-top:3px}.auth-checkbox a{color:#1f3f34;text-underline-offset:2px}.auth-error{color:#b42318;background:#fee4e2;border:1px solid #fda29b;border-radius:10px;margin:0;padding:.5rem .65rem;font-size:.84rem}.auth-link-btn{color:#1f5f4b;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;justify-self:start;margin-top:-.2rem;padding:0;font-size:.83rem;font-weight:700;text-decoration:underline}.auth-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2f8a6f 0%,#20664f 100%);border:1px solid #1f5f4b;border-radius:10px;padding:.65rem .8rem;font-size:.92rem;font-weight:700}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-secondary-btn{color:#1f5f4b;cursor:pointer;background:#f6fbf8;border:1px solid #bfdccf;border-radius:10px;padding:.58rem .74rem;font-size:.86rem;font-weight:700}.auth-secondary-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width:520px){.auth-page{padding:1rem}.auth-card{border-radius:14px;width:100%;padding:1rem}.auth-mode-toggle{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.auth-mode-toggle button{text-align:center;width:100%}.auth-checkbox{gap:.42rem;font-size:.78rem}}
