:root{--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-display:2.25rem;--line-height-display:2.75rem;--font-weight-display:700;--font-size-h1:1.875rem;--line-height-h1:2.375rem;--font-weight-h1:700;--font-size-h2:1.5rem;--line-height-h2:2rem;--font-weight-h2:600;--font-size-h3:1.25rem;--line-height-h3:1.75rem;--font-weight-h3:600;--font-size-h4:1.125rem;--line-height-h4:1.625rem;--font-weight-h4:600;--font-size-body-lg:1.0625rem;--line-height-body-lg:1.625rem;--font-weight-body-lg:400;--font-size-body:1rem;--line-height-body:1.5rem;--font-weight-body:400;--font-size-body-sm:.875rem;--line-height-body-sm:1.25rem;--font-weight-body-sm:400;--font-size-caption:.75rem;--line-height-caption:1rem;--font-weight-caption:400;--font-size-label:.8125rem;--line-height-label:1.125rem;--font-weight-label:600;--font-size-button:.9375rem;--line-height-button:1.25rem;--font-weight-button:600;--font-size-input:1rem;--line-height-input:1.5rem;--font-weight-input:400;--color-brand-logo:#2aabee;--color-accent-primary:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#dbeafe;--color-accent-border:#bfdbfe;--color-accent-on-primary:#fff;--gradient-accent-hero:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--gradient-accent-soft:linear-gradient(135deg, var(--color-accent-soft) 0%, #fff 100%);--gradient-card-default:linear-gradient(135deg, #2b313c 0%, #353e4d 100%);--gradient-card-hero:linear-gradient(135deg, #1f4f8f 0%, #2f6cc0 100%);--gradient-card-analytics:linear-gradient(135deg, #374151 0%, #4b5563 100%);--gradient-card-success:linear-gradient(135deg, #245c3d 0%, #2f7a51 100%);--gradient-card-warning:linear-gradient(135deg, #8a5a16 0%, #a56a1f 100%);--gradient-card-danger:linear-gradient(135deg, #6f1d2a 0%, #8b2635 100%);--gradient-card-soft:linear-gradient(135deg, #1f232b 0%, #2a303a 100%);--color-text-on-card:#f8fafc;--color-text-on-card-secondary:#f8fafcb8;--color-text-on-card-muted:#f8fafc8c;--color-card-default:var(--gradient-card-default);--color-card-soft:var(--gradient-card-soft);--color-card-tinted:var(--gradient-card-default);--color-card-hero:var(--gradient-card-hero);--gradient-card-hero-blue:var(--gradient-card-hero);--gradient-card-hero-green:var(--gradient-card-hero);--gradient-card-hero-orange:var(--gradient-card-hero);--gradient-accent-card:var(--gradient-card-default);--gradient-success-card:var(--gradient-card-success);--gradient-warning-card:var(--gradient-card-warning);--gradient-danger-card:var(--gradient-card-danger);--gradient-info-card:var(--gradient-card-analytics);--gradient-card-blue:var(--gradient-card-default);--gradient-card-green:var(--gradient-card-success);--gradient-card-orange:var(--gradient-card-warning);--gradient-card-purple:var(--gradient-card-analytics);--gradient-card-pink:var(--gradient-card-default);--gradient-card-info:var(--gradient-card-analytics);--color-text-on-card-dark:var(--color-text-on-card);--color-brand-primary:var(--color-accent-primary);--color-brand-primary-hover:var(--color-accent-hover);--color-brand-primary-soft:var(--color-accent-soft);--color-brand-border:var(--color-accent-border);--color-brand-on-primary:var(--color-accent-on-primary);--color-bg-page:#f5f7fa;--color-bg-surface:#fff;--color-bg-surface-soft:#f8fafc;--color-bg-surface-muted:#f1f5f9;--color-bg-sidebar:#1a1d24;--color-bg-sidebar-hover:#252932;--color-bg-sidebar-active:#2d3340;--color-text-primary:#172033;--color-text-secondary:#475467;--color-text-muted:#667085;--color-text-subtle:#94a3b8;--color-text-on-dark:#f8fafc;--color-text-on-sidebar:#d8dce6;--color-text-on-sidebar-muted:#9aa3b5;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-border-subtle:#eef2f7;--color-overlay:#0f172a66;--color-success-bg:#ecfdf3;--color-success-text:#166534;--color-success-border:#bbf7d0;--color-warning-bg:#fffbeb;--color-warning-text:#92400e;--color-warning-border:#fde68a;--color-danger-bg:#fef2f2;--color-danger-text:#991b1b;--color-danger-border:#fecaca;--color-info-bg:#eff6ff;--color-info-text:#1e40af;--color-info-border:#bfdbfe;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--shadow-none:none;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 2px #0f172a0f, 0 1px 3px #0f172a14;--shadow-md:0 4px 6px #0f172a0f, 0 2px 4px #0f172a0f;--shadow-lg:0 10px 24px #0f172a1a, 0 4px 8px #0f172a0f;--layout-sidebar-width-open:260px;--layout-sidebar-width-collapsed:52px;--layout-content-padding-desktop:32px;--layout-content-padding-desktop-wide:40px;--layout-content-padding-mobile:20px;--layout-content-padding-mobile-wide:24px;--layout-content-max-width:1440px;--layout-top-bar-height:56px;--motion-duration-hover:.15s;--motion-duration-focus:.12s;--motion-duration-modal:.22s;--motion-duration-drawer:.22s;--motion-easing-default:cubic-bezier(.4, 0, .2, 1);--color-focus-ring:var(--color-accent-primary);--color-link:var(--color-accent-primary);--color-link-hover:var(--color-accent-hover)}.theme-budget-tracker{--color-brand-logo:#2aabee;--color-accent-primary:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#dbeafe;--color-accent-border:#bfdbfe;--color-accent-on-primary:#fff;--gradient-accent-hero:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--color-brand-primary:var(--color-accent-primary);--color-brand-primary-hover:var(--color-accent-hover);--color-brand-primary-soft:var(--color-accent-soft);--color-brand-border:var(--color-accent-border);--color-brand-on-primary:var(--color-accent-on-primary)}.theme-food-tracker{--color-brand-logo:#25d366;--color-accent-primary:#059669;--color-accent-hover:#047857;--color-accent-soft:#d1fae5;--color-accent-border:#a7f3d0;--color-accent-on-primary:#fff;--gradient-accent-hero:linear-gradient(135deg, #10b981 0%, #059669 100%);--color-brand-primary:var(--color-accent-primary);--color-brand-primary-hover:var(--color-accent-hover);--color-brand-primary-soft:var(--color-accent-soft);--color-brand-border:var(--color-accent-border);--color-brand-on-primary:var(--color-accent-on-primary)}.theme-task-tracker{--color-brand-logo:#ff8000;--color-accent-primary:#d97706;--color-accent-hover:#b45309;--color-accent-soft:#ffedd5;--color-accent-border:#fed7aa;--color-accent-on-primary:#fff;--gradient-accent-hero:linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--color-brand-primary:var(--color-accent-primary);--color-brand-primary-hover:var(--color-accent-hover);--color-brand-primary-soft:var(--color-accent-soft);--color-brand-border:var(--color-accent-border);--color-brand-on-primary:var(--color-accent-on-primary)}html{font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-body);color:var(--color-text-primary);background-color:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}h1,.h1{font-size:var(--font-size-h1);line-height:var(--line-height-h1);font-weight:var(--font-weight-h1);margin:0}h2,.h2,.top-bar-title{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2);margin:0}h3,.h3{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3);margin:0}h4,.h4{font-size:var(--font-size-h4);line-height:var(--line-height-h4);font-weight:var(--font-weight-h4);margin:0}p{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-body);margin:0}small,.small,.caption{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption)}.muted{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-text-muted)}.error{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-danger-text)}.ok{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-success-text)}strong{font-weight:var(--font-weight-h4)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);margin:0}a:hover{color:var(--color-link-hover)}label{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-text-secondary)}label span{font-size:inherit;line-height:inherit;font-weight:inherit}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin:0}input,textarea,select{font-family:var(--font-sans);font-size:var(--font-size-input);line-height:var(--line-height-input);font-weight:var(--font-weight-input);color:var(--color-text-primary)}input::placeholder,textarea::placeholder{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);color:var(--color-text-muted)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:0}button{font-family:var(--font-sans);font-size:var(--font-size-button);line-height:var(--line-height-button);font-weight:var(--font-weight-button)}table{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);border-collapse:collapse}th{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-text-secondary)}td{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-text-primary)}caption{font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-muted);caption-side:bottom}ul,ol{margin:0;padding:0}li{font-size:var(--font-size-body);line-height:var(--line-height-body)}hr{border:0;border-top:1px solid var(--color-border);margin:0}img,svg{max-width:100%;display:block}.sidebar-brand{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h1)}.sidebar-link{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm)}.eyebrow{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-accent-primary)}.login-card h1,.login-card h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2)}.login-card p,.login-card .muted{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}.settings-section h2,.settings-card h2,.modal-head h2,.modal h2,.modal-header h2{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3)}.page-header h1,.page-header h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2)}.toast,.toast.success{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}.empty{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);color:var(--color-text-muted)}.badge,.expiry-status{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label)}.app-shell{align-items:stretch;min-height:100dvh;display:flex}.app-body{flex-direction:column;flex:1;min-width:0;display:flex}.main,.content{width:100%;max-width:var(--layout-content-max-width);padding:var(--layout-content-padding-desktop);flex:1}.sidebar{width:var(--layout-sidebar-width-open);background:var(--color-bg-sidebar);height:100dvh;color:var(--color-text-on-sidebar);box-shadow:var(--shadow-sm);transition:width var(--motion-duration-drawer) var(--motion-easing-default);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow:hidden}.sidebar--open{width:var(--layout-sidebar-width-open)}.sidebar--closed{width:var(--layout-sidebar-width-collapsed)}.sidebar--closed .sidebar-brand{display:none}.sidebar--closed .sidebar-head{padding-inline:var(--space-2);justify-content:center}.sidebar-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border-bottom:1px solid color-mix(in srgb, var(--color-text-on-sidebar) 10%, transparent);display:flex}.sidebar-brand{font-size:var(--font-size-body);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3);margin:0}.sidebar-nav{gap:var(--space-1);padding:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-button);color:var(--color-text-on-sidebar);transition:background var(--motion-duration-hover) var(--motion-easing-default);text-decoration:none;display:block}.sidebar-link:hover{background:var(--color-bg-sidebar-hover);color:var(--color-text-on-sidebar)}.sidebar-link--active{background:var(--color-bg-sidebar-active);color:var(--color-accent-primary)}.sidebar-toggle{color:var(--color-text-on-sidebar-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-toggle:hover{color:var(--color-text-on-sidebar)}.sidebar-toggle--burger{width:2rem;height:2rem;padding:0}.sidebar-burger{justify-content:center;gap:var(--space-1);flex-direction:column;width:1.125rem;display:flex}.sidebar-burger span{background:currentColor;border-radius:1px;height:2px;display:block}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid color-mix(in srgb, var(--color-text-on-sidebar) 10%, transparent);font-size:var(--font-size-caption);color:var(--color-text-on-sidebar-muted)}.top-bar{align-items:center;gap:var(--space-3);min-height:var(--layout-top-bar-height);padding:var(--space-3) var(--space-5);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.top-bar-title{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3);flex:1;margin:0}.top-bar-spacer{flex:1}.nav-user{font-size:var(--font-size-body-sm);color:var(--color-text-muted);max-width:var(--layout-sidebar-width-open);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn-logout{flex-shrink:0}button,.button-like{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-button);font-weight:var(--font-weight-button);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-duration-hover) var(--motion-easing-default), border-color var(--motion-duration-hover) var(--motion-easing-default);border:1px solid #0000;font-family:inherit;display:inline-flex}button:focus-visible,.button-like:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}button{background:var(--color-accent-primary);color:var(--color-accent-on-primary);border-color:var(--color-accent-primary)}button:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.primary,.btn-primary{background:var(--color-accent-primary);color:var(--color-accent-on-primary);border-color:var(--color-accent-primary)}.btn-secondary,button.secondary{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-surface-muted)}button.ghost,.btn-ghost{color:var(--color-accent-primary);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--color-accent-soft)}button.danger,.btn-danger{background:var(--color-danger-text);color:var(--color-bg-surface);border-color:var(--color-danger-text)}.btn-icon{padding:var(--space-2);color:inherit;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--font-size-body-sm)}.btn-icon-action{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-secondary);justify-content:center;align-items:center;padding:0;display:inline-flex}.button-like{background:var(--color-accent-primary);color:var(--color-accent-on-primary);border-color:var(--color-accent-primary);text-decoration:none}.button-like:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.settings-download-stack{margin-top:var(--space-3)}.settings-download-btn{width:fit-content}label{gap:var(--space-1);font-size:var(--font-size-label);font-weight:var(--font-weight-label);color:var(--color-text-primary);flex-direction:column;display:flex}input,select,textarea,.input{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-input);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}input:focus,select:focus,textarea:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent-primary) 18%, transparent);outline:none}textarea{resize:vertical;min-height:5rem}.checkbox-row,.radio-row,.checkbox-label{align-items:center;gap:var(--space-2);font-size:var(--font-size-body-sm);display:flex}.checkbox-row input,.radio-row input{width:auto;accent-color:var(--color-accent-primary)}.toggle-switch{cursor:pointer;align-items:center;display:inline-flex}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch-track{background:var(--color-border-strong);border-radius:var(--radius-pill);width:2.5rem;height:1.375rem;position:relative}.toggle-switch-track:after{content:"";background:var(--color-bg-surface);width:1.125rem;height:1.125rem;box-shadow:var(--shadow-sm);transition:transform var(--motion-duration-hover) var(--motion-easing-default);border-radius:50%;position:absolute;top:2px;left:2px}.toggle-switch input:checked+.toggle-switch-track{background:var(--color-accent-primary)}.toggle-switch input:checked+.toggle-switch-track:after{transform:translate(1.125rem)}.panel,.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:var(--gradient-card-default);color:var(--color-text-on-card);border:none}.panel{padding:var(--space-4);margin-bottom:var(--space-3)}.card{padding:var(--space-5)}.card span,.panel span{color:var(--color-text-on-card-secondary)}.card strong,.panel strong,.card h2,.panel h2,.card h3,.panel h3{color:var(--color-text-on-card)}.card .muted,.panel .muted,.card .eyebrow,.panel .eyebrow{color:var(--color-text-on-card-muted)}.card--default,.panel--default{background:var(--gradient-card-default)}.card--soft,.panel--soft{background:var(--gradient-card-soft)}.card--hero,.panel--hero,.card--hero-blue,.panel--hero-blue,.card--hero-green,.panel--hero-green,.card--hero-orange,.panel--hero-orange{background:var(--gradient-card-hero)}.card--analytics,.panel--analytics,.card--purple,.panel--purple,.card--info,.panel--info{background:var(--gradient-card-analytics)}.card--success,.panel--success,.card--green,.panel--green{background:var(--gradient-card-success)}.card--warning,.panel--warning,.card--orange,.panel--orange{background:var(--gradient-card-warning)}.card--danger,.panel--danger{background:var(--gradient-card-danger)}.card--blue,.panel--blue,.card--tinted,.panel--tinted,.card--pink,.panel--pink{background:var(--gradient-card-default)}.settings-card,.settings-section{background:var(--gradient-card-soft)}.cards{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.table-wrap,.table-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.simple-table,table{border-collapse:collapse;width:100%;font-size:var(--font-size-body-sm)}.simple-table th,.simple-table td,table th,table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.simple-table th,table th{font-size:var(--font-size-label);font-weight:var(--font-weight-label);color:var(--color-text-secondary);background:var(--color-bg-surface-muted)}.simple-table tbody tr:hover,table tbody tr:hover{background:var(--color-bg-surface-soft)}.modal-backdrop,.modal-overlay{z-index:100;padding:var(--space-8) var(--space-4);background:var(--color-overlay);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow:auto}.modal,.modal-card{background:var(--color-bg-surface);border-radius:var(--radius-lg);width:min(100%,28rem);max-width:720px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-head,.modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.modal-actions,.modal-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-surface-soft);display:flex}.badge{padding:.125rem var(--space-2);font-size:var(--font-size-caption);font-weight:var(--font-weight-label);border-radius:var(--radius-pill);background:var(--color-info-bg);color:var(--color-info-text);border:1px solid #0000;border-color:var(--color-info-border);display:inline-block}.badge-urgent,.badge-overdue{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger-border)}.badge-high{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.badge-medium{background:var(--color-accent-soft);color:var(--color-accent-primary);border-color:var(--color-accent-border)}.badge-low{background:var(--color-bg-surface-muted);color:var(--color-text-muted);border-color:var(--color-border)}.error{padding:var(--space-3) var(--space-4);font-size:var(--font-size-body-sm);color:var(--color-danger-text);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md)}.ok,.toast.success{padding:var(--space-3) var(--space-4);color:var(--color-success-text);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md)}.empty{padding:var(--space-10) var(--space-6);color:var(--color-text-muted);text-align:center;border-radius:var(--radius-lg);background:var(--gradient-card-soft);box-shadow:var(--shadow-md);border:none}.login-wrap{min-height:100dvh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.login-card{width:min(100%,26.25rem);padding:var(--space-8) var(--space-6);text-align:center;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-divider{margin:var(--space-5) 0;border:none;border-top:1px solid var(--color-border)}.login-google,.login-dev-btn{width:100%;margin-top:var(--space-4)}.login-dev-btn{margin-top:var(--space-2)}.page-settings,.settings-page{gap:var(--space-5);max-width:28rem;display:grid}.settings-section,.settings-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.project-group{gap:var(--space-3);display:grid}.project-group h2{font-size:var(--font-size-h3);margin:0}.task-desc{margin:var(--space-1) 0 0;font-size:var(--font-size-body-sm);color:var(--color-text-muted)}.muted{color:var(--color-text-muted);font-size:var(--font-size-body-sm)}.eyebrow{font-size:var(--font-size-label);font-weight:var(--font-weight-label);color:var(--color-accent-primary);text-transform:uppercase}.badge-date{background:var(--color-info-bg);color:var(--color-info-text);border-color:var(--color-info-border)}.badge-status{background:var(--color-bg-surface-muted);color:var(--color-text-secondary);border-color:var(--color-border)}.badge-project{background:var(--color-accent-soft);color:var(--color-accent-primary);border-color:var(--color-accent-border)}.segmented{gap:var(--space-2);flex-wrap:wrap;display:flex}.segmented button{background:var(--color-bg-surface-muted);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3)}.segmented button.segmented-active,.segmented .segmented-active{background:var(--color-accent-primary);color:var(--color-accent-on-primary);border-color:var(--color-accent-primary)}.stack{gap:var(--space-4);display:grid}@media (width<=760px){.main,.content{padding:var(--layout-content-padding-mobile)}.top-bar{padding:var(--space-3) var(--space-4)}.nav-user{display:none}}*{box-sizing:border-box}body{color:var(--color-text-primary);background:var(--color-bg-page);margin:0}a{color:inherit;text-decoration:none}.task-list{gap:var(--space-3);display:grid}.task-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent-primary);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-sm)}.task-card.priority-urgent{border-left-color:var(--color-danger-text)}.task-card.priority-high{border-left-color:var(--color-warning-text)}.task-card.priority-medium{border-left-color:var(--color-accent-primary)}.task-card.priority-low{border-left-color:var(--color-text-muted)}.task-card--done{opacity:.65}.task-card-main{align-items:flex-start;gap:var(--space-3);display:flex}.task-check{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);cursor:pointer;background:0 0;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0}.task-card-body{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;width:100%;padding:0}.task-meta{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.filters{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.inline-form{gap:var(--space-3);flex-wrap:wrap;display:flex}.project-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.project-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent-primary);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.project-card-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.board{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.board-column{background:var(--color-bg-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3)}.modal-card{padding:var(--space-5)}.modal-card form.stack{gap:var(--space-3)}.page-today{gap:var(--space-5)}.today-hero{text-align:left}.today-hero-value{margin:var(--space-2) 0 0;font-size:var(--font-size-display);font-weight:var(--font-weight-display);line-height:var(--line-height-display)}.page-dashboard h1{margin-bottom:var(--space-4)}
