:root{--tl-primary: #FF7A59;--tl-primary-light: #FF9C7D;--tl-primary-dark: #DB4421;--tl-primary-bg: #FFF3EF;--tl-accent: #2EC4B6;--tl-accent-light: #95ECCA;--tl-accent-dark: #1BA999;--tb-sunshine: #FFC93C;--tb-sunshine-soft: #FFEEB3;--tb-sky: #5B9BFF;--tb-sky-soft: #D8EAFF;--tb-berry: #B765EE;--tb-berry-soft: #F1D8FF;--tb-sprout: #2EC4B6;--tb-sprout-soft: #CDF5E4;--tl-success: #2EC4B6;--tl-success-light: #CDF5E4;--tl-warning: #FFC93C;--tl-warning-light: #FFF8E0;--tl-danger: #E54D4D;--tl-danger-light: #FFE0E0;--tl-bg: #FFFBF5;--tl-surface: #FFFFFF;--tl-surface-secondary: #FDF5EA;--tl-border: #E7DCC7;--tl-border-light: #F0E7D4;--tl-text: #1F1A2E;--tl-text-secondary: #6F677B;--tl-text-muted: #A59FAF;--tl-space-xs: 4px;--tl-space-sm: 8px;--tl-space-md: 16px;--tl-space-lg: 24px;--tl-space-xl: 32px;--tl-space-xxl: 48px;--tl-radius-sm: 10px;--tl-radius-md: 14px;--tl-radius-lg: 20px;--tl-radius-xl: 28px;--tl-radius-pill: 999px;--tl-radius-round: 50%;--tl-shadow-sm: 0 2px 6px rgba(80, 50, 30, .07);--tl-shadow-md: 0 6px 18px rgba(80, 50, 30, .08), 0 1px 2px rgba(80, 50, 30, .05);--tl-shadow-lg: 0 18px 40px rgba(80, 50, 30, .12), 0 2px 6px rgba(80, 50, 30, .06);--tl-shadow-xl: 0 24px 48px rgba(80, 50, 30, .14);--tl-shadow-sticker: 0 2px 0 0 rgba(80, 50, 30, .1);--tl-shadow-glow: 0 0 20px rgba(255, 122, 89, .25);--tl-font: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--tl-font-display: "Bricolage Grotesque", "Nunito", system-ui, sans-serif;--tl-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--tl-fs-xs: 11px;--tl-fs-sm: 13px;--tl-fs-base: 15px;--tl-fs-md: 17px;--tl-fs-lg: 20px;--tl-fs-xl: 24px;--tl-fs-2xl: 28px;--tl-fs-3xl: 34px;--tl-ease: cubic-bezier(.22, 1, .36, 1);--tl-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--tl-duration: .22s;--tl-duration-fast: .12s;--tl-duration-slow: .36s;--tl-nav-height: 64px;--tl-safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--tl-font);font-size:var(--tl-fs-base);font-weight:500;line-height:1.5;color:var(--tl-text);background-color:var(--tl-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;text-rendering:optimizeLegibility}#root{min-height:100vh;min-height:100dvh}.tl-h1{font-family:var(--tl-font-display);font-size:var(--tl-fs-3xl);font-weight:700;line-height:1.15;letter-spacing:-.01em}.tl-h2{font-family:var(--tl-font-display);font-size:var(--tl-fs-2xl);font-weight:700;line-height:1.2;letter-spacing:-.01em}.tl-h3{font-family:var(--tl-font-display);font-size:var(--tl-fs-xl);font-weight:700;line-height:1.25;letter-spacing:-.005em}.tl-h4{font-family:var(--tl-font);font-size:var(--tl-fs-lg);font-weight:700;line-height:1.3}.tl-body{font-size:var(--tl-fs-base);font-weight:500;line-height:1.5;text-wrap:pretty}.tl-small{font-size:var(--tl-fs-sm);font-weight:500;line-height:1.45}.tl-caption{font-size:var(--tl-fs-xs);font-weight:500;line-height:1.35;color:var(--tl-text-muted);letter-spacing:.2px}.tl-card{background:var(--tl-surface);border-radius:var(--tl-radius-xl);padding:var(--tl-space-lg);box-shadow:var(--tl-shadow-sm);transition:transform var(--tl-duration) var(--tl-ease),box-shadow var(--tl-duration) var(--tl-ease)}.tl-card:hover{box-shadow:var(--tl-shadow-md)}.tl-card--interactive:active{transform:scale(.98)}.tl-card--elevated{box-shadow:var(--tl-shadow-md)}.tl-card--elevated:hover{box-shadow:var(--tl-shadow-lg)}.tl-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--tl-space-sm);padding:12px 24px;border:none;border-radius:var(--tl-radius-md);font-family:var(--tl-font);font-size:var(--tl-fs-base);font-weight:800;cursor:pointer;transition:all var(--tl-duration) var(--tl-ease);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;min-height:48px}.tl-btn:active{transform:scale(.96) translateY(1px)}.tl-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.tl-btn--primary{background:var(--tl-primary);color:#fff;box-shadow:var(--tl-shadow-sticker),0 6px 16px #ff7a5947}.tl-btn--primary:hover:not(:disabled){background:var(--tl-primary-dark);box-shadow:var(--tl-shadow-sticker),0 8px 20px #ff7a5959}.tl-btn--primary:active:not(:disabled){background:#c03a1b;box-shadow:0 1px #50321e1a;transform:scale(.97) translateY(1px)}.tl-btn--accent{background:var(--tl-accent);color:#fff;box-shadow:var(--tl-shadow-sticker),0 4px 12px #2ec4b647}.tl-btn--accent:hover:not(:disabled){background:var(--tl-accent-dark)}.tl-btn--secondary{background:var(--tl-surface);color:var(--tl-text);border:1.5px solid var(--tl-border);box-shadow:var(--tl-shadow-sticker)}.tl-btn--secondary:hover:not(:disabled){background:var(--tl-surface-secondary)}.tl-btn--ghost{background:transparent;color:var(--tl-primary)}.tl-btn--ghost:hover:not(:disabled){background:var(--tl-primary-bg)}.tl-btn--danger{background:var(--tl-danger);color:#fff;box-shadow:var(--tl-shadow-sticker)}.tl-btn--sm{padding:8px 16px;font-size:var(--tl-fs-sm);min-height:36px;border-radius:var(--tl-radius-sm)}.tl-btn--lg{padding:16px 32px;font-size:var(--tl-fs-md);min-height:56px;border-radius:var(--tl-radius-lg)}.tl-btn--block{width:100%}.tl-btn--icon{width:44px;height:44px;padding:0;border-radius:var(--tl-radius-round)}.tl-input{width:100%;padding:14px 16px;border:1.5px solid var(--tl-border);border-radius:var(--tl-radius-md);font-family:var(--tl-font);font-size:var(--tl-fs-base);font-weight:500;color:var(--tl-text);background:var(--tl-surface);transition:border-color var(--tl-duration) var(--tl-ease),box-shadow var(--tl-duration) var(--tl-ease);min-height:48px}.tl-input::placeholder{color:var(--tl-text-muted);font-weight:500}.tl-input:focus{outline:none;border-color:var(--tl-primary);box-shadow:0 0 0 3px var(--tl-primary-bg)}.tl-input--error{border-color:var(--tl-danger)}.tl-input--error:focus{box-shadow:0 0 0 3px var(--tl-danger-light)}.tl-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--tl-radius-pill);font-size:var(--tl-fs-xs);font-weight:600;letter-spacing:.3px;white-space:nowrap}.tl-badge--primary{background:var(--tl-primary-bg);color:var(--tl-primary)}.tl-badge--accent{background:#2ec4b61f;color:var(--tl-accent-dark)}.tl-badge--success{background:var(--tl-success-light);color:var(--tl-success)}.tl-badge--warning{background:var(--tl-warning-light);color:#d4a017}.tl-badge--danger{background:var(--tl-danger-light);color:var(--tl-danger)}.tl-badge--points{background:linear-gradient(135deg,var(--tl-primary-bg),rgba(162,155,254,.2));color:var(--tl-primary);font-weight:700;padding:6px 14px;font-size:var(--tl-fs-sm)}.tl-dot{width:8px;height:8px;border-radius:50%;background:var(--tl-danger);position:absolute;top:-2px;right:-2px;border:2px solid var(--tl-surface)}.tl-dot--lg{width:18px;height:18px;font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;top:-6px;right:-6px}.tl-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tl-nav-height) + var(--tl-safe-bottom));padding-bottom:var(--tl-safe-bottom);background:var(--tl-surface);border-top:1px solid var(--tl-border);display:flex;align-items:stretch;z-index:1000;box-shadow:0 -1px 0 var(--tl-border)}.tl-bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0;border:none;background:none;cursor:pointer;color:var(--tl-text-muted);font-family:var(--tl-font);font-size:10px;font-weight:500;transition:color var(--tl-duration) var(--tl-ease);-webkit-tap-highlight-color:transparent;position:relative}.tl-bottom-nav__item--active{color:var(--tl-primary);font-weight:600}.tl-bottom-nav__icon{font-size:22px;line-height:1;transition:transform var(--tl-duration) var(--tl-ease)}.tl-bottom-nav__item--active .tl-bottom-nav__icon{transform:scale(1.1)}.tl-bottom-nav__label{line-height:1}.tl-progress-ring{display:inline-flex;align-items:center;justify-content:center;position:relative}.tl-progress-ring__circle-bg{fill:none;stroke:var(--tl-border-light)}.tl-progress-ring__circle{fill:none;stroke-linecap:round;transition:stroke-dashoffset .6s var(--tl-ease);transform:rotate(-90deg);transform-origin:50% 50%}.tl-progress-ring__label{position:absolute;font-weight:700;color:var(--tl-text)}.tl-streak{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--tl-radius-pill);background:#ffe2d8;color:#b6361b;font-weight:800;font-size:var(--tl-fs-sm);border:1px solid #FFC4B1}.tl-streak__flame{font-size:16px;animation:streakPulse 1.5s ease-in-out infinite}.tl-task-card{display:flex;align-items:center;gap:var(--tl-space-md);padding:var(--tl-space-md) var(--tl-space-lg);background:var(--tl-surface);border-radius:var(--tl-radius-lg);box-shadow:var(--tl-shadow-sm);transition:all var(--tl-duration) var(--tl-ease);margin-bottom:var(--tl-space-sm)}.tl-task-card:hover{box-shadow:var(--tl-shadow-md)}.tl-task-card--done{opacity:.6;background:var(--tl-surface-secondary)}.tl-task-card__icon{width:44px;height:44px;border-radius:var(--tl-radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.tl-task-card__body{flex:1;min-width:0}.tl-task-card__title{font-weight:600;font-size:var(--tl-fs-base);color:var(--tl-text);margin-bottom:2px}.tl-task-card__meta{font-size:var(--tl-fs-xs);color:var(--tl-text-secondary)}.tl-task-card__action{flex-shrink:0}.tl-reward-card{background:var(--tl-surface);border-radius:var(--tl-radius-xl);padding:var(--tl-space-lg);box-shadow:var(--tl-shadow-sm);text-align:center;transition:all var(--tl-duration) var(--tl-ease);position:relative;overflow:hidden}.tl-reward-card:hover{box-shadow:var(--tl-shadow-md);transform:translateY(-2px)}.tl-reward-card__icon{font-size:36px;margin-bottom:var(--tl-space-sm)}.tl-reward-card__title{font-weight:600;font-size:var(--tl-fs-base);margin-bottom:var(--tl-space-xs)}.tl-reward-card__cost{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:var(--tl-radius-pill);font-size:var(--tl-fs-sm);font-weight:700;margin-bottom:var(--tl-space-md)}.tl-reward-card__cost--ready{background:var(--tl-success-light);color:var(--tl-success)}.tl-reward-card__cost--locked{background:var(--tl-surface-secondary);color:var(--tl-text-muted)}.tl-stat-card{background:var(--tl-surface);border-radius:var(--tl-radius-xl);padding:var(--tl-space-lg);text-align:center;box-shadow:var(--tl-shadow-sm)}.tl-stat-card__value{font-size:var(--tl-fs-2xl);font-weight:700;color:var(--tl-primary);line-height:1.2}.tl-stat-card__label{font-size:var(--tl-fs-xs);color:var(--tl-text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.tl-alert{padding:var(--tl-space-md);border-radius:var(--tl-radius-md);font-size:var(--tl-fs-sm);font-weight:500}.tl-alert--error{background:var(--tl-danger-light);color:var(--tl-danger)}.tl-alert--success{background:var(--tl-success-light);color:var(--tl-success)}.tl-alert--info{background:var(--tl-primary-bg);color:var(--tl-primary)}.tl-pill-bar{display:flex;gap:var(--tl-space-xs);padding:4px;background:var(--tl-surface-secondary);border-radius:var(--tl-radius-pill)}.tl-pill-bar__item{flex:1;padding:10px 16px;border:none;border-radius:var(--tl-radius-pill);background:transparent;font-family:var(--tl-font);font-size:var(--tl-fs-sm);font-weight:600;color:var(--tl-text-secondary);cursor:pointer;transition:all var(--tl-duration) var(--tl-ease);-webkit-tap-highlight-color:transparent}.tl-pill-bar__item--active{background:var(--tl-primary);color:#fff;box-shadow:var(--tl-shadow-sm)}.tl-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--tl-space-md);padding:var(--tl-space-md) 0}.tl-more-item{display:flex;flex-direction:column;align-items:center;gap:var(--tl-space-sm);padding:var(--tl-space-lg) var(--tl-space-md);background:var(--tl-surface);border-radius:var(--tl-radius-xl);box-shadow:var(--tl-shadow-sm);border:none;cursor:pointer;font-family:var(--tl-font);font-size:var(--tl-fs-sm);font-weight:500;color:var(--tl-text);transition:all var(--tl-duration) var(--tl-ease);-webkit-tap-highlight-color:transparent}.tl-more-item:hover{box-shadow:var(--tl-shadow-md);transform:translateY(-2px)}.tl-more-item:active{transform:scale(.96)}.tl-more-item__icon{font-size:28px}.tl-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--tl-space-xxl) var(--tl-space-lg);text-align:center}.tl-empty__icon{font-size:56px;margin-bottom:var(--tl-space-md);opacity:.7}.tl-empty__text{font-size:var(--tl-fs-base);color:var(--tl-text-secondary);margin-bottom:var(--tl-space-lg);max-width:260px}.tl-overlay{position:fixed;inset:0;background:#1f1a2e59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s var(--tl-ease)}.tl-sheet{background:var(--tl-surface);border-radius:var(--tl-radius-xl) var(--tl-radius-xl) 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:var(--tl-space-lg);padding-bottom:calc(var(--tl-space-lg) + var(--tl-safe-bottom));animation:slideUp .3s var(--tl-ease)}.tl-sheet__handle{width:36px;height:4px;border-radius:2px;background:var(--tl-border);margin:0 auto var(--tl-space-lg)}.tl-motivation{display:flex;align-items:center;gap:var(--tl-space-md);padding:var(--tl-space-md) var(--tl-space-lg);background:linear-gradient(135deg,var(--tl-primary-bg),rgba(255,201,60,.1));border-radius:var(--tl-radius-lg);margin-bottom:var(--tl-space-md);border:1px solid var(--tl-border)}.tl-motivation__emoji{font-size:28px}.tl-motivation__text{font-size:var(--tl-fs-sm);font-weight:600;color:var(--tl-primary)}.tl-page{min-height:100vh;min-height:100dvh;background:var(--tl-bg);padding-bottom:calc(var(--tl-nav-height) + var(--tl-safe-bottom) + var(--tl-space-md))}.tl-header{position:sticky;top:0;z-index:100;background:var(--tl-surface);border-bottom:1px solid var(--tl-border-light);padding:var(--tl-space-md) var(--tl-space-lg);box-shadow:var(--tl-shadow-sm)}.tl-header__inner{display:flex;align-items:center;justify-content:space-between;max-width:480px;margin:0 auto}.tl-content{max-width:480px;margin:0 auto;padding:var(--tl-space-md);box-sizing:border-box;width:100%}*,*:before,*:after{box-sizing:border-box;max-width:100vw}body,#root{overflow-x:hidden}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pointPop{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-24px) scale(1.3)}to{opacity:0;transform:translateY(-48px) scale(.8)}}@keyframes celebrate{0%,to{transform:scale(1)}25%{transform:scale(1.15) rotate(-3deg)}50%{transform:scale(1.15) rotate(3deg)}75%{transform:scale(1.1) rotate(-1deg)}}@keyframes streakPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes checkBounce{0%{transform:scale(0)}50%{transform:scale(1.3)}to{transform:scale(1)}}.tl-animate-in{animation:fadeSlideUp .3s var(--tl-ease) both}.tl-point-pop{position:absolute;pointer-events:none;font-weight:700;font-size:var(--tl-fs-lg);color:var(--tl-primary);animation:pointPop .8s var(--tl-ease) forwards;z-index:100}.tl-celebrate{animation:celebrate .5s var(--tl-ease)}.tl-check-bounce{animation:checkBounce .4s var(--tl-ease)}.tl-flex{display:flex}.tl-flex-col{flex-direction:column}.tl-items-center{align-items:center}.tl-justify-between{justify-content:space-between}.tl-justify-center{justify-content:center}.tl-gap-xs{gap:var(--tl-space-xs)}.tl-gap-sm{gap:var(--tl-space-sm)}.tl-gap-md{gap:var(--tl-space-md)}.tl-gap-lg{gap:var(--tl-space-lg)}.tl-text-center{text-align:center}.tl-text-secondary{color:var(--tl-text-secondary)}.tl-text-muted{color:var(--tl-text-muted)}.tl-w-full{width:100%}.tl-mt-sm{margin-top:var(--tl-space-sm)}.tl-mt-md{margin-top:var(--tl-space-md)}.tl-mt-lg{margin-top:var(--tl-space-lg)}.tl-mb-sm{margin-bottom:var(--tl-space-sm)}.tl-mb-md{margin-bottom:var(--tl-space-md)}.tl-mb-lg{margin-bottom:var(--tl-space-lg)}.tl-modal-overlay{position:fixed;inset:0;background:#2d304773;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--tl-space-md);overflow-y:auto;-webkit-overflow-scrolling:touch;animation:fadeIn .2s var(--tl-ease)}.tl-modal{margin:auto;width:calc(100% - 32px);max-width:500px;max-height:calc(100dvh - 32px);overflow-y:auto;flex-shrink:0;animation:fadeSlideUp .25s var(--tl-ease) both;box-sizing:border-box}.tl-label{display:block;font-size:var(--tl-fs-sm);font-weight:600;color:var(--tl-text-secondary);margin-bottom:6px}.tl-btn--success{background:var(--tl-success);color:#fff;box-shadow:var(--tl-shadow-sticker),0 4px 12px #2ec4b64d}.tl-btn--success:hover:not(:disabled){background:#1ba999;box-shadow:var(--tl-shadow-sticker),0 6px 16px #2ec4b659}.tl-btn--warning{background:var(--tl-warning);color:#333}:root{--tl-error: var(--tl-danger);--tl-bg-secondary: var(--tl-surface-secondary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--tl-border);border-radius:2px}::selection{background:var(--tl-primary-bg);color:var(--tl-primary)}.tl-reward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--tl-space-md);width:100%}.tl-notification-dropdown{position:absolute;top:100%;right:0;margin-top:8px;width:340px;max-height:480px;background-color:var(--tl-surface);border-radius:var(--tl-radius-lg);box-shadow:var(--tl-shadow-xl);border:1px solid var(--tl-border);z-index:1000;overflow:hidden;animation:fadeSlideUp .2s var(--tl-ease) both}@media(max-width:380px){:root{--tl-fs-xs: 10px;--tl-fs-sm: 12px;--tl-fs-base: 14px;--tl-fs-md: 15px;--tl-fs-lg: 18px;--tl-fs-xl: 21px;--tl-fs-2xl: 24px;--tl-fs-3xl: 28px}.tl-card{padding:var(--tl-space-md);border-radius:var(--tl-radius-lg)}.tl-reward-grid{grid-template-columns:repeat(2,1fr);gap:var(--tl-space-sm)}.tl-more-grid{gap:var(--tl-space-sm)}.tl-btn{padding:10px 16px;font-size:var(--tl-fs-sm);min-height:42px}.tl-btn--sm{padding:6px 12px;min-height:32px}.tl-input{padding:10px 12px;min-height:42px;font-size:var(--tl-fs-sm)}.tl-notification-dropdown{position:fixed;top:auto;bottom:calc(var(--tl-nav-height) + var(--tl-safe-bottom));left:var(--tl-space-sm);right:var(--tl-space-sm);width:auto;max-height:60vh;border-radius:var(--tl-radius-xl)}.tl-modal-overlay{padding:var(--tl-space-sm);padding-top:var(--tl-space-md)}.tl-header__inner{padding:0}}@media(max-width:480px){.tl-reward-grid{grid-template-columns:repeat(2,1fr)}.tl-notification-dropdown{position:fixed;top:auto;bottom:calc(var(--tl-nav-height) + var(--tl-safe-bottom));left:var(--tl-space-sm);right:var(--tl-space-sm);width:auto;max-height:65vh;border-radius:var(--tl-radius-xl)}.tl-modal-overlay{padding:var(--tl-space-sm)}.tl-stat-card{padding:var(--tl-space-md)}.tl-stat-card__value{font-size:var(--tl-fs-xl)}.tl-empty{padding:var(--tl-space-xl) var(--tl-space-md)}.tl-empty__icon{font-size:44px}}@media(min-width:768px){.tl-content{max-width:560px;padding:var(--tl-space-lg)}.tl-bottom-nav{max-width:560px;left:50%;transform:translate(-50%);border-radius:var(--tl-radius-xl) var(--tl-radius-xl) 0 0}.tl-more-grid{grid-template-columns:repeat(4,1fr)}.tl-reward-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tl-notification-dropdown{position:absolute;inset:100% 0 auto auto;width:380px;max-height:500px;border-radius:var(--tl-radius-lg)}}@media(min-width:1024px){.tl-content,.tl-bottom-nav{max-width:640px}.tl-reward-grid{grid-template-columns:repeat(3,1fr)}}.tb-points-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#ffeeb3;color:#8c6800;border-radius:999px;font-family:var(--tl-font);font-size:12px;font-weight:800;white-space:nowrap}.tb-done-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#cdf5e4;color:#0e6a5f;border-radius:999px;font-family:var(--tl-font);font-size:12px;font-weight:800}.tb-overdue-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#ffe2d8;color:#b6361b;border-radius:999px;font-family:var(--tl-font);font-size:12px;font-weight:800}.tb-avatar{display:grid;place-items:center;border-radius:50%;font-family:var(--tl-font-display);font-weight:800;color:#fff;flex-shrink:0}.tb-progress-bar{height:10px;background:var(--tl-surface-secondary);border:1px solid var(--tl-border-light);border-radius:999px;overflow:hidden}.tb-progress-bar__fill{height:100%;border-radius:999px;transition:width .4s var(--tl-ease)}.tb-auth-bg{background:linear-gradient(150deg,#ffe2d8,#fff8e0,#cdf5e4)}.tb-display{font-family:var(--tl-font-display);font-weight:700;letter-spacing:-.01em}.tb-sticker{box-shadow:var(--tl-shadow-sticker)}.tb-card-sunshine{background:linear-gradient(135deg,#fff8e0,#ffeeb3 40%,#ffe2d8);border:1.5px solid #FFC4B1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--tl-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--tl-bg);color:var(--tl-text)}#root{min-height:100vh}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background-color:#ff6b9d;color:#fff}.btn-primary:hover{background-color:#ff5a8a}.btn-secondary{background-color:#e0e0e0;color:#333}.btn-success{background-color:#4caf50;color:#fff}.btn-danger{background-color:#f44336;color:#fff}.input{width:100%;padding:12px;border:1px solid #E0E0E0;border-radius:8px;font-size:16px;background-color:#fff}.input:focus{outline:none;border-color:#ff6b9d}.card{background-color:#fff;border-radius:10px;padding:20px;box-shadow:0 2px 4px #0000001a;margin-bottom:15px}.child-dashboard .card{background-color:var(--child-theme-card, white);transition:background-color .3s ease}.child-dashboard .input{border-color:#0000001f}.child-dashboard .input:focus{border-color:var(--child-theme-accent, #FF6B9D)}.container{max-width:1200px;margin:0 auto;padding:20px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.text-center{text-align:center}.font-bold{font-weight:700}.text-lg{font-size:18px}.text-xl{font-size:20px}.text-2xl{font-size:24px}.text-3xl{font-size:32px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.fade-in{animation:fadeIn .3s ease-in}.slide-in{animation:slideIn .3s ease-out}.spinner{border:3px solid #f3f3f3;border-top:3px solid #FF6B9D;border-radius:50%;width:24px;height:24px;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes celebrate{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.celebrate{animation:celebrate .5s ease}@keyframes cr-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes cr-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes cr-shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes cr-pop{0%{transform:scale(.85);opacity:0}70%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}.cr-float{animation:cr-float 3s ease-in-out infinite}.cr-pulse{animation:cr-pulse 2s ease-in-out infinite}.cr-pop{animation:cr-pop .4s cubic-bezier(.22,1,.36,1) both}@keyframes gm-coin-spin{0%,to{transform:rotateY(0)}50%{transform:rotateY(180deg)}}@keyframes gm-star-pop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes gm-hero-slide{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes gm-progress{0%{width:0}to{width:var(--gm-pct)}}@keyframes gm-points-in{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes gm-task-in{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes gm-sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}.gm-hero-slide{animation:gm-hero-slide .5s cubic-bezier(.22,1,.36,1) both}.gm-points-in{animation:gm-points-in .6s cubic-bezier(.22,1,.36,1) .1s both}.gm-task-in{animation:gm-task-in .4s ease both}.gm-sparkle{animation:gm-sparkle 1.5s ease-in-out infinite}
