:root{color-scheme:dark;--bg-color: #000000;--surface-color: #141414;--surface-hover: #2a2a2a;--surface-snoozed: var(--surface-color);--border-color: var(--surface-hover);--text-primary: #e5e5e5;--text-secondary: #b3b3b3;--text-tertiary: #737373;--accent-blue: #3498db;--accent-blue-hover: #2980b9;--accent-green: #27ae60;--accent-green-hover: #219150;--color-red: #e74c3c;--color-red-hover: #c0392b;--color-yellow: #f1c40f;--surface-light-hover: #d0d0d0;--swipe-action-width: 60px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-section: 20px;--space-xl: 24px;--space-xxl: 32px;--space-3xl: 48px;--border-radius-small: 6px;--border-radius-base: 8px;--border-radius-large: 12px;--border-radius-pill: 50%;--transition-duration: .2s;--transition-duration-fast: .15s;--transition-duration-slow: .3s;--z-index-base: 1;--z-index-content: 2;--z-index-indicator: 3;--z-index-sticky: 20;--z-index-header: 50;--z-index-footer: 50;--z-index-tooltip: 60;--z-index-modal-overlay: 1000;--z-index-modal-content: 1001;--z-index-stacked-modal: 1010}html{height:100%;overflow:hidden;background-color:var(--bg-color);overscroll-behavior:none}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;touch-action:manipulation;height:100%;height:100dvh;overflow:hidden;-webkit-text-size-adjust:100%}body.is-booting{pointer-events:none!important;opacity:.8;cursor:wait}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s;animation-timing-function:cubic-bezier(.25,1,.5,1)}.app-header{view-transition-name:app-header}main{view-transition-name:main-content}[data-flip-dir=forward]::view-transition-old(main-content){animation:pageFlipOutForward .35s cubic-bezier(.4,0,.2,1) both}[data-flip-dir=forward]::view-transition-new(main-content){animation:pageFlipInForward .35s cubic-bezier(.4,0,.2,1) both}[data-flip-dir=back]::view-transition-old(main-content){animation:pageFlipOutBack .35s cubic-bezier(.4,0,.2,1) both}[data-flip-dir=back]::view-transition-new(main-content){animation:pageFlipInBack .35s cubic-bezier(.4,0,.2,1) both}@keyframes pageFlipOutForward{0%{transform:perspective(1200px) rotateY(0);opacity:1}to{transform:perspective(1200px) rotateY(-15deg) translate(-8%);opacity:0}}@keyframes pageFlipInForward{0%{transform:perspective(1200px) rotateY(10deg) translate(6%);opacity:0}to{transform:perspective(1200px) rotateY(0);opacity:1}}@keyframes pageFlipOutBack{0%{transform:perspective(1200px) rotateY(0);opacity:1}to{transform:perspective(1200px) rotateY(15deg) translate(8%);opacity:0}}@keyframes pageFlipInBack{0%{transform:perspective(1200px) rotateY(-10deg) translate(-6%);opacity:0}to{transform:perspective(1200px) rotateY(0);opacity:1}}body.is-interaction-active *,body.is-swipe-pending *{scroll-behavior:auto!important}body.is-swipe-pending .habit-card:not(.is-swiping) .goal-control-btn{pointer-events:none}:is(input,textarea),#ai-response,#stoic-quote-display,#sync-key-text,#confirm-modal-text{-webkit-user-select:text;user-select:text}:is(button,a,input,[tabindex]):focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-blue) 30%,transparent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden{display:none!important}@keyframes glow-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flash-green{0%{color:var(--accent-green);text-shadow:0 0 8px var(--accent-green)}to{color:var(--text-primary);text-shadow:none}}@keyframes flash-red{0%{color:var(--color-red);text-shadow:0 0 8px var(--color-red)}to{color:var(--text-primary);text-shadow:none}}@keyframes icon-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes ripple{to{transform:scale(4);opacity:0}}.shake{animation:shake .3s ease-in-out;border-color:var(--color-red)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;view-transition-name:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:0s!important}}.app-container{max-width:800px;margin-inline:auto;height:100dvh;display:flex;flex-direction:column;overflow:hidden}main{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;position:relative}.app-header{display:flex;flex-direction:column;gap:var(--space-sm);padding-block-start:calc(var(--space-section) + env(safe-area-inset-top));padding-block-end:var(--space-lg);padding-inline:var(--space-lg);flex-shrink:0;z-index:var(--z-index-header);background-color:var(--bg-color);box-shadow:none}.header-top{display:flex;align-items:flex-end;gap:calc(var(--space-lg) * .75)}#fab-add-habit{margin-bottom:28px;margin-left:4px}.calendar-strip{margin-bottom:10px;margin-right:calc(var(--space-sm) * -.5)}@media(min-width:481px){#fab-add-habit{margin-right:var(--space-lg)}}.header-icon-stack{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);flex-shrink:0}@media(max-width:480px){.header-icon-stack{margin-left:calc(var(--space-sm) * -1)}}.header-icon-stack .icon-btn{width:44px;height:44px;font-size:20px}.header-icon-stack #ai-eval-btn svg{width:22px;height:22px}.header-icon-stack #manage-habits-btn svg{width:23px;height:23px}.header-bottom{display:flex;align-items:center;gap:var(--space-xl);justify-content:space-between;margin-block-start:0}.header-date-wrapper{display:flex;align-items:center;gap:var(--space-sm);position:relative;flex-shrink:0}.app-header h2{font-size:28px;font-weight:700;white-space:nowrap;text-align:right;cursor:pointer;user-select:none;-webkit-user-select:none;margin:0}.nav-arrow{background:transparent;border:none;color:var(--accent-green);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:var(--border-radius-pill);transition:background-color var(--transition-duration),opacity var(--transition-duration);opacity:1}.nav-arrow:hover{background-color:var(--surface-hover)}.nav-arrow.hidden{opacity:0;pointer-events:none;width:0;padding:0;overflow:hidden}.nav-arrow svg{width:14px;height:14px;stroke-width:3}.header-title-mobile{display:none}.stoic-quote{font-size:13px;font-style:italic;color:var(--text-secondary);min-height:2.2em;line-height:18px;transition:opacity .5s ease-in-out,color var(--transition-duration);opacity:0;display:flex;align-items:center;justify-content:flex-start;text-align:left;flex:1;min-width:0;margin-block-start:0;cursor:pointer}.stoic-quote .quote-adaptation{display:inline}.quote-expander{border:none;background:transparent;color:var(--accent-blue);cursor:pointer;font-weight:700;padding:0 4px}@media(max-width:480px){.stoic-quote{font-size:12px;line-height:17px}.header-bottom{gap:var(--space-sm)}.header-title-desktop{display:none}.header-title-mobile{display:inline}}.stoic-quote.visible{opacity:1}.stoic-quote:active{opacity:.7}.btn{padding:var(--space-sm) var(--space-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-base);background:var(--surface-color);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-duration),border-color var(--transition-duration);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;text-align:center}.btn:hover{background:var(--border-color)}.btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--surface-snoozed)}.btn--danger{background-color:var(--color-red);border-color:var(--color-red);color:#fff}.btn--danger:hover{background-color:var(--color-red-hover);border-color:var(--color-red-hover)}.btn--primary{background-color:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.btn--primary:hover{background-color:var(--accent-blue-hover);border-color:var(--accent-blue-hover)}.icon-btn{background:none;border:none;color:var(--text-primary);font-size:24px;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;transition:color var(--transition-duration)}.icon-btn:hover{color:var(--accent-blue)}#ai-eval-btn.has-notification:after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;background-color:var(--accent-blue);border:1px solid var(--bg-color);border-radius:var(--border-radius-pill);box-shadow:0 0 0 1px var(--bg-color)}#ai-eval-btn.loading{opacity:.6;cursor:wait}#ai-eval-btn .loading-icon,#ai-eval-btn .offline-icon{display:none}#ai-eval-btn.loading .loading-icon{display:block;animation:spin 1s linear infinite}#ai-eval-btn.loading .default-icon{display:none}#ai-eval-btn.offline .offline-icon{display:block}#ai-eval-btn.offline .default-icon,#ai-eval-btn.offline .loading-icon{display:none}#fab-add-habit{position:relative;width:calc(var(--space-section) * 2);height:calc(var(--space-section) * 2);font-size:24px;font-weight:300;line-height:1;border-radius:var(--border-radius-pill);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:var(--accent-green);color:#fff;border:none;box-shadow:0 4px 12px #0006,0 0 15px #27ae6066;transition:background-color var(--transition-duration),transform var(--transition-duration)}#fab-add-habit:hover{background-color:var(--accent-green-hover);transform:scale(1.05)}#fab-add-habit:after{content:"";position:absolute;inset:-4px;border-radius:var(--border-radius-pill);background-color:transparent;box-shadow:0 0 15px var(--accent-green);opacity:0;animation:glow-pulse 2.5s infinite ease-in-out;pointer-events:none}.reel-rotary{display:flex;align-items:center;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius-base);overflow:hidden;height:28px}.reel-viewport{height:100%;overflow:hidden;position:relative;display:flex;align-items:center;cursor:grab;user-select:none;touch-action:none;width:var(--reel-item-width)}.reel-viewport:active{cursor:grabbing}.reel-reel{display:flex;position:absolute;height:100%;transition:transform var(--transition-duration-slow) cubic-bezier(.25,1,.5,1);will-change:transform}.reel-option{flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--text-secondary);width:var(--reel-item-width)}.reel-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-xs);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-duration)}.reel-btn:hover{background-color:var(--surface-hover)}.reel-btn svg{stroke:var(--text-tertiary);width:16px;height:16px}#language-rotary{--reel-item-width: 95px}#toast-container{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-sm);z-index:var(--z-index-tooltip);pointer-events:none;width:100%;max-width:320px;padding-inline:var(--space-lg)}.toast{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius-large);padding:var(--space-md) var(--space-lg);color:var(--text-primary);font-size:13px;font-weight:500;display:flex;align-items:center;gap:var(--space-sm);box-shadow:0 4px 12px #0006;pointer-events:auto;animation:toast-in .3s cubic-bezier(.175,.885,.32,1.275) both;transition:transform .3s ease,opacity .3s ease}.toast--success{border-left:4px solid var(--accent-green)}.toast--error{border-left:4px solid var(--color-red)}.toast--info{border-left:4px solid var(--accent-blue)}.toast-icon{font-size:16px;flex-shrink:0}.toast-message{flex-grow:1}.toast--exit{opacity:0;transform:translateY(20px) scale(.9)}@keyframes toast-in{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.calendar-strip{display:flex;gap:var(--space-sm);overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;position:relative;user-select:none;contain:content;overscroll-behavior:contain;scroll-snap-type:x proximity;padding-inline-start:0;padding-inline-end:0}.calendar-strip::-webkit-scrollbar{display:none}.day-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--border-radius-large);cursor:pointer;transition:background-color var(--transition-duration),transform .1s ease-out;border:2px solid transparent;flex-shrink:0;scroll-snap-align:end}.day-item.selected{background-color:var(--surface-color)}.day-item.is-pressing{transform:scale(.95);background-color:var(--surface-hover)}.day-item .day-name{display:block;font-size:12px;color:var(--text-secondary);font-weight:500}.day-progress-ring{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-pill)}.day-progress-ring:before{content:"";position:absolute;inset:0;border-radius:var(--border-radius-pill);padding:2px;background:conic-gradient(from -90deg,var(--accent-blue) 0% var(--completed-percent, 0%),#ffffff var(--completed-percent, 0%) calc(var(--completed-percent, 0%) + var(--snoozed-percent, 0%)),transparent calc(var(--completed-percent, 0%) + var(--snoozed-percent, 0%)) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.day-item .day-number{font-size:16px;font-weight:600;color:var(--text-primary);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-pill);z-index:var(--z-index-content);position:relative}.day-item.today .day-number{background-color:var(--accent-green);color:#fff;box-shadow:0 0 10px var(--accent-green)}.day-item.today .day-number:after{content:"";position:absolute;inset:-3px;border-radius:var(--border-radius-pill);box-shadow:0 0 12px var(--accent-green);animation:glow-pulse 2.5s infinite ease-in-out;z-index:-1}.day-number.has-plus{text-shadow:0 0 3px var(--text-primary)}#full-calendar-modal .modal-content{max-width:500px;gap:var(--space-lg)}#full-calendar-header{display:flex;justify-content:space-between;align-items:center;padding-inline:var(--space-md)}#full-calendar-header h2{font-size:18px;font-weight:600;margin:0}#full-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-sm);text-align:center;font-size:12px;font-weight:500;color:var(--text-secondary)}#full-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-sm)}.full-calendar-day{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-pill);transition:background-color var(--transition-duration);position:relative;content-visibility:auto;contain-intrinsic-size:40px 40px}.full-calendar-day:hover{background-color:var(--surface-hover)}.full-calendar-day.other-month{color:var(--text-tertiary);pointer-events:none}.full-calendar-day.selected .day-number{font-size:1.3em;font-weight:700}.full-calendar-day.today .day-number{font-weight:700}.full-calendar-day.today .day-progress-ring:after{content:"";position:absolute;inset:-2px;border-radius:var(--border-radius-pill);box-shadow:0 0 8px var(--accent-green);border:2px solid var(--accent-green);animation:glow-pulse 2.5s infinite ease-in-out;pointer-events:none}#calendar-quick-actions{background:#0006;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);align-items:flex-start;justify-content:flex-start}.quick-actions-content{position:absolute;top:var(--actions-top, 50%);left:var(--actions-left, 50%);transform:translate(var(--translate-x, -50%)) scale(.95);background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius-large);overflow:hidden;padding:0;gap:0;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;opacity:0;transition:opacity var(--transition-duration-fast),transform var(--transition-duration-fast) cubic-bezier(.34,1.56,.64,1);width:max-content}#calendar-quick-actions.visible .quick-actions-content{opacity:1;transform:translate(var(--translate-x, -50%)) scale(1)}.quick-action-btn{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:transparent;border:none;border-radius:0;color:var(--text-primary);font-size:14px;text-align:left;cursor:pointer;width:100%;transition:background-color var(--transition-duration-fast)}.quick-action-btn:hover{background-color:var(--surface-hover);color:var(--text-primary)}.quick-action-btn:active{transform:none}.quick-action-btn svg{width:20px;height:20px;stroke:currentColor;flex-shrink:0}.quick-action-divider{display:block;height:1px;background-color:var(--border-color);margin-inline:var(--space-lg);margin-block:0}#habit-container{display:flex;flex-direction:column;gap:var(--space-md);position:relative;isolation:isolate;--edge-fade-solid: 4px;--edge-fade-depth: 12px;--edge-fade-top-bleed: 3px;--edge-fade-bottom-solid: 5px;--edge-fade-bottom-depth: 18px;--edge-fade-bleed: 5px;flex:0 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;padding-inline:var(--space-lg);padding-top:var(--space-sm);padding-bottom:var(--space-sm);scroll-behavior:smooth;overscroll-behavior-y:none;scrollbar-width:none}#habit-container:before{content:"";position:sticky;top:calc(-1 * var(--space-sm) - var(--edge-fade-top-bleed));display:block;flex:0 0 auto;align-self:stretch;margin-top:calc(-1 * var(--space-sm) - var(--edge-fade-top-bleed));height:calc(var(--edge-fade-solid) + var(--edge-fade-depth));margin-bottom:calc(-1 * (var(--edge-fade-solid) + var(--edge-fade-depth)));background:linear-gradient(to bottom,var(--bg-color) 0,var(--bg-color) var(--edge-fade-solid),rgba(0,0,0,0) 100%);pointer-events:none;z-index:var(--z-index-sticky);opacity:0;transition:opacity var(--transition-duration-fast) ease}#habit-container:after{content:"";position:sticky;bottom:calc(-1 * var(--space-sm) - var(--edge-fade-bleed));display:block;flex:0 0 auto;align-self:stretch;margin-top:calc(-1 * (var(--edge-fade-bottom-solid) + var(--edge-fade-bottom-depth)));margin-bottom:calc(-1 * var(--space-sm) - var(--edge-fade-bleed));height:calc(var(--edge-fade-bottom-solid) + var(--edge-fade-bottom-depth));background:linear-gradient(to top,var(--bg-color) 0,var(--bg-color) var(--edge-fade-bottom-solid),rgba(0,0,0,0) 100%);pointer-events:none;z-index:var(--z-index-sticky);opacity:0;transition:opacity var(--transition-duration-fast) ease}#habit-container.show-edge-fade-top:before{opacity:1}#habit-container.show-edge-fade-bottom:after{opacity:1}#habit-container.is-locking-scroll{overflow-y:hidden!important;touch-action:none!important}#habit-container.is-dragging{scroll-behavior:auto!important;touch-action:none!important;overflow-y:hidden!important;user-select:none!important;overscroll-behavior:none!important}#habit-container::-webkit-scrollbar{display:none}.habit-group-wrapper{margin-block-end:0;transition:margin-block-start var(--transition-duration-slow) ease-in-out;display:flex;align-items:flex-start;gap:var(--space-md);flex:0 0 auto;min-height:auto;overflow:visible;content-visibility:auto;contain-intrinsic-size:auto 100px}.habit-group-wrapper.is-collapsible{display:none}.time-marker{flex-shrink:0;width:30px;padding-top:21px;padding-bottom:2px;color:#fff;display:flex;justify-content:center;position:sticky;top:10px;z-index:var(--z-index-sticky);transition:opacity var(--transition-duration);pointer-events:none}.habit-group-wrapper[data-time-wrapper=Morning] .time-marker{padding-top:7px}.time-marker svg{width:21px;height:21px}body.is-dragging-active .habit-group-wrapper{content-visibility:visible;contain-intrinsic-size:auto}body.is-dragging-active .habit-group-wrapper.is-collapsible{display:flex;min-height:100px;margin-block-start:var(--space-md)}.habit-group-wrapper+.habit-group-wrapper{margin-block-start:0}.habit-group{position:relative;padding:0;margin:0;list-style:none;border-radius:var(--border-radius-large);border:2px dashed transparent;transition:background-color var(--transition-duration),border-color var(--transition-duration);min-height:40px;flex-grow:1;min-width:0;height:auto;overflow:visible;z-index:var(--z-index-content)}body.is-dragging-active .habit-group{contain:style}.habit-group.drag-over{background-color:var(--surface-hover);border-color:var(--accent-blue)}.habit-group.invalid-drop{border-color:var(--color-red)}.drop-indicator{position:absolute;height:3px;background-color:var(--accent-blue);border-radius:2px;left:var(--space-sm);right:var(--space-sm);opacity:0;pointer-events:none;transition:top var(--transition-duration-fast) ease-out,opacity var(--transition-duration-fast) ease-out;z-index:var(--z-index-indicator);will-change:transform,opacity}.drop-indicator.visible{opacity:1}.empty-group-placeholder{padding:var(--space-md);color:var(--text-tertiary);font-style:normal;font-weight:500;font-size:14px;display:none;align-items:center;justify-content:center;gap:var(--space-sm);transition:opacity var(--transition-duration);cursor:pointer;border:2px dashed var(--border-color);border-radius:var(--border-radius-large);background-color:transparent;margin-block-end:var(--space-sm);transition:color var(--transition-duration),transform var(--transition-duration),border-color var(--transition-duration),background-color var(--transition-duration);width:100%}.empty-group-placeholder:hover{color:var(--text-primary);border-color:var(--accent-blue);background-color:var(--surface-hover)}.empty-group-placeholder:active{transform:scale(.98);background-color:var(--surface-color)}.empty-group-placeholder *{pointer-events:none}.habit-group-wrapper:not(.has-habits) .empty-group-placeholder.show-smart-placeholder,body.is-dragging-active .habit-group-wrapper:not(.has-habits) .empty-group-placeholder{display:flex}.habit-group-wrapper.has-habits .empty-group-placeholder{display:none;padding:0;pointer-events:none}.placeholder-icon-generic,.placeholder-icon-specific{display:flex;align-items:center;gap:var(--space-xs)}.placeholder-icon-generic .icon-separator{margin-inline:var(--space-xs);opacity:.5}.placeholder-icon-generic{display:none}.placeholder-icon-specific{display:flex}body:not(.is-dragging-active) .empty-group-placeholder.show-smart-placeholder .placeholder-icon-generic{display:flex}body:not(.is-dragging-active) .empty-group-placeholder.show-smart-placeholder .placeholder-icon-specific{display:none}.habit-card{border-radius:var(--border-radius-large);margin-block-end:var(--space-xs);position:relative;overflow:hidden;display:flex;content-visibility:auto;contain-intrinsic-size:auto 86px;touch-action:pan-y;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;transition:transform .2s cubic-bezier(.2,0,.2,1)}.habit-card.is-pressing{background-color:var(--surface-hover)}.habit-card.is-charging{opacity:.8;transition:opacity .5s ease-out}.habit-group .habit-card:last-child{margin-block-end:0}.habit-card:before{content:"";position:absolute;inset-block:var(--space-sm);width:var(--space-xs);border-radius:2px;z-index:var(--z-index-indicator);background-color:transparent;transition:transform var(--transition-duration-slow) ease,background-color var(--transition-duration-slow) ease;transform:scaleX(0)}.habit-card.snoozed:before{inset-inline-start:var(--space-md);background-color:var(--text-tertiary);transform:scaleX(1);transform-origin:left}.habit-card.completed:before{inset-inline-end:var(--space-md);background-color:var(--accent-blue);transform:scaleX(1);transform-origin:right}.habit-card.is-swiping:before,.habit-card.is-open-left:before,.habit-card.is-open-right:before{transform:scaleX(0);transition:transform var(--transition-duration-fast) ease-out}.habit-card:after{content:"";position:absolute;inset:0;border-radius:var(--border-radius-large);border:1px solid rgba(255,255,255,.15);pointer-events:none;z-index:var(--z-index-indicator);transition:border-color var(--transition-duration)}.habit-card.completed:after,.habit-card.snoozed:after{border-color:transparent}.habit-card.semi-consolidated:after{border-color:#fffc}.habit-card.consolidated:after{border-color:var(--accent-green)}.ripple-container{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:0}.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple .6s linear;background-color:#fff3}.habit-content-wrapper{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md) var(--space-sm) 26px;position:relative;z-index:var(--z-index-content);cursor:pointer;transition:transform var(--transition-duration-slow) cubic-bezier(.23,1,.32,1),background var(--transition-duration),padding-right var(--transition-duration);border-radius:9px;flex-grow:1;touch-action:pan-y;user-select:none;-webkit-user-select:none}.habit-content-wrapper.limit-reached{transform:scale(.98)!important;opacity:.8;filter:grayscale(.5);transition:transform .1s ease-out,opacity .1s ease-out,filter .1s}.habit-content-wrapper:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-blue),inset 0 0 0 4px var(--bg-color)}.habit-card.is-swiping .habit-content-wrapper,.habit-card.dragging .habit-content-wrapper{will-change:transform}.habit-card:not(.completed):not(.snoozed) .habit-content-wrapper{background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,transparent 60%),var(--bg-color)}.habit-card.completed .habit-content-wrapper{background:color-mix(in srgb,var(--accent-blue) 20%,var(--bg-color));opacity:1!important}.habit-card.snoozed .habit-content-wrapper{background:var(--surface-snoozed)}.habit-card.completed .habit-content-wrapper,.habit-card.snoozed .habit-content-wrapper{padding-right:var(--space-xl)}.habit-card.dragging{opacity:0!important;touch-action:none;pointer-events:none!important}.habit-card.is-swiping .habit-content-wrapper{transition:none;user-select:none}.drag-image-ghost{position:absolute;top:-9999px;left:-9999px;background-color:var(--surface-hover);box-shadow:0 5px 15px #0000004d;border-radius:9px;pointer-events:none;z-index:9999;opacity:.95;transform:scale(1.02)}.consolidation-message{font-size:10px;font-weight:500;margin-block-start:var(--space-xs);color:var(--text-secondary)}.consolidated .consolidation-message{color:var(--accent-green)}.time-of-day-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:18px;height:18px;color:var(--text-tertiary);gap:var(--space-xs);transition:opacity var(--transition-duration-slow)}.time-of-day-icon svg{width:18px;height:100%;stroke:currentColor}.habit-icon{font-size:14px;width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-small);transition:opacity var(--transition-duration-slow);user-select:none;-webkit-user-select:none}.habit-icon svg{width:60%;height:60%;pointer-events:none}.habit-icon.animate-pop{animation:icon-pop .3s ease-out}.habit-details{text-align:left;flex-grow:1;min-width:0;overflow:hidden}.habit-details .name{font-size:16px;font-weight:600;color:var(--text-primary);transition:color var(--transition-duration-slow),text-decoration-color var(--transition-duration-slow);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;line-height:1.2;word-break:break-word;overflow-wrap:anywhere}.habit-details .subtitle{font-size:11px;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-card.completed .habit-details .name{color:var(--text-secondary);text-decoration:line-through;text-decoration-color:var(--accent-blue);text-decoration-thickness:2px}.habit-goal{text-align:right;display:flex;align-items:center;justify-content:flex-end;min-height:26px;margin-left:auto;flex-shrink:0}.habit-goal .progress{font-size:11px;font-weight:600}.habit-goal .unit{font-size:8px;color:var(--text-secondary)}.habit-goal-controls{display:flex;align-items:center;gap:var(--space-xs);transition:opacity var(--transition-duration)}.goal-control-btn{background:transparent;border:none;color:var(--text-primary);font-size:22px;font-weight:500;width:22px;height:22px;border-radius:var(--border-radius-pill);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;flex-shrink:0;transition:opacity .2s,background-color .2s}.goal-control-btn:hover{background-color:var(--surface-hover)}.goal-control-btn:active{transform:scale(.95)}.goal-control-btn:disabled{opacity:.3;cursor:default;background-color:transparent}.goal-value-wrapper{text-align:center;min-width:23px;cursor:pointer;padding:var(--space-xs);border-radius:var(--space-xs);transition:background-color var(--transition-duration)}.goal-value-wrapper:hover{background-color:var(--surface-hover)}.goal-input-inline{width:40px;background:transparent;border:1px solid var(--accent-blue);color:var(--text-primary);font-size:12px;font-weight:600;text-align:center;border-radius:var(--border-radius-small);padding:0;height:20px;margin:0;-moz-appearance:textfield}.goal-input-inline::-webkit-outer-spin-button,.goal-input-inline::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.goal-input-inline:focus{outline:none;box-shadow:0 0 0 2px #007aff4d}.goal-value-wrapper .progress{color:var(--text-primary)}.goal-value-wrapper.increase .progress{animation:flash-green .7s ease-out}.goal-value-wrapper.decrease .progress{animation:flash-red .7s ease-out}.habit-actions-left,.habit-actions-right{position:absolute;inset-block:0;z-index:var(--z-index-base);display:flex;align-items:center;width:50%;visibility:hidden;transition:visibility 0s linear .2s}.habit-actions-left{inset-inline-start:0;background-color:var(--text-tertiary)}.habit-actions-right{inset-inline-end:0;background-color:var(--accent-blue);justify-content:flex-end}.habit-card.is-open-left .habit-content-wrapper{transform:translate(var(--swipe-action-width))}.habit-card.is-open-right .habit-content-wrapper{transform:translate(calc(-1 * var(--swipe-action-width)))}.habit-card:is(.is-open-left,.is-open-right) :is(.habit-goal-controls,.time-of-day-icon){opacity:0;pointer-events:none}.habit-card.is-open-left .habit-actions-left,.habit-card.is-open-right .habit-actions-right,.habit-card.is-swiping .habit-actions-left,.habit-card.is-swiping .habit-actions-right{visibility:visible;transition-delay:0s}.swipe-delete-btn,.swipe-note-btn{border:none;height:100%;width:var(--swipe-action-width);cursor:pointer;display:flex;align-items:center;justify-content:center;background-color:transparent;color:#fff;transition:color var(--transition-duration);padding:0}.swipe-delete-btn:hover,.swipe-note-btn:hover{color:var(--surface-light-hover)}.swipe-delete-btn svg,.swipe-note-btn svg{width:24px;height:24px}.snoozed-wrapper,.completed-wrapper{display:flex;align-items:center;padding:4px;border-radius:var(--border-radius-small);aspect-ratio:1/1;justify-content:center}.snoozed-wrapper{background-color:#0003}.completed-wrapper{background-color:#007aff26}.snoozed-wrapper svg,.completed-wrapper svg{width:20px;height:20px;display:block}.snoozed-wrapper svg{stroke:var(--text-tertiary)}.completed-wrapper svg{stroke:var(--accent-blue)}@supports (animation-timeline: view()){.habit-card{animation:scroll-focus linear both;animation-timeline:view(block);animation-range:cover 0% cover 100%}.habit-card.is-swiping,.habit-card.is-open-left,.habit-card.is-open-right,.habit-card.is-pressing,.habit-card.is-charging{animation:none!important;opacity:1!important;transform:scale(1)!important}.habit-card.dragging{animation:none!important;opacity:0!important;transform:scale(1)!important}@keyframes scroll-focus{0%{transform:scale(.95);opacity:.8}15%{transform:scale(1);opacity:1}85%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:.8}}}.chart-container{padding:var(--space-lg);background-color:var(--bg-color);border-radius:var(--border-radius-large);contain:layout style;flex-shrink:0;max-height:none;overflow:visible;margin-top:13px;margin-inline:var(--space-lg);margin-bottom:13px;z-index:var(--z-index-footer);box-shadow:none}@media(max-height:500px)and (orientation:landscape){.chart-container{display:none!important}}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap;margin-bottom:0;z-index:20;pointer-events:none;text-shadow:0 1px 2px var(--bg-color);margin-top:-6px}.chart-header>.app-subtitle{flex:0 0 50%;max-width:50%;min-width:0;box-sizing:border-box}.chart-header>.chart-title-row{flex:0 0 50%;max-width:50%;min-width:0;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);margin-bottom:8px}.app-subtitle,.chart-title{white-space:normal;overflow-wrap:break-word;word-break:break-word}.chart-title{font-size:18px;font-weight:700;line-height:1.2}.chart-title-row{display:flex;align-items:baseline;gap:30px;margin-bottom:8px}.app-subtitle{font-size:13px;font-style:italic;color:var(--text-secondary);margin-bottom:13px;line-height:1.4}@media(max-width:480px){.app-subtitle{font-size:12px}}.chart-title strong{color:var(--accent-green)}.chart-data-view,.chart-empty-state{display:none}.chart-container:not(.is-empty) .chart-data-view{display:block;margin-top:-40px;position:relative;z-index:auto}.chart-container.is-empty .chart-empty-state{display:flex}.chart-wrapper{position:relative;height:75px;touch-action:pan-y;user-select:none}.chart-svg{width:100%;height:100%;overflow:visible;position:relative;z-index:10}.chart-area{fill:url(#chart-gradient)}.chart-line{fill:none;stroke:var(--accent-blue);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px var(--accent-blue))}.chart-axis-labels{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--text-tertiary);margin-block-start:var(--space-xs)}.chart-tooltip{position:absolute;top:0;left:0;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-base);padding:var(--space-sm) var(--space-md);font-size:12px;box-shadow:0 4px 12px #0000004d;pointer-events:none;opacity:0;transition:opacity var(--transition-duration);will-change:transform,opacity;z-index:var(--z-index-tooltip);min-width:150px}.chart-tooltip.visible{opacity:1}.tooltip-date{font-weight:600;margin-block-end:var(--space-sm);color:var(--text-primary)}.tooltip-score{margin-block-end:var(--space-sm);color:var(--text-secondary)}.tooltip-score-value{color:var(--accent-blue);font-weight:700}.tooltip-habits{list-style:none;padding:0;margin:0;font-size:11px;color:var(--text-secondary)}.tooltip-habits li{white-space:nowrap}.chart-indicator{position:absolute;top:0;height:100%;width:1px;background-color:var(--accent-blue);pointer-events:none;opacity:0;z-index:25}.chart-indicator-dot{position:absolute;width:9px;height:9px;border-radius:var(--border-radius-pill);background-color:var(--accent-blue);border:2px solid var(--bg-color);transform:translate(-50%,-50%)}.chart-empty-state{display:flex;align-items:center;justify-content:center;height:42px;color:var(--text-tertiary);font-style:italic;text-align:center}.chart-evolution-indicator{font-size:16px;font-weight:700;background-color:transparent;border:none;text-shadow:0 1px 3px rgba(0,0,0,.6);pointer-events:none;white-space:nowrap;transition:color var(--transition-duration-slow);margin-left:var(--space-sm)}@media(max-width:480px){.chart-header>.app-subtitle,.chart-header>.chart-title-row{width:100%;max-width:100%}.chart-evolution-indicator{position:static;transform:none;margin-top:var(--space-xs);display:inline-block}}.chart-evolution-indicator.positive{color:var(--accent-green)}.chart-evolution-indicator.negative{color:var(--color-red)}.chart-evolution-indicator.positive:before{content:"\25b2  "}.chart-evolution-indicator.negative:before{content:"\25bc  "}.form-group{margin-block-end:var(--space-lg)}.form-group label{display:block;color:var(--text-secondary);font-size:14px;font-weight:500;margin-block-end:var(--space-sm)}.form-control{width:100%;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-base);padding:var(--space-md);color:var(--text-primary);font-size:16px;height:44px}#edit-habit-modal #habit-name{height:48px;font-size:22px;font-weight:600;margin:0;padding:0}#edit-habit-modal #habit-name:focus{outline:none;box-shadow:none;border-color:transparent}#edit-habit-modal #habit-name::placeholder{color:var(--text-tertiary);opacity:.5}#edit-habit-form{display:flex;flex-direction:column;gap:var(--space-lg);padding:0;flex-grow:1}.form-section{background-color:var(--surface-color);border-radius:var(--border-radius-large)}.form-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);position:relative}.form-row:not(:last-child):not(.form-row--no-border):after{content:"";position:absolute;bottom:0;left:var(--space-lg);right:0;height:1px;background-color:var(--border-color)}.form-row.form-row--vertical{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.frequency-options .form-row>label{display:flex;align-items:center;gap:var(--space-sm);width:100%;cursor:pointer}.frequency-info{margin:0;color:var(--text-tertiary);font-size:12px;line-height:1.4}.habit-identity-section{display:flex;align-items:center;gap:var(--space-lg);background-color:transparent;border-radius:0;margin-top:-60px;padding:0 0 var(--space-sm) 42px;margin-bottom:0;border-bottom:1px solid var(--border-color);pointer-events:none}.habit-identity-section>*{pointer-events:auto}.habit-icon-picker-wrapper{position:relative;flex-shrink:0}.habit-icon-picker-btn{width:44px;height:44px;border-radius:var(--border-radius-small);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}.habit-icon-picker-btn:hover{transform:scale(1.1)}.habit-icon-picker-btn svg{width:60%;height:60%}@keyframes edit-shine{0%,to{filter:drop-shadow(0 0 2px var(--accent-blue));transform:scale(1)}50%{filter:drop-shadow(0 0 6px var(--accent-blue));transform:scale(1.1)}}.edit-icon-overlay{position:absolute;bottom:-4px;right:-4px;width:18px;height:18px;background-color:var(--accent-blue);border-radius:var(--border-radius-pill);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;border:2px solid var(--surface-color);pointer-events:none;animation:edit-shine 2s infinite ease-in-out}.edit-icon-overlay svg{width:10px;height:10px}.habit-name-input-wrapper{flex-grow:1;position:relative}.habit-subtitle-display{font-size:13px;color:var(--text-tertiary);margin-top:-9px;min-height:1.2em}.form-notice{font-size:11px;color:var(--color-red);margin-top:var(--space-xs);opacity:0;transition:opacity .2s}.form-notice.visible{opacity:1}.segmented-control{display:grid;grid-template-columns:repeat(3,1fr);width:100%;background-color:transparent;border:none;padding:0;gap:var(--space-md)}.segmented-control-option{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;padding:4px 2px;min-height:44px;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);font-size:10px;font-weight:500;line-height:1.1;cursor:pointer;transition:all .2s cubic-bezier(.2,0,.2,1);-webkit-tap-highlight-color:transparent}.segmented-control-option:hover{background-color:var(--surface-hover);border-color:var(--text-tertiary);transform:translateY(-1px)}.segmented-control-option.selected{background-color:var(--accent-blue);color:#fff;border-color:var(--accent-blue);box-shadow:0 4px 12px #007aff4d;transform:translateY(0);font-weight:600}.segmented-control-option svg{width:15px;height:15px;stroke-width:2;flex-shrink:0;stroke:currentColor;margin-bottom:1px}@media(max-width:360px){.segmented-control{gap:var(--space-sm)}}.frequency-details{width:100%;padding-top:var(--space-sm);display:none}.frequency-details.visible{display:block}.weekday-picker{display:flex;justify-content:space-between;gap:2px}.weekday-picker label{flex:1}.weekday-button{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;border-radius:var(--border-radius-pill);cursor:pointer;background-color:var(--bg-color);color:var(--text-secondary);transition:background-color .2s,color .2s}.weekday-picker input:checked+.weekday-button{background-color:var(--accent-blue);color:#fff}.interval-control-group{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-color);border-radius:var(--border-radius-base);padding:var(--space-xs)}.stepper-btn{width:32px;height:32px;font-size:24px;border-radius:6px;background:var(--surface-hover);color:var(--text-primary);border:none;cursor:pointer}.interval-amount-display{font-size:16px;font-weight:500;flex:1;text-align:center}.unit-toggle-btn{padding:var(--space-sm) var(--space-lg);background:var(--surface-hover);color:var(--text-primary);border:none;border-radius:6px;cursor:pointer}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--surface-hover);border-radius:34px;transition:background-color var(--transition-duration)}.slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background-color:#fff;border-radius:var(--border-radius-pill);transition:transform var(--transition-duration)}input:checked+.slider{background-color:var(--accent-green)}input:checked+.slider:before{transform:translate(20px)}input:disabled+.slider{cursor:not-allowed;background-color:var(--surface-snoozed)}.habit-conscience-text{font-size:13px;line-height:1.5;color:var(--text-tertiary);font-style:italic;text-align:left;padding:var(--space-sm) var(--space-md) 0 var(--space-xs);margin-bottom:0;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-overlay);opacity:0;visibility:hidden;transition:opacity var(--transition-duration-slow),visibility var(--transition-duration-slow);overscroll-behavior:contain}.modal-overlay.visible{opacity:1;visibility:visible}.modal-content{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--space-lg);width:90%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;padding:var(--space-xl);overflow-y:auto;z-index:var(--z-index-modal-content);overscroll-behavior:contain}#edit-habit-modal .modal-content{display:flex;flex-direction:column}.modal-content--sticky-header{padding:0;overflow:hidden;position:relative}#manage-modal .modal-content{position:relative;padding:0}#manage-modal .modal-scroll-wrapper{padding:var(--space-sm) var(--space-xl) 100px}.modal-content--sticky-header>.modal-header{padding:var(--space-xl) var(--space-xl) var(--space-lg);position:relative;z-index:1;background:linear-gradient(to bottom,var(--surface-color) 70%,transparent)}.modal-content--sticky-header>.modal-scroll-wrapper{overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-xl);flex:1;min-height:0}.modal-header h2{font-size:17px;font-weight:600;text-align:center;flex:1;margin:0}#edit-habit-modal .modal-header h2{display:none}#icon-picker-modal .modal-header h2{padding:0}.modal-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;margin-bottom:var(--space-lg)}.modal-back-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:var(--space-xs);border-radius:var(--border-radius-pill);transition:background-color var(--transition-duration)}.modal-back-btn:hover{background-color:var(--surface-hover)}.modal-back-btn svg{width:20px;height:20px}.modal-header-spacer{width:36px;height:36px;flex-shrink:0}#icon-picker-modal .modal-header .icon-btn{width:36px;height:36px;font-size:22px;color:var(--text-secondary)}#change-color-from-picker-btn:after{content:"";position:absolute;inset:-2px;border-radius:var(--border-radius-pill);background-color:transparent;box-shadow:0 0 5px var(--accent-blue);opacity:0;animation:glow-pulse 2.5s infinite ease-in-out;pointer-events:none}.modal-subtitle{font-size:15px;font-weight:500;color:var(--text-primary);margin-block-start:var(--space-md);margin-block-end:var(--space-lg);text-align:center}.modal-settings-section{margin-block-end:var(--space-lg);padding-block-end:var(--space-lg);border-block-end:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--space-lg)}.modal-actions{display:flex;gap:var(--space-md);margin-block-start:var(--space-lg);padding-top:var(--space-lg);flex-shrink:0;border-top:1px solid var(--border-color)}.modal-content--sticky-header>.modal-actions{margin-block-start:0;padding:var(--space-lg) var(--space-xl) var(--space-xl)}.modal-actions .btn{flex-grow:1;padding:var(--space-md);font-size:15px;font-weight:600}#edit-habit-modal .modal-actions{margin-block-start:0}.modal-actions .btn:not(.btn--primary):not(.btn--danger){border-color:var(--surface-color)}.modal-actions .btn:not(.btn--primary):not(.btn--danger):hover{background-color:var(--surface-hover)}#manage-modal .modal-content{padding-bottom:0}#habit-list{list-style:none;margin-block-end:var(--space-lg)}#habit-list li.habit-list-item{display:flex;justify-content:space-between;align-items:center;padding-block:var(--space-md)}.habit-main-info{display:flex;align-items:center;gap:var(--space-md);flex-grow:1;min-width:0}#habit-list li svg{width:20px;height:20px;flex-shrink:0}.habit-list-item.ended{opacity:.6}.habit-list-item.graduated{opacity:.8}.habit-list-actions{display:flex;gap:var(--space-sm)}.habit-list-actions :is(.end-habit-btn,.permanent-delete-habit-btn,.graduate-habit-btn,.edit-habit-btn){background:none;border:none;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;padding:var(--space-xs);border-radius:var(--border-radius-pill);transition:background-color var(--transition-duration)}.habit-list-actions :is(.end-habit-btn,.permanent-delete-habit-btn,.graduate-habit-btn,.edit-habit-btn):hover{background-color:var(--surface-hover)}.end-habit-btn,.edit-habit-btn{color:var(--text-secondary)}.permanent-delete-habit-btn{color:var(--color-red)}.graduate-habit-btn{color:var(--color-yellow)}.habit-name-status{font-size:11px;font-style:italic;color:var(--text-tertiary);margin-inline-start:var(--space-md);flex-shrink:0;white-space:nowrap}.habit-list-actions .habit-name-status{margin-inline-start:0}.empty-list-message{font-size:13px;color:var(--text-tertiary);text-align:center;font-style:italic;padding:var(--space-lg) 0;margin-top:var(--space-lg);border-top:1px solid var(--border-color)}.setting-item{display:flex;justify-content:space-between;align-items:center}.setting-item-header{display:flex;justify-content:space-between;align-items:baseline;width:100%;margin-block-end:var(--space-sm)}.setting-item.setting-item--column{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.setting-item label{font-size:14px;color:var(--text-secondary)}.setting-item-desc{font-size:11px;color:var(--text-tertiary);font-style:italic;line-height:1.5;text-align:right;width:100%;margin-top:var(--space-xs)}#sync-section{background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-base);padding:var(--space-lg)}.sync-view{display:flex;flex-direction:column;gap:var(--space-md)}.sync-view p{font-size:13px;line-height:1.5;color:var(--text-secondary);text-align:center}.sync-actions{display:flex;gap:var(--space-md);justify-content:center}.sync-actions .btn{flex-grow:1}.sync-key-display{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-small);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}#sync-key-text{font-family:monospace;font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#copy-key-btn{width:32px;height:32px}.sync-warning{color:var(--color-yellow)!important;font-weight:500}#sync-status{font-size:11px;color:var(--text-tertiary);font-style:italic;transition:opacity var(--transition-duration-slow);text-align:right;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}#explore-modal .modal-content{width:96vw;max-width:96vw}#explore-habit-list{display:grid;grid-template-columns:1fr;gap:var(--space-md);overflow-y:auto;margin-block-end:var(--space-lg);overscroll-behavior:contain;content-visibility:auto;contain-intrinsic-size:100px 500px}.explore-habit-item{display:flex;flex-direction:row;align-items:center;text-align:left;gap:var(--space-lg);padding:var(--space-md);background-color:var(--bg-color);border-radius:var(--border-radius-large);cursor:pointer;transition:background-color var(--transition-duration)}.explore-habit-item:hover{background-color:var(--surface-hover)}.explore-habit-icon{width:44px;height:44px;font-size:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--surface-color);border-radius:var(--border-radius-base)}.explore-habit-icon svg{width:60%;height:60%}.explore-habit-details .name{font-size:15px;font-weight:600;line-height:1.2}.explore-habit-details .subtitle{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px;line-height:1.3}#create-custom-habit-btn{width:100%;padding:var(--space-md);margin-top:var(--space-lg)}@media(min-width:768px){#explore-modal .modal-content{max-width:700px}#explore-habit-list{grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}}#ai-response{margin-block-end:var(--space-lg);max-height:300px;overflow-y:auto;color:var(--text-secondary);line-height:1.6;overscroll-behavior:contain}#ai-response strong{color:var(--text-primary);font-weight:600}#ai-response p{margin-block-end:var(--space-sm)}#ai-response p:last-child{margin-block-end:0}#ai-response ul{list-style:none;padding-inline-start:0;margin-block-start:var(--space-sm)}#ai-response li{margin-block-end:var(--space-sm)}#confirm-modal-text{color:var(--text-secondary);line-height:1.6;margin-block-end:var(--space-sm)}.ai-error-message{background-color:#e74c3c1a;border:1px solid var(--color-red);border-radius:var(--border-radius-base);padding:var(--space-md);text-align:center}.ai-error-message h3{color:var(--color-red);margin:0 0 var(--space-sm) 0;font-size:16px}.debug-info{margin-top:var(--space-md);padding:var(--space-sm);background:#0000004d;border-radius:var(--border-radius-small);font-family:monospace;font-size:11px;color:var(--text-tertiary);word-break:break-all;text-align:left}.offline-header{text-align:center;margin-bottom:var(--space-xl)}.offline-title{margin-bottom:var(--space-md);color:var(--text-primary);font-size:18px;font-weight:600}.offline-desc{font-size:14px;color:var(--text-secondary);line-height:1.5}.offline-quote-box{border-top:1px solid var(--border-color);padding-top:var(--space-xl);margin-top:var(--space-md)}.offline-quote-text{border-left:3px solid var(--accent-blue);padding-left:var(--space-lg);margin:0;font-style:italic;color:var(--text-primary);font-size:15px;line-height:1.5}.offline-quote-author{text-align:right;margin-top:var(--space-md);font-size:13px;font-weight:600;color:var(--text-secondary)}#ai-options-modal .modal-content{gap:var(--space-section)}.ai-options-list{display:flex;flex-direction:column;gap:var(--space-md)}.ai-option-btn{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-lg);border:1px solid var(--border-color);background-color:var(--surface-color);border-radius:var(--border-radius-large);text-align:left;cursor:pointer;transition:background-color var(--transition-duration),border-color var(--transition-duration);width:100%}.ai-option-btn:hover{background-color:var(--surface-hover);border-color:var(--text-tertiary)}.ai-option-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-block-end:var(--space-xs)}.ai-option-desc{font-size:13px;color:var(--text-secondary);line-height:1.4}#notes-modal .modal-content{gap:var(--space-lg)}#notes-modal h2,#notes-modal p{margin:0;text-align:center}#notes-modal-subtitle{color:var(--text-secondary)}#notes-textarea{background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-base);padding:var(--space-md);color:var(--text-primary);font-size:16px;resize:vertical;width:100%;min-height:100px}#icon-picker-modal .modal-content{max-width:480px;padding:0}#icon-picker-modal .modal-header{padding:var(--space-xl) var(--space-xl) var(--space-xl);position:relative;z-index:2;background-color:var(--surface-color)}#icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:var(--space-md);max-height:300px;overflow-y:auto;padding:4px var(--space-xl) var(--space-xl);--current-habit-bg-color: #000000;--current-habit-fg-color: #e5e5e5;overscroll-behavior:contain;content-visibility:auto;contain-intrinsic-size:100px 300px}.icon-picker-item{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-base);cursor:pointer;border:2px solid transparent;background-color:var(--current-habit-bg-color);color:var(--current-habit-fg-color);transition:transform var(--transition-duration-fast),filter var(--transition-duration)}.icon-picker-item:hover{filter:brightness(1.2);transform:scale(1.05)}.icon-picker-item svg{width:60%;height:60%;pointer-events:none}#icon-picker-modal.is-picking-color .icon-picker-item{background-color:#000;color:var(--text-primary);border-color:var(--border-color)}#icon-picker-modal.is-picking-color .icon-picker-item:hover{background-color:var(--surface-hover);border-color:var(--accent-blue);filter:brightness(1)}#color-picker-modal .modal-content{max-width:480px;gap:var(--space-lg)}#color-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:var(--space-md);max-height:300px;overflow-y:auto;padding:var(--space-sm);overscroll-behavior:contain}.color-swatch{width:100%;aspect-ratio:1/1;border-radius:var(--border-radius-pill);cursor:pointer;border:4px solid transparent;transition:all var(--transition-duration-fast);padding:0;box-shadow:0 0 0 1px var(--border-color) inset}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:var(--text-primary);box-shadow:0 0 0 1px var(--border-color) inset,0 0 8px var(--accent-blue)}#edit-habit-modal .modal-content{max-width:540px;display:flex;flex-direction:column}#confirm-modal,#icon-picker-modal,#color-picker-modal,#full-calendar-modal,#calendar-quick-actions{z-index:var(--z-index-stacked-modal)}
