:root{--color-bg: #08080c;--color-surface: #131318;--color-text: #e0dfe4;--color-accent: #5B21B6;--color-accent-light: #a78bfa;--color-accent-dim: rgba(91, 33, 182, .12);--color-accent-border: rgba(91, 33, 182, .35);--color-accent-glow: rgba(91, 33, 182, .08);--glass-bg: rgba(255, 255, 255, .06);--glass-bg-hover: rgba(255, 255, 255, .1);--glass-bg-strong: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .12);--glass-border-light: rgba(255, 255, 255, .18);--glass-border-subtle: rgba(255, 255, 255, .06);--text-primary: var(--color-text);--text-secondary: rgba(224, 223, 228, .55);--text-tertiary: rgba(224, 223, 228, .3);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 20px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: 0px;--tab-bar-height: 60px;--transition-fast: .15s cubic-bezier(.25, .46, .45, .94);--transition-normal: .25s cubic-bezier(.25, .46, .45, .94);--transition-slow: .4s cubic-bezier(.25, .46, .45, .94);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--blur-sm: 20px;--blur-md: 40px;--blur-lg: 60px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(91, 33, 182, .15), 0 0 6px rgba(91, 33, 182, .1);--color-danger: #ef4444;--color-danger-dim: rgba(239, 68, 68, .12);--color-danger-border: rgba(239, 68, 68, .25);--color-danger-text: #fca5a5}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--text-primary);overflow:hidden;height:100%;width:100%}body{height:100%;width:100%;overflow:hidden;background:var(--color-bg)}#root{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}input,button,textarea,select{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}button{cursor:pointer;-webkit-user-select:none;user-select:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border-light);border-radius:2px}.app-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--color-bg)}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:var(--spacing-md);padding-bottom:calc(var(--tab-bar-height) + var(--spacing-sm))}.page-header{position:sticky;top:calc(-1 * var(--spacing-md));margin:calc(-1 * var(--spacing-md));margin-bottom:var(--spacing-md);padding:var(--spacing-md);padding-top:calc(var(--safe-top) + var(--spacing-md));background:var(--color-bg);border-bottom:1px solid var(--glass-border);z-index:10}.page-title{font-size:28px;font-weight:700;margin-bottom:0;color:var(--text-primary);letter-spacing:-.5px}.page-fade-enter{animation:page-slide-in var(--transition-normal) forwards}@keyframes page-slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(display-mode:standalone){:root{--safe-bottom: env(safe-area-inset-bottom, 0px)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:var(--radius-lg);font-weight:600;font-size:15px;letter-spacing:-.1px;transition:transform var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);white-space:nowrap;min-height:46px}.btn:active{transform:scale(.96);opacity:.85}.btn-primary{background:#5b21b6a6;color:#fff;border:1px solid rgba(167,139,250,.3);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm),inset 0 1px #ffffff26}.btn-ghost{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm),inset 0 1px #ffffff14}.btn-ghost:active{background:var(--glass-bg-hover);box-shadow:none}.btn-danger{background:#ef44441f;color:#fca5a5;border:1px solid var(--color-danger-border);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm),inset 0 1px #ef44441a}.btn-small{padding:8px 16px;font-size:14px;min-height:38px;border-radius:var(--radius-md)}.btn-icon{width:42px;height:42px;padding:0;border-radius:var(--radius-md);font-size:18px;border:1px solid var(--glass-border)}.btn-icon.btn-small{width:36px;height:36px}.btn-remove{background:var(--color-danger-dim);border:1px solid var(--color-danger-border);color:var(--color-danger-text);box-shadow:var(--shadow-sm)}.btn-remove:active{background:#ef444433}.btn-full{width:100%}.btn-group{display:flex;gap:10px;align-items:center;justify-content:center}.btn-group-vertical{display:flex;flex-direction:column;gap:10px;align-items:center}.card{background:var(--glass-bg);border:1.5px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--spacing-md);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));transition:transform var(--transition-fast),border-color var(--transition-normal),box-shadow var(--transition-normal);box-shadow:var(--shadow-md),inset 0 1px #ffffff1a}.card-selected{border-color:#a78bfa59;background:#5b21b61a;box-shadow:var(--shadow-glow),inset 0 0 40px var(--color-accent-glow),inset 0 1px #a78bfa33}.input-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-label{font-size:13px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding-left:2px}.input{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px 14px;color:var(--text-primary);font-size:16px;min-height:46px;backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal);width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:inset 0 2px 4px #0003}.input:focus{border-color:var(--color-accent-border);background:var(--glass-bg-hover);box-shadow:inset 0 2px 4px #0003,0 0 0 2px #5b21b626}.input::placeholder{color:var(--text-tertiary)}.input-error{border-color:#f87171}.error-text{font-size:13px;color:#f87171;padding-left:2px}select.input{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='rgba(224,223,228,0.4)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}select.input option{background:var(--color-surface);color:var(--text-primary);padding:8px}textarea.input{resize:vertical;min-height:80px}.input-compact{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:9px 10px;color:var(--text-primary);font-size:16px;text-align:center;min-height:42px;width:100%;backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));transition:border-color var(--transition-normal);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-compact:focus{border-color:var(--color-accent-border)}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:var(--tab-bar-height);display:flex;align-items:center;justify-content:center;z-index:100;padding:0 var(--spacing-lg);padding-bottom:var(--safe-bottom);pointer-events:none}.tab-bar-pill{display:flex;align-items:center;justify-content:space-around;gap:4px;background:#12121a8c;border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:6px 10px;backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);box-shadow:0 4px 24px #00000080,inset 0 1px #ffffff14;width:100%;max-width:400px;pointer-events:auto}.tab-item{display:flex;align-items:center;justify-content:center;padding:0;color:var(--text-tertiary);transition:color var(--transition-normal),transform var(--transition-fast)}.tab-item:active{transform:scale(.88)}.tab-icon-wrap{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);transition:background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal)}.tab-item.active .tab-icon-wrap{background:var(--color-accent);color:#fff;box-shadow:0 2px 12px #5b21b666}.tab-item:not(.active) .tab-icon-wrap{color:var(--text-tertiary)}.toast-container{position:fixed;bottom:calc(var(--tab-bar-height) + var(--spacing-lg));left:var(--spacing-md);right:var(--spacing-md);z-index:200;display:flex;justify-content:center;pointer-events:none}.toast{background:#1919238c;border:1px solid var(--glass-border-light);border-radius:var(--radius-lg);padding:12px 24px;color:var(--text-primary);font-size:15px;font-weight:600;backdrop-filter:blur(var(--blur-lg));-webkit-backdrop-filter:blur(var(--blur-lg));animation:toast-in var(--transition-normal),toast-out var(--transition-normal) 1.8s forwards;pointer-events:auto;box-shadow:var(--shadow-lg),inset 0 1px #ffffff1f}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translateY(8px) scale(.97)}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:300;padding:var(--spacing-lg);animation:overlay-in var(--transition-normal) forwards}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.dialog{background:#19192399;border:1px solid var(--glass-border-light);border-radius:var(--radius-xl);padding:var(--spacing-lg);width:100%;max-width:340px;backdrop-filter:blur(var(--blur-lg));-webkit-backdrop-filter:blur(var(--blur-lg));animation:dialog-in var(--transition-slow) cubic-bezier(.34,1.56,.64,1) forwards;box-shadow:var(--shadow-lg),inset 0 1px #ffffff1f}@keyframes dialog-in{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-title{font-size:19px;font-weight:600;margin-bottom:var(--spacing-sm)}.dialog-message{font-size:15px;color:var(--text-secondary);margin-bottom:var(--spacing-lg);line-height:1.55}.dialog-actions{display:flex;gap:10px;justify-content:center}.dialog-actions .btn{flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);text-align:center;min-height:180px}.empty-state-icon{font-size:36px;margin-bottom:var(--spacing-md);color:var(--text-tertiary)}.empty-state-title{font-size:17px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.empty-state-text{font-size:14px;color:var(--text-tertiary);max-width:240px;line-height:1.5}.chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:100px;font-size:13px;font-weight:600;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm))}.chip-accent{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent-light)}.separator{height:1px;background:var(--glass-border-subtle);margin:var(--spacing-md) 0}.checkbox-wrapper{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1.5px solid var(--glass-border-light);background:var(--glass-bg);transition:all var(--transition-normal);flex-shrink:0}.checkbox-wrapper.checked{background:var(--color-accent);border-color:var(--color-accent)}.checkbox-wrapper.checked:after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}.warmup-badge{font-size:11px;color:var(--text-secondary);background:var(--glass-bg-strong);border:1px solid var(--glass-border-subtle);padding:2px 8px;border-radius:100px;font-weight:600;letter-spacing:.5px}.prev-hint{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.stat-card{background:var(--glass-bg);border:1.5px solid var(--glass-border);border-radius:var(--radius-xl);padding:14px var(--spacing-md);text-align:center;backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm),inset 0 1px #ffffff1a}.stat-value{font-size:24px;font-weight:600;color:var(--color-accent-light);letter-spacing:-.5px}.stat-label{font-size:12px;color:var(--text-tertiary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg);z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl)}.onboarding-slide{text-align:center;animation:page-slide-in var(--transition-slow) forwards}.onboarding-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);color:var(--color-accent-light);opacity:.7}.onboarding-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.onboarding-title{font-size:26px;font-weight:600;margin-bottom:var(--spacing-sm);letter-spacing:-.5px}.onboarding-text{font-size:16px;color:var(--text-secondary);line-height:1.6;max-width:280px;margin:0 auto var(--spacing-xl)}.onboarding-dots{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.onboarding-dot{width:6px;height:6px;border-radius:50%;background:var(--glass-border-light);transition:all var(--transition-normal)}.onboarding-dot.active{background:var(--color-accent);width:20px;border-radius:3px}.draggable-item{position:relative;-webkit-user-select:none;user-select:none;will-change:transform}.draggable-item.dragging{touch-action:none}.draggable-item.dragging .card{border-color:var(--color-accent-border);box-shadow:var(--shadow-glow),var(--shadow-lg);background:#5b21b614}.drag-handle{display:flex;align-items:center;justify-content:center;width:28px;color:var(--text-tertiary);flex-shrink:0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.draggable-item.dragging .drag-handle{color:var(--color-accent-light)}.timer-circle{position:relative;display:flex;align-items:center;justify-content:center}.timer-circle svg{transform:rotate(-90deg)}.timer-circle-bg{fill:none;stroke:var(--glass-border);stroke-width:4}.timer-circle-progress{fill:none;stroke:var(--color-accent);stroke-width:4;stroke-linecap:round}.timer-text{position:absolute;font-size:36px;font-weight:600;color:var(--text-primary);letter-spacing:-1px;font-variant-numeric:tabular-nums}.week-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.week-nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:16px;transition:transform var(--transition-fast);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm),inset 0 1px #ffffff14}.week-nav-btn:active{transform:scale(.92)}.week-label{font-size:15px;font-weight:600;color:var(--text-secondary)}.sort-selector{display:flex;gap:6px;margin-bottom:var(--spacing-md);flex-wrap:wrap}.sort-option{padding:7px 14px;border-radius:100px;font-size:13px;font-weight:600;color:var(--text-tertiary);background:var(--glass-bg);border:1px solid var(--glass-border);transition:all var(--transition-normal);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm)}.sort-option.active{color:var(--color-accent-light);background:var(--color-accent-dim);border-color:var(--color-accent-border)}.sort-option:active{transform:scale(.95)}.segmented-control{display:inline-flex;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:2px;gap:1px;backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}.segmented-item{padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;color:var(--text-tertiary);transition:all var(--transition-fast);letter-spacing:.2px}.segmented-item.active{color:var(--text-primary);background:var(--color-accent-dim)}.segmented-item:active{transform:scale(.95)}.line-toggle{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;color:var(--text-tertiary);transition:all var(--transition-fast);letter-spacing:.2px}.line-toggle.active{color:var(--color-accent-light);background:var(--color-accent-dim)}.line-toggle:active{transform:scale(.95)}.list-item-enter{animation:list-slide-in var(--transition-normal) both}@keyframes list-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.list-item-enter:nth-child(1){animation-delay:0ms}.list-item-enter:nth-child(2){animation-delay:40ms}.list-item-enter:nth-child(3){animation-delay:80ms}.list-item-enter:nth-child(4){animation-delay:.12s}.list-item-enter:nth-child(5){animation-delay:.16s}.list-item-enter:nth-child(6){animation-delay:.2s}.list-item-enter:nth-child(7){animation-delay:.24s}.list-item-enter:nth-child(8){animation-delay:.28s}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--spacing-md)}.mini-calendar-header{text-align:center;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;padding:6px 0}.mini-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:14px;color:var(--text-tertiary);transition:all var(--transition-fast);cursor:pointer;position:relative}.mini-calendar-day.current-month{color:var(--text-secondary)}.mini-calendar-day.today{color:var(--text-primary);font-weight:600}.mini-calendar-day.has-data:after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--color-accent)}.mini-calendar-day.selected{background:var(--color-accent);color:#fff;font-weight:600}.mini-calendar-day.selected:after{background:#fff}.mini-calendar-day:active{transform:scale(.9)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.calendar-month{font-size:16px;font-weight:600;color:var(--text-primary)}.wheel-picker{position:relative;height:220px;overflow:hidden;border-radius:var(--radius-lg);background:var(--glass-bg);border:1.5px solid var(--glass-border);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}.wheel-picker-indicator{position:absolute;top:88px;left:8px;right:8px;height:44px;background:var(--color-accent-dim);border:1px solid var(--color-accent-border);border-radius:var(--radius-md);pointer-events:none;z-index:2}.wheel-picker-fade{position:absolute;left:0;right:0;height:88px;pointer-events:none;z-index:3}.wheel-picker-fade-top{top:0;background:linear-gradient(to bottom,var(--color-bg) 0%,transparent 100%)}.wheel-picker-fade-bottom{bottom:0;background:linear-gradient(to top,var(--color-bg) 0%,transparent 100%)}.wheel-picker-scroll{height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch;scroll-snap-type:y mandatory;-ms-overflow-style:none;scrollbar-width:none}.wheel-picker-scroll::-webkit-scrollbar{display:none}.wheel-picker-item{height:44px;display:flex;align-items:center;justify-content:center;gap:4px;scroll-snap-align:start;cursor:pointer;user-select:none;-webkit-user-select:none;transition:color var(--transition-fast)}.wheel-picker-value{font-size:17px;font-weight:400;color:var(--text-tertiary);transition:all var(--transition-fast);font-variant-numeric:tabular-nums}.wheel-picker-item.selected .wheel-picker-value{font-size:24px;font-weight:600;color:var(--text-primary)}.wheel-picker-suffix{font-size:14px;color:var(--text-tertiary);font-weight:400}
