:root{--bg:#08080f;--surface-1:#0f0f1a;--surface-2:#161625;--surface-3:#1e1e30;--surface-4:#282840;--surface-5:#353550;--primary:#ff6b6b;--primary-soft:#ff8e8e;--primary-dark:#e55555;--accent:#4ecdc4;--accent-soft:#7eddd6;--accent-dark:#3dbdb4;--success:#26de81;--success-soft:#4fe89a;--warning:#feca57;--warning-dark:#f0a020;--danger:#ee5a6f;--danger-soft:#ff8e9f;--text:#fff;--text-2:#ffffffb3;--text-3:#ffffff73;--text-4:#ffffff40;--rarity-common:#8e8ea0;--rarity-rare:#5abbd5;--rarity-epic:#c164f1;--rarity-legendary:#ffb800;--gradient-primary:linear-gradient(135deg, #ff6b6b, #ff8e53);--gradient-accent:linear-gradient(135deg, #4ecdc4, #44bddb);--gradient-success:linear-gradient(135deg, #26de81, #20bf6b);--gradient-warning:linear-gradient(135deg, #feca57, #ff9f43);--gradient-card:linear-gradient(145deg, #ff6b6b1f, #4ecdc414);--gradient-surface:linear-gradient(180deg, var(--surface-2), var(--surface-1));--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;overflow-x:hidden}#root{background:var(--bg);max-width:480px;min-height:100vh;margin:0 auto;position:relative}a{color:inherit;text-decoration:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;outline:none;font-family:inherit}input,select{border:none;outline:none;font-family:inherit}input,select,textarea{color:var(--text);background:0 0}input[type=time]{color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0}input[type=time]::-webkit-calendar-picker-indicator{filter:invert()brightness(.8);cursor:pointer}input[type=number]{color:var(--text);appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:36px}input[type=range]::-webkit-slider-runnable-track{background:var(--surface-4);border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--gradient-accent);border:2px solid var(--surface-2);border-radius:50%;width:24px;height:24px;margin-top:-9px;box-shadow:0 2px 8px #4ecdc44d}input[type=range]::-moz-range-track{background:var(--surface-4);border-radius:3px;height:6px}input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface-2);border-radius:50%;width:24px;height:24px;box-shadow:0 2px 8px #4ecdc44d}select{color:var(--text);background:var(--surface-3);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}select option{background:var(--surface-3);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-4)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.page{min-height:100vh;padding:20px 16px 110px}.page-title{letter-spacing:-.5px;font-size:24px;font-weight:800;line-height:1.2}.page-subtitle{color:var(--text-2);margin-top:6px;margin-bottom:24px;font-size:14px}.card{background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid #ffffff0a;margin-bottom:14px;padding:20px;transition:all .25s}.card-elevated{background:var(--surface-3);border:1px solid #ffffff0f;box-shadow:0 8px 32px #0000004d}.card-gradient{background:var(--gradient-card);border:1px solid #ff6b6b1f}.btn-primary{background:var(--gradient-primary);color:#fff;border-radius:var(--radius-md);letter-spacing:.3px;width:100%;padding:15px 28px;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 4px 16px #ff6b6b40}.btn-primary:active{transform:scale(.97);box-shadow:0 2px 8px #ff6b6b26}.btn-primary:disabled{opacity:.35;box-shadow:none}.btn-accent{background:var(--gradient-accent);color:#fff;border-radius:var(--radius-md);width:100%;padding:15px 28px;font-size:15px;font-weight:700;box-shadow:0 4px 16px #4ecdc440}.btn-accent:active{transform:scale(.97)}.btn-ghost{color:var(--text-2);border-radius:var(--radius-md);border:1px solid var(--surface-5);background:0 0;width:100%;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s}.btn-ghost:active{background:var(--surface-3)}.input-field{background:var(--surface-3);border:1px solid var(--surface-5);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:14px 16px;font-size:16px;transition:border-color .25s}.input-field:focus{border-color:var(--accent)}.input-field::placeholder{color:var(--text-4)}.input-label{color:var(--text-2);letter-spacing:.3px;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.badge{border-radius:var(--radius-full);letter-spacing:.3px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{color:var(--success);background:#26de811f}.badge-danger{color:var(--danger);background:#ee5a6f1f}.badge-warning{color:var(--warning-dark);background:#feca571f}.badge-accent{color:var(--accent);background:#4ecdc41f}.badge-primary{color:var(--primary);background:#ff6b6b1f}.tag{border-radius:var(--radius-full);border:1px solid var(--surface-5);background:var(--surface-3);color:var(--text-2);white-space:nowrap;align-items:center;padding:7px 14px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.tag:active{border-color:var(--accent);color:var(--accent)}.tag.active{background:var(--gradient-accent);color:#fff;border-color:#0000;box-shadow:0 2px 10px #4ecdc433}.display-number{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-weight:800}.gradient-text-primary{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-accent{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ring-progress{transform:rotate(-90deg)}.ring-progress-track{fill:none;stroke:var(--surface-4)}.ring-progress-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.bottom-nav{width:100%;max-width:480px;padding:6px 0;padding-bottom:max(6px, env(safe-area-inset-bottom));z-index:100;-webkit-backdrop-filter:blur(24px);background:#0f0f1aeb;border-top:1px solid #ffffff0d;justify-content:space-around;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{border-radius:var(--radius-md);color:var(--text-3);letter-spacing:.2px;background:0 0;flex-direction:column;align-items:center;gap:3px;padding:6px 16px;font-size:10px;font-weight:600;transition:all .2s;display:flex}.nav-item.active{color:var(--primary);background:#ff6b6b14}.nav-item .nav-icon{font-size:22px}.unlock-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#08080fbf;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.unlock-modal{background:var(--surface-3);border-radius:var(--radius-xl);text-align:center;border:1px solid #ffffff14;width:90%;max-width:320px;padding:40px 32px;animation:.4s cubic-bezier(.175,.885,.32,1.275) popIn;position:relative;overflow:hidden}.unlock-modal:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 0,#ffb80014,#0000 70%);position:absolute;inset:0}.unlock-icon{margin-bottom:12px;font-size:56px;animation:.5s ease-out .2s both bounceIn}.glow-common{box-shadow:none}.glow-rare{box-shadow:0 0 12px #5abbd526}.glow-epic{box-shadow:0 0 16px #c164f133}.glow-legendary{animation:2s ease-in-out infinite legendaryPulse;box-shadow:0 0 24px #ffb80040}@keyframes legendaryPulse{0%,to{box-shadow:0 0 16px #ffb80033}50%{box-shadow:0 0 28px #ffb80059}}.week-chart{align-items:flex-end;gap:8px;height:64px;padding:0 4px;display:flex}.week-bar{border-radius:4px 4px 0 0;flex:1;min-height:4px;transition:height .5s ease-out;position:relative}.week-bar:after{content:attr(data-day);color:var(--text-4);font-size:10px;font-weight:600;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.week-bar.today{border-radius:6px 6px 0 0;background:var(--gradient-accent)!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.35s ease-out fadeIn}.slide-up{animation:.4s ease-out slideUp}::-webkit-scrollbar{width:0}.divider{background:var(--surface-5);height:1px;margin:16px 0}.unlock-img{object-fit:cover;border-radius:var(--radius-lg);width:140px;height:140px;margin:0 auto;display:block;box-shadow:0 4px 24px #0000004d}.achievement-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;cursor:grab;gap:14px;padding:4px 4px 12px;display:flex;overflow:auto hidden}.achievement-carousel:active{cursor:grabbing}.achievement-carousel::-webkit-scrollbar{display:none}.ach-card{scroll-snap-align:start;background:var(--surface-2);border:1px solid var(--surface-5);border-radius:var(--radius-lg);flex-shrink:0;width:260px;transition:all .25s;overflow:hidden}.ach-card-img-wrap{aspect-ratio:1;width:100%;position:relative;overflow:hidden}.ach-card-img{object-fit:cover;width:100%;height:100%;display:block}.ach-card-locked{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.ach-card-badge{border-radius:var(--radius-full);letter-spacing:.3px;padding:4px 10px;font-size:10px;font-weight:700;position:absolute;top:10px;left:10px}.ach-card-status{-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-full);background:#08080f99;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;top:10px;right:10px}.ach-card-info{padding:14px 16px 16px}.ach-card-name{margin-bottom:6px;font-size:16px;font-weight:800;line-height:1.3}.ach-card-desc{color:var(--text-3);margin-bottom:6px;font-size:12px;line-height:1.5}.ach-card-date{color:var(--text-4);font-size:11px}
