:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--card:#1c1c1e;--text-primary:#f5f5f7;--text-secondary:#aeaeb2;--text-tertiary:#636366;--track:#2c2c2e;--separator:#545458a6;--accent-green:#30d158;--card-shadow:0 2px 16px #00000059;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f2f7;--card:#fff;--text-primary:#1c1c1e;--text-secondary:#636366;--text-tertiary:#8e8e93;--track:#e5e5ea;--separator:#3c3c431f;--card-shadow:0 2px 12px #0000000f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.4}#root{min-height:100dvh}button,input,textarea{font-family:inherit}h1,h2,p,ul{margin:0}.app{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-bar{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:12px 20px 4px;display:flex;position:sticky;top:0}.app-logo{letter-spacing:-.02em;color:var(--text-primary);font-size:17px;font-weight:600}.theme-toggle{background:var(--card);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;place-items:center;transition:background .2s,transform .15s;display:grid}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{width:22px;height:22px}.app-main{flex:1;padding:8px 16px 100px;overflow-y:auto}.page-header{justify-content:space-between;align-items:flex-end;margin-bottom:20px;padding:0 4px;display:flex}.page-header h1{letter-spacing:-.03em;color:var(--text-primary);margin:4px 0 0;font-size:34px;font-weight:700}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin:0;font-size:13px;font-weight:600}.header-stat{text-align:right}.stat-value{color:var(--accent-green);letter-spacing:-.02em;font-size:28px;font-weight:700;display:block}.stat-label{color:var(--text-tertiary);font-size:13px}.card{background:var(--card);box-shadow:var(--card-shadow);border-radius:20px;padding:16px 18px}.day-progress{margin-bottom:20px}.day-progress-top{color:var(--text-primary);justify-content:space-between;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.muted{color:var(--text-tertiary);font-weight:500}.progress-track{background:var(--track);border-radius:99px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-green), #34c759);border-radius:99px;height:100%;transition:width .35s cubic-bezier(.22,1,.36,1)}.level-fill{background:linear-gradient(90deg,#5ac8fa,#007aff)}.complete-banner{color:var(--accent-green);margin:12px 0 0;font-size:14px;font-weight:600}.home-stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.home-stat{padding:14px 16px}.home-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-size:12px;font-weight:600}.home-stat-value{letter-spacing:-.03em;margin-top:2px;font-size:32px;font-weight:700;display:block}.home-stat-value.streak{color:#ff9f0a}.home-stat-value.level{color:#bf5af2}.home-stat-unit{color:var(--text-secondary);font-size:13px}.habit-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.habit-card{background:var(--card);box-shadow:var(--card-shadow);border-radius:20px;transition:background .2s}.habit-card.checked{background:color-mix(in srgb, var(--habit-color) 8%, var(--card))}.habit-label-row{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:flex-start;gap:14px;min-height:72px;padding:16px 18px;display:flex}.habit-checkbox-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.habit-checkbox{border:2px solid color-mix(in srgb, var(--habit-color) 50%, var(--track));border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;margin-top:2px;transition:background .2s,border-color .2s;display:grid}.habit-checkbox svg{opacity:0;color:#fff;width:16px;height:16px;transition:opacity .15s,transform .2s;transform:scale(.6)}.habit-checkbox-input:checked+.habit-checkbox{background:var(--habit-color);border-color:var(--habit-color)}.habit-checkbox-input:checked+.habit-checkbox svg{opacity:1;transform:scale(1)}.habit-checkbox-input:focus-visible+.habit-checkbox{outline:2px solid var(--habit-color);outline-offset:2px}.habit-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.habit-name{color:var(--text-primary);letter-spacing:-.01em;font-size:17px;font-weight:600}.habit-preview{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.35;display:-webkit-box;overflow:hidden}.habit-xp{color:var(--habit-color);flex-shrink:0;margin-top:4px;font-size:13px;font-weight:600}.modal-backdrop{z-index:9999;-webkit-backdrop-filter:blur(14px);box-sizing:border-box;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:448px;max-height:85dvh;animation:.18s ease-out modal-pop;overflow-y:auto}@keyframes modal-pop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-title{color:var(--text-primary);font-size:22px;font-weight:700}.modal-subtitle{color:var(--text-tertiary);margin-top:4px;font-size:14px}.modal-form{flex-direction:column;gap:14px;margin-top:20px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-secondary);font-size:13px;font-weight:600}.field input,.field textarea{border:1px solid var(--separator);background:var(--bg);width:100%;color:var(--text-primary);resize:vertical;border-radius:12px;padding:12px 14px;font-size:16px}.field input:focus,.field textarea:focus{outline:2px solid var(--accent-green);outline-offset:0;border-color:#0000}.field-error{color:#ff453a;font-size:14px;font-weight:500}.modal-actions{gap:10px;margin-top:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:14px;flex:1;min-height:48px;font-size:16px;font-weight:600}.btn.secondary{background:var(--track);color:var(--text-primary)}.btn.primary{background:var(--accent-green);color:#000}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.stat-card{flex-direction:column;min-height:100px;display:flex}.stat-card.wide{grid-column:1/-1}.stat-card-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.stat-card-value{letter-spacing:-.03em;color:var(--text-primary);margin-top:4px;font-size:40px;font-weight:700;line-height:1.1}.stat-card-unit{color:var(--text-secondary);margin-top:-4px;font-size:15px}.accent-streak .stat-card-value{color:#ff9f0a}.accent-xp .stat-card-value{color:#5ac8fa}.accent-level .stat-card-value{color:#bf5af2}.level-row{justify-content:space-between;align-items:flex-end;margin-bottom:12px;display:flex}.level-xp-text{color:var(--text-secondary);font-size:14px;font-weight:600}.history-section h2{color:var(--text-primary);margin:0 0 4px;font-size:20px;font-weight:700}.section-desc{margin:0 0 16px;font-size:14px}.history-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.history-row{border-bottom:1px solid var(--separator);align-items:center;gap:10px;padding:10px 0;display:flex}.history-row:last-child{border-bottom:none;padding-bottom:0}.history-date{width:88px;color:var(--text-primary);flex-shrink:0;font-size:14px;font-weight:600}.history-dots{flex:1;justify-content:center;gap:6px;display:flex}.dot{background:var(--track);border-radius:50%;width:10px;height:10px}.dot.on{background:var(--dot-color)}.history-badge{background:var(--track);color:var(--text-secondary);text-align:center;border-radius:99px;min-width:56px;padding:4px 10px;font-size:12px;font-weight:600}.history-badge.complete{background:color-mix(in srgb, var(--accent-green) 20%, transparent);color:var(--accent-green)}.tab-bar{width:100%;max-width:480px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--separator);box-sizing:border-box;gap:8px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{min-height:52px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;transition:color .2s,background .2s;display:flex}.tab-item.active{color:var(--accent-green);background:color-mix(in srgb, var(--accent-green) 12%, transparent)}.tab-icon svg{width:22px;height:22px}.confetti-canvas{pointer-events:none;z-index:100;position:fixed;inset:0}.page-blurred{filter:blur(5px);opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.day-complete-overlay{z-index:80;pointer-events:none;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.day-complete-card{text-align:center;pointer-events:auto;width:100%;max-width:420px;position:relative}.day-complete-card h2{color:var(--text-primary);margin:8px 0 10px;font-size:28px}.day-complete-card p{color:var(--text-secondary);line-height:1.45}.day-complete-actions{gap:12px;margin-top:20px;display:flex}.history-menu{flex-direction:column;gap:14px;display:flex}.history-menu-card{text-align:left;width:100%;color:inherit;cursor:pointer;border:none;align-items:center;gap:16px;display:flex}.history-menu-icon{font-size:32px}.history-menu-card h2{margin:0 0 4px;font-size:20px}.history-card{cursor:pointer}.back-btn{background:var(--card);color:var(--text-primary);border:none;border-radius:12px;margin-bottom:16px;padding:10px 14px;font-weight:600}.dismiss-complete{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:18px;font-weight:700;transition:all .15s;position:absolute;top:14px;right:14px}.dismiss-complete:hover{color:var(--text-primary);background:#ffffff0f}.brush-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn:disabled{background:var(--track);color:var(--text-tertiary);cursor:not-allowed;opacity:.7}.modern-history-list{flex-direction:column;gap:10px;display:flex}.modern-history-item{background:var(--card);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;box-shadow:var(--card-shadow);border:none;border-radius:18px;padding:16px}.modern-history-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.modern-history-row h3{margin:0;font-size:17px;font-weight:700}.modern-history-row span{color:var(--text-tertiary);margin-top:4px;font-size:13px;display:block}.modern-chevron{color:var(--text-tertiary);font-size:20px}.modern-history-body{color:var(--text-secondary);margin:14px 0 0;line-height:1.45}.achievement-grid{flex-direction:column;gap:10px;display:flex}.achievement-card{background:var(--bg);border:1px solid var(--separator);border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.achievement-card.locked{opacity:.45;filter:grayscale()}.achievement-card.unlocked{border-color:color-mix(in srgb, var(--accent-green) 40%, var(--separator))}.achievement-icon{font-size:26px;line-height:1}.achievement-card h3{margin:0 0 4px;font-size:15px}.achievement-card p{color:var(--text-tertiary);margin:0;font-size:13px}.progress-section{margin-top:20px}.achievement-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.achievement-toggle h2{margin:0 0 4px}.achievement-toggle span{color:var(--text-tertiary);font-size:22px}.achievement-grid{margin-top:14px}.streak-inline .stat-card-value,.streak-inline .stat-card-unit{color:inherit}.streak-inline{align-items:baseline;gap:6px;display:flex}.accent-streak{color:#ff9f0a}.accent-streak .stat-card-value,.accent-streak .stat-card-unit{color:inherit}.accent-streak .stat-card-unit{letter-spacing:-.03em;font-size:32px;font-weight:700}.level-title-row{align-items:baseline;gap:10px;display:flex}.level-title-row .stat-card-value{margin:0}.level-title{color:var(--text-secondary);font-size:18px;font-weight:700}.app-actions{align-items:center;gap:8px;display:flex}.reminder-button{background:var(--card);width:52px;height:52px;color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:22px;transition:transform .15s;display:flex}.reminder-button:active{transform:scale(.95)}
