:root{--radius-lg: 28px;--radius-md: 20px;--radius-sm: 12px;--color-bg-primary: #fefbff;--color-bg-secondary: #f3edf7;--color-bg-tertiary: #fef7ff;--color-text-primary: #1c1b1f;--color-text-secondary: #49454f;--color-text-muted: #79747e;--color-text-light: #938f99;--color-text-lighter: #49454f;--color-border: #e7e0ec;--color-border-input: #cac4d0;--color-border-light: #f3edf7;--color-shadow: rgba(0, 0, 0, .08);--color-shadow-sm: rgba(0, 0, 0, .04);--color-shadow-md: rgba(0, 0, 0, .06);--color-shadow-lg: rgba(0, 0, 0, .1);--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-accent-light: #e0e7ff;--color-accent-lighter: #eef2ff;--color-accent-disabled: #a5b4fc;--color-accent-ring: rgba(99, 102, 241, .15);--color-success: #22c55e;--color-success-text: #166534;--color-success-bg: #dcfce7;--color-success-text-dark: #16a34a;--color-warning: #f59e0b;--color-warning-text: #854d0e;--color-warning-bg: #fef9c3;--color-warning-text-dark: #ca8a04;--color-danger: #ef4444;--color-danger-text: #dc2626;--color-danger-bg: #fee2e2;--color-danger-bg-hover: #fecaca;--color-danger-light: #fef2f2;--color-danger-muted: #fca5a5;--color-danger-text-dark: #991b1b;--color-info-text: #3730a3;--color-info-bg: #eef2ff;--color-info-border: #c7d2fe;--color-success-toast-bg: #ecfdf5;--color-success-toast-text: #065f46;--color-success-toast-border: #a7f3d0;--color-error-toast-bg: #fef2f2;--color-error-toast-text: #991b1b;--color-error-toast-border: #fecaca;--color-purple: #8b5cf6;--color-edit-bg: #e0e7ff;--color-edit-text: #4338ca;--color-edit-bg-hover: #c7d2fe;--color-sidebar-bg: #1e1b4b;--color-sidebar-text: #e0e7ff;--color-sidebar-text-muted: #a5b4fc;--color-sidebar-text-light: #c7d2fe;--color-sidebar-hover: #312e81;--color-sidebar-border: #312e81;--color-sidebar-brand: #ffffff;--color-input-bg: #fefbff;--color-input-bg-alt: #f7f2fa;--color-card-bg: #fefbff;--color-overlay: rgba(0, 0, 0, .4);--color-hero-title: #1c1b1f;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--color-bg-primary: #1c1b2e;--color-bg-secondary: #211f36;--color-bg-tertiary: #141218;--color-text-primary: #e6e1e5;--color-text-secondary: #cac4d0;--color-text-muted: #938f99;--color-text-light: #79747e;--color-text-lighter: #cac4d0;--color-border: #49454f;--color-border-input: #605d66;--color-border-light: #211f36;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-sm: rgba(0, 0, 0, .2);--color-shadow-md: rgba(0, 0, 0, .25);--color-shadow-lg: rgba(0, 0, 0, .4);--color-accent: #c4c6ff;--color-accent-hover: #a5a7fc;--color-accent-light: #2d2b6b;--color-accent-lighter: #1e1b4b;--color-accent-disabled: #4345ab;--color-accent-ring: rgba(196, 198, 255, .2);--color-success: #4ade80;--color-success-text: #86efac;--color-success-bg: #14532d;--color-success-text-dark: #4ade80;--color-warning: #fbbf24;--color-warning-text: #fde68a;--color-warning-bg: #713f12;--color-warning-text-dark: #fbbf24;--color-danger: #f87171;--color-danger-text: #f87171;--color-danger-bg: #7f1d1d;--color-danger-bg-hover: #991b1b;--color-danger-light: #450a0a;--color-danger-muted: #fca5a5;--color-danger-text-dark: #fca5a5;--color-info-text: #c7d2fe;--color-info-bg: #1e1b4b;--color-info-border: #3730a3;--color-success-toast-bg: #14532d;--color-success-toast-text: #86efac;--color-success-toast-border: #166534;--color-error-toast-bg: #7f1d1d;--color-error-toast-text: #fca5a5;--color-error-toast-border: #991b1b;--color-purple: #a78bfa;--color-edit-bg: #2d2b6b;--color-edit-text: #c7d2fe;--color-edit-bg-hover: #3730a3;--color-sidebar-bg: #141218;--color-sidebar-text: #e0e7ff;--color-sidebar-text-muted: #a5b4fc;--color-sidebar-text-light: #c7d2fe;--color-sidebar-hover: #1e1b4b;--color-sidebar-border: #1e1b4b;--color-sidebar-brand: #ffffff;--color-input-bg: #211f36;--color-input-bg-alt: #211f36;--color-card-bg: #1c1b2e;--color-overlay: rgba(0, 0, 0, .6);--color-hero-title: #e6e1e5}body,.page,.page-container,.sidebar,.card,.main-content,.data-table,.summary-card,.wall-card,.recipe-card,.add-form,.table-container,.login-page,.login-form,.landing-page,.landing-header,.landing-feature-card,.calendar-modal,.calendar-cell,.calendar-day-view{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@media(prefers-reduced-motion:reduce){body,.page,.page-container,.sidebar,.card,.main-content,.data-table,.summary-card,.wall-card,.recipe-card,.add-form,.table-container,.login-page,.login-form,.landing-page,.landing-header,.landing-feature-card,.calendar-modal,.calendar-cell,.calendar-day-view{transition:none}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}.toast-container{position:fixed;top:1.5rem;right:1.5rem;z-index:9999;transition:opacity .3s,transform .3s}.toast-enter{opacity:1;transform:translateY(0)}.toast-exit{opacity:0;transform:translateY(-.5rem)}.toast{display:flex;align-items:center;gap:.75rem;min-width:280px;max-width:420px;padding:.85rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;box-shadow:0 4px 16px var(--color-shadow-lg)}.toast-success{background:var(--color-success-toast-bg);color:var(--color-success-toast-text);border:1px solid var(--color-success-toast-border)}.toast-error{background:var(--color-error-toast-bg);color:var(--color-error-toast-text);border:1px solid var(--color-error-toast-border)}.toast-info{background:var(--color-info-bg);color:var(--color-info-text);border:1px solid var(--color-info-border)}.toast-message{flex:1}.toast-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.6;padding:0;line-height:1}.toast-close:hover{opacity:1}.global-search{position:relative;width:100%;max-width:600px}.global-search__input-wrapper{position:relative;display:flex;align-items:center}.global-search__input{width:100%;padding:.5rem 4rem .5rem .75rem;border:1px solid var(--color-border, #e7e0ec);border-radius:var(--radius-sm);background:var(--color-card-bg, white);color:var(--color-text, #1c1b1f);font-size:.9rem;outline:none;transition:border-color .2s}.global-search__input::placeholder{color:var(--color-text-muted, #a0aec0)}.global-search__input:focus{border-color:var(--color-accent, #6366f1);box-shadow:0 0 0 2px #6366f126}.global-search__shortcut{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--color-text-muted, #a0aec0);background:var(--color-bg-tertiary, #f7fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:4px;padding:.15rem .4rem;pointer-events:none}.global-search__results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-card-bg, white);border:1px solid var(--color-border, #e7e0ec);border-radius:var(--radius-md);box-shadow:0 4px 16px #00000014;max-height:400px;overflow-y:auto;z-index:1000}.global-search__category{padding:.5rem .75rem .25rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #a0aec0);border-top:1px solid var(--color-border, #e2e8f0)}.global-search__category:first-child{border-top:none}.global-search__result-item{padding:.5rem .75rem;cursor:pointer;font-size:.85rem;color:var(--color-text, #1a202c);transition:background-color .15s}.global-search__result-item:hover{background:var(--color-bg-tertiary, #f7fafc)}.global-search__no-results{padding:1rem .75rem;text-align:center;color:var(--color-text-muted, #a0aec0);font-size:.85rem}.notification-panel{position:absolute;top:100%;right:0;width:360px;max-height:480px;overflow-y:auto;background:var(--color-card-bg, #ffffff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-sm, 12px);box-shadow:0 4px 12px var(--color-shadow, rgba(0, 0, 0, .15));z-index:100}.notification-panel__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border, #e2e8f0)}.notification-panel__header h3{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text-primary, #1e293b)}.notification-panel__mark-all{background:none;border:none;color:var(--color-accent, #6366f1);font-size:.75rem;cursor:pointer;padding:0}.notification-panel__mark-all:hover{text-decoration:underline}.notification-panel__list{padding:0}.notification-panel__empty{padding:2rem 1rem;text-align:center;color:var(--color-text-muted, #94a3b8);font-size:.875rem}.notification-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--color-border-light, #f1f5f9);transition:background-color .15s}.notification-item:hover{background:var(--color-bg-tertiary, #f1f5f9)}.notification-item--unread{background:var(--color-accent-bg, #eef2ff);border-left:3px solid var(--color-accent, #6366f1)}.notification-item__icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem}.notification-item__content{flex:1;min-width:0}.notification-item__content strong{display:block;font-size:.8125rem;color:var(--color-text-primary, #1e293b);margin-bottom:.125rem}.notification-item__content p{margin:0;font-size:.75rem;color:var(--color-text-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item__content time{font-size:.6875rem;color:var(--color-text-muted, #94a3b8)}.notification-item__dismiss{background:none;border:none;color:var(--color-text-muted, #94a3b8);cursor:pointer;font-size:.75rem;padding:.25rem;flex-shrink:0;border-radius:4px}.notification-item__dismiss:hover{background:var(--color-bg-secondary, #f8fafc);color:var(--color-text-primary, #1e293b)}.layout{display:flex;min-height:100vh}.sidebar-toggle{display:none;position:fixed;top:.75rem;left:.75rem;z-index:1100;background:var(--color-sidebar-bg);color:#fff;border:none;border-radius:var(--radius-sm);width:40px;height:40px;font-size:1.25rem;cursor:pointer;align-items:center;justify-content:center}.sidebar-overlay{display:none}.sidebar{width:240px;background-color:var(--color-sidebar-bg);color:var(--color-sidebar-text);padding:0;flex-shrink:0;display:flex;flex-direction:column}.sidebar-header{padding:1.5rem 1.5rem 1.25rem;border-bottom:1px solid var(--color-sidebar-border);position:relative}.sidebar-brand{margin:0;font-size:1.35rem;font-weight:700;color:var(--color-sidebar-brand);letter-spacing:-.01em}.sidebar-tagline{display:block;margin-top:.15rem;font-size:.78rem;color:var(--color-sidebar-text-muted);letter-spacing:.02em}.sidebar-close{display:none}.nav-links{list-style:none;padding:.75rem 0;margin:0;flex:1;overflow-y:auto}.nav-item{margin-bottom:.1rem}.nav-item a{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.5rem;color:var(--color-sidebar-text-light);text-decoration:none;font-weight:500;font-size:.9rem;transition:background-color .2s,color .2s}.nav-item a:hover{background-color:var(--color-sidebar-hover);color:#fff}.nav-item a.active{background-color:var(--color-accent);color:#fff}.nav-icon{font-size:1rem;width:1.25rem;text-align:center;flex-shrink:0}.nav-category{margin-top:.25rem}.nav-category-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem 1.5rem;background:transparent;border:none;color:var(--color-sidebar-text-muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background-color .2s,color .2s}.nav-category-btn:hover{background-color:var(--color-sidebar-hover);color:var(--color-sidebar-text)}.nav-category-arrow{font-size:.75rem}.nav-sub-links{list-style:none;padding:0;margin:0}.nav-sub-links li a{display:block;padding:.55rem 1.5rem .55rem 2.75rem;color:var(--color-sidebar-text-muted);text-decoration:none;font-weight:500;font-size:.88rem;transition:background-color .2s,color .2s}.nav-sub-links li a:hover{background-color:var(--color-sidebar-hover);color:#fff}.nav-sub-links li a.active{background-color:var(--color-accent);color:#fff}.sidebar-footer{padding:1rem 1.5rem;border-top:1px solid var(--color-sidebar-border);margin-top:auto}.theme-toggle{display:block;width:100%;padding:.5rem;background:transparent;color:var(--color-sidebar-text-muted);border:1px solid var(--color-sidebar-border);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:background-color .2s,color .2s;margin-bottom:.65rem}.theme-toggle:hover{background:var(--color-sidebar-hover);color:#fff}.sync-status{display:flex;align-items:center;gap:.45rem;color:var(--color-sidebar-text-light);font-size:.82rem;margin-bottom:.65rem}.sync-dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}.sync-dot--ok{background:var(--color-success)}.sync-dot--error{background:var(--color-danger)}.sync-error{margin:0 0 .65rem;color:var(--color-danger-muted);font-size:.75rem}.logout-btn{display:block;width:100%;padding:.5rem;background:transparent;color:var(--color-sidebar-text-muted);border:1px solid var(--color-sidebar-border);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:background-color .2s,color .2s}.logout-btn:hover{background:var(--color-sidebar-hover);color:#fff}.main-content{flex:1;padding:2rem;background-color:var(--color-bg-tertiary);overflow-y:auto}.main-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border, #e2e8f0);background:var(--color-card-bg, white)}.notification-bell-wrapper{position:relative}.notification-bell{position:relative;background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.5rem;border-radius:8px;transition:background-color .15s}.notification-bell:hover{background:var(--color-bg-tertiary, #f1f5f9)}.notification-badge{position:absolute;top:2px;right:2px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:600;min-width:1.125rem;height:1.125rem;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}@media(max-width:768px){.sidebar-toggle{display:flex}.sidebar-overlay{display:block;position:fixed;inset:0;background:var(--color-overlay);z-index:999}.sidebar{position:fixed;top:0;left:0;height:100vh;height:100dvh;z-index:1000;transform:translate(-100%);transition:transform .3s ease;overflow-y:auto}.sidebar--open{transform:translate(0)}.sidebar-close{display:block;position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;border:none;border-radius:var(--radius-sm);background:var(--color-sidebar-hover);color:#fff;font-size:1.1rem;cursor:pointer}.main-content{padding:3.5rem 1rem 1rem}}.summary-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1.5rem;box-shadow:0 1px 3px var(--color-shadow);border-left:4px solid var(--color-text-light)}.summary-card--income{border-left-color:var(--color-success)}.summary-card--expense{border-left-color:var(--color-danger)}.summary-card--invoice{border-left-color:var(--color-accent)}.summary-card--balance{border-left-color:var(--color-purple)}.summary-card__title{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-card__value{margin:0;font-size:1.75rem;font-weight:700;color:var(--color-text-primary)}.summary-card__subtitle{margin:.5rem 0 0;font-size:.8rem;color:var(--color-text-light)}@media(max-width:768px){.summary-card{padding:1rem}.summary-card__value{font-size:1.3rem}.summary-card__title{font-size:.75rem}}.table-container{background:var(--color-card-bg);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;min-width:500px}.data-table th{text-align:left;padding:.875rem 1rem;background-color:var(--color-bg-secondary);color:var(--color-text-lighter);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--color-border);white-space:nowrap}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary)}.data-table tbody tr:hover{background-color:var(--color-bg-secondary)}.data-table .empty-row{text-align:center;color:var(--color-text-light);padding:2rem}.data-table .action-col{width:150px;text-align:center}.action-buttons{display:flex;gap:.5rem;align-items:center}.edit-btn{background:var(--color-edit-bg);color:var(--color-edit-text);border:none;border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s}.edit-btn:hover{background:var(--color-edit-bg-hover)}.remove-btn{background:var(--color-danger-bg);color:var(--color-danger-text);border:none;border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s}.remove-btn:hover{background:var(--color-danger-bg-hover)}.add-form{background:var(--color-card-bg);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow-sm);padding:1.25rem;margin-bottom:1.5rem}.add-form h3{margin:0 0 1rem;font-size:1rem;color:var(--color-text-secondary)}.form-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.form-field{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:120px}.form-field label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.form-field input,.form-field select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-secondary);background:var(--color-input-bg)}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.add-btn{background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:.5rem 1.25rem;font-size:.9rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s}.add-btn:hover{background:var(--color-accent-hover)}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.status-badge--paid{background-color:var(--color-success-bg);color:var(--color-success-text)}.status-badge--pending{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.status-badge--overdue{background-color:var(--color-danger-bg-hover);color:var(--color-danger-text-dark)}@media(max-width:768px){.data-table{min-width:0;font-size:.85rem}.data-table th,.data-table td{padding:.6rem .5rem}.form-row{flex-direction:column}.form-field{min-width:0;width:100%}}.dashboard-greeting{margin:0 0 1.5rem;font-size:1.75rem;color:var(--color-text-primary)}.quick-actions{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.quick-action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:1px solid var(--color-border, #e7e0ec);border-radius:var(--radius-md);background:var(--color-bg-secondary, #fff);color:var(--color-text-primary);cursor:pointer;font-size:.95rem;transition:background .15s,box-shadow .15s}.quick-action-btn:hover{background:var(--color-bg-hover, #f3f4f6);box-shadow:0 1px 3px #0000001a}.quick-action-icon{font-size:1.25rem}.overview-section{margin-bottom:2rem}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.overview-card{background:var(--color-bg-secondary, #fff);border:1px solid var(--color-border, #e7e0ec);border-radius:var(--radius-md);padding:1rem}.overview-card h3{margin:0 0 .5rem;font-size:1rem;color:var(--color-text-primary)}.overview-card ul{list-style:none;padding:0;margin:0}.overview-card li{padding:.25rem 0;color:var(--color-text-secondary)}.overview-card p{margin:0;color:var(--color-text-secondary)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.charts-section{margin-bottom:2rem}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}.chart-section{background:var(--color-bg-secondary, #fff);border:1px solid var(--color-border, #e7e0ec);border-radius:var(--radius-md);padding:1rem}.chart-section-full{width:100%}.dashboard-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.dashboard-section{min-width:0}.section-title{margin:0 0 1rem;font-size:1.1rem;color:var(--color-text-secondary)}@media(max-width:768px){.quick-actions{flex-direction:column}.overview-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.dashboard-grid,.dashboard-tables{grid-template-columns:1fr}}.page{max-width:1000px}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.page-header .page-title{margin:0}.page-title{margin:0 0 1.5rem;font-size:1.75rem;color:var(--color-text-primary)}.page-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.stat{background:var(--color-card-bg);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-lighter);box-shadow:0 1px 2px var(--color-shadow-sm)}.stat strong{color:var(--color-text-primary)}.stat--green strong{color:var(--color-success-text-dark)}.stat--yellow strong{color:var(--color-warning-text-dark)}.stat--red strong{color:var(--color-danger-text)}.empty-message{color:var(--color-text-muted);font-style:italic}.grocery-add-form{display:flex;gap:.5rem;margin-bottom:1.5rem}.grocery-input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.9rem;background:var(--color-input-bg);color:var(--color-text-secondary)}.grocery-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.grocery-list{list-style:none;padding:0;margin:0}.grocery-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:var(--color-card-bg);border-radius:var(--radius-sm);margin-bottom:.5rem;box-shadow:0 1px 2px var(--color-shadow-sm)}.grocery-item--done .grocery-label span{text-decoration:line-through;color:var(--color-text-light)}.grocery-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recipe-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1rem;box-shadow:0 1px 3px var(--color-shadow-sm)}.recipe-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.75rem}.recipe-card-header h3{margin:0;font-size:1.1rem;color:var(--color-text-primary)}.recipe-section{margin-bottom:.75rem}.recipe-section h4{margin:0 0 .25rem;font-size:.85rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.recipe-section p{margin:0;font-size:.9rem;color:var(--color-text-secondary);white-space:pre-wrap}@media(max-width:768px){.page-title{font-size:1.35rem}.page-stats{gap:.5rem}.stat{font-size:.8rem;padding:.4rem .75rem}}.grocery-list-switcher{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.grocery-new-list{display:flex;gap:.35rem}.grocery-select{padding:.5rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.85rem;background:var(--color-input-bg);color:var(--color-text-secondary)}.grocery-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.grocery-input--sm{max-width:150px;font-size:.85rem}.add-btn--sm{padding:.4rem .65rem;font-size:.8rem}.grocery-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.grocery-total{font-size:.9rem;color:var(--color-text-secondary)}.grocery-total strong{color:var(--color-success-text-dark)}.clear-checked-btn{padding:.35rem .75rem;border:1px solid var(--color-danger-light);border-radius:var(--radius-sm);background:var(--color-danger-light);color:var(--color-danger-text);font-size:.8rem;cursor:pointer;transition:opacity .15s}.clear-checked-btn:hover{opacity:.85}.grocery-frequent{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.grocery-frequent-label{font-size:.8rem;color:var(--color-text-muted)}.grocery-chip{padding:.25rem .6rem;border:1px solid var(--color-border-input);border-radius:99px;background:var(--color-card-bg);color:var(--color-text-secondary);font-size:.78rem;cursor:pointer;transition:border-color .15s}.grocery-chip:hover{border-color:var(--color-accent)}.grocery-add-form--multi{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.grocery-input--qty{width:60px;flex:none}.grocery-input--price{width:80px;flex:none}.grocery-categories{display:flex;flex-direction:column;gap:.75rem}.grocery-category-group{border-radius:var(--radius-sm);overflow:hidden}.grocery-category-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .75rem;border:none;background:var(--color-card-bg);color:var(--color-text-primary);font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px var(--color-shadow-sm);border-radius:var(--radius-sm)}.grocery-category-header:hover{opacity:.9}.grocery-category-count{font-size:.75rem;font-weight:400;color:var(--color-text-muted);background:var(--color-input-bg);padding:.1rem .45rem;border-radius:99px}.grocery-category-arrow{margin-left:auto;color:var(--color-text-muted);font-size:.85rem}.grocery-item-name{font-weight:500}.grocery-item-detail{font-size:.78rem;color:var(--color-text-muted);margin-left:.25rem}.recipe-form-row-inline{display:flex;gap:.75rem}.recipe-form-row-inline .form-field{flex:1}.recipe-tags-picker{display:flex;flex-wrap:wrap;gap:.5rem}.recipe-tag-checkbox{display:flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer}.recipe-category-badge{display:inline-block;font-size:.8rem;padding:.15rem .55rem;border-radius:99px;background:var(--color-input-bg);color:var(--color-text-secondary);margin-bottom:.5rem}.recipe-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem}.recipe-meta-item{font-size:.8rem;color:var(--color-text-muted)}.recipe-tags-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.recipe-tag-badge{font-size:.72rem;padding:.12rem .45rem;border-radius:99px;border:1px solid var(--color-border-input);color:var(--color-text-lighter);background:var(--color-card-bg)}.recipe-card-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--color-border-input)}.recipe-action-btn{padding:.3rem .6rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-card-bg);color:var(--color-text-secondary);font-size:.78rem;cursor:pointer;transition:border-color .15s}.recipe-action-btn:hover{border-color:var(--color-accent)}.recipe-action-btn--grocery{color:var(--color-success-text-dark)}@media(max-width:768px){.recipe-form-row-inline{flex-direction:column;gap:0}}@media(max-width:768px){.grocery-add-form--multi{flex-direction:column}.grocery-input--qty,.grocery-input--price{width:100%}.grocery-list-switcher{flex-direction:column;align-items:stretch}}.contact-search{margin-bottom:1.25rem}.contact-search-input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.9rem;background:var(--color-input-bg);color:var(--color-text-secondary);box-sizing:border-box}.contact-search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.contact-groups{display:flex;flex-direction:column;gap:1rem}.contact-emergency-banner{border:2px solid var(--color-danger-light);border-radius:var(--radius-sm);padding:.75rem;background:var(--color-card-bg)}.contact-emergency-title{margin:0 0 .5rem;font-size:1rem;color:var(--color-danger-text)}.contact-category-group{border-radius:var(--radius-sm);overflow:hidden}.contact-category-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .75rem;border:none;background:var(--color-card-bg);color:var(--color-text-primary);font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px var(--color-shadow-sm);border-radius:var(--radius-sm)}.contact-category-header:hover{opacity:.9}.contact-category-count{font-size:.75rem;font-weight:400;color:var(--color-text-muted);background:var(--color-input-bg);padding:.1rem .45rem;border-radius:99px}.contact-category-arrow{margin-left:auto;color:var(--color-text-muted);font-size:.85rem}.contact-list{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.contact-card{background:var(--color-card-bg);border-radius:var(--radius-sm);padding:.75rem 1rem;box-shadow:0 1px 3px var(--color-shadow-md)}.contact-card--emergency{border-left:3px solid var(--color-danger-text)}.contact-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.4rem}.contact-card-name{margin:0;font-size:1rem;color:var(--color-text-primary)}.contact-fav-star{margin-right:.3rem}.contact-detail{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem;font-size:.85rem}.contact-link{color:var(--color-accent);text-decoration:none}.contact-link:hover{text-decoration:underline}.contact-copy-btn{padding:.1rem .3rem;border:1px solid var(--color-border-input);border-radius:4px;background:var(--color-card-bg);cursor:pointer;font-size:.75rem;line-height:1}.contact-copy-btn:hover{border-color:var(--color-accent)}.contact-detail-text{font-size:.85rem;color:var(--color-text-secondary)}.contact-notes{margin-top:.35rem;padding:.35rem .5rem;background:var(--color-input-bg);border-radius:4px;font-size:.82rem;color:var(--color-text-lighter)}.contact-card-actions{display:flex;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border-input)}.contact-action-btn{padding:.3rem .6rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-card-bg);color:var(--color-text-secondary);font-size:.78rem;cursor:pointer;transition:border-color .15s}.contact-action-btn:hover{border-color:var(--color-accent)}.contact-form-checkboxes{display:flex;gap:1rem;flex-wrap:wrap}.contact-checkbox-label{display:flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer}.budget-month-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.budget-month-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border, #ddd);padding:.4rem .8rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.budget-month-btn:hover{border-color:var(--color-accent)}.budget-month-label{font-size:1.15rem;font-weight:600;color:var(--color-text-primary);min-width:180px;text-align:center}.budget-empty{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}.budget-setup-btn,.budget-save-btn{background:var(--color-accent);color:#fff;border:none;padding:.6rem 1.4rem;border-radius:var(--radius-md);font-size:1rem;cursor:pointer;margin-top:.5rem}.budget-cancel-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border, #ddd);padding:.6rem 1.4rem;border-radius:var(--radius-md);font-size:1rem;cursor:pointer;margin-top:.5rem}.budget-form{max-width:520px;margin:0 auto}.budget-form h2,.budget-form h3{color:var(--color-text-primary);margin:1rem 0 .5rem}.budget-form-field{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.5rem}.budget-form-field span{color:var(--color-text-secondary);font-size:.95rem}.budget-form-field input{width:120px;padding:.35rem .5rem;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);background:var(--color-card-bg);color:var(--color-text-primary);font-size:.95rem}.budget-form-actions{display:flex;gap:.75rem;margin-top:1rem}.budget-actions{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.budget-edit-btn,.budget-copy-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border, #ddd);padding:.45rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.budget-edit-btn:hover,.budget-copy-btn:hover{border-color:var(--color-accent)}.budget-overall{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1.2rem;margin-bottom:1.5rem}.budget-overall h2{margin:0 0 .5rem;font-size:1.1rem;color:var(--color-text-primary)}.budget-overall-info{display:flex;justify-content:space-between;font-size:.95rem;color:var(--color-text-secondary);margin-bottom:.4rem}.budget-categories{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1.2rem}.budget-categories h2{margin:0 0 .75rem;font-size:1.1rem;color:var(--color-text-primary)}.budget-category-row{margin-bottom:1rem}.budget-category-header{display:flex;justify-content:space-between;margin-bottom:.3rem}.budget-category-name{font-size:.95rem;color:var(--color-text-primary)}.budget-category-amounts{font-size:.85rem;color:var(--color-text-secondary)}.budget-bar__track{width:100%;height:10px;background:var(--color-border, #e0e0e0);border-radius:5px;overflow:hidden}.budget-bar__fill{height:100%;border-radius:5px;transition:width .3s ease}.budget-bar__fill--good{background:var(--color-green, #22c55e)}.budget-bar__fill--warning{background:var(--color-yellow, #eab308)}.budget-bar__fill--over{background:var(--color-red, #ef4444)}.budget-over-label{font-size:.8rem;color:var(--color-red, #ef4444);font-weight:600}.inventory-stats{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.inventory-stat{background:var(--color-card-bg);border-radius:var(--radius-md);padding:.75rem 1.2rem;text-align:center;flex:1;min-width:100px}.inventory-stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.inventory-stat-label{font-size:.8rem;color:var(--color-text-secondary)}.inventory-stat--warning .inventory-stat-value{color:var(--color-yellow, #eab308)}.inventory-stat--danger .inventory-stat-value{color:var(--color-red, #ef4444)}.inventory-stat--expiring .inventory-stat-value{color:var(--color-yellow, #eab308)}.inventory-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.inventory-search-input{flex:1;min-width:180px;padding:.6rem .9rem;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:.95rem;background:var(--color-card-bg);color:var(--color-text-primary)}.inventory-filter-select{padding:.6rem .9rem;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:.95rem;background:var(--color-card-bg);color:var(--color-text-primary)}.inventory-groups{display:flex;flex-direction:column;gap:1.2rem}.inventory-category-group{background:var(--color-card-bg);border-radius:var(--radius-md);overflow:hidden}.inventory-category-header{display:flex;align-items:center;width:100%;padding:.75rem 1rem;border:none;background:transparent;cursor:pointer;font-size:1rem;font-weight:600;color:var(--color-text-primary);gap:.5rem}.inventory-category-header:hover{background:var(--color-border, #f0f0f0)}.inventory-category-count{background:var(--color-border, #e5e5e5);border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:500}.inventory-category-arrow{margin-left:auto;font-size:.9rem}.inventory-list{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem .75rem}.inventory-card{border:1px solid var(--color-border, #e5e5e5);border-radius:var(--radius-sm);padding:.75rem 1rem}.inventory-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.inventory-card-name{margin:0;font-size:1rem;color:var(--color-text-primary)}.inventory-card-body{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem}.inventory-quantity-row{display:flex;align-items:center;gap:.35rem}.inventory-qty-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);background:var(--color-card-bg);color:var(--color-text-primary);cursor:pointer;font-size:1rem;line-height:1}.inventory-qty-btn:hover{border-color:var(--color-accent)}.inventory-quantity{font-weight:600;font-size:.95rem;min-width:50px;text-align:center;color:var(--color-text-primary)}.inventory-status{font-size:.8rem;font-weight:600;padding:.15rem .5rem;border-radius:999px}.inventory-status--ok{background:#dcfce7;color:#166534}.inventory-status--low{background:#fee2e2;color:#991b1b}.inventory-status--out{background:#991b1b;color:#fff}.inventory-expiration{font-size:.8rem;font-weight:500;padding:.15rem .5rem;border-radius:999px}.inventory-exp--ok{background:#dcfce7;color:#166534}.inventory-exp--soon{background:#fef9c3;color:#854d0e}.inventory-exp--urgent{background:#fee2e2;color:#991b1b}.inventory-exp--expired{background:#991b1b;color:#fff}.inventory-card-meta{display:flex;gap:.75rem;font-size:.8rem;color:var(--color-text-secondary)}.inventory-meta-item{white-space:nowrap}.inventory-card-notes{margin:.3rem 0 0;font-size:.85rem;color:var(--color-text-secondary);width:100%}.inventory-card-actions{display:flex;gap:.5rem;margin-top:.4rem;flex-wrap:wrap}.inventory-action-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border, #ddd);padding:.3rem .7rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem}.inventory-action-btn:hover{border-color:var(--color-accent)}.inventory-action-btn--grocery{background:var(--color-accent, #6366f1);color:#fff;border-color:transparent}.inventory-action-btn--grocery:hover{opacity:.9}.profile-preview{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.profile-preview__avatar,.profile-preview__initials{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;font-size:2rem;color:#fff;flex-shrink:0}.profile-preview__initials{font-size:1.4rem;font-weight:700}.profile-preview__name{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.profile-section{margin-bottom:1.5rem}.profile-label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary)}.profile-input{width:100%;max-width:360px;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-card-bg);color:var(--color-text-primary)}.profile-avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.5rem;max-width:400px}.profile-avatar-grid__item{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:1.5rem;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-card-bg);cursor:pointer;transition:border-color .15s}.profile-avatar-grid__item:hover{border-color:var(--color-accent)}.profile-avatar-grid__item--selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent)}.profile-color-grid{display:flex;gap:.75rem;flex-wrap:wrap}.profile-color-grid__item{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.profile-color-grid__item:hover{transform:scale(1.15)}.profile-color-grid__item--selected{border-color:var(--color-text-primary);transform:scale(1.15)}.profile-save-btn{padding:.6rem 1.5rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .15s}.profile-save-btn:hover{opacity:.9}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-bg-tertiary);padding:1rem}.login-form{background:var(--color-card-bg);padding:2.5rem 2rem;border-radius:var(--radius-lg);box-shadow:0 4px 24px var(--color-shadow-md);width:100%;max-width:380px}.login-title{margin:0 0 .25rem;font-size:1.75rem;color:var(--color-text-primary);text-align:center}.login-subtitle{margin:0 0 1.5rem;color:var(--color-text-muted);text-align:center;font-size:.95rem}.login-error{background:var(--color-danger-light);color:var(--color-danger-text);padding:.6rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem;text-align:center}.login-field{margin-bottom:1.25rem}.login-field label{display:block;margin-bottom:.4rem;font-weight:500;color:var(--color-text-secondary);font-size:.9rem}.login-field input{width:100%;padding:.65rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:1rem;color:var(--color-text-secondary);background:var(--color-input-bg-alt);transition:border-color .2s}.login-field input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.login-btn{width:100%;padding:.7rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.login-btn:hover{background:var(--color-accent-hover)}.login-btn:disabled{background:var(--color-accent-disabled);cursor:not-allowed}.login-link{margin-top:1.25rem;text-align:center;font-size:.9rem;color:var(--color-text-muted)}.login-link a{color:var(--color-accent);text-decoration:none;font-weight:500}.login-link a:hover{text-decoration:underline}.wall-form{margin-bottom:1.5rem}.wall-input{width:100%;padding:.75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;resize:vertical;min-height:80px;background:var(--color-input-bg);color:var(--color-text-secondary)}.wall-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.wall-form-options{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap}.wall-form-label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--color-text-secondary)}.wall-category-select,.wall-image-input{padding:.4rem .5rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.85rem;background:var(--color-input-bg);color:var(--color-text-primary)}.wall-image-input{min-width:220px}.wall-category-select:focus,.wall-image-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.wall-post-btn{margin-top:.5rem;padding:.55rem 1.5rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s}.wall-post-btn:hover{background:var(--color-accent-hover)}.wall-post-btn:disabled{background:var(--color-accent-disabled);cursor:not-allowed}.wall-filter-bar{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.wall-filter-btn{padding:.35rem .7rem;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-card-bg);color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s}.wall-filter-btn:hover{border-color:var(--color-accent)}.wall-filter-btn.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.wall-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.wall-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1rem;box-shadow:0 1px 3px var(--color-shadow-sm)}.wall-card--pinned{border-left:3px solid var(--color-accent)}.wall-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.5rem}.wall-card-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.wall-card-author{font-weight:600;font-size:.9rem;color:var(--color-text-primary)}.wall-category-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:12px;background:var(--color-input-bg);color:var(--color-text-secondary)}.wall-card-actions{display:flex;align-items:center;gap:.25rem}.wall-pin-btn{background:transparent;border:none;cursor:pointer;font-size:.9rem;opacity:.4;transition:opacity .2s;padding:.2rem}.wall-pin-btn:hover,.wall-pin-btn.pinned{opacity:1}.wall-card-text{margin:0 0 .75rem;font-size:.95rem;color:var(--color-text-primary);white-space:pre-wrap;line-height:1.5}.wall-card-image{width:100%;max-height:400px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:.75rem}.wall-card-footer{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.wall-card-time{font-size:.78rem;color:var(--color-text-light)}.wall-pinned-label{font-size:.72rem;font-weight:600;color:var(--color-accent)}.wall-card-delete{background:transparent;border:none;color:var(--color-text-light);font-size:.85rem;cursor:pointer;padding:.25rem .4rem;border-radius:4px;transition:color .2s,background-color .2s}.wall-card-delete:hover{color:var(--color-danger-text);background:var(--color-danger-light)}.wall-reactions{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.5rem}.wall-reaction-btn{display:inline-flex;align-items:center;gap:.2rem;padding:.25rem .5rem;border:1px solid var(--color-border-input);border-radius:16px;background:var(--color-card-bg);cursor:pointer;font-size:.85rem;transition:all .15s}.wall-reaction-btn:hover{border-color:var(--color-accent)}.wall-reaction-btn.active{background:var(--color-accent-ring);border-color:var(--color-accent)}.wall-reaction-count{font-size:.75rem;color:var(--color-text-secondary)}.wall-comments-section{border-top:1px solid var(--color-border-input);padding-top:.5rem}.wall-toggle-comments{background:none;border:none;font-size:.82rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem 0}.wall-toggle-comments:hover{color:var(--color-accent)}.wall-comments-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.wall-comment{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline;font-size:.85rem;padding:.3rem 0}.wall-comment-author{font-weight:600;color:var(--color-text-primary);font-size:.82rem}.wall-comment-text{color:var(--color-text-secondary)}.wall-comment-time{font-size:.72rem;color:var(--color-text-light)}.wall-comment-form{display:flex;gap:.4rem;margin-top:.35rem}.wall-comment-input{flex:1;padding:.35rem .5rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.82rem;background:var(--color-input-bg);color:var(--color-text-primary)}.wall-comment-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.wall-comment-submit{padding:.35rem .7rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer}.wall-comment-submit:hover{background:var(--color-accent-hover)}.wall-comment-submit:disabled{opacity:.5;cursor:not-allowed}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.calendar-nav{display:flex;align-items:center;gap:.5rem}.calendar-nav-btn{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s}.calendar-nav-btn:hover{background:var(--color-bg-tertiary)}.calendar-month-label{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);min-width:180px;text-align:center}.calendar-view-switcher{display:flex;gap:.25rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:.2rem}.calendar-view-btn{background:transparent;border:none;border-radius:4px;padding:.35rem .75rem;font-size:.82rem;color:var(--color-text-muted);cursor:pointer;transition:background-color .2s,color .2s}.calendar-view-btn--active{background:var(--color-card-bg);color:var(--color-text-primary);box-shadow:0 1px 2px var(--color-shadow-md)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.calendar-day-header{background:var(--color-bg-secondary);padding:.5rem .25rem;text-align:center;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.calendar-cell{background:var(--color-card-bg);min-height:100px;padding:.25rem;cursor:pointer;transition:background-color .15s}.calendar-cell:hover{background:var(--color-bg-secondary)}.calendar-cell--today{background:var(--color-accent-lighter)}.calendar-cell--today:hover{background:var(--color-accent-light)}.calendar-cell--other-month{opacity:.5}.calendar-date-number{font-size:.82rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.15rem;padding:.1rem .25rem}.calendar-cell--today .calendar-date-number{color:var(--color-accent-hover);font-weight:700}.calendar-events-list{display:flex;flex-direction:column;gap:2px}.calendar-event-chip{display:block;padding:.15rem .35rem;border-radius:4px;font-size:.7rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.3;border:none;width:100%;text-align:left}.calendar-event-chip:hover{opacity:.85}.calendar-event-chip--readonly{opacity:.75;font-style:italic}.calendar-more-events{font-size:.68rem;color:var(--color-text-muted);padding:.1rem .25rem}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.calendar-week-cell{background:var(--color-card-bg);min-height:200px;padding:.5rem;cursor:pointer}.calendar-week-cell:hover{background:var(--color-bg-secondary)}.calendar-week-cell--today{background:var(--color-accent-lighter)}.calendar-week-date{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.5rem}.calendar-week-cell--today .calendar-week-date{color:var(--color-accent-hover)}.calendar-day-view{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1rem;box-shadow:0 1px 3px var(--color-shadow-sm)}.calendar-day-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.calendar-day-event{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:var(--radius-sm);margin-bottom:.5rem;background:var(--color-bg-secondary);cursor:pointer;transition:background-color .15s}.calendar-day-event:hover{background:var(--color-bg-tertiary)}.calendar-day-event-color{width:4px;height:100%;min-height:2rem;border-radius:2px;flex-shrink:0}.calendar-day-event-info{flex:1}.calendar-day-event-title{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.calendar-day-event-time{font-size:.78rem;color:var(--color-text-muted);margin-top:.1rem}.calendar-day-event-notes{font-size:.78rem;color:var(--color-text-light);margin-top:.15rem}.calendar-day-empty{text-align:center;color:var(--color-text-light);font-style:italic;padding:2rem}.calendar-modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1200;padding:1rem}.calendar-modal{background:var(--color-card-bg);border-radius:var(--radius-lg);box-shadow:0 4px 20px var(--color-shadow-lg);padding:1.5rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.calendar-modal h3{margin:0 0 1rem;font-size:1.15rem;color:var(--color-text-primary)}.calendar-form-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.85rem}.calendar-form-field label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.calendar-form-field input,.calendar-form-field select,.calendar-form-field textarea{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-secondary);background:var(--color-input-bg);font-family:inherit}.calendar-form-field input:focus,.calendar-form-field select:focus,.calendar-form-field textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.calendar-form-field textarea{resize:vertical;min-height:60px}.calendar-form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.calendar-form-actions button{padding:.5rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.calendar-btn-save{background:var(--color-accent);color:#fff;border:none}.calendar-btn-save:hover{background:var(--color-accent-hover)}.calendar-btn-cancel{background:var(--color-bg-tertiary);color:var(--color-text-lighter);border:1px solid var(--color-border)}.calendar-btn-cancel:hover{background:var(--color-border)}.calendar-btn-delete{background:var(--color-danger-bg);color:var(--color-danger-text);border:none;margin-right:auto}.calendar-btn-delete:hover{background:var(--color-danger-bg-hover)}.calendar-agenda{display:none}.calendar-agenda-item{display:flex;gap:.75rem;padding:.75rem;background:var(--color-card-bg);border-radius:var(--radius-sm);margin-bottom:.5rem;box-shadow:0 1px 2px var(--color-shadow-sm);cursor:pointer}.calendar-agenda-date{min-width:50px;text-align:center;flex-shrink:0}.calendar-agenda-day{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);line-height:1}.calendar-agenda-weekday{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase}.calendar-agenda-events{flex:1;display:flex;flex-direction:column;gap:.35rem}.calendar-agenda-event{display:flex;align-items:center;gap:.5rem;padding:.35rem 0}.calendar-agenda-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.calendar-agenda-event-title{font-size:.88rem;color:var(--color-text-primary)}.calendar-agenda-event-time{font-size:.78rem;color:var(--color-text-muted);margin-left:auto;white-space:nowrap}@media(max-width:768px){.calendar-grid,.calendar-week-grid{display:none}.calendar-agenda{display:block}.calendar-day-header{display:none}.calendar-toolbar{flex-direction:column;align-items:stretch}.calendar-nav,.calendar-view-switcher{justify-content:center}}.landing-page{min-height:100vh;background-color:var(--color-bg-tertiary);color:var(--color-text-primary);font-family:inherit}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--color-card-bg);box-shadow:0 1px 4px var(--color-shadow-sm)}.landing-logo{margin:0;font-size:1.5rem;color:var(--color-accent)}.landing-header-login{color:var(--color-accent);text-decoration:none;font-weight:600;font-size:.95rem;padding:.5rem 1.25rem;border:1px solid var(--color-accent);border-radius:var(--radius-md);transition:background-color .2s,color .2s}.landing-header-login:hover{background:var(--color-accent);color:#fff}.landing-hero{text-align:center;padding:4rem 2rem 3rem}.landing-hero-title{font-size:2.25rem;margin:0 0 1rem;color:var(--color-hero-title)}.landing-hero-subtitle{max-width:600px;margin:0 auto 2rem;font-size:1.1rem;color:var(--color-text-lighter);line-height:1.6}.landing-cta{display:inline-block;padding:.75rem 2rem;background:var(--color-accent);color:#fff;border-radius:var(--radius-md);font-size:1.05rem;font-weight:600;text-decoration:none;transition:background-color .2s}.landing-cta:hover{background:var(--color-accent-hover)}.landing-features{padding:3rem 2rem;max-width:1000px;margin:0 auto}.landing-section-title{text-align:center;font-size:1.5rem;margin:0 0 2rem;color:var(--color-hero-title)}.landing-features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.landing-feature-card{background:var(--color-card-bg);padding:1.5rem;border-radius:var(--radius-md);box-shadow:0 2px 12px var(--color-shadow-sm);text-align:center}.landing-feature-icon{font-size:2rem;display:block;margin-bottom:.75rem}.landing-feature-card h4{margin:0 0 .5rem;font-size:1.1rem;color:var(--color-text-primary)}.landing-feature-card p{margin:0;color:var(--color-text-muted);font-size:.925rem;line-height:1.5}.landing-about{padding:3rem 2rem;max-width:700px;margin:0 auto;text-align:center}.landing-about p{color:var(--color-text-lighter);line-height:1.7;font-size:1rem}.landing-footer{text-align:center;padding:2rem;color:var(--color-text-light);font-size:.85rem}.chores-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;align-items:center}.chores-filter-group{display:flex;align-items:center;gap:.35rem}.chores-filter-group label{font-size:.8rem;color:var(--color-text-muted);font-weight:600}.chores-filter-group select{padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.82rem;color:var(--color-text-secondary);background:var(--color-input-bg)}.chores-list{display:flex;flex-direction:column;gap:.75rem}.chore-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1rem;box-shadow:0 1px 3px var(--color-shadow-sm);border-left:4px solid var(--color-border)}.chore-card--overdue{border-left-color:var(--color-danger);background:var(--color-danger-light)}.chore-card--done{opacity:.7}.chore-card-header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:.5rem;font-size:.8rem}.chore-priority{color:var(--color-text-muted);font-weight:600}.chore-due{color:var(--color-text-muted)}.chore-due--overdue{color:var(--color-danger-text);font-weight:600}.chore-points{color:var(--color-warning);font-weight:600;margin-left:auto}.chore-card-title{margin:0 0 .25rem;font-size:1.05rem;color:var(--color-text-primary)}.chore-card--done .chore-card-title{text-decoration:line-through;color:var(--color-text-light)}.chore-card-desc{margin:0 0 .5rem;font-size:.88rem;color:var(--color-text-muted)}.chore-recurrence{display:inline-block;font-size:.78rem;color:var(--color-text-light);margin-bottom:.5rem}.chore-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem}.chore-status-select{padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.82rem;color:var(--color-text-secondary);background:var(--color-input-bg);cursor:pointer}.chores-form{margin-bottom:1.25rem}@media(max-width:768px){.chores-filters{flex-direction:column;align-items:stretch}.chore-card-header{font-size:.75rem}.chore-card-actions{flex-direction:column;align-items:stretch}.chore-status-select{width:100%}}.meal-planner{max-width:1100px}.meal-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.meal-nav{display:flex;align-items:center;gap:.5rem}.meal-nav-btn{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s}.meal-nav-btn:hover{background:var(--color-bg-tertiary)}.meal-week-label{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);min-width:180px;text-align:center}.meal-actions{display:flex;gap:.5rem}.meal-generate-btn{background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);padding:.45rem 1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .2s}.meal-generate-btn:hover{background:var(--color-accent-hover)}.meal-grid{display:grid;grid-template-columns:auto repeat(7,1fr);gap:1px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.meal-grid-corner{background:var(--color-bg-secondary);padding:.5rem .25rem}.meal-day-header{background:var(--color-bg-secondary);padding:.5rem .25rem;text-align:center;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.meal-day-header--today{color:var(--color-accent-hover)}.meal-row-label{background:var(--color-card-bg);padding:.75rem .5rem;font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;display:flex;align-items:center}.meal-cell{background:var(--color-card-bg);min-height:80px;padding:.4rem;cursor:pointer;transition:background-color .15s;display:flex;align-items:center;justify-content:center}.meal-cell:hover{background:var(--color-bg-secondary)}.meal-cell--filled{position:relative}.meal-cell-content{font-size:.82rem;color:var(--color-text-primary);text-align:center;word-break:break-word}.meal-cell-empty{font-size:1.2rem;color:var(--color-text-light);opacity:.4}.meal-cell-clear{position:absolute;top:2px;right:2px;background:none;border:none;font-size:.7rem;color:var(--color-text-light);cursor:pointer;padding:.15rem .3rem;border-radius:4px;line-height:1;opacity:0;transition:opacity .15s}.meal-cell:hover .meal-cell-clear{opacity:1}.meal-cell-clear:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.meal-modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1200;padding:1rem}.meal-modal{background:var(--color-card-bg);border-radius:var(--radius-lg);box-shadow:0 4px 20px var(--color-shadow-lg);padding:1.5rem;max-width:440px;width:100%;max-height:80vh;overflow-y:auto}.meal-modal h3{margin:0 0 1rem;font-size:1.15rem;color:var(--color-text-primary)}.meal-modal-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.85rem}.meal-modal-field label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.meal-modal-input{padding:.5rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-secondary);background:var(--color-input-bg);font-family:inherit}.meal-modal-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-ring)}.meal-recipe-list{list-style:none;padding:0;margin:0 0 1rem;max-height:220px;overflow-y:auto}.meal-recipe-item{padding:.5rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;color:var(--color-text-secondary);transition:background-color .15s}.meal-recipe-item:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.meal-modal-divider{text-align:center;color:var(--color-text-light);font-size:.8rem;margin:.75rem 0}.meal-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.meal-modal-actions button{padding:.5rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.meal-btn-save{background:var(--color-accent);color:#fff;border:none}.meal-btn-save:hover{background:var(--color-accent-hover)}.meal-btn-cancel{background:var(--color-bg-tertiary);color:var(--color-text-lighter);border:1px solid var(--color-border)}.meal-btn-cancel:hover{background:var(--color-border)}.meal-day-list{display:none}.meal-day-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:1rem;margin-bottom:.75rem;box-shadow:0 1px 2px var(--color-shadow-sm)}.meal-day-card-title{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.meal-day-card-title--today{color:var(--color-accent-hover)}.meal-day-card-slots{display:flex;flex-direction:column;gap:.35rem}.meal-day-slot{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;border-radius:var(--radius-sm);background:var(--color-bg-secondary);cursor:pointer;transition:background-color .15s}.meal-day-slot:hover{background:var(--color-bg-tertiary)}.meal-day-slot-label{font-size:.78rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;min-width:70px}.meal-day-slot-value{font-size:.85rem;color:var(--color-text-secondary);flex:1;text-align:right}.meal-day-slot-empty{color:var(--color-text-light);font-style:italic}@media(max-width:768px){.meal-grid{display:none}.meal-day-list{display:block}.meal-toolbar{flex-direction:column;align-items:stretch}.meal-nav,.meal-actions{justify-content:center}}
