@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-danger:#b25144}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.text-danger{color:var(--color-danger)}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-greek.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/cheeryhub-manager/fonts/manrope-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:400;font-display:swap;src:url(/cheeryhub-manager/fonts/noto-sans-tamil-tamil.woff2)format("woff2");unicode-range:U+964-965,U+B82-BFA,U+200C-200D,U+20B9,U+25CC}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:400;font-display:swap;src:url(/cheeryhub-manager/fonts/noto-sans-tamil-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:400;font-display:swap;src:url(/cheeryhub-manager/fonts/noto-sans-tamil-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--primary:#244b2b;--primary-hover:#2e5c36;--primary-active:#1c3a22;--primary-fg:#fff;--secondary:#dcebd8;--secondary-hover:#cfe2c9;--secondary-active:#c1d9ba;--secondary-fg:#244b2b;--bg:#f0ede6;--bg-card:#fff;--bg-hover:#f0ede4;--bg-active:#e8e4d9;--border:#d7ded1;--border-strong:#c9cec3;--text:#20251f;--text-muted:#536050;--text-subtle:#667063;--danger:#b25144;--danger-hover:#9c4338;--danger-active:#8a3a31;--danger-bg:#f7e8e4;--success:#4b9b57;--success-bg:#e7f0e3;--warning:#b8860b;--warning-bg:#fdf3d7;--info:#3b6ea5;--info-bg:#e3edf7;--shadow-sm:0 2px 8px #33493112;--shadow-md:0 8px 24px #33493117;--shadow-lg:0 18px 40px #20251f24;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px}[data-theme=dark]{color-scheme:dark;--bg:#1a1a1a;--card-bg:#2a2a2a;--text:#f0f0f0;--text-muted:#aaa;--border:#3a3a3a;--bg-card:#2a2a2a;--bg-hover:#333;--bg-active:#3a3a3a;--border-strong:#4a4a4a;--text-subtle:#999;--danger-bg:#3a2523;--success-bg:#22301f;--warning-bg:#35301c;--info-bg:#1f2a35;--shadow-sm:0 2px 8px #0006;--shadow-md:0 8px 24px #00000080;--shadow-lg:0 18px 40px #0009}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;color:var(--text);margin:0;font-family:Manrope,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}img,video,canvas,svg,input,textarea,select,iframe{max-width:100%;height:auto}html{overflow-x:hidden}.flex>*,.grid>*,[class*=flex]>*,[class*=grid]>*,.panel>*,.card>*,.task-row>*,.commitment-card>*,.commitment-main>*,.commitment-actions>*,.day-buttons>*,.task-form-row>*,.panel-header>*,.header-left>*,.header-right>*,.app-nav ul>*{min-width:0}.panel-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-icon-btn{width:40px;min-width:40px;height:40px;min-height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.panel-icon-btn:hover{background:var(--bg-hover);color:var(--text)}.panel-icon-badge{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:2px;right:2px}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:-1.5px;margin-bottom:8px;font-size:clamp(2rem,5vw,3rem);line-height:1.08}h2{letter-spacing:-.5px;margin-bottom:0;font-size:clamp(1.35rem,3vw,1.65rem);line-height:1.2}h3{font-size:1.05rem}button,input,select,textarea{font:inherit;min-height:44px}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #8eb27f}button:hover{filter:brightness(1.04)}button:active{transform:translateY(1px)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spinner{border:3px solid var(--border);border-top-color:var(--success);border-radius:50%;width:40px;height:40px;margin:0 auto;animation:.8s linear infinite spin}.spinner-inline{border-width:2px;width:16px;height:16px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.spin-icon{color:var(--primary);animation:1s linear infinite spin}.success-icon{color:var(--success)}.error-icon{color:var(--danger)}.eyebrow{color:#58764d;letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:.8rem;font-weight:700;display:block}.avatar{flex-shrink:0;place-items:center;font-weight:700;display:inline-grid;overflow:hidden}.avatar-circle{border-radius:50%}.avatar-square{border-radius:12px}.avatar-img{object-fit:cover;object-position:center;width:100%;height:100%}.avatar-initials{background:var(--primary);color:#fff}.avatar-xs{width:24px;height:24px;font-size:.75rem}.avatar-sm{width:32px;height:32px;font-size:.75rem}.avatar-md{width:40px;height:40px;font-size:.9rem}.avatar-lg{width:48px;height:48px;font-size:1rem}.avatar-xl{width:64px;height:64px;font-size:1.15rem}.nav-avatar{object-fit:cover;object-position:center;border-radius:50%;flex-shrink:0;width:40px;height:40px;font-size:16px;overflow:hidden}.settings-avatar{object-fit:cover;object-position:center;border-radius:50%;width:64px;height:64px;font-size:24px;overflow:hidden}.nav-avatar.avatar-initials,.settings-avatar.avatar-initials{color:#fff;background:#2d5a1b;font-weight:600}.profile-photo-main{flex-direction:column;align-items:center;gap:4px;display:flex}.remove-photo-link{min-height:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:12px;text-decoration:underline}.remove-photo-link:hover{color:var(--danger);filter:none}.crop-stage{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#111;border-radius:8px;width:300px;max-width:100%;height:300px;margin:0 auto;position:relative;overflow:hidden}.crop-stage.dragging{cursor:grabbing}.crop-image{pointer-events:none;-webkit-user-drag:none;max-width:none;position:absolute}.crop-mask{pointer-events:none;border:2px solid #ffffffe6;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 0 9999px #0009}.crop-zoom-row{align-items:center;gap:8px;margin:14px 0 4px;display:flex}.crop-zoom-label{color:var(--text-muted);font-size:13px;font-weight:600}.crop-zoom-btn{border:1px solid var(--border-strong);background:var(--bg-card);width:32px;height:32px;min-height:32px;color:var(--text);border-radius:50%;flex-shrink:0;padding:0;font-size:16px;line-height:1}.crop-zoom-slider{width:auto;min-height:24px;accent-color:var(--primary);background:0 0;border:none;flex:1;padding:0}.badge{border:1px solid #0000;border-radius:999px;align-items:center;font-weight:500;line-height:1.3;display:inline-flex}.badge-sm{padding:2px 8px;font-size:.8rem}.badge-md{padding:4px 10px;font-size:.8rem}.badge-default{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.badge-default{background:color-mix(in srgb,var(--primary) 12%,transparent)}}.badge-default{color:var(--primary);border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.badge-default{border-color:color-mix(in srgb,var(--primary) 25%,transparent)}}.badge-success{background:var(--success-bg);color:#2f6b3a;border-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.badge-success{border-color:color-mix(in srgb,var(--success) 35%,transparent)}}.badge-warning{background:var(--warning-bg);color:#8a6508;border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.badge-warning{border-color:color-mix(in srgb,var(--warning) 35%,transparent)}}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.badge-danger{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}}.badge-info{background:var(--info-bg);color:var(--info);border-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.badge-info{border-color:color-mix(in srgb,var(--info) 35%,transparent)}}.badge-outline{color:var(--text);border-color:var(--border);background:0 0}.btn{white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s,filter .15s;display:inline-flex}.btn:focus-visible{outline-offset:2px;outline:3px solid #8eb27f}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);filter:none}.btn-primary:active:not(:disabled){background:var(--primary-active)}.btn-secondary{background:var(--secondary);color:var(--secondary-fg)}.btn-secondary:hover:not(:disabled){background:var(--secondary-hover);filter:none}.btn-secondary:active:not(:disabled){background:var(--secondary-active)}.btn-outline{border-color:var(--border);color:var(--text);background:0 0}.btn-outline:hover:not(:disabled){background:var(--bg-hover);filter:none}.btn-outline:active:not(:disabled){background:var(--bg-active)}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);filter:none}.btn-ghost:active:not(:disabled){background:var(--bg-active)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover);filter:none}.btn-danger:active:not(:disabled){background:var(--danger-active)}.btn-sm{min-height:36px;padding:6px 12px;font-size:.85rem}.btn-md{min-height:44px;padding:10px 16px;font-size:.95rem}.btn-lg{min-height:52px;padding:12px 24px;font-size:1.05rem}.btn-disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px}.card-elevated{box-shadow:var(--shadow-lg);border-color:#0000}.card-outlined{background:0 0;border-width:2px}.card-sm{padding:16px}.card-md{padding:24px}.card-lg{padding:32px}.card-header{margin-bottom:16px}.card-title{color:var(--text);margin:0;font-size:1.15rem;font-weight:700}.card-description{color:var(--text-muted);margin:4px 0 0;font-size:.9rem}.card-footer{align-items:center;gap:8px;margin-top:16px;display:flex}.muted{color:var(--text-muted);font-size:1.05rem;line-height:1.6}.app-loading-screen{align-content:center;place-items:center;gap:16px;min-height:100svh;display:grid}.app-loading-screen p{color:var(--text-muted);margin:0}.auth-page{min-height:100svh;padding:32px 20px;padding-top:max(32px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom));background:radial-gradient(circle at 80% 10%,#d3e0cb,transparent 35%),var(--bg);place-items:center;display:grid}.auth-card{width:min(460px,100%)}.auth-form{gap:14px;margin-top:24px;display:grid}.auth-form button:not(.input-toggle){width:100%}.link-button{color:var(--primary);background:0 0;border:0;margin-top:16px;padding:8px 0;font-size:1rem;font-weight:700}.error-message{color:var(--danger);margin-top:12px;font-size:1rem}.api-error-message{border:1px solid var(--danger);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.api-error-message{border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}}.api-error-message{border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger)}.api-error-message p{overflow-wrap:anywhere;flex:1;min-width:0;margin:0}.success-message{color:var(--success);margin-top:12px;font-size:1rem;font-weight:600}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.auth-form .link-button{width:auto;margin-top:0}.auth-hint{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.4}.password-strength{align-items:center;gap:10px;display:flex}.password-strength small{color:var(--text-muted);font-size:.8rem;font-weight:700}.strength-track{flex:1;gap:4px;display:flex}.strength-seg{background:var(--text-muted);border-radius:999px;flex:1;height:5px}@supports (color:color-mix(in lab,red,red)){.strength-seg{background:color-mix(in srgb,var(--text-muted) 25%,transparent)}}.strength-seg.on{background:var(--danger)}.strength-seg.on.level-2{background:#c98a2b}.strength-seg.on.level-3{background:var(--primary)}.strength-seg.on.level-4{background:var(--success)}.verify-info{background:var(--info-bg);border-radius:var(--radius-md);border:1px solid #b8cfe3;margin-top:16px;padding:16px}.verify-info p{color:var(--info);margin:0 0 8px;font-weight:600}.verify-link{color:var(--primary);min-height:44px;margin-top:4px;font-weight:700;line-height:44px;text-decoration:underline;display:inline-block}.verify-card{text-align:center;place-items:center;gap:16px;display:grid}.verify-card h1{font-size:1.75rem}.page{gap:14px;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.page-header h1{letter-spacing:-.5px;margin-bottom:4px;font-size:24px}.header-date{color:var(--text-muted);margin:0;font-size:.85rem}.header-stats,.header-actions-row,.focus-stats,.journal-nav{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-loading{min-height:160px;color:var(--text-muted);place-items:center;display:grid}.skeleton{background:linear-gradient(90deg,var(--surface-2,#eceff1) 25%,var(--surface-3,#e0e4e6) 37%,var(--surface-2,#eceff1) 63%);background-size:400% 100%;border-radius:6px;animation:1.4s infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.skeleton-list{gap:8px;display:grid}.skeleton-row{align-items:center;gap:10px}.skeleton-circle{border-radius:50%;flex:none}.skeleton-line{align-self:center}.skeleton-block{border-radius:10px}.task-row.is-pending{opacity:.65;pointer-events:none}.task-more-link{margin-top:10px;display:inline-flex}.list-more{justify-content:center;padding-top:8px;display:flex}.section-title{margin:var(--space-4) 0 var(--space-3);color:var(--text-muted);font-size:1.1rem}.stats-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:clamp(8px,2vw,16px);display:grid}@media(min-width:480px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats-grid .card-md{padding:clamp(12px,2.5vw,16px)}.stat-card{gap:8px;min-width:0;display:grid}.stat-label{color:var(--text-muted);align-items:center;gap:6px;font-size:clamp(11px,2.5vw,12px);font-weight:600;display:flex}.stat-value-row strong{color:var(--primary);font-size:clamp(18px,4vw,24px);line-height:1.1}.stat-desc{color:var(--text-muted);margin:0;font-size:clamp(11px,2.5vw,12px)}.stats-grid .progress-track{height:3px}.stats-grid .progress-label{margin-bottom:4px;font-size:clamp(11px,2.5vw,12px)}.stat-card-overdue .stat-value-row strong{color:var(--danger)}.text-danger{color:var(--danger)!important}[data-context-menu]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.context-menu{z-index:2000;background:var(--bg-card,#fff);border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-md,10px);gap:2px;min-width:180px;padding:6px;display:grid;position:fixed;box-shadow:0 10px 30px #00000024}.context-menu-title{color:var(--text-muted,#6b7280);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid var(--border,#e5e7eb);margin:0 0 4px;padding:6px 10px 4px;font-size:.75rem;font-weight:600;overflow:hidden}.context-menu-item{width:100%;color:var(--text,#111827);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:.9rem;display:flex}.context-menu-item:hover,.context-menu-item:focus-visible{background:var(--bg-muted,#f3f4f6);outline:none}.context-menu-item.danger{color:var(--danger,#dc2626)}.context-menu-item.danger:hover,.context-menu-item.danger:focus-visible{background:#fef2f2}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0;padding:clamp(12px,2.5vw,18px)}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:10px;display:flex}.panel-header h2{font-size:clamp(14px,3vw,16px)}.panel-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:clamp(12px,2.5vw,13px)}.panel-link{color:var(--primary);align-items:center;gap:6px;font-size:clamp(12px,2.5vw,13px);font-weight:600;text-decoration:none;display:inline-flex}.panel-link:hover{text-decoration:underline}.dashboard-grid{grid-template-columns:1fr;gap:clamp(12px,2.5vw,16px);margin-top:clamp(12px,2.5vw,16px);display:grid}@media(min-width:1024px){.dashboard-grid{grid-template-columns:1fr 1fr}}.dashboard-page .page{gap:clamp(10px,2.5vw,14px)}.dashboard-page .eyebrow{color:#888;letter-spacing:.08em;margin-bottom:6px;font-size:12px;font-weight:600}.dashboard-page .page-header h1{letter-spacing:-.2px;margin-bottom:6px;font-size:28px;font-weight:400}.dashboard-page .header-date{color:#8a8a86;font-size:14px}.dashboard-page .stats-grid{gap:16px}.dashboard-page .stats-grid .card{background:var(--bg-card);border:1px solid #e8e5de;border-radius:8px;box-shadow:0 1px 3px #0000000f}.dashboard-page .stats-grid .card-md{padding:24px}.dashboard-page .stat-card{gap:10px}.dashboard-page .stat-label{color:#8a8a86;letter-spacing:.07em;text-transform:uppercase;font-size:12px;font-weight:600}.dashboard-page .stat-value-row strong{color:var(--text);letter-spacing:-.5px;font-size:32px;font-weight:600}.dashboard-page .stat-card-overdue .stat-value-row strong{color:var(--danger)}.dashboard-page .stat-desc{color:#8a8a86;font-size:12px}.dashboard-page .stat-link{color:#4a7c2f;font-weight:600}.dashboard-page .stats-grid .progress-label{color:#8a8a86;font-size:12px}.dashboard-page .stats-grid .progress-track{background:#e5e2db;height:4px}.dashboard-page .stats-grid .progress-fill{background:#2d5a1b}.dashboard-page .stats-grid .progress-fill.danger{background:var(--danger)}.dashboard-page .panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;min-width:0;padding:clamp(14px,2.5vw,18px);box-shadow:0 1px 3px #0000000d}.dashboard-page .panel-header{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-bottom:12px}.dashboard-page .panel-header h2{letter-spacing:0;font-size:clamp(14px,3vw,15px);font-weight:600}.dashboard-page .panel-subtitle{color:var(--text-muted);margin-top:3px;font-size:clamp(12px,2.5vw,13px)}.dashboard-page .panel-link{color:var(--text-muted);font-size:clamp(12px,2.5vw,13px);font-weight:500}.dashboard-page .panel-link:hover{color:var(--text)}.dashboard-page .btn-md{min-height:clamp(32px,6vh,36px);padding:clamp(4px,1vh,6px) clamp(10px,2vw,12px);font-size:clamp(11px,2.5vw,12px)}.dashboard-page .btn-sm{min-height:clamp(28px,5vh,32px);padding:clamp(2px,.5vh,4px) clamp(6px,1.5vw,8px);font-size:clamp(11px,2.5vw,12px)}.dashboard-page input,.dashboard-page select,.dashboard-page textarea{min-height:clamp(32px,6vh,36px);font-size:clamp(12px,2.5vw,13px)}.dashboard-page .form-row,.dashboard-page .task-form-row,.dashboard-page .task-form{gap:clamp(8px,2vw,10px)}.dashboard-page .task-form-row input{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:6px;min-width:0;min-height:48px;font-size:14px}.dashboard-page .task-form-row .btn{background:var(--primary);color:var(--primary-fg);border:1px solid var(--primary);border-radius:6px;min-height:48px;padding:10px 18px;font-size:14px;font-weight:600}.dashboard-page .task-form-options{display:block}.dashboard-page .date-input{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:6px;width:100%;min-width:0;min-height:44px;font-size:14px}.dashboard-page .task-row{gap:8px;min-height:52px;padding:8px 10px}.dashboard-page .task-check{width:36px;height:36px}.dashboard-page .empty-state{border:1.5px dashed var(--border);background:0 0;border-radius:8px;gap:clamp(8px,2vw,10px);min-height:0;padding:clamp(24px,5vw,40px)}.dashboard-page .empty-state svg{width:clamp(28px,6vw,36px);height:clamp(28px,6vw,36px);color:var(--text-muted)}.dashboard-page .empty-state strong{color:var(--text);font-size:clamp(14px,3vw,15px);font-weight:500}.dashboard-page .empty-state p{color:var(--text-muted);margin:0;font-size:clamp(12px,2.5vw,13px)}.dashboard-page .commitment-form{gap:clamp(8px,2vw,10px)}.dashboard-page .commitment-form input{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:6px;min-width:0;min-height:44px;font-size:14px}.dashboard-page .commitment-form .btn{background:var(--primary);color:var(--primary-fg);border:1px solid var(--primary);border-radius:6px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:600}.dashboard-page .commitment-list{gap:clamp(10px,2vw,12px)}.dashboard-page .commitment-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;gap:clamp(12px,2.5vw,14px);min-width:0;padding:clamp(14px,2.5vw,16px);box-shadow:0 1px 3px #0000000a}.dashboard-page .commitment-info strong{color:var(--text);font-size:clamp(15px,3vw,17px);font-weight:700}.dashboard-page .commitment-info span{color:var(--text-muted);font-size:clamp(11px,2.5vw,12px)}.dashboard-page .week-heading strong{color:var(--text-muted);font-size:clamp(11px,2.5vw,12px);font-weight:600}.dashboard-page .week-heading span{color:var(--text-muted);font-size:clamp(11px,2.5vw,12px)}.dashboard-page .day-check{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm)}.dashboard-page .day-check small{color:var(--text-muted)}.dashboard-page .day-check b{color:var(--text);font-weight:600}.dashboard-page .day-check.today{border:2px solid var(--primary)}.dashboard-page .day-check.checked{background:var(--success-bg);border-color:var(--success);color:var(--primary)}.dashboard-page .day-check.checked svg{color:var(--primary)}.dashboard-page .day-check.checked svg circle{fill:var(--primary);stroke:var(--primary)}.dashboard-page .day-check.checked svg path{stroke:var(--primary-fg);fill:none}.dashboard-page .day-check.checked small,.dashboard-page .day-check.checked b{color:var(--primary)}.dashboard-page .day-check.failed{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.dashboard-page .day-check.skipped{background:var(--info-bg);border-color:var(--info);color:var(--info)}.dashboard-page .commitment-actions{gap:clamp(6px,1.5vw,12px)}.dashboard-page .check-in-btn{flex:1;min-width:clamp(140px,30vw,180px)}.dashboard-page .check-in-btn.btn-secondary{background:var(--success-bg);color:var(--primary);border:1px solid var(--success);border-radius:999px;font-weight:600}.dashboard-page .check-in-btn.btn-secondary:hover:not(:disabled){background:var(--success-bg);filter:none}.dashboard-page .undo-day{color:var(--text-muted)}.dashboard-page .day-action{width:clamp(36px,8vw,44px);min-width:clamp(36px,8vw,44px);height:clamp(36px,8vw,44px);min-height:clamp(36px,8vw,44px)}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text);padding:0 14px;font-size:16px}textarea{resize:vertical;padding:10px 14px}input::placeholder,textarea::placeholder{color:var(--text-subtle)}.input-wrapper{gap:6px;display:grid}.input-field{display:block;position:relative}.input-with-toggle{padding-right:44px}.input-toggle{width:38px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.input-toggle:hover{color:var(--text);background:#7f7f7f1f}.input-toggle:active{transform:translateY(-50%)}.input-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;gap:6px;font-size:.85rem;font-weight:700;display:grid}.input-error{border-color:var(--danger)!important}.input-error-text{color:var(--danger);margin:0;font-size:.85rem}.input-helper-text{color:var(--text-muted);margin:0;font-size:.85rem}.select{cursor:pointer}.range-input{min-height:auto;padding:0}.form-row{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}.form-group{gap:6px;display:grid}.date-input{width:100%;min-width:0}.modal-form{gap:var(--space-4);display:grid}.modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.task-form,.commitment-form{gap:var(--space-3);display:grid}.task-form-row{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media(min-width:480px){.task-form-row{grid-template-columns:1fr auto}}.task-form-row input{min-width:0;min-height:52px;font-size:1.05rem}.task-form-options{gap:var(--space-2);flex-wrap:wrap;display:flex}.task-list,.session-list,.transaction-list,.xp-list,.journal-history-list,.reminders-list,.milestone-list,.linked-task-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.task-row{align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);grid-template-columns:48px minmax(0,1fr) auto;min-height:64px;padding:8px 12px;transition:background .15s,border-color .15s;display:grid}.task-row:hover{background:#fbfdf9;border-color:#b6ceb0}.task-row.completed{opacity:.6}.task-row.completed .task-title{color:var(--text-muted);text-decoration:line-through}.task-row.overdue{background:#fff5f1;border-color:#d5aaa1}.task-check{color:#719768;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.task-content{gap:4px;min-width:0;display:grid}.task-title{min-width:0;color:var(--primary);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:1.02rem;font-weight:700}.task-meta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.task-time{color:var(--text-muted);align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.overdue-badge{background:var(--danger);color:#fff;border-color:var(--danger)}.recurrence-badge{text-transform:capitalize}.task-actions{gap:4px;display:flex}.commitment-form{grid-template-columns:1fr auto}.commitment-list{gap:var(--space-4);display:grid}.commitment-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5);gap:var(--space-4);background:#fff9;display:grid}.commitment-main{gap:var(--space-5);grid-template-columns:minmax(140px,.6fr) 1.5fr;align-items:center;display:grid}.commitment-info strong{color:var(--primary);overflow-wrap:anywhere;font-size:1.1rem;display:block}.commitment-info span{color:var(--text-muted);margin-top:4px;font-size:.9rem;display:block}.commitment-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.day-action{border:1.5px solid var(--border);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-muted);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.day-action.leave{color:var(--info);background:#eef4fa;border-color:#9db9d4}.day-action.fail{color:var(--danger);background:#faf0ee;border-color:#d4a9a2}.undo-day{white-space:nowrap;gap:4px}.week-panel{min-width:0}.week-heading{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.week-heading strong{color:var(--primary);font-size:clamp(12px,2.5vw,14px)}.week-heading span{color:var(--text-muted);font-size:clamp(12px,2.5vw,14px)}.day-buttons{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1vw,8px);display:grid}.day-check{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);min-height:clamp(48px,10vh,64px);color:var(--text-muted);justify-items:center;gap:2px;min-width:0;padding:clamp(4px,1vh,8px) clamp(2px,.5vw,4px);display:grid}.day-check small{font-size:clamp(10px,2.5vw,12px);font-weight:700;line-height:1}.day-check b{font-size:clamp(12px,3vw,16px);line-height:1}.day-check.today{border:2px solid var(--primary)}.day-check.checked{background:var(--success-bg);color:var(--primary);border-color:var(--success)}.day-check.failed{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.day-check.skipped{background:var(--info-bg);color:var(--info);border-color:var(--info)}.day-check.future,.day-check:disabled{opacity:.55;cursor:not-allowed}.commitment-actions{flex-wrap:wrap;align-items:center;gap:clamp(6px,1.5vw,12px);display:flex}.check-in-btn{flex:1;min-width:clamp(140px,30vw,180px)}.day-action{border:1.5px solid var(--border);background:var(--bg-card);width:clamp(36px,8vw,44px);min-width:clamp(36px,8vw,44px);height:clamp(36px,8vw,44px);min-height:clamp(36px,8vw,44px);color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.day-action:hover:not(:disabled){transform:translateY(-1px)}.day-action.leave{color:var(--info);border-color:var(--info);background:var(--info-bg)}.day-action.fail{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.day-action.leave.active,.day-action.leave:disabled{background:var(--info);border-color:var(--info);color:#fff}.day-action.fail.active,.day-action.fail:disabled{background:var(--danger);border-color:var(--danger);color:#fff}.empty-state{border:1px dashed var(--border-strong);border-radius:var(--radius-md);min-height:160px;color:var(--text-muted);text-align:center;padding:var(--space-6);place-items:center;gap:8px;display:grid}.empty-state strong{color:var(--text);font-size:1.05rem}.empty-state p{margin:0}.goals-list,.goal-card{gap:var(--space-4);display:grid}.goal-header{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex}.expand-toggle{background:var(--bg-hover);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);border:0;flex-shrink:0;place-items:center;display:grid}.goal-info{flex:1;min-width:0}.goal-info>strong{color:var(--primary);overflow-wrap:anywhere;font-size:1.1rem;display:block}.goal-badges{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.goal-progress-text{color:var(--text-muted);font-size:.9rem;font-weight:800}.goal-desc{color:var(--text-muted);margin:6px 0 0;font-size:.92rem}.goal-actions{flex-shrink:0;gap:4px;display:flex}.goal-details{gap:var(--space-5);padding-top:var(--space-2);border-top:1px solid var(--border);display:grid}.milestones-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.milestone-form{gap:8px;margin-bottom:8px;display:flex}.milestone-form input{flex:1}.milestone-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);align-items:center;gap:10px;padding:8px 12px;display:flex}.milestone-item.completed .milestone-title{color:var(--text-muted);text-decoration:line-through}.milestone-check{color:var(--success);background:0 0;border:0;place-items:center;width:32px;height:32px;padding:0;display:grid}.milestone-title{overflow-wrap:anywhere;flex:1;font-size:.95rem;font-weight:600}.milestone-delete{color:var(--text-muted);background:0 0;border:0;place-items:center;padding:4px;display:grid}.milestone-delete:hover{color:var(--danger)}.empty-milestone{color:var(--text-muted);padding:8px 0;font-size:.9rem;list-style:none}.linked-tasks-section h3{margin-bottom:8px}.linked-task-item{color:var(--text-muted);align-items:center;gap:8px;padding:6px 0;font-size:.95rem;list-style:none;display:flex}.linked-task-item svg{color:var(--success);flex-shrink:0}.linked-task-item span{overflow-wrap:anywhere}.link-button-small{color:var(--primary);margin-top:8px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.link-button-small:hover{text-decoration:underline}.skills-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.skill-card{gap:var(--space-4);display:grid}.skill-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.skill-info strong{color:var(--primary);overflow-wrap:anywhere;font-size:1.1rem;display:block}.skill-badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.skill-adjust{gap:var(--space-2);justify-content:flex-end;display:flex}.focus-start-card,.focus-active-card{text-align:center}.focus-start-inner{place-items:center;gap:var(--space-4);max-width:480px;margin:0 auto;display:grid}.focus-icon{color:var(--primary)}.duration-options{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.duration-chip{border:1px solid var(--border-strong);background:var(--bg-card);min-width:64px;min-height:48px;color:var(--text-muted);border-radius:999px;font-size:1rem;font-weight:700}.duration-chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.focus-task-label{text-align:left;width:100%}.focus-active-inner{place-items:center;gap:var(--space-4);display:grid}.focus-countdown{color:var(--primary);letter-spacing:2px;font:800 clamp(3rem,10vw,6rem) monospace}.focus-task-name{color:var(--text);margin:0;font-size:1.2rem;font-weight:700}.focus-controls{gap:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.session-item{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);padding:14px 16px;list-style:none;display:flex}.session-info strong{overflow-wrap:anywhere;font-size:1rem;display:block}.session-date{color:var(--text-muted);font-size:.85rem}.session-meta{flex-shrink:0;align-items:center;gap:10px;display:flex}.session-duration{color:var(--text-muted);font-weight:700}.journal-form{gap:var(--space-5);display:grid}.passion-row{gap:var(--space-2);display:grid}.passion-stars{gap:4px;display:flex}.star-active{color:var(--warning)}.star-inactive{color:var(--border-strong)}.save-indicator{color:var(--success);opacity:0;margin-right:auto;font-weight:700;transition:opacity .3s}.save-indicator.show{opacity:1}.journal-history-item{align-items:center;gap:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);text-align:left;width:100%;min-height:56px;padding:14px 16px;display:flex}.journal-history-item:hover{background:#fbfdf9;border-color:#8eb27f}.journal-history-item strong{min-width:180px;color:var(--primary);font-size:.95rem}.journal-preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.reminder-card{display:block}.reminder-card.disabled{opacity:.6}.reminder-card.past{opacity:.7}.reminder-main{justify-content:space-between;gap:var(--space-4);align-items:flex-start;display:flex}.reminder-info strong{color:var(--primary);overflow-wrap:anywhere;font-size:1.05rem;display:block}.reminder-desc{color:var(--text-muted);margin:4px 0 0;font-size:.9rem}.reminder-badges{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.reminder-when{color:var(--text-muted);font-size:.85rem}.reminder-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.past-section{opacity:.8}.analytics-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.bar-chart{height:200px;padding:var(--space-4) 0;align-items:flex-end;gap:6px;display:flex;overflow-x:auto}.bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:28px;max-width:48px;height:100%;display:flex}.bar-track{background:var(--bg-hover);border-radius:6px 6px 0 0;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.bar-fill{background:linear-gradient(to top,var(--primary),#6d9a62);border-radius:6px 6px 0 0;width:100%;min-height:4px;transition:height .3s}.bar-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.xp-item{align-items:center;gap:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);padding:12px 16px;list-style:none;display:flex}.xp-reason{overflow-wrap:anywhere;flex:1;font-size:.95rem;font-weight:600}.xp-date{color:var(--text-muted);font-size:.85rem}.import-label input[type=file]{display:inline-block}.reports-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.report-card{gap:var(--space-3);display:grid}.report-header{gap:2px;display:grid}.report-title{color:var(--primary);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700}.report-period{color:var(--text-muted);font-size:.85rem}.report-summary{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.report-value{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-hover);justify-content:center;align-items:center;gap:6px;min-height:52px;font-size:1rem;font-weight:800;display:flex}.report-value.income{color:var(--success)}.report-value.expense{color:var(--danger)}.report-value.net.positive{color:var(--success)}.report-value.net.negative{color:var(--danger)}.finance-controls{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.month-nav{align-items:center;gap:var(--space-3);display:flex}.month-label{font-weight:700}.filter-tabs{gap:6px;display:flex}.filter-tab{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card);min-height:40px;color:var(--primary);padding:0 16px;font-size:.9rem;font-weight:700}.filter-tab.active{background:var(--secondary);border-color:var(--primary);color:var(--primary)}.transaction-item{align-items:center;gap:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);grid-template-columns:minmax(140px,.5fr) minmax(120px,.5fr) auto;min-height:64px;padding:10px 16px;display:grid}.transaction-item.income{border-left:4px solid var(--success)}.transaction-item.expense{border-left:4px solid var(--danger)}.transaction-main{align-items:center;gap:12px;min-width:0;display:flex}.transaction-category{color:var(--primary);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.transaction-amount{white-space:nowrap;font-size:1rem;font-weight:800}.transaction-amount.positive{color:var(--success)}.transaction-amount.negative{color:var(--danger)}.transaction-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;min-width:0;font-size:.88rem;display:flex}.transaction-desc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transaction-actions{justify-content:flex-end;gap:4px;display:flex}.type-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.type-toggle button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-hover);min-height:46px;color:var(--text-muted);justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.92rem;font-weight:700;display:inline-flex}.type-toggle button.active{background:var(--secondary);border-color:var(--primary);color:var(--primary)}.category-breakdown h4{color:var(--primary);margin:12px 0 8px;font-size:.9rem}.category-bars{gap:8px;display:grid}.category-bar{grid-template-columns:minmax(100px,.4fr) minmax(80px,.5fr) auto;align-items:center;gap:10px;display:grid}.category-info{justify-content:space-between;gap:8px;min-width:0;display:flex}.category-name{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.category-amount{color:var(--text-muted);white-space:nowrap;font-size:.88rem;font-weight:700}.category-bar-track{background:var(--bg-hover);border-radius:999px;height:8px;overflow:hidden}.category-bar-fill{border-radius:inherit;height:100%;transition:width .3s;display:block}.category-bar-fill.income{background:#6d9a62}.category-bar-fill.expense{background:#c77d74}.category-percent{color:var(--text-muted);font-size:.78rem;font-weight:700}.settings-section{gap:var(--space-5);display:grid}.settings-section-header{gap:var(--space-3);align-items:flex-start;display:flex}.settings-section-header>svg{color:var(--primary);flex-shrink:0;margin-top:4px}.settings-fields{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.settings-field{gap:4px;display:grid}.settings-field-wide{grid-column:1/-1}.settings-value{overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:600}.settings-actions{align-items:center;gap:var(--space-3);display:flex}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 8px}.admin-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.admin-table tr:last-child td{border-bottom:none}.admin-user-cell{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.admin-user-cell strong{overflow-wrap:anywhere}.admin-user-cell span{color:var(--text-muted);overflow-wrap:anywhere;width:100%;font-size:.85rem}.admin-muted{color:var(--text-muted)}.admin-actions{justify-content:flex-end;gap:2px;display:flex}.admin-actions .btn{height:36px;min-height:36px;padding:0 8px}.admin-danger:hover{color:var(--danger);background:var(--danger-bg)!important}.danger-ghost{color:var(--text-muted)}.danger-ghost:hover{color:var(--danger);filter:none;background:var(--danger-bg)!important}.modal-overlay{z-index:50;background:#20251f80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-content{background:var(--bg-card);border-radius:var(--radius-lg);width:min(100%,420px);max-height:90svh;padding:var(--space-8);box-shadow:var(--shadow-lg);overflow-y:auto}.modal-sm{max-width:24rem}.modal-md{max-width:32rem}.modal-lg{max-width:42rem}.modal-xl{max-width:56rem}.modal-full{max-width:90vw}.modal-header{margin-bottom:var(--space-5);position:relative}.modal-title{color:var(--primary);margin:0;font-size:1.35rem}.modal-description{color:var(--text-muted);margin:6px 0 0}.modal-close{width:44px;height:44px;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:-8px;right:-8px}.modal-close:hover{background:var(--bg-hover);color:var(--text)}.modal-body{gap:var(--space-4);display:grid}.modal-message{color:var(--text-muted);margin:0;line-height:1.5}.modal-footer{justify-content:flex-end;gap:var(--space-3);display:flex}.input-label>.input,.input-label>.select,.input-label>textarea{margin-top:4px}.input-label>input[type=range]{min-height:auto;margin-top:8px}.progress-wrapper{width:100%}.progress-label{color:var(--text-muted);justify-content:space-between;margin-bottom:6px;font-size:.85rem;font-weight:600;display:flex}.progress-track{background:var(--border);border-radius:999px;width:100%;overflow:hidden}.progress-sm{height:6px}.progress-md{height:10px}.progress-lg{height:16px}.progress-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .3s}.progress-fill.success{background:var(--success)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.tabs-list{background:var(--bg-hover);border-radius:12px;align-items:center;gap:4px;padding:4px;display:flex}.tabs-trigger{color:var(--text-muted);background:0 0;border:0;border-radius:8px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.tabs-trigger:hover:not(:disabled){color:var(--text)}.tabs-trigger[aria-selected=true]{background:var(--bg-card);color:var(--text);box-shadow:var(--shadow-sm)}.tabs-trigger:disabled{opacity:.5;cursor:not-allowed}.tabs-content{margin-top:16px}.greeting-card{text-align:center}.greeting-title{letter-spacing:-.5px;font-size:24px}.greeting-date{color:var(--text-muted);margin-bottom:18px;font-size:13px}.greeting-quote-tamil{color:var(--text);margin-bottom:6px;font-family:Noto Sans Tamil,sans-serif;font-size:18px;line-height:1.7}.greeting-quote-translit{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-style:italic}.greeting-quote-meaning{color:var(--text-muted);margin-bottom:8px;font-size:14px;font-style:italic}.greeting-quote-author{color:var(--text-subtle);margin-bottom:22px;font-size:12px}.greeting-start-btn{width:100%}.achievement-date{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.achievement-desc{color:var(--text-muted);margin:8px 0 0;font-size:13px}.achievement-icon{color:var(--warning);flex-shrink:0}.profile-photo-row{align-items:center;gap:12px;display:flex}.settings-username-row{align-items:flex-start;gap:8px;max-width:420px;display:flex}.settings-username-row .input-wrapper,.settings-username-row>input,.settings-username-row>.input-wrapper{flex:1}.settings-username-row .btn{flex-shrink:0}.settings-note{color:var(--text-muted);margin:6px 0 0;font-size:12px}@media(max-width:900px){.dashboard-grid,.reports-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-main{padding:12px}.page{gap:10px}.page-header{flex-direction:column}.page-header h1{font-size:22px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stats-grid .card-md{padding:12px 16px}.stat-value-row strong{font-size:22px}.dashboard-page .stat-value-row strong{font-size:26px}.dashboard-page .page-header h1{font-size:24px}.stat-label,.stat-desc{font-size:12px}.panel{padding:14px 16px}.dashboard-page .panel{padding:16px}.dashboard-grid{gap:10px;margin-top:12px}.task-form-row,.commitment-form,.form-row,.commitment-main{grid-template-columns:1fr}.transaction-item{gap:var(--space-2);grid-template-columns:1fr}.transaction-actions{justify-content:flex-start}.report-summary{grid-template-columns:1fr}.finance-controls{flex-direction:column;align-items:stretch}.month-nav,.filter-tabs{justify-content:center}.category-bar{grid-template-columns:minmax(80px,.4fr) minmax(60px,.4fr) auto}.reminder-main{flex-direction:column}.journal-history-item{flex-wrap:wrap}.journal-history-item strong{min-width:0}.focus-controls{width:100%}.focus-controls>*{flex:1}.session-item{flex-direction:column;align-items:flex-start;gap:8px}.xp-item{flex-wrap:wrap}}@media(max-width:640px){.task-form-row,.dashboard-page .task-form-row,.commitment-form,.dashboard-page .commitment-form,.form-row{grid-template-columns:1fr}.task-form-row .btn,.dashboard-page .task-form-row .btn,.commitment-form .btn,.dashboard-page .commitment-form .btn,.task-form-row input,.dashboard-page .task-form-row input{width:100%}.date-input{width:100%;min-width:0}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.skills-grid,.settings-fields{grid-template-columns:1fr}.settings-username-row{flex-direction:column;align-items:stretch}.settings-username-row .btn{width:100%}.finance-controls{flex-direction:column;align-items:stretch}.month-nav,.filter-tabs{justify-content:center;width:100%}.filter-tab{flex:1}.type-toggle,.category-bar{grid-template-columns:1fr}.dashboard-page input,.dashboard-page select,.dashboard-page textarea{min-height:44px;font-size:16px}.dashboard-page .task-form-row input,.dashboard-page .date-input{font-size:16px}.report-summary{grid-template-columns:1fr}}@media(max-width:480px){.panel{padding:14px 16px}.modal-content{padding:var(--space-5) var(--space-4)}.stats-grid{grid-template-columns:1fr 1fr}.skill-adjust{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell,.auth-page{padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(72px,env(safe-area-inset-bottom))}.panel-header-actions{align-items:center;gap:10px;display:inline-flex}.panel-icon-btn{border:1px solid var(--border);background:var(--bg-card);width:34px;height:34px;color:var(--text-muted);cursor:pointer;border-radius:10px;place-items:center;transition:color .15s,border-color .15s,background .15s;display:inline-grid;position:relative}.panel-icon-btn:hover,.panel-icon-btn:focus-visible{color:var(--primary);border-color:var(--primary);background:var(--bg-hover);outline:none}.panel-icon-badge{background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.task-input-wrap{min-width:0;display:block;position:relative}.task-input-wrap>input{box-sizing:border-box;width:100%;padding-right:46px}.deadline-btn{width:38px;height:38px;color:var(--text-subtle);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;transition:color .15s,background .15s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.deadline-btn:hover,.deadline-btn:focus-visible{color:var(--primary);background:var(--bg-hover);outline:none}.deadline-btn.has-deadline{color:var(--primary);background:var(--secondary)}.deadline-summary{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;width:fit-content;margin:0;padding:4px 8px;font-size:.78rem;display:inline-flex}.deadline-summary button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:2px;display:inline-grid}.deadline-summary button:hover{background:var(--bg-active);color:var(--danger)}.deadline-form .deadline-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.deadline-form .field{color:var(--text-muted);gap:6px;font-size:.82rem;display:grid}.deadline-form .field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);min-height:42px;color:var(--text);font:inherit;padding:0 10px}.deadline-form .field input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.deadline-hint{color:var(--text-subtle);align-items:center;gap:6px;margin:10px 0 0;font-size:.75rem;display:inline-flex}.form-error{color:var(--danger);margin:8px 0 0;font-size:.82rem}.long-press-hint{color:var(--text-subtle);font-size:.8rem}.task-row.long-press-target{touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.task-row.pressing{border-color:var(--danger);background:var(--danger-bg)}.long-press-progress{background:var(--danger);border-radius:0 3px 3px 0;width:0;height:3px;position:absolute;bottom:0;left:0}.task-row.pressing .long-press-progress{width:100%;transition:width .6s linear}.overdue-menu{gap:10px;display:grid}.overdue-menu .btn{justify-content:center;width:100%}.trash-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.trash-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.trash-info{gap:2px;min-width:0;display:grid}.trash-info strong{color:var(--primary);overflow-wrap:anywhere}.trash-info span{color:var(--text-muted);font-size:.78rem}.trash-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:6px;display:flex}.page-tabs{border:1px solid var(--border);background:var(--bg-card);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.page-tab{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:600;display:inline-flex}.page-tab:hover{color:var(--text)}.page-tab.active{background:var(--primary);color:var(--primary-fg)}.page-tab-count{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:18px;padding:0 5px;font-size:12px;line-height:18px}.tasks-page .trash-panel{margin-top:12px}.notification-center{display:inline-flex;position:relative}.notification-bell{border:1px solid var(--border);background:var(--bg-card);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:50%;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid;position:relative}.notification-bell:hover,.notification-bell.open{color:var(--primary);border-color:var(--primary);background:var(--bg-hover)}.notification-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:12px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.notification-panel{z-index:60;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);width:min(340px,100vw - 24px);max-height:60vh;box-shadow:var(--shadow-lg);padding:10px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.notification-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 8px;display:flex}.notification-panel-head strong{font-size:.9rem}.notification-mark-all{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:inline-flex}.notification-mark-all:hover{text-decoration:underline}.notification-empty{color:var(--text-muted);text-align:center;margin:14px 4px;font-size:.85rem}.notification-error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);text-align:center;justify-items:center;gap:8px;margin:12px 4px;padding:10px;display:grid}.notification-error p{margin:0;font-size:.85rem}.notification-list{gap:4px;margin:0;padding:6px 0 0;list-style:none;display:grid}.notification-item{border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:8px;padding:8px;display:flex}.notification-item:hover{background:var(--bg-hover)}.notification-item.unread{background:var(--info-bg)}.notification-dot{background:var(--info);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notification-item.read .notification-dot{border:1px solid var(--border);background:0 0}.notification-copy{gap:2px;min-width:0;display:grid}.notification-copy strong{overflow-wrap:anywhere;font-size:.85rem}.notification-copy span{color:var(--text-muted);overflow-wrap:anywhere;font-size:.8rem}.notification-copy small{color:var(--text-subtle);font-size:.8rem}@media(max-width:700px){.deadline-form .deadline-fields{grid-template-columns:1fr}.trash-row{flex-direction:column;align-items:stretch}.trash-actions{justify-content:flex-start}.notification-panel{width:auto;position:fixed;top:64px;left:12px;right:12px}}.week-backfill-note{color:var(--text-subtle);margin:8px 0 0;font-size:.8rem}.day-check.backfill{cursor:pointer;border-style:dashed}.day-check.backfill:hover:not(:disabled){border-color:var(--primary);background:var(--success-bg)}.day-check.outside-window{opacity:.45;cursor:not-allowed}.backfill-banner{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;font-size:.85rem;display:flex}.backfill-banner strong{color:var(--primary)}.backfill-banner em{color:var(--text);font-style:normal;font-weight:600}.commitment-history-list{gap:14px;margin-top:14px;display:grid}.commitment-history .panel-header h2{color:var(--primary);font-size:16px}.backfill-row{gap:8px;margin-bottom:12px;display:flex}.backfill-cell{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);min-width:74px;color:var(--text-muted);font:inherit;cursor:pointer;justify-items:center;gap:2px;padding:8px 10px;transition:border-color .15s,background .15s,transform .1s;display:grid}.backfill-cell:hover{border-color:var(--primary);transform:translateY(-1px)}.backfill-cell .backfill-day{text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.backfill-cell .backfill-date{color:var(--text);font-size:1.05rem;font-weight:700}.backfill-cell.status-completed{background:var(--success-bg);border-color:var(--success);color:var(--success)}.backfill-cell.status-failed{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.backfill-cell.status-skipped{background:var(--info-bg);border-color:var(--info);color:var(--info)}.backfill-cell.is-today{outline:2px solid var(--primary);outline-offset:1px}.month-section{margin-top:18px}.month-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.month-header h3{color:var(--text);margin:0;font-size:15px;font-weight:700}.month-summary{color:var(--text-muted);font-size:13px}.month-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px;display:grid}.month-weekdays span{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px;font-weight:700}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.month-cell{border:1px solid var(--border);background:var(--bg-card);min-height:48px;color:var(--text-muted);font:inherit;cursor:pointer;border-radius:10px;align-content:center;justify-items:center;gap:2px;padding:6px 3px;transition:border-color .15s,background .15s;display:grid;position:relative}.month-cell .month-day-number{color:var(--text);font-size:15px;font-weight:600;line-height:1}.month-cell .month-cell-icon{height:16px;color:var(--text-subtle);place-items:center;display:grid}.month-cell.is-outside{pointer-events:none;background:0 0;border-color:#0000}.month-cell.status-empty .month-day-number{color:var(--text-muted);font-weight:500}.month-cell.status-completed{background:var(--success-bg);border-color:var(--success)}.month-cell.status-completed .month-cell-icon{color:var(--success)}.month-cell.status-failed{background:var(--danger-bg);border-color:var(--danger)}.month-cell.status-failed .month-cell-icon{color:var(--danger)}.month-cell.status-skipped{background:var(--info-bg);border-color:var(--info)}.month-cell.status-skipped .month-cell-icon{color:var(--info)}.month-cell.is-today{outline:2px solid var(--primary);outline-offset:1px}.month-cell.is-inactive{border-color:var(--border);opacity:.45;cursor:not-allowed;background:0 0}.month-cell.is-locked{opacity:.6;cursor:not-allowed}.month-cell.is-locked .month-day-number{color:var(--text-muted)}.month-cell:disabled{cursor:not-allowed}.month-cell.is-editable:hover{border-color:var(--primary);background:var(--success-bg)}.month-cell.is-editable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.month-empty{color:var(--text-subtle);margin:10px 0 0;font-size:.85rem}.show-earlier-months{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-muted);font:inherit;cursor:pointer;align-items:center;gap:6px;margin-top:12px;padding:8px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.show-earlier-months:hover{border-color:var(--primary);color:var(--primary)}.show-earlier-months svg{transform:rotate(180deg)}.history-legend{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.legend-item.completed{color:var(--success)}.legend-item.failed{color:var(--danger)}.legend-item.skipped{color:var(--info)}.legend-item.empty,.legend-item.locked{color:var(--text-subtle)}@media(max-width:700px){.backfill-cell{flex:1;min-width:0}.month-grid,.month-weekdays{gap:2px}.month-cell{min-height:44px}}.header-stats{align-items:center;gap:10px;display:inline-flex}.level-badge{background:var(--bg-card);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:9999px;place-items:center;width:64px;height:64px;padding:0;transition:transform .15s,box-shadow .15s;display:grid;position:relative;box-shadow:0 4px 12px #20251f24}.level-badge:hover{transform:translateY(-1px);box-shadow:0 6px 16px #20251f2e}.level-badge:active{transform:translateY(0)}.level-badge:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.level-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.level-ring circle{fill:none;stroke-width:5px;stroke-linecap:round}.level-ring-track{stroke:var(--bg-active)}.level-ring-progress{stroke:var(--primary);transition:stroke-dashoffset .6s}.level-inner{z-index:1;place-items:center;gap:1px;line-height:1;display:grid;position:relative}.level-caption{letter-spacing:.1em;color:var(--text-muted);font-size:.75rem;font-weight:700}.level-number{color:var(--primary);font-size:1.3rem;font-weight:800;animation:.45s level-pop}@keyframes level-pop{0%{opacity:.4;transform:scale(.7)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.level-badge,.level-ring-progress{transition:none}.level-number{animation:none}}.points-modal{gap:14px;display:grid}.points-modal-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:4px 0 0;font-size:.85rem;font-weight:700}.achievement-date{align-items:center;gap:4px;display:inline-flex}.streak-pill{background:var(--bg-active);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:7px 13px;font-size:.9rem;font-weight:700;display:inline-flex}.streak-pill svg{color:var(--warning,#f59e0b)}.streak-pill-label{color:var(--text-muted);font-weight:600}.streak-pill-fire{font-size:.95rem;line-height:1}.streak-pill-count{color:var(--text);font-weight:800}.streak-pill.is-active{border-color:var(--warning,#f59e0b)}@media(max-width:700px){.page-tabs{justify-content:stretch;width:100%}.page-tab{flex:1;justify-content:center;min-width:0;padding:8px 10px}.header-stats{flex-wrap:wrap;justify-content:flex-start}.level-badge{width:56px;height:56px}.level-number{font-size:1.15rem}.level-caption{font-size:.75rem}.backfill-row{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto}.backfill-cell{flex:none}.trash-actions .btn{flex:1}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.skills-grid{gap:var(--space-3)}.notification-panel{max-height:calc(100svh - 88px);overflow-y:auto}}@media(max-width:480px){.page-header .header-stats{width:100%}.empty-state{padding:24px 14px}.empty-state strong{font-size:.95rem}.task-panel .btn,.panel .btn{max-width:100%}}.commitment-main{grid-template-columns:1fr;align-items:start;gap:clamp(12px,2.5vw,16px);display:grid}@media(min-width:640px){.commitment-main{grid-template-columns:minmax(0,.6fr) minmax(0,1.5fr)}}.week-panel{width:100%;min-width:0}.day-buttons{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1vw,8px)}.dashboard-page .day-check{min-width:0;min-height:clamp(48px,10vh,64px);padding:clamp(4px,1vh,8px) clamp(2px,.5vw,4px);position:relative}.day-check.not-started{opacity:.42;cursor:not-allowed}.day-lock{position:absolute;bottom:3px;right:3px}.week-skeleton-line,.week-day-skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--bg-hover) 50%,var(--border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite week-strip-pulse;display:block}.week-skeleton-line{width:120px;height:12px}.week-skeleton-line.short{width:54px}.week-panel-skeleton .day-buttons{margin-top:8px}.week-day-skeleton{min-width:0;min-height:clamp(48px,10vh,54px)}.commitment-load-error{border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.commitment-load-error p{overflow-wrap:anywhere;margin:0}.commitment-load-error.compact{margin-bottom:12px}@keyframes week-strip-pulse{0%{background-position:100%}to{background-position:0}}@media(max-width:1024px){.commitment-main{grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.commitment-week-strip .day-buttons,.week-panel-skeleton .day-buttons{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:4px;width:auto;min-width:auto;max-width:none;padding-bottom:4px;display:flex;position:static;left:auto;overflow-x:auto;transform:none}.commitment-week-strip .day-buttons::-webkit-scrollbar{display:none}.week-panel-skeleton .day-buttons::-webkit-scrollbar{display:none}.commitment-week-strip .day-check,.week-panel-skeleton .week-day-skeleton{flex:none;min-width:44px}}.points-summary{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.points-summary-item{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:.82rem;display:inline-flex}.points-summary-item.earned{color:var(--success);border-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.points-summary-item.earned{border-color:color-mix(in srgb,var(--success) 40%,transparent)}}.points-summary-item.spent{color:var(--danger);border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.points-summary-item.spent{border-color:color-mix(in srgb,var(--danger) 40%,transparent)}}.points-summary-item.net strong{color:var(--text)}.recurring-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.recurring-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;font-size:.88rem;display:inline-flex}.recurring-toggle input{accent-color:var(--primary);width:16px;height:16px}.recurring-row .input-label{min-width:160px}.trend-track{justify-content:center}.trend-bars{justify-content:center;align-items:flex-end;gap:2px;width:100%;height:100%;display:flex}.trend-bar{border-radius:3px 3px 0 0;width:38%;min-height:2px}.trend-bar.income{background:var(--success)}.trend-bar.expense{background:var(--danger)}.finance-trend .bar-col{min-width:14px}::selection{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in srgb,var(--primary) 30%,transparent)}}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--text-subtle)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page{animation:.25s ease-out page-in}@keyframes modal-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.modal-content{animation:.18s ease-out modal-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.panel{transition:box-shadow .18s,border-color .18s}.panel:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.panel:hover{border-color:color-mix(in srgb,var(--primary) 25%,var(--border))}}.card{transition:box-shadow .18s,transform .18s}.skill-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
