:root,:root[data-theme=light]{color-scheme:light;--color-brand: #2b568f;--color-brand-dark: #274e83;--color-brand-light: #8fb1e0;--color-brand-subtle: rgba(178, 200, 237, .35);--color-accent: #2b568f;--color-accent-subtle: rgba(178, 200, 237, .25);--color-brand-faint: rgba(178, 200, 237, .18);--color-brand-border: rgba(43, 86, 143, .3);--color-brand-border-strong: rgba(43, 86, 143, .45);--color-surface: #f3f7fc;--color-surface-raised: #dbe5f1;--color-surface-overlay: #e7eef7;--color-surface-composer: #fbfdff;--color-border: rgba(19, 28, 43, .24);--color-border-strong: rgba(19, 28, 43, .36);--color-surface-subtle: rgba(19, 28, 43, .04);--color-surface-inset: rgba(19, 28, 43, .06);--color-surface-hover: rgba(19, 28, 43, .07);--color-surface-strong: rgba(19, 28, 43, .1);--color-border-subtle: rgba(19, 28, 43, .13);--color-overlay-backdrop: rgba(19, 28, 43, .45);--color-overlay-backdrop-strong: rgba(19, 28, 43, .6);--color-text-primary: #131c2b;--color-text-secondary: #36435a;--color-text-tertiary: #4d5d76;--color-text-inverse: #FFFFFF;--color-success: #166534;--color-success-subtle: rgba(34, 197, 94, .18);--color-success-border: rgba(22, 101, 52, .3);--color-error: #B91C1C;--color-error-subtle: rgba(185, 28, 28, .12);--color-error-border: rgba(185, 28, 28, .3);--color-error-faint: rgba(185, 28, 28, .12);--color-warning: #92400E;--color-warning-subtle: rgba(245, 158, 11, .2);--color-premium: #854D0E;--color-premium-subtle: rgba(234, 179, 8, .2);--color-premium-border: rgba(133, 77, 14, .3);--color-food: #92400E;--color-food-subtle: rgba(245, 158, 11, .2);--color-transport: #1E40AF;--color-transport-subtle: rgba(59, 130, 246, .16);--color-shopping: #9D174D;--color-shopping-subtle: rgba(236, 72, 153, .16);--color-entertainment: #5B21B6;--color-entertainment-subtle: rgba(139, 92, 246, .16);--color-health: #166534;--color-health-subtle: rgba(34, 197, 94, .18);--color-utility: #374151;--color-utility-subtle: rgba(107, 114, 128, .14);--color-education: #155E75;--color-education-subtle: rgba(6, 182, 212, .18);--color-other: #334155;--color-other-subtle: rgba(100, 116, 139, .14);--rc-amber: var(--color-food);--rc-amber-subtle: var(--color-food-subtle);--rc-blue: var(--color-transport);--rc-blue-subtle: var(--color-transport-subtle);--rc-pink: var(--color-shopping);--rc-pink-subtle: var(--color-shopping-subtle);--rc-violet: var(--color-entertainment);--rc-violet-subtle: var(--color-entertainment-subtle);--rc-green: var(--color-health);--rc-green-subtle: var(--color-health-subtle);--rc-gray: var(--color-utility);--rc-gray-subtle: var(--color-utility-subtle);--rc-cyan: var(--color-education);--rc-cyan-subtle: var(--color-education-subtle);--rc-slate: var(--color-other);--rc-slate-subtle: var(--color-other-subtle);--rc-teal: #0F766E;--rc-teal-subtle: rgba(20, 184, 166, .16);--rc-rose: #BE123C;--rc-rose-subtle: rgba(244, 63, 94, .14);--rc-indigo: #3730A3;--rc-indigo-subtle: rgba(99, 102, 241, .16);--rc-orange: #C2410C;--rc-orange-subtle: rgba(249, 115, 22, .16);--shadow-sm: 0 1px 3px rgba(19, 28, 43, .07), 0 1px 2px rgba(19, 28, 43, .05);--shadow-md: 0 4px 16px rgba(19, 28, 43, .09);--shadow-lg: 0 8px 30px rgba(19, 28, 43, .13);--shadow-brand: 0 4px 16px rgba(120, 155, 210, .35);--shadow-composer: 0 0 0 1px rgba(19, 28, 43, .08), 0 4px 16px rgba(19, 28, 43, .1);--shadow-composer-focus: 0 0 0 1px rgba(43, 86, 143, .35), 0 8px 28px rgba(120, 155, 210, .2);--shadow-nav: 0 -4px 20px rgba(19, 28, 43, .08);--focus-ring-brand: 0 0 0 3px rgba(43, 86, 143, .35);--focus-ring-neutral: 0 0 0 3px rgba(19, 28, 43, .1);--color-brand-solid: #b2c8ed;--color-brand-solid-hover: #9db8e3;--color-text-on-brand: #131c2b;--color-on-brand-faint: rgba(19, 28, 43, .35)}:root[data-theme=dark]{color-scheme:dark;--color-brand: #d8d5db;--color-brand-dark: #bfbcc7;--color-brand-light: #eceaef;--color-brand-subtle: rgba(216, 213, 219, .12);--color-accent: #d8d5db;--color-accent-subtle: rgba(216, 213, 219, .08);--color-brand-faint: rgba(216, 213, 219, .06);--color-brand-border: rgba(216, 213, 219, .28);--color-brand-border-strong: rgba(216, 213, 219, .42);--color-surface: #2d3142;--color-surface-raised: #363b52;--color-surface-overlay: #3d4360;--color-surface-composer: #363b52;--color-border: rgba(173, 172, 181, .25);--color-border-strong: rgba(173, 172, 181, .45);--color-surface-subtle: rgba(216, 213, 219, .03);--color-surface-inset: rgba(216, 213, 219, .06);--color-surface-hover: rgba(216, 213, 219, .08);--color-surface-strong: rgba(216, 213, 219, .12);--color-border-subtle: rgba(173, 172, 181, .15);--color-overlay-backdrop: rgba(18, 20, 30, .65);--color-overlay-backdrop-strong: rgba(18, 20, 30, .8);--color-text-primary: #d8d5db;--color-text-secondary: #adacb5;--color-text-tertiary: #aaa9b5;--color-text-inverse: #2d3142;--color-success: #22C55E;--color-success-subtle: rgba(34, 197, 94, .15);--color-success-border: rgba(34, 197, 94, .3);--color-error: #F87171;--color-error-subtle: rgba(248, 113, 113, .14);--color-error-border: rgba(248, 113, 113, .35);--color-error-faint: rgba(248, 113, 113, .12);--color-warning: #F59E0B;--color-warning-subtle: rgba(245, 158, 11, .15);--color-premium: #EAB308;--color-premium-subtle: rgba(234, 179, 8, .15);--color-premium-border: rgba(234, 179, 8, .3);--color-food: #F59E0B;--color-food-subtle: rgba(245, 158, 11, .15);--color-transport: #60A5FA;--color-transport-subtle: rgba(96, 165, 250, .15);--color-shopping: #F472B6;--color-shopping-subtle: rgba(244, 114, 182, .15);--color-entertainment: #A78BFA;--color-entertainment-subtle: rgba(167, 139, 250, .15);--color-health: #22C55E;--color-health-subtle: rgba(34, 197, 94, .15);--color-utility: #9CA3AF;--color-utility-subtle: rgba(156, 163, 175, .15);--color-education: #22D3EE;--color-education-subtle: rgba(34, 211, 238, .15);--color-other: #94A3B8;--color-other-subtle: rgba(148, 163, 184, .15);--rc-amber: var(--color-food);--rc-amber-subtle: var(--color-food-subtle);--rc-blue: var(--color-transport);--rc-blue-subtle: var(--color-transport-subtle);--rc-pink: var(--color-shopping);--rc-pink-subtle: var(--color-shopping-subtle);--rc-violet: var(--color-entertainment);--rc-violet-subtle: var(--color-entertainment-subtle);--rc-green: var(--color-health);--rc-green-subtle: var(--color-health-subtle);--rc-gray: var(--color-utility);--rc-gray-subtle: var(--color-utility-subtle);--rc-cyan: var(--color-education);--rc-cyan-subtle: var(--color-education-subtle);--rc-slate: var(--color-other);--rc-slate-subtle: var(--color-other-subtle);--rc-teal: #2DD4BF;--rc-teal-subtle: rgba(45, 212, 191, .15);--rc-rose: #FB7185;--rc-rose-subtle: rgba(251, 113, 133, .15);--rc-indigo: #818CF8;--rc-indigo-subtle: rgba(129, 140, 248, .15);--rc-orange: #FB923C;--rc-orange-subtle: rgba(251, 146, 60, .15);--shadow-sm: 0 1px 2px rgba(10, 12, 20, .35);--shadow-md: 0 4px 12px rgba(10, 12, 20, .45);--shadow-lg: 0 8px 24px rgba(10, 12, 20, .55);--shadow-brand: 0 2px 8px rgba(216, 213, 219, .15);--shadow-composer: 0 0 0 1px rgba(216, 213, 219, .06), 0 4px 16px rgba(10, 12, 20, .5);--shadow-composer-focus: 0 0 0 1px rgba(216, 213, 219, .3), 0 8px 28px rgba(10, 12, 20, .4);--shadow-nav: 0 -4px 20px rgba(10, 12, 20, .55);--focus-ring-brand: 0 0 0 3px rgba(216, 213, 219, .28);--focus-ring-neutral: 0 0 0 3px rgba(216, 213, 219, .12);--color-brand-solid: #d8d5db;--color-brand-solid-hover: #e6e4ea;--color-text-on-brand: #2d3142;--color-on-brand-faint: rgba(45, 49, 66, .35)}:root{--color-error-strong: #DC2626;--color-error-strong-hover: #B91C1C;--color-text-on-danger: #FFFFFF;--topbar-height: 56px;--nav-height-mobile: 64px;--sidebar-width: 260px;--rail-width: 300px;--page-max-width: 720px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--radius-xs: 6px;--radius-sm: 8px;--radius-input: 10px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 20px;--radius-xl: 24px;--radius-composer: 26px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-topbar: 40;--z-bottom-nav: 50;--z-sidebar: 60;--z-drawer: 100;--z-modal: 1000;--z-paywall: 1100;--z-install: 1200;--z-offline: 1300;--z-toast: 1400}html.theme-switching,html.theme-switching *,html.theme-switching *:before,html.theme-switching *:after{transition:none!important}*,*:before,*:after{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;height:100dvh}body{margin:0;padding:0;background-color:var(--color-surface);color:var(--color-text-primary);min-height:100dvh;overscroll-behavior:none;letter-spacing:-.01em}.text-page-title{font-size:20px;font-weight:600;line-height:1.3;color:var(--color-text-primary)}.text-section-heading{font-size:16px;font-weight:600;line-height:1.4;color:var(--color-text-primary)}.text-body{font-size:14px;font-weight:400;line-height:1.5;color:var(--color-text-primary)}.text-caption{font-size:12px;font-weight:400;line-height:1.4;color:var(--color-text-secondary)}.text-amount{font-size:24px;font-weight:700;line-height:1.2}:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}input,textarea,select{font-size:16px!important;font-family:inherit}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}.mobile-only{display:block}.desktop-only,.desktop-only-flex,.desktop-only-block{display:none}@media(min-width:1024px){.mobile-only{display:none}.desktop-only,.desktop-only-block{display:block}.desktop-only-flex{display:flex}}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.scroll-fade-x{mask-image:linear-gradient(90deg,#000,#000 calc(100% - 24px),transparent);-webkit-mask-image:linear-gradient(90deg,#000,#000 calc(100% - 24px),transparent)}.container-app{width:100%;max-width:100%;margin:0 auto;padding:0 16px}.chat-layout{width:100%;max-width:var(--page-max-width);margin:0}.app-main-columns{display:flex;flex-direction:column;align-items:stretch}.app-main-columns>.container-app{flex:1;min-width:0}.insights-rail{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:0 16px 24px}@media(min-width:768px){.insights-rail{max-width:min(calc(var(--page-max-width) + 64px),100%);margin:0 auto;padding:0 32px 28px}}@media(min-width:1024px){.insights-rail{max-width:min(calc(var(--page-max-width) + 80px),100%);margin:0;padding:0 40px 32px}}@media(min-width:1400px){.app-main-columns{flex-direction:row;align-items:flex-start}.insights-rail{width:var(--rail-width);max-width:none;flex-shrink:0;position:sticky;top:0;display:flex;flex-direction:column;gap:16px;padding:32px 40px 40px 0}}.rail-card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:8px}.rail-card-title{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.rail-card-value{margin:0;font-size:22px;font-weight:800;letter-spacing:-.5px;color:var(--color-text-primary)}.rail-card-body{margin:0;font-size:13px;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.rail-card-caption{margin:0;font-size:11px;color:var(--color-text-tertiary)}.rail-card-link{font-size:13px;font-weight:600;color:var(--color-brand);text-decoration:none}.rail-card-link:hover{color:var(--color-brand-dark)}.rail-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border-strong);flex-shrink:0}.rail-dot--active{background:var(--color-success)}.rail-delta{margin:0;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-pill);align-self:flex-start}.rail-delta--down{color:var(--color-success);background:var(--color-success-subtle)}.rail-delta--up{color:var(--color-warning);background:var(--color-warning-subtle)}.rail-bars{display:flex;flex-direction:column;gap:10px}.rail-bar-row{display:flex;flex-direction:column;gap:4px}.rail-bar-head{display:flex;justify-content:space-between;font-size:12px}.rail-bar-label{color:var(--color-text-secondary);font-weight:600}.rail-bar-amount{color:var(--color-text-primary);font-weight:600}.rail-bar-track{height:6px;border-radius:var(--radius-full);background:var(--color-surface-inset);overflow:hidden}.rail-bar-fill{height:100%;border-radius:var(--radius-full)}.option-pill{background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);padding:8px 14px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.option-pill:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.option-pill--selected{background:var(--color-brand-solid);border-color:transparent;color:var(--color-text-on-brand)}.option-pill--selected:hover{background:var(--color-brand-solid-hover);color:var(--color-text-on-brand)}.chat-layout-header{position:sticky;top:0;z-index:10;background:var(--color-surface)}.chat-layout-scrollable{min-width:0}@media(min-width:768px){.container-app{padding:0 32px;max-width:min(calc(var(--page-max-width) + 64px),100%)}}@media(min-width:1024px){.container-app{padding:0 40px;max-width:min(calc(var(--page-max-width) + 80px),100%);margin-left:0;margin-right:auto}}.app-shell{display:flex;min-height:100dvh;background:var(--color-surface)}.app-shell-body{display:flex;flex-direction:column;flex:1;min-width:0;min-height:100dvh}.app-main{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:calc(var(--topbar-height) + var(--safe-top));padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom))}.app-main-inner{padding-top:20px;padding-bottom:28px}@media(min-width:768px){.app-main-inner{padding-top:32px;padding-bottom:40px}}@media(min-width:1024px){.app-shell-body{margin-left:var(--sidebar-width)}.app-main{padding-top:0;padding-bottom:0}}.app-logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.app-logo-mark{background:var(--color-brand-solid);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-logo-wordmark{font-weight:700;color:var(--color-text-primary);letter-spacing:-.3px;white-space:nowrap}.topbar-hamburger-btn{background:none;border:none;cursor:pointer;color:var(--color-text-primary);padding:8px;margin-left:-8px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.topbar-hamburger-btn:hover{background:var(--color-surface-overlay)}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:8px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:13px;font-weight:500;min-width:40px;min-height:40px;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.theme-toggle:hover{background:var(--color-surface-overlay);color:var(--color-text-primary)}.theme-toggle svg{flex-shrink:0}.app-topbar{position:fixed;top:0;left:0;right:0;z-index:var(--z-topbar);display:flex;align-items:center;justify-content:space-between;gap:12px;height:calc(var(--topbar-height) + var(--safe-top));padding:var(--safe-top) 16px 0;background:color-mix(in srgb,var(--color-surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}@media(min-width:1024px){.app-topbar{display:none}}.app-topbar-title{flex:1 1 auto;min-width:0;margin:0 0 0 4px;font-size:17px;font-weight:600;color:var(--color-text-primary);letter-spacing:-.02em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar-actions{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:8px}@media(min-width:480px){.app-topbar-actions{gap:12px}}.topbar-upgrade-btn{background:var(--color-brand-solid);color:var(--color-text-on-brand);border:none;padding:8px 14px;min-height:36px;border-radius:var(--radius-lg);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-brand);transition:background var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.topbar-upgrade-btn:hover{background:var(--color-brand-solid-hover);transform:translateY(-1px)}.topbar-upgrade-btn:active{transform:scale(.97)}.page-title-desktop-only{display:none}@media(min-width:1024px){.page-title-desktop-only{display:block}}.pb-safe{padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom))}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes micPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-normal) forwards}.animate-slide-up{animation:slideUp var(--transition-slow) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,var(--color-surface-overlay) 25%,var(--color-border) 50%,var(--color-surface-overlay) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-height-mobile) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb,var(--color-surface) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--color-border);display:flex;align-items:stretch;z-index:var(--z-bottom-nav);box-shadow:var(--shadow-nav)}@media(min-width:1024px){.bottom-nav{display:none}}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;padding:6px 4px 4px;color:var(--color-text-tertiary);text-decoration:none;border:none;background:none;cursor:pointer;font-family:inherit;position:relative;transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent}.bottom-nav-item--active{color:var(--color-text-primary)}.bottom-nav-item--disabled{cursor:not-allowed;color:var(--color-text-tertiary);opacity:.7}.bottom-nav-label{font-size:10px;font-weight:500;letter-spacing:.02em}.bottom-nav-item--active .bottom-nav-label{font-weight:600}.bottom-nav-badge{position:absolute;top:6px;right:18%;background:var(--color-brand-subtle);color:var(--color-brand);font-size:9px;font-weight:700;padding:1px 5px;border-radius:var(--radius-full);line-height:1.4}.sidebar{display:none;width:var(--sidebar-width);position:fixed;top:0;left:0;bottom:0;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);z-index:var(--z-sidebar);overflow-y:auto}@media(min-width:1024px){.sidebar{display:flex}}.sidebar-header{padding:20px;border-bottom:1px solid var(--color-border)}.sidebar-nav{padding:12px 10px;flex:1;display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;font-size:14px;font-weight:400;border:none;background:transparent;cursor:pointer;font-family:inherit;width:100%;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-nav-item:hover:not(.sidebar-nav-item--disabled):not(:disabled){background:var(--color-surface-overlay);color:var(--color-text-primary)}.sidebar-nav-item--active{color:var(--color-text-primary);background:var(--color-surface-overlay);font-weight:600}.sidebar-nav-item--disabled{cursor:not-allowed;color:var(--color-text-tertiary);opacity:.7}.sidebar-nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-nav-badge{margin-left:auto;background:var(--color-brand-subtle);color:var(--color-brand);font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--radius-full)}.sidebar-footer{padding:12px 10px 16px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px}.sidebar-account{display:flex;align-items:center;gap:8px;padding:0 2px;font-size:13px;color:var(--color-text-secondary);font-weight:500}.sidebar-account .theme-toggle{margin-left:auto;margin-right:-8px}.sidebar-account-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:8px 10px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-subtle);color:inherit;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.sidebar-account-link:hover{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text-primary)}.sidebar-account-link--active{background:var(--color-brand-subtle);border-color:var(--color-brand-border);color:var(--color-text-primary)}.sidebar-account-meta{display:flex;flex-direction:column;min-width:0}.sidebar-account-name{font-size:13px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account-caption{font-size:11px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-account-link{display:flex;align-items:center;color:var(--color-text-secondary);border-radius:var(--radius-full);-webkit-tap-highlight-color:transparent}.card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:10px 20px;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-brand-solid);color:var(--color-text-on-brand);box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--color-brand-solid-hover);transform:none;box-shadow:none}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{background:var(--color-surface-overlay);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-overlay);color:var(--color-text-primary)}.btn-ghost:active:not(:disabled){background:var(--color-surface-strong);transform:scale(.98)}.btn-danger{background:var(--color-error-strong);color:var(--color-text-on-danger)}.btn-danger:hover:not(:disabled){background:var(--color-error-strong-hover)}.btn-danger:active:not(:disabled){transform:scale(.98)}.form-textarea{width:100%;border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;font-size:16px;font-family:inherit;color:var(--color-text-primary);background:var(--color-surface);resize:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);line-height:1.6}.form-textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--focus-ring-brand)}.form-textarea::placeholder{color:var(--color-text-tertiary)}.form-input{width:100%;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;font-size:16px;font-family:inherit;color:var(--color-text-primary);background:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-border-strong);box-shadow:var(--focus-ring-neutral)}.date-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;text-align:left;color:var(--color-text-primary)}.date-picker-trigger svg{flex-shrink:0;color:var(--color-text-tertiary)}.date-picker-trigger-placeholder{color:var(--color-text-tertiary)}.date-picker-popover{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:260px;max-width:90vw;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.date-picker-month-label{font-size:13px;font-weight:600;color:var(--color-text-primary)}.date-picker-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer}.date-picker-nav-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.date-picker-weekdays span{text-align:center;font-size:11px;font-weight:600;color:var(--color-text-tertiary)}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-picker-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;color:var(--color-text-primary);cursor:pointer}.date-picker-day:hover:not(:disabled){background:var(--color-surface-hover)}.date-picker-day:disabled{color:var(--color-text-tertiary);opacity:.35;cursor:not-allowed}.date-picker-day--outside{color:var(--color-text-tertiary)}.date-picker-day--today{font-weight:700;color:var(--color-brand)}.date-picker-day--selected{background:var(--color-brand-solid);color:var(--color-text-on-brand);font-weight:700}.date-picker-today-btn{width:100%;margin-top:10px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;font-size:12px;font-weight:600;font-family:inherit;color:var(--color-text-secondary);cursor:pointer}.date-picker-today-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.date-picker-today-btn:disabled{opacity:.4;cursor:not-allowed}.ai-composer{position:relative;margin-bottom:28px}.ai-composer-box{display:flex;align-items:flex-end;gap:8px;padding:12px 12px 12px 18px;background:var(--color-surface-composer);border:1px solid var(--color-border);border-radius:var(--radius-composer);box-shadow:var(--shadow-composer);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.ai-composer-box:focus-within{border-color:var(--color-border-strong);box-shadow:var(--shadow-composer-focus)}.ai-composer-input{flex:1;min-height:24px;max-height:200px;padding:6px 0;border:none;background:transparent;resize:none;font-size:16px;line-height:1.5;color:var(--color-text-primary);font-family:inherit}.ai-composer-input:focus{outline:none;box-shadow:none}.ai-composer-input::placeholder{color:var(--color-text-tertiary)}.ai-composer-send{flex-shrink:0;width:40px;height:40px;border:none;border-radius:50%;background:var(--color-brand-solid);color:var(--color-text-on-brand);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.ai-composer-mic{flex-shrink:0;width:40px;height:40px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface-overlay);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.ai-composer-mic:hover:not(:disabled){border-color:var(--color-border-strong);color:var(--color-text-primary)}.ai-composer-mic:disabled{cursor:not-allowed;opacity:.5}.ai-composer-mic--listening{background:var(--color-error-subtle);border-color:var(--color-error-border);color:var(--color-error);animation:micPulse 1.3s ease-in-out infinite}.ai-composer-mic--starting{border-color:var(--color-border-strong);color:var(--color-text-primary);animation:pulse 1.1s ease-in-out infinite}.ai-composer-mic-stop{width:12px;height:12px;border-radius:3px;background:currentColor;box-shadow:0 0 0 5px var(--color-error-faint)}.dictation-line{display:flex;align-items:flex-start;gap:8px;margin:10px 4px 0;font-size:12px;line-height:1.5;color:var(--color-text-secondary);text-align:left}.dictation-dot{flex-shrink:0;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--color-error);animation:pulse 1.3s ease-in-out infinite}.dictation-text{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}.dictation-draft{color:var(--color-text-tertiary);font-style:italic}.dictation-dot--busy{background:var(--color-brand-solid)}.dictation-level{flex-shrink:0;align-self:center;width:56px;height:6px;border-radius:var(--radius-full);background:var(--color-surface-strong);overflow:hidden}.dictation-level-fill{display:block;width:100%;height:100%;border-radius:inherit;background:var(--color-error);transform-origin:left center;transition:transform .18s linear}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.parse-review{margin-top:12px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg, 16px);background:var(--color-surface-composer);box-shadow:var(--shadow-composer);text-align:left}.parse-review-head{display:flex;gap:12px;align-items:flex-start;padding:16px 18px 14px}.parse-review-icon{flex-shrink:0;box-sizing:content-box;padding:5px;border-radius:50%;background:var(--color-warning-subtle);color:var(--color-warning)}.parse-review-title{margin:0;font-size:15px;font-weight:700;line-height:1.35;color:var(--color-text-primary)}.parse-review-title:focus{outline:none}.parse-review-title:focus-visible{outline:2px solid var(--color-brand-solid);outline-offset:2px}.parse-review-reason{margin:2px 0 0;font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.parse-review-list{margin:0;padding:0;list-style:none}.parse-review-row{padding:12px 18px;border-top:1px solid var(--color-border-subtle)}.parse-review-row--attention{background:color-mix(in srgb,var(--color-warning-subtle) 30%,transparent);box-shadow:inset 3px 0 0 var(--color-warning)}.parse-review-row--removed{display:flex;align-items:center;gap:8px;background:var(--color-surface-subtle);color:var(--color-text-tertiary)}.parse-review-row--removed .parse-review-row-summary{font-weight:500;color:var(--color-text-tertiary);text-decoration:line-through}.parse-review-removed-note{margin-left:auto;font-size:12px;white-space:nowrap}.parse-review-row-head{display:flex;align-items:center;gap:6px;min-height:32px}.parse-review-row-summary{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--color-text-primary);overflow-wrap:anywhere}.parse-review-badge{flex-shrink:0;padding:2px 8px;border-radius:var(--radius-full);background:var(--color-warning-subtle);color:var(--color-warning);font-size:12px;font-weight:600}.parse-review-icon-btn{display:inline-flex;flex-shrink:0;align-items:center;gap:4px;min-width:32px;min-height:32px;justify-content:center;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.parse-review-icon-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.parse-review-icon-btn:focus-visible,.parse-review-link:focus-visible,.review-add:focus-visible{outline:2px solid var(--color-brand-solid);outline-offset:2px}.parse-review-row>.review-flag,.parse-review-row>.review-note{margin-top:4px}.parse-review-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin:10px 0 4px;padding:0;border:0;min-width:0}.review-field{display:flex;flex-direction:column;gap:6px;min-width:0}.review-field--wide{grid-column:1 / -1}.review-field-label{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.review-field--flagged>.form-input,.review-field--flagged .review-inline .form-input,.review-field--flagged .review-set .form-input{border-color:var(--color-warning);box-shadow:0 0 0 3px var(--color-warning-subtle)}.review-field--invalid>.form-input,.review-field--invalid .review-set .form-input{border-color:var(--color-error)}.review-flag,.review-error,.review-hint{margin:0;font-size:12px;line-height:1.45}.review-flag{color:var(--color-warning);font-weight:500}.review-error{color:var(--color-error)}.review-hint{color:var(--color-text-tertiary)}.review-note{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:12px;line-height:1.45;color:var(--color-text-tertiary)}.review-note-icon{flex-shrink:0;margin-top:2px}.review-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.review-inline-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.review-inline-label .form-input{width:72px}.review-time{width:auto;min-width:108px}.review-suggestions{display:flex;flex-wrap:wrap;gap:6px}.review-sets{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.review-set{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.review-set .form-input{width:76px}.review-set-index{width:16px;font-weight:600;color:var(--color-text-tertiary)}.review-add{display:inline-flex;align-self:flex-start;align-items:center;gap:4px;padding:4px 10px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:13px;cursor:pointer}.parse-review-skipped{padding:12px 18px;border-top:1px solid var(--color-border-subtle);font-size:13px;color:var(--color-text-secondary)}.parse-review-skipped summary{cursor:pointer;font-weight:600}.parse-review-skipped ul{margin:6px 0 0;padding-left:18px}.parse-review-skipped-text{color:var(--color-text-primary)}.parse-review-status{padding:0 18px;font-size:13px;color:var(--color-text-secondary)}.parse-review-status:not(:empty){padding-top:12px;border-top:1px solid var(--color-border-subtle)}.parse-review-problem{color:var(--color-error)}.parse-review-link{padding:0;border:0;background:none;color:var(--color-brand-solid);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.parse-review-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 14px}.parse-review-status:empty+.parse-review-actions{border-top:1px solid var(--color-border-subtle)}.parse-review-actions .btn{display:inline-flex;align-items:center;gap:6px}@media(max-width:480px){.parse-review-head,.parse-review-row,.parse-review-skipped,.parse-review-actions,.parse-review-status{padding-left:14px;padding-right:14px}.parse-review-fields{grid-template-columns:minmax(0,1fr)}.parse-review-actions .btn{flex:1;justify-content:center}}.dictation-dot--failed{background:var(--color-warning);animation:none}.dictation-action{flex-shrink:0;align-self:center;padding:2px 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-weight:600;cursor:pointer}.dictation-action--quiet{border-color:transparent;background:transparent;color:var(--color-text-secondary);font-weight:500}.dictation-action:focus-visible{outline:2px solid var(--color-brand-solid);outline-offset:2px}@media(prefers-reduced-motion:reduce){.ai-composer-mic--listening,.ai-composer-mic--starting,.dictation-dot{animation:none}}.ai-composer-send:hover:not(:disabled){background:var(--color-brand-solid-hover)}.ai-composer-send:disabled{background:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed;opacity:.9}.ai-composer-hint{margin:10px 4px 0;font-size:12px;color:var(--color-text-tertiary);text-align:center;transition:text-align var(--transition-fast)}@media(min-width:768px){.ai-composer-hint{text-align:left;margin-left:12px}}.ai-composer-secondary{display:flex;justify-content:center;margin-top:6px}.ai-composer-secondary-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-brand);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.ai-composer-secondary-btn:hover:not(:disabled){background:var(--color-brand-subtle)}.ai-composer-secondary-btn:disabled{opacity:.5;cursor:not-allowed}@media(min-width:768px){.ai-composer-secondary{justify-content:flex-start;margin-left:4px}}.suggestions{margin-top:14px;min-width:0}.suggestions--above{margin:14px 0 12px}.suggestions-label{margin:0 0 8px 4px;font-size:12px;font-weight:600;color:var(--color-text-tertiary)}.suggestions-row{display:flex;gap:8px;margin:0;padding:2px 24px 4px 2px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:2px;overscroll-behavior-x:contain}.suggestions-row>li{flex:none;scroll-snap-align:start}.suggestion-chip{display:block;padding:8px 14px;border-radius:16px 16px 16px 4px;border:1px solid var(--color-brand-border);background:var(--color-brand-faint);color:var(--color-text-primary);font:inherit;font-size:13px;line-height:1.35;text-align:left;width:max-content;max-width:240px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.suggestion-chip:hover{background:var(--color-brand-subtle);border-color:var(--color-brand-border-strong)}.suggestion-chip:active{transform:scale(.97)}.suggestion-chip:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}@media(min-width:768px){.suggestions-row{flex-wrap:wrap;overflow:visible;padding-right:2px;mask-image:none;-webkit-mask-image:none}.suggestion-chip{max-width:100%}}@media(prefers-reduced-motion:reduce){.suggestion-chip{transition:none}}.ai-starter{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--color-brand-faint);border:1px solid var(--color-brand-border);color:var(--color-text-secondary);font-size:13.5px;line-height:1.5;text-align:left}.ai-starter>svg{flex-shrink:0;margin-top:2px;color:var(--color-brand)}.ai-starter strong{color:var(--color-text-primary);font-weight:700}.expenses-hero{text-align:center;padding:8px 0 24px;transition:text-align var(--transition-fast),padding var(--transition-fast)}@media(min-width:768px){.expenses-hero{text-align:left;padding:16px 0 32px}}.expenses-hero-title{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.03em;color:var(--color-text-primary)}.expenses-hero-sub{margin:0;font-size:15px;color:var(--color-text-secondary);line-height:1.5}.expenses-controls-card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px}.expenses-controls-divider{height:1px;background:var(--color-border-subtle);margin:14px 0}.expenses-summary-block{display:flex;flex-direction:column;gap:8px}.income-page-stack{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.expenses-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:8px 0 24px;border-bottom:1px solid var(--color-border);margin-bottom:24px}.expenses-stat-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 20px;display:flex;flex-direction:column;gap:6px;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.expenses-stat-card:hover{transform:translateY(-2px);border-color:var(--color-brand);box-shadow:var(--shadow-md)}.expenses-stat-label{margin:0;font-size:12px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.expenses-stat-value{margin:0;font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--color-text-primary);overflow-wrap:anywhere}@media(max-width:479px){.expenses-stat-card{padding:12px 14px}.expenses-stat-value{font-size:20px}.expenses-stat-label{font-size:11px}}.expenses-section-label{margin:0 0 12px;font-size:13px;font-weight:500;color:var(--color-text-tertiary)}.filter-chip{padding:8px 14px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:13px;font-family:inherit;font-weight:400;cursor:pointer;min-height:40px;white-space:nowrap;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.filter-chip:hover{background:var(--color-surface-overlay);border-color:var(--color-border-strong)}.filter-chip:active{background:var(--color-surface-strong);transform:scale(.97)}.filter-chip--active{background:var(--color-brand-solid);border-color:var(--color-brand-border-strong);color:var(--color-text-on-brand);font-weight:500}.filter-chip--active:hover{background:var(--color-brand-solid-hover);border-color:var(--color-brand-border-strong)}.filter-chip--active:active{background:var(--color-brand-solid-hover);transform:scale(.97)}.expense-list{display:flex;flex-direction:column}.expense-table-row{transition:background .15s}.expense-table-row:hover{background:var(--color-surface-overlay)}.expense-row{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--color-border);animation:fadeIn .2s ease forwards;position:relative}.expense-row:last-child{border-bottom:none}.expense-row-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.expense-row-body{flex:1;min-width:0}.expense-row-title{margin:0 0 4px;font-size:15px;font-weight:500;line-height:1.35;color:var(--color-text-primary);overflow-wrap:anywhere}.row-note{flex-basis:100%;min-width:0;overflow-wrap:anywhere}.expense-row-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.expense-row-amount{font-size:15px;font-weight:600;color:var(--color-text-primary);flex-shrink:0;font-variant-numeric:tabular-nums}.expense-row-open{display:flex;align-items:center;gap:14px;flex:1;min-width:0;margin:0;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;cursor:pointer}.expense-row-open:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.expense-row-open .expense-row-title{display:block}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-state-icon{width:48px;height:48px;border-radius:12px;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--color-text-tertiary)}.empty-state-title{margin:0 0 6px;font-size:15px;font-weight:600;color:var(--color-text-primary)}.empty-state-desc{margin:0;font-size:14px;color:var(--color-text-tertiary);max-width:280px;line-height:1.55}.illustration{width:100%;--illustration-ink-strong: #090814;--illustration-ink: #2f2e41;--illustration-ink-soft: #3f3d56}:root[data-theme=dark] .illustration{--illustration-ink-strong: #e5e3e8;--illustration-ink: #c2c0c9;--illustration-ink-soft: #9d9ba8}.illustration svg{display:block;width:100%;height:auto}.empty-state .illustration{margin:0 auto 16px;max-width:70vw}.workouts-hero-illustration{margin:0 auto 14px}.paywall-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-paywall);display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;overscroll-behavior:contain;background:var(--color-overlay-backdrop-strong);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:paywallFade .2s ease-out}@keyframes paywallFade{0%{opacity:0}to{opacity:1}}.paywall-card{position:relative;width:100%;max-width:400px;margin:auto;flex-shrink:0;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl, 20px);box-shadow:var(--shadow-lg);color:var(--color-text-primary)}.paywall-body{display:flex;flex-direction:column;padding:26px 22px 20px}.paywall-close{position:absolute;top:10px;right:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--color-text-tertiary);cursor:pointer;-webkit-tap-highlight-color:transparent}.paywall-close:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.paywall-close:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.paywall-title{margin:0 28px 6px 0;font-size:21px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.paywall-lede{margin:0 0 18px;font-size:14px;line-height:1.55;color:var(--color-text-secondary)}.paywall-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.paywall-plan{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px 14px 14px;border:1.5px solid var(--color-border-subtle);border-radius:14px;background:var(--color-surface-composer);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}.paywall-plan--selected{border-color:var(--color-brand);background:var(--color-brand-faint)}.paywall-plan:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.paywall-plan-check{position:absolute;top:10px;right:10px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-inverse)}.paywall-plan--selected .paywall-plan-check{background:var(--color-brand);border-color:var(--color-brand)}.paywall-plan-amount{font-size:30px;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.paywall-plan-rupee{font-size:.6em;font-weight:700;vertical-align:.4em;margin-right:1px}.paywall-plan-period{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.paywall-plan-note{margin-top:6px;font-size:12px;line-height:1.4;color:var(--color-brand)}.paywall-cta{width:100%;padding:12px 16px;font-size:15px}.paywall-terms{margin:12px 0 0;font-size:12px;line-height:1.55;color:var(--color-text-tertiary);text-align:center}@media(max-width:380px){.paywall-plans{grid-template-columns:1fr}}.install-illustration{margin:0 auto 16px}.ledger-detail-illustration{margin:0 auto 10px}.settings-section-label{margin:28px 0 10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary)}.settings-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}@media(max-width:479px){.settings-card{padding:16px}}.settings-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}.settings-row-body{min-width:0;flex:1 1 180px}.settings-row-title{font-size:14px;font-weight:600;color:var(--color-text-primary)}.settings-row-desc{font-size:13px;color:var(--color-text-secondary);margin-top:2px;line-height:1.5}.settings-caption{font-size:12px;color:var(--color-text-tertiary);margin:10px 2px 0;line-height:1.5}.settings-status-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--radius-full);white-space:nowrap;background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary)}.settings-status-badge--positive{background:var(--color-success-subtle);border-color:var(--color-success-border);color:var(--color-success)}.btn-danger-ghost{background:transparent;border:1px solid var(--color-error-border);color:var(--color-error);padding:9px 16px;min-height:40px;border-radius:var(--radius-full);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast);-webkit-tap-highlight-color:transparent}.btn-danger-ghost:hover{background:var(--color-error-subtle)}.btn-danger-ghost:active{transform:scale(.98)}.workouts-tab-bar{display:flex;gap:8px;background:var(--color-surface-subtle);padding:6px;border-radius:var(--radius-md);margin-bottom:16px}.input-row-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);border-radius:var(--radius-lg);padding:9px 14px;min-height:40px;font-size:12px;font-family:inherit;line-height:1.4;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.chip-btn:hover{background:var(--color-surface-overlay);border-color:var(--color-border-strong);color:var(--color-text-primary)}.chip-btn:active{background:var(--color-surface-strong);transform:scale(.98)}.exercise-chip{display:inline-flex;align-items:stretch;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);overflow:hidden}.exercise-chip-label{border:none;background:none;color:var(--color-text-secondary);font-size:12px;font-family:inherit;padding:8px 4px 8px 12px;min-height:40px;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}.exercise-chip-label:hover{color:var(--color-text-primary);background:var(--color-surface-overlay)}.exercise-chip-remove{border:none;background:none;color:var(--color-text-tertiary);font-size:14px;font-family:inherit;padding:8px 12px 8px 6px;min-width:32px;min-height:40px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}.exercise-chip-remove:hover{color:var(--color-error);background:var(--color-error-subtle)}.auth-layout{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--color-surface-raised)}.auth-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:48px;text-align:center;background:var(--color-brand-faint);border-right:1px solid var(--color-border-subtle)}.auth-panel-wordmark{font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--color-brand)}.auth-panel h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--color-text-primary)}.auth-panel p{margin:0 0 12px;max-width:340px;font-size:14px;line-height:1.55;color:var(--color-text-tertiary)}.auth-content{display:flex;align-items:center;justify-content:center;padding:24px}.auth-content{flex-direction:column;gap:20px}.deletion-notice{width:100%;max-width:400px;padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text-secondary);font-size:14px;line-height:1.55}.deletion-notice p{margin:0}.deletion-notice .deletion-notice-title{margin-bottom:4px;font-weight:700;color:var(--color-text-primary)}.deletion-notice strong,.deletion-notice a{color:var(--color-text-primary)}.deletion-notice-dismiss{margin-top:10px;padding:0;border:none;background:none;color:var(--color-text-primary);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.auth-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;font-size:13px}.auth-links a{color:var(--color-text-tertiary);text-decoration:none}.auth-links a:hover{color:var(--color-text-primary);text-decoration:underline}@media(max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-panel{display:none}}.soon{min-height:100svh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--color-surface);color:var(--color-text-secondary);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.soon-wash{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(680px 480px at 82% 8%,rgba(178,200,237,.5),transparent 68%),radial-gradient(520px 420px at 4% 92%,rgba(178,200,237,.28),transparent 70%);pointer-events:none}.soon-inner{position:relative;flex:1;width:100%;max-width:720px;margin:0 auto;padding:clamp(40px,8vw,96px) 24px clamp(32px,6vw,64px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.soon-brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:clamp(32px,6vw,56px)}.soon-logo{width:44px;height:44px}.soon-brand-name{font-size:22px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.soon-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border-radius:var(--radius-pill);background:#fff;border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-sm);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand);margin:0 0 26px}.soon-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:soonPulse 2s ease-out infinite}@keyframes soonPulse{0%{box-shadow:0 0 #16653473}70%{box-shadow:0 0 0 8px #16653400}to{box-shadow:0 0 #16653400}}.soon-title{font-size:clamp(30px,6.5vw,54px);font-weight:800;line-height:1.08;letter-spacing:-.03em;margin:0 0 22px;color:var(--color-text-primary)}.soon-mark{background-image:linear-gradient(to top,#b2c8ed 0%,#b2c8ed 40%,transparent 40%);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 2px}.soon-desc{font-size:clamp(16px,2vw,18px);color:var(--color-text-tertiary);line-height:1.7;max-width:540px;margin:0 0 32px}.soon-samples{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:600px;margin:0 0 32px;padding:0}.soon-chip{padding:8px 14px;border-radius:var(--radius-pill);background:#fff;border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-sm);font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap}.soon-note{font-size:14px;color:var(--color-text-tertiary);margin:0}.soon-note a{color:var(--color-brand);text-decoration:none}.soon-note a:hover{text-decoration:underline}.soon-footer{position:relative;padding:20px 24px calc(20px + env(safe-area-inset-bottom,0px));text-align:center;font-size:13px;color:var(--color-text-tertiary);border-top:1px solid var(--color-border-subtle)}.soon-footer p{margin:0}@media(prefers-reduced-motion:reduce){.soon-badge-dot{animation:none}}.habit-card-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px}.habit-tag--avoid{font-weight:600;color:var(--color-error)}.habits-column{width:100%}.habits-sticky{padding-bottom:6px;border-bottom:1px solid var(--color-border-subtle)}.habits-body{padding-top:14px;padding-bottom:calc(28px + var(--safe-bottom))}.habits-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 10px}.habits-header-text{flex:1;min-width:0}.habits-eyebrow{margin:0;font-size:13px;color:var(--color-text-secondary)}.habits-date{margin:2px 0 0;font-size:28px;line-height:1.15;font-weight:600;letter-spacing:-.03em;color:var(--color-text-primary)}.habits-status{margin:4px 0 0;font-size:14px;color:var(--color-text-secondary);overflow-wrap:anywhere}.habits-status--done{color:var(--color-success);font-weight:500}.habits-header-side{flex-shrink:0;display:flex;align-items:center;gap:4px}.habits-ring-wrap{position:relative;display:inline-flex}.habits-ring-done{font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.habits-ring-total{font-size:12px;font-weight:500;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.habits-gear{color:var(--color-text-tertiary)}.progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.progress-ring svg{position:absolute;top:0;right:0;bottom:0;left:0}.progress-ring-track{stroke:var(--color-border-subtle)}.progress-ring-arc{stroke:var(--color-text-primary);transition:stroke-dashoffset .42s cubic-bezier(.22,1,.36,1),stroke var(--transition-normal)}.progress-ring--complete .progress-ring-arc{stroke:var(--color-success)}.progress-ring-label{position:relative;display:inline-flex;align-items:baseline;gap:1px;line-height:1}.habit-week{padding:2px 0 6px}.habit-week-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;margin-bottom:2px}.habit-week-range{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.habit-week-controls{display:flex;align-items:center;gap:2px}.habit-week-arrow{display:none;width:32px;height:32px}@media(min-width:480px){.habit-week-arrow{display:flex}}.habit-today-chip{min-height:28px;margin-right:6px;padding:4px 10px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}.habit-today-chip:hover{background:var(--color-surface-hover)}.habit-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;touch-action:pan-y}.habit-day{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:44px;padding:6px 0 8px;border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-primary);font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast)}.habit-day:hover{background:var(--color-surface-hover)}.habit-day:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.habit-day-name{font-size:11px;font-weight:500;color:var(--color-text-tertiary)}.habit-day--today .habit-day-name{font-weight:700;color:var(--color-text-primary)}.habit-day-num{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.habit-day--selected{background:var(--color-surface-inset)}.habit-day--selected .progress-ring-track{stroke:var(--color-border-strong)}.habit-day--future{opacity:.45}.habit-sections{display:flex;flex-direction:column;gap:18px}.habit-section-title{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 4px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.habit-section-count{font-size:12px;font-weight:500;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.habit-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border-subtle)}.habit-row{display:flex;align-items:stretch;border-bottom:1px solid var(--color-border-subtle)}.habit-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 4px 10px 0;border:none;border-radius:var(--radius-sm);background:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast)}button.habit-row-main:hover{background:var(--color-surface-hover)}button.habit-row-main:active .habit-row-circle{transform:scale(.9)}button.habit-row-main:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.habit-row--readonly .habit-row-main{cursor:default}.habit-row--future{opacity:.5}.habit-row--pending{opacity:.6}.habit-row-circle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:2px;border-radius:50%;border:2px solid var(--color-border-strong);background:transparent;color:#fff;transition:transform .16s cubic-bezier(.34,1.56,.64,1),background var(--transition-fast),border-color var(--transition-fast)}.habit-row-circle--missed{background:var(--color-error);border-color:var(--color-error)}.habit-row-circle--pop{animation:habitPop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes habitPop{0%{transform:scale(.8)}55%{transform:scale(1.14)}to{transform:scale(1)}}.habit-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.habit-row-title{font-size:15px;font-weight:500;line-height:1.35;color:var(--color-text-primary);overflow-wrap:anywhere;transition:color var(--transition-fast)}.habit-row--done .habit-row-title{color:var(--color-text-tertiary);text-decoration:line-through;text-decoration-color:var(--color-border-strong)}.habit-row-meta{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-row-meta--met{color:var(--color-success);font-weight:500}.habit-row-menu{flex-shrink:0;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:40px;height:44px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-tertiary);font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.habit-row-menu:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.habit-row-menu:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.habit-row-menu:disabled{opacity:.3;cursor:default}@media(min-width:1024px)and (hover:hover){.habit-row-menu{opacity:0;transition:opacity var(--transition-fast)}.habit-row:hover .habit-row-menu,.habit-row:focus-within .habit-row-menu{opacity:1}}.habit-row--skeleton{align-items:center;gap:14px;min-height:56px;padding:10px 0}.habit-row--skeleton .habit-row-circle{border-color:var(--color-border-subtle)}.habit-row-skeleton-bar{height:12px;border-radius:6px;background:var(--color-surface-inset)}.habits-add{margin-bottom:12px}.quick-add{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 4px 0 2px;border-bottom:1px solid var(--color-border-subtle)}.quick-add-plus{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:2px;color:var(--color-text-tertiary);cursor:text}.quick-add:focus-within .quick-add-plus{color:var(--color-text-primary)}.quick-add-input{flex:1;min-width:0;padding:10px 0;border:none;background:none;color:var(--color-text-primary);font-family:inherit;font-size:15px;outline:none}.quick-add-input::placeholder{color:var(--color-text-tertiary)}.quick-add-pill{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:64px;min-height:36px;padding:8px 14px;border-radius:var(--radius-full);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.quick-add-submit{border:1px solid transparent;background:var(--color-brand-solid);color:var(--color-text-on-brand)}.quick-add-submit:hover{background:var(--color-brand-solid-hover)}.quick-add-ai{border:1px solid var(--color-border-subtle);background:none;color:var(--color-text-secondary)}.quick-add-ai:hover,.quick-add-ai--active{background:var(--color-surface-hover);color:var(--color-text-primary)}.quick-add-ai:focus-visible,.quick-add-submit:focus-visible,.habit-today-chip:focus-visible,.habits-link:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.habits-ai-inline{margin-top:16px}.habits-ai-hint,.habits-readonly-note{margin:14px 0 0;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}.habits-readonly-note{text-align:center}.habits-coach{margin:10px 0 0 4px;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}.habits-link{padding:0;border:none;background:none;color:var(--color-text-primary);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.habit-starters{margin-top:8px}.habit-starters-title{margin:0 0 8px 4px;font-size:12px;font-weight:600;color:var(--color-text-tertiary)}.habit-starters-row{display:flex;flex-wrap:wrap;gap:8px}.habit-starter{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px 8px 11px;border-radius:var(--radius-full);border:1px dashed var(--color-brand-border-strong);background:var(--color-brand-faint);color:var(--color-text-primary);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.habit-starter-icon{color:var(--color-brand);transition:transform var(--transition-fast)}.habit-starter:hover{background:var(--color-brand-subtle);border-style:solid}.habit-starter:hover .habit-starter-icon{transform:rotate(90deg)}.habit-starter:active{transform:scale(.97)}.habit-starter:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.habit-starter:disabled{opacity:.55;cursor:progress}@media(prefers-reduced-motion:reduce){.habit-starter,.habit-starter-icon{transition:none}}.habits-chips{margin-bottom:14px}.habit-sheet-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:18px;font-size:13px;color:var(--color-text-secondary)}.habit-sheet-section{margin-bottom:18px}.habit-sheet-heading{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--color-text-primary)}.habit-sheet-count{margin:8px 0 0;font-size:13px;color:var(--color-text-secondary)}.habit-sheet-list{display:flex;flex-direction:column;border-top:1px solid var(--color-border-subtle)}.habit-sheet-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 4px;border:none;border-bottom:1px solid var(--color-border-subtle);background:none;color:var(--color-text-primary);font:inherit;font-size:15px;text-align:left;cursor:pointer}.habit-sheet-item:hover{background:var(--color-surface-hover)}.habit-sheet-item--danger{color:var(--color-error)}.habit-sheet-copy{margin:0 0 20px;font-size:14px;line-height:1.6;color:var(--color-text-secondary)}.habit-sheet-actions{display:flex;gap:10px}.habit-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.habit-confetti span{position:absolute;left:50%;top:50%;width:6px;height:10px;margin:-5px 0 0 -3px;border-radius:2px;background:var(--burst-color);opacity:0;transform:rotate(var(--burst-angle));animation:habitBurst .8s cubic-bezier(.2,.7,.3,1) var(--burst-delay) forwards}@keyframes habitBurst{0%{opacity:1;transform:rotate(var(--burst-angle)) translateY(0) scale(1)}70%{opacity:1}to{opacity:0;transform:rotate(var(--burst-angle)) translateY(-58px) scale(.6)}}@media(min-width:768px){.habits-header{padding:18px 0 12px}.habits-date{font-size:32px}}@media(max-height:480px){.habits-header{padding:6px 0 4px}.habits-eyebrow,.habit-day-name{display:none}.habits-date{font-size:22px}.habit-day{padding:4px 0}}@media(prefers-reduced-motion:reduce){.progress-ring-arc{transition:none}.habit-row-circle,.habit-row-circle--pop{animation:none;transition:none}.habit-confetti{display:none}}.week-strip{display:grid;grid-template-columns:repeat(7,28px);gap:4px}.week-strip-day{display:flex;flex-direction:column;align-items:center;gap:3px}.week-strip-label{font-size:10px;font-weight:600;line-height:1;color:var(--color-text-tertiary)}.week-strip-label--today{color:var(--color-brand)}.week-strip-dot{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;border:1.5px solid var(--color-border-strong);background:none;color:var(--color-text-tertiary);font-family:inherit;transition:transform var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}button.week-strip-dot{cursor:pointer}button.week-strip-dot:active:not(:disabled){transform:scale(.92)}button.week-strip-dot:disabled{cursor:default}.week-strip-dot--today{border-color:var(--color-brand);border-width:2px}.week-strip-dot--done{background:var(--color-success);border-color:var(--color-success);color:#fff}.week-strip-dot--missed{background:var(--color-error);border-color:var(--color-error);color:#fff}.week-strip-dot--past{opacity:.75}.week-strip-dot--future{opacity:.35}.category-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);border:1px solid var(--color-border-subtle);font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;max-width:100%}.category-chip>span{overflow:hidden;text-overflow:ellipsis}.category-filter-row{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:2px}@media(min-width:768px){.category-filter-row{flex-wrap:wrap;overflow-x:visible;mask-image:none;-webkit-mask-image:none}}.category-manage-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border-subtle)}.category-manage-row:last-child{border-bottom:none}.category-manage-name{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-manage-count{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.icon-btn--danger:hover{color:var(--color-error)}.color-swatch-row{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:30px;height:30px;padding:0;border-radius:50%;border:2px solid transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.color-swatch--selected{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface)}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px}.icon-grid-btn{display:flex;align-items:center;justify-content:center;height:40px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.icon-grid-btn--selected{border-color:var(--color-brand);background:var(--color-brand-subtle);color:var(--color-brand)}.status-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px;font-size:13px;line-height:1.45;color:var(--color-text-primary);border-bottom:1px solid transparent}.status-banner--error{background:var(--color-error-subtle);border-bottom-color:var(--color-error-border)}.status-banner--warning{background:var(--color-warning-subtle);border-bottom-color:var(--color-warning)}.status-banner-icon{flex-shrink:0}.status-banner--error .status-banner-icon,.status-banner--error .status-banner-action{color:var(--color-error)}.status-banner--warning .status-banner-icon,.status-banner--warning .status-banner-action{color:var(--color-warning)}.status-banner--info{background:var(--color-brand-subtle);border-bottom-color:var(--color-brand)}.status-banner--info .status-banner-icon,.status-banner--info .status-banner-action{color:var(--color-brand)}.status-banner-dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.status-banner-message{flex:1 1 240px;min-width:0;margin:0}.status-banner-action{flex-shrink:0;min-height:40px;padding:8px 14px;border:1px solid currentColor;border-radius:var(--radius-full);background:var(--color-surface);font:inherit;font-size:13px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.status-banner-action:active{transform:scale(.97)}@media(max-width:480px){.status-banner-message{flex-basis:calc(100% - 30px)}.status-banner-action{flex:1 1 100%;margin-left:30px}}@media(min-width:1024px){.status-banner{padding:12px 24px}}.notes-controls{display:flex;gap:8px;align-items:center;padding:8px 0 12px}.notes-search{position:relative;flex:1;min-width:0}.notes-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.notes-search-input{padding-left:38px}.notes-new-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px}@media(max-width:479px){.notes-new-btn-label{display:none}.notes-new-btn{padding-left:12px;padding-right:12px}}.notes-grid{display:grid;grid-template-columns:1fr;gap:10px;padding:4px 0 16px}@media(min-width:768px){.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.notes-more{display:flex;justify-content:center;padding:8px 0 24px}.note-card{display:flex;flex-direction:column;gap:6px;width:100%;min-width:0;padding:14px;text-align:left;background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.note-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.note-card:focus-visible{outline:none;box-shadow:var(--focus-ring-brand)}.note-card--new{animation:noteCardNew 2.5s ease-out forwards}@keyframes noteCardNew{0%,40%{background:var(--color-brand-subtle);border-color:var(--color-brand)}to{background:var(--color-surface-raised);border-color:var(--color-border-subtle)}}.note-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.note-card-title{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin:0;min-width:0}.note-card-pin{flex-shrink:0;color:var(--color-brand)}.note-card-flags{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.note-card-ai{color:var(--color-text-tertiary)}.note-card-preview{margin:0;font-size:.85rem;line-height:1.45;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.note-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px}.note-tag{font-size:.7rem;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-surface-inset);color:var(--color-text-secondary)}.note-editor{display:flex;flex-direction:column;gap:10px;padding-bottom:32px}.note-editor-loading{display:flex;justify-content:center;padding:64px 0;color:var(--color-text-tertiary)}.note-editor-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:8px 0;background:var(--color-surface)}.note-editor-bar-actions{display:flex;gap:4px;margin-left:auto}.note-pin--on{color:var(--color-brand)}.note-save-state{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:var(--color-text-tertiary);min-width:70px}.note-save-state--ok{color:var(--color-success)}.note-save-state--error{color:var(--color-error)}.note-conflict{flex-wrap:wrap}.note-conflict-actions{display:flex;gap:8px;width:100%;margin-top:8px}.note-title-input{width:100%;border:none;background:transparent;font-size:1.5rem!important;font-weight:700;color:var(--color-text-primary);padding:4px 0}.note-title-input:focus{outline:none}.note-title-input::placeholder{color:var(--color-text-tertiary)}.note-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:-4px}.note-tag--editable{display:inline-flex;align-items:center;gap:4px;padding-right:4px;font-size:.75rem}.note-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-tertiary);cursor:pointer}.note-tag-remove:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.note-tag-add{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 10px;border:1px dashed var(--color-border);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-tertiary);font:inherit;font-size:.75rem;cursor:pointer}.note-tag-add:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.note-tag-input{width:110px;min-height:28px;padding:0 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary)}.note-tag-input:focus{outline:none;box-shadow:var(--focus-ring-brand)}.note-size-hint{font-size:.78rem;color:var(--color-warning);margin:0}.note-ai{display:flex;flex-direction:column;gap:8px}.note-ai-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.note-ai-split{position:relative;display:inline-flex}.note-ai-main,.note-ai-caret{display:inline-flex;align-items:center;gap:6px;min-height:40px;border:none;background:var(--color-brand-solid);color:var(--color-text-on-brand);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.note-ai-main{padding:0 14px;border-radius:var(--radius-full) 0 0 var(--radius-full)}.note-ai-main--solo{border-radius:var(--radius-full)}.note-ai-caret{padding:0 10px;border-left:1px solid var(--color-border);border-radius:0 var(--radius-full) var(--radius-full) 0}.note-ai-main:hover:not(:disabled),.note-ai-caret:hover:not(:disabled){background:var(--color-brand-solid-hover)}.note-ai-main:disabled,.note-ai-caret:disabled{opacity:.5;cursor:not-allowed}.note-ai-main:focus-visible,.note-ai-caret:focus-visible,.note-ai-menu-item:focus-visible{outline:none;box-shadow:var(--focus-ring-brand)}.note-ai-chip{display:inline-flex;align-items:center;gap:6px}.note-ai-cost{font-size:12px;color:var(--color-text-tertiary)}.note-ai-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:var(--z-drawer);min-width:290px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.note-ai-sheet{display:flex;flex-direction:column;gap:4px}.note-ai-menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer}.note-ai-menu-item:hover{background:var(--color-surface-hover)}.note-ai-menu-label{font-size:14px;font-weight:600}.note-ai-menu-hint{font-size:12px;color:var(--color-text-tertiary)}.note-ai-done{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:8px 12px;font-size:13px;color:var(--color-text-secondary);background:var(--color-surface-inset);border-radius:var(--radius-md)}.note-ai-undo{flex-shrink:0;min-height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.note-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:6px;background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md)}@media(max-width:767px){.note-toolbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.note-toolbar::-webkit-scrollbar{display:none}.note-toolbar-btn,.note-toolbar-divider{flex-shrink:0}}.note-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.note-toolbar-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.note-toolbar-btn--active{background:var(--color-brand-subtle);color:var(--color-brand-dark)}.note-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.note-toolbar-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-brand)}.note-toolbar-divider{width:1px;height:20px;margin:0 4px;background:var(--color-border)}.note-editor-content{min-height:50vh}.note-editor-surface{min-height:50vh;padding:4px 0;font-size:.95rem;line-height:1.65;color:var(--color-text-primary);overflow-wrap:anywhere}.note-editor-surface:focus{outline:none}.note-editor-surface>*+*{margin-top:.6em}.note-editor-surface h1{font-size:1.5rem;font-weight:700;line-height:1.3}.note-editor-surface h2{font-size:1.25rem;font-weight:700;line-height:1.35}.note-editor-surface h3{font-size:1.05rem;font-weight:600;line-height:1.4}.note-editor-surface ul,.note-editor-surface ol{padding-left:1.4em}.note-editor-surface ul{list-style:disc}.note-editor-surface ol{list-style:decimal}.note-editor-surface li p{margin:0}.note-editor-surface blockquote{padding-left:1em;border-left:3px solid var(--color-border-strong);color:var(--color-text-secondary)}.note-editor-surface a{color:var(--color-brand-dark);text-decoration:underline}.note-editor-surface code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.87em;padding:1px 5px;border-radius:var(--radius-xs);background:var(--color-surface-inset)}.note-editor-surface .note-code-block{padding:12px;border-radius:var(--radius-md);background:var(--color-surface-inset);overflow-x:auto}.note-editor-surface .note-code-block code{padding:0;background:none}.note-editor-surface hr{border:none;border-top:1px solid var(--color-border)}.note-editor-surface ul[data-type=taskList]{list-style:none;padding-left:0}.note-editor-surface ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:8px}.note-editor-surface ul[data-type=taskList] li>label{flex-shrink:0;display:inline-flex;margin-top:.2em}.note-editor-surface ul[data-type=taskList] input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--color-brand);cursor:pointer}.note-editor-surface ul[data-type=taskList] li>div{flex:1;min-width:0}.note-editor-surface ul[data-type=taskList] li[data-checked=true]>div{color:var(--color-text-tertiary);text-decoration:line-through}.note-editor-surface p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;pointer-events:none;color:var(--color-text-tertiary)}.wk-header{padding:12px 0 8px}.wk-page-title{margin:0 0 2px;font-size:28px;font-weight:600;letter-spacing:-.03em;color:var(--color-text-primary)}.wk-page-sub{margin:0;font-size:14px;color:var(--color-text-secondary)}.wk-body{padding-top:16px;padding-bottom:calc(96px + var(--safe-bottom))}.wk-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.wk-tab--active{background:var(--color-brand-solid);color:var(--color-text-on-brand)}.wk-tab:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.wk-tab-live{padding:1px 6px;border-radius:var(--radius-full);background:var(--color-success);color:#fff;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.train,.plan,.progress-tab{display:flex;flex-direction:column;gap:16px}.wk-card{padding:18px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-subtle)}@media(min-width:480px){.wk-card{padding:22px}}.wk-card--hero{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding-top:28px}.wk-card--attention{border-color:var(--color-warning);background:var(--color-warning-subtle)}.wk-card--ai{border-color:var(--color-brand-border);background:var(--color-brand-faint)}.wk-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.wk-card-kicker{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--color-text-secondary)}.wk-card-title{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.wk-hero-title{margin:4px 0 0;font-size:20px;font-weight:600;letter-spacing:-.02em}.wk-card-copy{margin:4px 0 0;font-size:14px;line-height:1.5;color:var(--color-text-secondary)}.wk-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.wk-ai{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:var(--radius-xs);border:1px solid var(--color-brand-border-strong);background:var(--color-brand-subtle);color:var(--color-text-primary);font-size:10px;font-weight:700;letter-spacing:.03em;vertical-align:middle}.wk-lastsession{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--color-surface-inset)}.wk-lastsession-main{min-width:0;flex:1}.wk-lastsession .wk-card-kicker{margin-bottom:2px;font-size:12px}.wk-lastsession-title{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.wk-lastsession-meta{margin:2px 0 0;font-size:12px;color:var(--color-text-secondary)}.wk-week{flex-shrink:0;display:flex;flex-direction:column;align-items:center;min-width:64px;text-align:center}.wk-week-count{font-size:26px;font-weight:600;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.wk-week-label{margin-top:4px;font-size:11px;color:var(--color-text-secondary)}.wk-splits{display:flex;flex-direction:column;gap:8px}.wk-split{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}.wk-split--selected{border-color:var(--color-text-primary)}.wk-split:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.wk-split-radio{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border-strong);transition:border var(--transition-fast)}.wk-split--selected .wk-split-radio{border:6px solid var(--color-text-primary)}.wk-split-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.wk-split-name{font-size:15px;font-weight:600;overflow-wrap:anywhere}.wk-split-meta{font-size:12px;color:var(--color-text-secondary)}.wk-preview{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--color-border-subtle)}.wk-preview li{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1px solid var(--color-border-subtle);font-size:14px}.wk-preview-name{min-width:0;overflow-wrap:anywhere}.wk-preview-meta{flex-shrink:0;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wk-preview li.wk-preview-more{color:var(--color-text-secondary);font-size:13px}.wk-start{width:100%;min-height:52px;margin-top:16px;padding:14px;border:none;border-radius:var(--radius-md);background:var(--color-brand-solid);color:var(--color-text-on-brand);font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.wk-start:hover:not(:disabled){background:var(--color-brand-solid-hover)}.wk-start:active:not(:disabled){transform:scale(.99)}.wk-start:disabled{opacity:.5;cursor:not-allowed}.wk-start-note{margin:8px 0 0;text-align:center;font-size:12px;color:var(--color-text-tertiary)}.wk-ai-head{display:flex;align-items:flex-start;gap:12px}.wk-ai-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-input);background:var(--color-brand-solid);color:var(--color-text-on-brand)}.wk-textarea{resize:none;line-height:1.5}.wk-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 0;padding:10px 12px;border-radius:var(--radius-input);font-size:13px}.wk-notice--error{background:var(--color-error-faint);border:1px solid var(--color-error-border);color:var(--color-error)}.wk-notice--ok{background:var(--color-success-subtle);border:1px solid var(--color-success-border);color:var(--color-text-primary)}.wk-ai-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:12px}.wk-ai-hint{font-size:12px;color:var(--color-text-tertiary)}.wk-ai-buttons{display:flex;align-items:center;gap:8px}.wk-mic{width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md)}.wk-mic--on{border-color:var(--color-error-border);background:var(--color-error-subtle)}.wk-mic--starting{border-color:var(--color-border-strong);animation:pulse 1.1s ease-in-out infinite}.wk-mic-stop{width:11px;height:11px;border-radius:3px;background:var(--color-error);box-shadow:0 0 0 5px var(--color-error-faint)}.wk-ai-actions .dictation-line{flex:1 1 240px;margin:0}@media(prefers-reduced-motion:reduce){.wk-mic--starting{animation:none}}.wk-splitlist,.wk-exlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.wk-exlist{margin-top:12px}.wk-splitrow,.wk-exrow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-input);background:var(--color-surface-inset)}.wk-splitrow--editing{box-shadow:inset 0 0 0 1px var(--color-border-strong)}.wk-divider{display:flex;justify-content:center}.wk-addex{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border-subtle)}.wk-field{display:flex;flex-direction:column;gap:4px}.wk-field-label{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.wk-field-error{margin:6px 0 0;font-size:13px;color:var(--color-error)}.wk-logrow{display:flex;gap:10px}.wk-logrow .form-input{flex:1;min-width:0}.wk-goalbar{margin-top:18px}.wk-goalbar-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px}.wk-goalbar-label{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary)}.wk-goalbar-pct{font-weight:600;font-variant-numeric:tabular-nums}.wk-goalbar-track{height:8px;border-radius:var(--radius-full);background:var(--color-border-subtle);overflow:hidden}.wk-goalbar-fill{height:100%;border-radius:var(--radius-full);background:var(--color-text-primary);transition:width .5s cubic-bezier(.22,1,.36,1)}.wk-goalbar-fill--done{background:var(--color-success)}.wk-goalbar-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-tertiary)}.wk-logs{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--color-border-subtle)}.wk-log{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 2px;border-bottom:1px solid var(--color-border-subtle);font-size:14px}.wk-log--latest .wk-log-weight{font-weight:600}.wk-log-date{color:var(--color-text-secondary)}.wk-log-weight{display:inline-flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}.wk-log-delta{font-size:12px;color:var(--color-text-tertiary)}.wk-log-delta--down{color:var(--color-success)}.session{display:flex;flex-direction:column;gap:16px}.session-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.session-head-text{min-width:0;flex:1}.session-kicker{margin:0;font-size:13px;color:var(--color-success);font-weight:600}.session-title{margin:2px 0 0;font-size:18px;font-weight:600;overflow-wrap:anywhere}.session-clock{margin:4px 0 0;font-size:40px;line-height:1;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.session-autofinish{margin:2px 0 0;font-size:12px;color:var(--color-text-tertiary)}.session-head-side{flex-shrink:0;display:flex;align-items:center;gap:4px}.session-finish-btn{width:100%;min-height:48px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.session-finish-btn:hover{background:var(--color-surface-hover)}.session-finish-btn--ready{border-color:var(--color-success);background:var(--color-success);color:#fff}.session-exercises{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.session-exercise{padding:14px 16px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-subtle);transition:border-color var(--transition-normal),background var(--transition-normal)}.session-exercise--done{border-color:var(--color-success-border);background:var(--color-success-subtle)}.session-exercise-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.session-exercise-text{min-width:0;flex:1 1 140px}.session-exercise-name{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.session-exercise-meta{margin:2px 0 0;font-size:12px;color:var(--color-text-secondary)}.stepper{flex-shrink:0;display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border-subtle)}.stepper-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent}.stepper-btn:hover:not(:disabled){background:var(--color-surface-hover)}.stepper-btn:disabled{opacity:.3;cursor:default}.stepper-value{display:inline-flex;align-items:baseline;gap:3px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.stepper-value input{width:52px;padding:4px 0;border:none;background:none;color:inherit;font:inherit;text-align:right;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper-value input::-webkit-outer-spin-button,.stepper-value input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-value input:focus-visible{outline:none;border-bottom:2px solid var(--color-text-primary)}.stepper-value span{font-size:11px;color:var(--color-text-secondary)}.session-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.session-set{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:8px 4px;border:1.5px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast),border-color var(--transition-fast),transform .16s cubic-bezier(.34,1.56,.64,1)}.session-set:active{transform:scale(.94)}.session-set:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.session-set--done{border-color:var(--color-success);background:var(--color-success);color:#fff}.session-set-label{font-size:10px;font-weight:600;opacity:.8}.session-set-value{display:inline-flex;align-items:center;min-height:18px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.session-rest{position:fixed;left:16px;right:16px;bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + 12px);z-index:45;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;border-radius:var(--radius-pill);background:var(--color-text-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-lg);animation:slideUp .22s ease}@media(min-width:640px){.session-rest{left:50%;right:auto;width:min(560px,calc(100% - 32px));transform:translate(-50%)}}@media(min-width:1024px){.session-rest{bottom:24px;left:calc(var(--sidebar-width) + (100% - var(--sidebar-width)) / 2)}}.session-rest--over{background:var(--color-success);color:#fff}.session-rest-text{flex-shrink:0;font-size:14px;font-variant-numeric:tabular-nums}.session-rest-track{flex:1;height:4px;border-radius:var(--radius-full);background:#ffffff40;overflow:hidden}.session-rest-fill{display:block;height:100%;border-radius:var(--radius-full);background:currentColor;transition:width 1s linear}.session-rest-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:36px;padding:0 10px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-full);background:none;color:inherit;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.session-summary{display:flex;align-items:center;gap:20px;margin-bottom:16px}.session-stats{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px 14px;margin:0}.session-stats dt{font-size:12px;color:var(--color-text-secondary)}.session-stats dd{margin:2px 0 0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.session-record{margin:0 0 14px;padding:10px 12px;border-radius:var(--radius-input);background:var(--color-success-subtle);border:1px solid var(--color-success-border);color:var(--color-text-primary);font-size:14px;font-weight:500}.wk-summary-foot{margin:0;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}.session-check{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:14px;cursor:pointer}.session-history{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:-4px 0 12px;font-size:12px;color:var(--color-text-secondary)}.session-history-last{overflow-wrap:anywhere}.session-reps,.session-effort{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border-subtle);animation:slideUp .18s ease}.session-reps-label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.wk-anchor{scroll-margin-top:140px}.wk-effort{display:flex;flex-wrap:wrap;gap:6px}.wk-goalchip{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border:1px solid var(--color-brand-border-strong);border-radius:var(--radius-full);background:var(--color-brand-subtle);color:var(--color-text-primary);font-family:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.wk-goalchip--action{min-height:32px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast),transform .16s cubic-bezier(.34,1.56,.64,1)}.wk-goalchip--action:hover{background:var(--color-brand-faint)}.wk-goalchip--action:active{transform:scale(.96)}.wk-goalchip--action:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.wk-logform{display:flex;flex-direction:column;gap:14px}.wk-logform-last{margin:-6px 0 0;font-size:12px;color:var(--color-text-secondary)}.wk-logform-line{display:flex;flex-wrap:wrap;gap:12px 16px}.wk-logform-line .wk-field{align-items:flex-start}.wk-logform-sets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.wk-logform-set{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.wk-logform-setno{min-width:42px;font-size:12px;font-weight:600;color:var(--color-text-secondary)}.wk-logform-toggle{align-self:flex-start;margin-top:-4px}.wk-lognotice{margin-top:14px;padding:12px 14px;border:1px solid var(--color-success-border);border-radius:var(--radius-input);background:var(--color-success-subtle);font-size:13px;animation:slideUp .22s ease}.wk-lognotice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-variant-numeric:tabular-nums}.wk-lognotice-meta,.wk-lognotice-skipped{color:var(--color-text-secondary)}.wk-lognotice-skipped{margin:8px 0 0}.wk-lognotice-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px;color:var(--color-text-secondary)}.wk-bests{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}.wk-best{position:relative;display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.wk-bests .wk-best{margin:0;padding:10px 12px;border:1px solid var(--color-success-border);border-radius:var(--radius-input);background:var(--color-success-subtle)}.wk-best svg{flex-shrink:0;color:var(--color-warning)}.wk-lifts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.wk-lift{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-input);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--transition-fast),background var(--transition-fast)}.wk-lift:hover{border-color:var(--color-border-strong)}.wk-lift:focus-visible{outline:none;box-shadow:var(--focus-ring-neutral)}.wk-lift-head{display:flex;align-items:center;gap:10px}.wk-lift-name{flex:1;min-width:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.wk-lift-caret{flex-shrink:0;color:var(--color-text-tertiary)}.wk-lift-last{font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wk-lift-goal{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}.wk-lift-why{font-size:12px;color:var(--color-text-secondary)}.wk-spark{flex-shrink:0;overflow:visible}.wk-spark polyline{fill:none;stroke:var(--color-text-tertiary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.wk-spark circle{fill:var(--color-success)}.wk-target,.wk-target .wk-goalbar-track,.wk-target .wk-goalbar-fill{display:block}.wk-target .wk-goalbar-pct{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.wk-nextgoal{margin-bottom:18px;padding:14px 16px;border:1px solid var(--color-brand-border);border-radius:var(--radius-input);background:var(--color-brand-faint)}.wk-nextgoal-kicker{margin:0;font-size:12px;font-weight:600;color:var(--color-text-secondary)}.wk-nextgoal-value{margin:2px 0;font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.wk-nextgoal-why{margin:0;font-size:13px;color:var(--color-text-secondary)}.wk-sheet-best{font-weight:400;text-transform:none;letter-spacing:0}.wk-sheet-remove{display:block;margin:14px auto 0}.wk-logs--sheet{margin-top:8px}.wk-histrow-text{display:flex;flex-direction:column;gap:2px;min-width:0}.wk-histrow-sets{font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.wk-histrow-effort{font-size:12px;font-weight:400;color:var(--color-text-tertiary)}.wk-histrow-actions{flex-shrink:0;display:inline-flex;gap:2px}@media(prefers-reduced-motion:reduce){.session-rest,.session-reps,.session-effort,.wk-lognotice{animation:none}.wk-goalchip--action,.session-set,.wk-goalbar-fill,.session-rest-fill{transition:none}}
