@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--radius-lg: 12px;--radius-md: 8px;--radius-sm: 6px;--color-bg-primary: #ffffff;--color-bg-secondary: #f8fafc;--color-bg-tertiary: #f1f5f9;--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-muted: #64748b;--color-text-light: #94a3b8;--color-text-lighter: #475569;--color-border: #e2e8f0;--color-border-input: #cbd5e1;--color-border-light: #f1f5f9;--color-shadow: rgba(15, 23, 42, .06);--color-shadow-sm: rgba(15, 23, 42, .04);--color-shadow-md: rgba(15, 23, 42, .08);--color-shadow-lg: rgba(15, 23, 42, .12);--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-light: #dbeafe;--color-accent-lighter: #eff6ff;--color-accent-disabled: #93c5fd;--color-accent-ring: rgba(37, 99, 235, .15);--color-success: #16a34a;--color-success-text: #15803d;--color-success-bg: #dcfce7;--color-success-text-dark: #16a34a;--color-warning: #d97706;--color-warning-text: #b45309;--color-warning-bg: #fef3c7;--color-warning-text-dark: #d97706;--color-danger: #dc2626;--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: #b91c1c;--color-info-text: #1e40af;--color-info-bg: #dbeafe;--color-info-border: #bfdbfe;--color-success-toast-bg: #f0fdf4;--color-success-toast-text: #15803d;--color-success-toast-border: #86efac;--color-error-toast-bg: #fef2f2;--color-error-toast-text: #b91c1c;--color-error-toast-border: #fecaca;--color-purple: #7c3aed;--color-edit-bg: #dbeafe;--color-edit-text: #1d4ed8;--color-edit-bg-hover: #bfdbfe;--color-sidebar-bg: #0f172a;--color-sidebar-text: #e2e8f0;--color-sidebar-text-muted: #64748b;--color-sidebar-text-light: #94a3b8;--color-sidebar-hover: #1e293b;--color-sidebar-border: #1e293b;--color-sidebar-brand: #ffffff;--color-input-bg: #ffffff;--color-input-bg-alt: #f8fafc;--color-card-bg: #ffffff;--color-overlay: rgba(0, 0, 0, .5);--color-hero-title: #0f172a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,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: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #0f172a;--color-text-primary: #f8fafc;--color-text-secondary: #e2e8f0;--color-text-muted: #94a3b8;--color-text-light: #64748b;--color-text-lighter: #cbd5e1;--color-border: #1e293b;--color-border-input: #334155;--color-border-light: #1e293b;--color-shadow: rgba(0, 0, 0, .4);--color-shadow-sm: rgba(0, 0, 0, .25);--color-shadow-md: rgba(0, 0, 0, .3);--color-shadow-lg: rgba(0, 0, 0, .5);--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-accent-light: #1e3a5f;--color-accent-lighter: #172554;--color-accent-disabled: #1d4ed8;--color-accent-ring: rgba(59, 130, 246, .25);--color-success: #22c55e;--color-success-text: #4ade80;--color-success-bg: #052e16;--color-success-text-dark: #22c55e;--color-warning: #f59e0b;--color-warning-text: #fcd34d;--color-warning-bg: #451a03;--color-warning-text-dark: #f59e0b;--color-danger: #f87171;--color-danger-text: #f87171;--color-danger-bg: #450a0a;--color-danger-bg-hover: #7f1d1d;--color-danger-light: #2d0000;--color-danger-muted: #fca5a5;--color-danger-text-dark: #fca5a5;--color-info-text: #93c5fd;--color-info-bg: #1e3a5f;--color-info-border: #1d4ed8;--color-success-toast-bg: #052e16;--color-success-toast-text: #4ade80;--color-success-toast-border: #166534;--color-error-toast-bg: #450a0a;--color-error-toast-text: #fca5a5;--color-error-toast-border: #7f1d1d;--color-purple: #a78bfa;--color-edit-bg: #1e3a5f;--color-edit-text: #93c5fd;--color-edit-bg-hover: #1d4ed8;--color-sidebar-bg: #020617;--color-sidebar-text: #e2e8f0;--color-sidebar-text-muted: #64748b;--color-sidebar-text-light: #94a3b8;--color-sidebar-hover: #0f172a;--color-sidebar-border: #0f172a;--color-sidebar-brand: #ffffff;--color-input-bg: #1e293b;--color-input-bg-alt: #1e293b;--color-card-bg: #1e293b;--color-overlay: rgba(0, 0, 0, .7);--color-hero-title: #f8fafc}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 .25s ease,color .25s ease,border-color .25s 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}html,body{height:100%;overflow:hidden;overscroll-behavior:none}@supports (-webkit-touch-callout: none){html{height:-webkit-fill-available}body{min-height:-webkit-fill-available}}body{margin:0;min-width:320px;touch-action:manipulation;overflow-x:hidden}#root{height:100%;overflow:hidden}[data-theme=dark] .ant-layout,[data-theme=dark] .ant-layout-content{background:var(--color-bg-tertiary)}[data-theme=dark] .ant-card{background:var(--color-card-bg);border-color:var(--color-border)}[data-theme=dark] .ant-card-head{border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .ant-statistic-title{color:var(--color-text-muted)}[data-theme=dark] .ant-statistic-content-value{color:var(--color-text-primary)}[data-theme=dark] .ant-table{background:var(--color-card-bg);color:var(--color-text-secondary)}[data-theme=dark] .ant-table-thead>tr>th{background:var(--color-bg-secondary);color:var(--color-text-muted);border-color:var(--color-border)}[data-theme=dark] .ant-table-tbody>tr>td{border-color:var(--color-border)}[data-theme=dark] .ant-table-tbody>tr:hover>td{background:var(--color-bg-secondary)}[data-theme=dark] .ant-menu-dark .ant-menu-sub{background:#0a1628}[data-theme=dark] .ant-input,[data-theme=dark] .ant-input-affix-wrapper,[data-theme=dark] .ant-select-selector{background:var(--color-input-bg);border-color:var(--color-border-input);color:var(--color-text-primary)}[data-theme=dark] .ant-btn-default{background:var(--color-bg-secondary);border-color:var(--color-border-input);color:var(--color-text-secondary)}[data-theme=dark] .ant-btn-default:hover{border-color:var(--color-accent);color:var(--color-accent)}.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 .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__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)}.app-layout{height:100%;height:100svh;overflow:hidden}.app-sider{background:#0f172a!important;display:flex;flex-direction:column;overflow:hidden;transition:width .25s ease,min-width .25s ease,max-width .25s ease,flex .25s ease!important}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;overflow:hidden}.app-sider .ant-layout-sider-trigger{display:none}.app-sider.ant-layout-sider-zero-width{overflow:hidden!important}.sider-brand{display:flex;align-items:center;gap:10px;padding:18px 16px 16px;border-bottom:1px solid #1e293b;flex-shrink:0;position:relative}.sider-logo{width:36px;height:36px;background:#1e293b;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sider-brand-text{display:flex;flex-direction:column;min-width:0;flex:1}.sider-brand-name{font-family:Inter,sans-serif;font-size:15px;font-weight:700;color:#f8fafc;letter-spacing:-.02em;line-height:1.2}.sider-brand-tag{font-size:11px;color:#64748b;letter-spacing:.03em;line-height:1.2}.sider-close-btn{display:none;background:transparent;border:none;color:#64748b;cursor:pointer;font-size:14px;padding:4px;border-radius:6px;line-height:1;flex-shrink:0;transition:color .15s,background .15s}.sider-close-btn:hover{color:#f8fafc;background:#1e293b}.app-sider .ant-menu-dark{background:transparent}.app-sider .ant-menu-dark .ant-menu-item{border-radius:6px;margin:1px 8px;width:calc(100% - 16px)}.app-sider .ant-menu-dark .ant-menu-item:hover{background:#1e293b}.app-sider .ant-menu-dark .ant-menu-item-selected{background:#2563eb!important}.app-sider .ant-menu-dark .ant-menu-submenu-title{border-radius:6px;margin:1px 8px;width:calc(100% - 16px)}.app-sider .ant-menu-dark .ant-menu-submenu-title:hover{background:#1e293b}.app-sider .ant-menu-dark .ant-menu-sub{background:#070d1a!important}.app-sider .ant-menu-dark .ant-menu-sub .ant-menu-item{margin:1px 8px;width:calc(100% - 16px);border-radius:6px}.sider-footer{padding:12px 16px;border-top:1px solid #1e293b;flex-shrink:0}.sider-sync{display:flex;align-items:center;cursor:default;padding:4px 0}.sidebar-backdrop{display:none}.app-header{background:#fff!important;border-bottom:1px solid #e2e8f0;padding:0 20px;height:60px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;position:relative;z-index:100;box-shadow:0 1px 3px #0f172a0f}[data-theme=dark] .app-header{background:#0f172a!important;border-color:#1e293b;box-shadow:0 1px 3px #0000004d}.header-left{display:flex;align-items:center;gap:12px;flex:1}.header-right{display:flex;align-items:center;gap:4px}.collapse-btn{color:#64748b!important;font-size:16px!important}.collapse-btn:hover{color:#0f172a!important;background:#f1f5f9!important}[data-theme=dark] .collapse-btn{color:#94a3b8!important}[data-theme=dark] .collapse-btn:hover{color:#f8fafc!important;background:#1e293b!important}.header-icon-btn{color:#64748b!important;width:36px!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:8px!important}.header-icon-btn:hover{color:#0f172a!important;background:#f1f5f9!important}[data-theme=dark] .header-icon-btn{color:#94a3b8!important}[data-theme=dark] .header-icon-btn:hover{color:#f8fafc!important;background:#1e293b!important}.header-user{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .15s}.header-user:hover{background:#f1f5f9}[data-theme=dark] .header-user:hover{background:#1e293b}.user-avatar{background:#2563eb!important;font-size:12px!important;font-weight:600!important;cursor:pointer}.user-name{font-size:14px;font-weight:500;color:#334155;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=dark] .user-name{color:#cbd5e1}.header-search{max-width:320px;width:100%}.notification-overlay{position:fixed;top:60px;right:16px;z-index:1000;box-shadow:0 10px 25px #0f172a26;border-radius:12px;overflow:hidden}.app-content{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f1f5f9!important;flex:1;min-height:0}[data-theme=dark] .app-content{background:#0f172a!important}.page-wrapper{padding:24px;min-height:100%}@media(max-width:768px){.app-sider{position:fixed!important;left:0;top:0;bottom:0;height:100%!important;height:100svh!important;z-index:200}.sider-close-btn{display:flex;align-items:center;justify-content:center}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000080;z-index:199;cursor:pointer}.page-wrapper{padding:16px;overflow-x:hidden}.header-search{max-width:160px}.user-name{display:none}.app-content .ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}}.summary-card-enterprise{background:var(--color-card-bg)!important;border-color:var(--color-border)!important;transition:box-shadow .15s ease,transform .15s ease}.summary-card-enterprise:hover{box-shadow:0 4px 12px #0f172a1a!important;transform:translateY(-1px)}[data-theme=dark] .summary-card-enterprise{background:var(--color-card-bg)!important;border-color:var(--color-border)!important}.sc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sc-title{font-size:13px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.sc-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.sc-value{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:6px;font-family:Inter,sans-serif}.sc-subtitle{font-size:12px;color:var(--color-text-muted);font-weight:400}@media(max-width:768px){.sc-value{font-size:1.35rem}}.table-container{background:var(--color-card-bg);border-radius:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;min-width:500px;font-family:Inter,sans-serif}.data-table th{text-align:left;padding:10px 12px;background-color:var(--color-bg-secondary);color:var(--color-text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:13px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background-color:var(--color-bg-secondary)}.data-table .empty-row{text-align:center;color:var(--color-text-muted);padding:24px;font-size:13px}.data-table .action-col{width:130px;text-align:center}.action-buttons{display:flex;gap:6px;align-items:center;justify-content:center}.edit-btn{background:var(--color-accent-lighter);color:var(--color-accent);border:1px solid var(--color-accent-light);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s}.edit-btn:hover{background:var(--color-accent-light);border-color:var(--color-accent)}.remove-btn{background:var(--color-danger-light);color:var(--color-danger-text);border:1px solid var(--color-danger-bg);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s}.remove-btn:hover{background:var(--color-danger-bg)}.add-form{background:var(--color-card-bg);border-radius:12px;border:1px solid var(--color-border);padding:20px;margin-bottom:20px}.add-form h3{margin:0 0 16px;font-size:15px;font-weight:600;color:var(--color-text-primary)}.form-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.form-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.form-field label{font-size:11px;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.form-field input,.form-field select{padding:8px 10px;border:1px solid var(--color-border-input);border-radius:8px;font-size:13px;color:var(--color-text-secondary);background:var(--color-input-bg);font-family:Inter,sans-serif;transition:border-color .15s,box-shadow .15s}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.add-btn{background:var(--color-accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .15s,opacity .15s;font-family:Inter,sans-serif}.add-btn:hover{background:var(--color-accent-hover)}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.03em}.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);color:var(--color-danger-text-dark)}@media(max-width:768px){.data-table{min-width:0;font-size:12px}.data-table th,.data-table td{padding:8px}.form-row{flex-direction:column}.form-field{min-width:0;width:100%}}.dashboard{max-width:1400px}.dashboard-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.dashboard-greeting{margin:0 0 4px!important;font-size:1.5rem!important;font-weight:700!important;color:var(--color-text-primary)!important;letter-spacing:-.02em}.dashboard-date{font-size:14px;color:var(--color-text-muted)}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-action-btn{border-radius:8px!important;font-weight:500!important;font-size:13px!important;background:transparent!important;transition:all .15s ease!important}.quick-action-btn:hover{opacity:.85}.summary-row{margin-bottom:20px!important}.dashboard-card{background:var(--color-card-bg)!important;border:1px solid var(--color-border)!important;border-radius:12px!important;box-shadow:0 1px 3px #0f172a0f!important}.dashboard-card .ant-card-head{border-color:var(--color-border)!important;font-weight:600;font-size:14px;color:var(--color-text-primary)!important;min-height:44px;padding:0 16px}.dashboard-card .ant-card-body{padding:16px}.chart-card .ant-card-body{padding:16px 8px 8px!important}.overview-items{display:flex;flex-direction:column;gap:10px}.overview-item{display:flex;align-items:flex-start;gap:12px}.overview-item-label{font-size:13px;color:var(--color-text-muted)!important;min-width:70px;flex-shrink:0}.overview-item-value{font-size:13px;color:var(--color-text-secondary)}.overview-item-tags{display:flex;flex-wrap:wrap;gap:4px}.weekly-stat{display:flex;flex-direction:column;gap:2px;padding:8px 0}.weekly-stat-label{font-size:12px;color:var(--color-text-muted)!important;text-transform:uppercase;letter-spacing:.04em}.weekly-stat-value{font-size:16px;font-weight:600;color:var(--color-text-primary)}.weekly-stat-value.income{color:#16a34a!important}.weekly-stat-value.expense{color:#dc2626!important}@media(max-width:768px){.dashboard-hero{flex-direction:column;align-items:flex-start;margin-bottom:16px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.quick-action-btn{width:100%!important;justify-content:center!important}.dashboard-greeting{font-size:1.25rem!important}.dashboard-card .ant-card-body{padding:12px}}.page{max-width:1200px;overflow-x:hidden;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.page-header .page-title{margin:0}.page-title{margin:0 0 20px;font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;font-family:Inter,sans-serif}.page-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.stat{background:var(--color-card-bg);padding:6px 14px;border-radius:8px;font-size:13px;color:var(--color-text-muted);border:1px solid var(--color-border)}.stat strong{color:var(--color-text-primary);font-weight:600}.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;font-size:14px;padding:32px 0;text-align:center}.grocery-add-form{display:flex;gap:8px;margin-bottom:16px}.grocery-input{flex:1;padding:8px 12px;border:1px solid var(--color-border-input);border-radius:8px;font-size:14px;background:var(--color-input-bg);color:var(--color-text-secondary);font-family:Inter,sans-serif;transition:border-color .15s,box-shadow .15s}.grocery-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px 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:10px 14px;background:var(--color-card-bg);border-radius:8px;margin-bottom:6px;border:1px solid var(--color-border);transition:border-color .15s}.grocery-item:hover{border-color:var(--color-border-input)}.grocery-item--done .grocery-label span{text-decoration:line-through;color:var(--color-text-light)}.grocery-label{display:flex;align-items:center;gap:8px;cursor:pointer}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.recipe-card{background:var(--color-card-bg);border-radius:12px;padding:16px;border:1px solid var(--color-border);box-shadow:0 1px 3px var(--color-shadow-sm);transition:box-shadow .15s,transform .15s}.recipe-card:hover{box-shadow:0 4px 12px var(--color-shadow-md);transform:translateY(-1px)}.recipe-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.recipe-card-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.recipe-section{margin-bottom:10px}.recipe-section h4{margin:0 0 4px;font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.recipe-section p{margin:0;font-size:13px;color:var(--color-text-secondary);white-space:pre-wrap}@media(max-width:768px){.page-title{font-size:1.25rem}.page-stats{gap:6px}.stat{font-size:12px;padding:4px 10px}.page .ant-table-wrapper,.page .ant-card .ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}}.grocery-list-switcher{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.grocery-new-list{display:flex;gap:4px}.grocery-select{padding:7px 10px;border:1px solid var(--color-border-input);border-radius:8px;font-size:13px;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 3px var(--color-accent-ring)}.grocery-input--sm{max-width:150px;font-size:13px}.add-btn--sm{padding:6px 10px;font-size:12px}.grocery-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.grocery-total{font-size:13px;color:var(--color-text-secondary)}.grocery-total strong{color:var(--color-success-text-dark)}.clear-checked-btn{padding:5px 12px;border:1px solid var(--color-danger-bg-hover);border-radius:8px;background:var(--color-danger-light);color:var(--color-danger-text);font-size:12px;cursor:pointer;transition:opacity .15s}.clear-checked-btn:hover{opacity:.85}.grocery-frequent{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px}.grocery-frequent-label{font-size:12px;color:var(--color-text-muted)}.grocery-chip{padding:4px 10px;border:1px solid var(--color-border-input);border-radius:20px;background:var(--color-card-bg);color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:border-color .15s,background .15s}.grocery-chip:hover{border-color:var(--color-accent);background:var(--color-accent-lighter)}.grocery-add-form--multi{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.grocery-input--qty{width:60px;flex:none}.grocery-input--price{width:80px;flex:none}.grocery-categories{display:flex;flex-direction:column;gap:10px}.grocery-category-group{border-radius:8px;overflow:hidden;border:1px solid var(--color-border)}.grocery-category-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:var(--color-card-bg);color:var(--color-text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.grocery-category-header:hover{background:var(--color-bg-secondary)}.grocery-category-count{font-size:12px;font-weight:400;color:var(--color-text-muted);background:var(--color-bg-secondary);padding:2px 8px;border-radius:20px}.grocery-category-arrow{margin-left:auto;color:var(--color-text-muted);font-size:12px}.grocery-item-name{font-weight:500}.grocery-item-detail{font-size:12px;color:var(--color-text-muted);margin-left:4px}.recipe-form-row-inline{display:flex;gap:12px}.recipe-form-row-inline .form-field{flex:1}.recipe-tags-picker{display:flex;flex-wrap:wrap;gap:8px}.recipe-tag-checkbox{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-secondary);cursor:pointer}.recipe-category-badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:20px;background:var(--color-bg-secondary);color:var(--color-text-secondary);margin-bottom:6px}.recipe-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px}.recipe-meta-item{font-size:12px;color:var(--color-text-muted)}.recipe-tags-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.recipe-tag-badge{font-size:11px;padding:2px 7px;border-radius:20px;border:1px solid var(--color-border-input);color:var(--color-text-lighter);background:var(--color-card-bg)}.recipe-card-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border)}.recipe-action-btn{padding:5px 10px;border:1px solid var(--color-border-input);border-radius:8px;background:var(--color-card-bg);color:var(--color-text-secondary);font-size:12px;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}.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:16px}.contact-search-input{width:100%;padding:8px 12px;border:1px solid var(--color-border-input);border-radius:8px;font-size:14px;background:var(--color-input-bg);color:var(--color-text-secondary);box-sizing:border-box;transition:border-color .15s}.contact-search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.contact-groups{display:flex;flex-direction:column;gap:12px}.contact-emergency-banner{border:1px solid var(--color-danger-bg-hover);border-radius:8px;padding:12px;background:var(--color-danger-light)}.contact-emergency-title{margin:0 0 8px;font-size:14px;color:var(--color-danger-text);font-weight:600}.contact-category-group{border-radius:8px;overflow:hidden;border:1px solid var(--color-border)}.contact-category-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:var(--color-card-bg);color:var(--color-text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.contact-category-header:hover{background:var(--color-bg-secondary)}.contact-category-count{font-size:12px;font-weight:400;color:var(--color-text-muted);background:var(--color-bg-secondary);padding:2px 8px;border-radius:20px}.contact-category-arrow{margin-left:auto;color:var(--color-text-muted);font-size:12px}.contact-list{display:flex;flex-direction:column;gap:8px;padding:8px 12px 12px}.contact-card{background:var(--color-bg-secondary);border-radius:8px;padding:12px 14px;border:1px solid var(--color-border)}.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:6px}.contact-card-name{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.contact-fav-star{margin-right:4px}.contact-detail{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:13px}.contact-link{color:var(--color-accent);text-decoration:none}.contact-link:hover{text-decoration:underline}.contact-copy-btn{padding:1px 6px;border:1px solid var(--color-border-input);border-radius:4px;background:var(--color-card-bg);cursor:pointer;font-size:11px;line-height:1.4;transition:border-color .15s}.contact-copy-btn:hover{border-color:var(--color-accent)}.contact-detail-text{font-size:13px;color:var(--color-text-secondary)}.contact-notes{margin-top:5px;padding:5px 8px;background:var(--color-bg-tertiary);border-radius:6px;font-size:12px;color:var(--color-text-lighter)}.contact-card-actions{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.contact-action-btn{padding:4px 10px;border:1px solid var(--color-border-input);border-radius:8px;background:var(--color-card-bg);color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:border-color .15s}.contact-action-btn:hover{border-color:var(--color-accent)}.contact-form-checkboxes{display:flex;gap:16px;flex-wrap:wrap}.contact-checkbox-label{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-secondary);cursor:pointer}.budget-month-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.budget-month-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:14px;transition:border-color .15s}.budget-month-btn:hover{border-color:var(--color-accent)}.budget-month-label{font-size:16px;font-weight:600;color:var(--color-text-primary);min-width:180px;text-align:center}.budget-empty{text-align:center;padding:48px 16px;color:var(--color-text-secondary)}.budget-setup-btn,.budget-save-btn{background:var(--color-accent);color:#fff;border:none;padding:8px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;margin-top:8px;transition:opacity .15s}.budget-setup-btn:hover,.budget-save-btn:hover{opacity:.9}.budget-cancel-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border);padding:8px 20px;border-radius:8px;font-size:14px;cursor:pointer;margin-top:8px;transition:border-color .15s}.budget-cancel-btn:hover{border-color:var(--color-accent)}.budget-form{max-width:520px;margin:0 auto}.budget-form h2,.budget-form h3{color:var(--color-text-primary);margin:16px 0 8px;font-size:15px}.budget-form-field{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.budget-form-field span{color:var(--color-text-secondary);font-size:14px}.budget-form-field input{width:120px;padding:5px 8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-input-bg);color:var(--color-text-primary);font-size:14px}.budget-form-actions{display:flex;gap:10px;margin-top:16px}.budget-actions{display:flex;gap:10px;margin-bottom:20px;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);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:border-color .15s}.budget-edit-btn:hover,.budget-copy-btn:hover{border-color:var(--color-accent)}.budget-overall{background:var(--color-card-bg);border-radius:12px;padding:16px 20px;margin-bottom:16px;border:1px solid var(--color-border)}.budget-overall h2{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.budget-overall-info{display:flex;justify-content:space-between;font-size:13px;color:var(--color-text-secondary);margin-bottom:6px}.budget-categories{background:var(--color-card-bg);border-radius:12px;padding:16px 20px;border:1px solid var(--color-border)}.budget-categories h2{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.budget-category-row{margin-bottom:14px}.budget-category-header{display:flex;justify-content:space-between;margin-bottom:5px}.budget-category-name{font-size:14px;color:var(--color-text-primary);font-weight:500}.budget-category-amounts{font-size:12px;color:var(--color-text-secondary)}.budget-bar__track{width:100%;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.budget-bar__fill{height:100%;border-radius:4px;transition:width .3s ease}.budget-bar__fill--good{background:var(--color-success)}.budget-bar__fill--warning{background:var(--color-warning)}.budget-bar__fill--over{background:var(--color-danger)}.budget-over-label{font-size:12px;color:var(--color-danger);font-weight:600}.inventory-stats{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.inventory-stat{background:var(--color-card-bg);border-radius:10px;padding:12px 16px;text-align:center;flex:1;min-width:100px;border:1px solid var(--color-border)}.inventory-stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.inventory-stat-label{font-size:12px;color:var(--color-text-secondary)}.inventory-stat--warning .inventory-stat-value{color:var(--color-warning)}.inventory-stat--danger .inventory-stat-value{color:var(--color-danger)}.inventory-stat--expiring .inventory-stat-value{color:var(--color-warning)}.inventory-filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.inventory-search-input{flex:1;min-width:180px;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background:var(--color-input-bg);color:var(--color-text-primary);transition:border-color .15s}.inventory-search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.inventory-filter-select{padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background:var(--color-input-bg);color:var(--color-text-primary)}.inventory-groups{display:flex;flex-direction:column;gap:14px}.inventory-category-group{background:var(--color-card-bg);border-radius:10px;border:1px solid var(--color-border);overflow:hidden}.inventory-category-header{display:flex;align-items:center;width:100%;padding:12px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:600;color:var(--color-text-primary);gap:8px;transition:background .15s}.inventory-category-header:hover{background:var(--color-bg-secondary)}.inventory-category-count{background:var(--color-bg-secondary);border-radius:20px;padding:2px 8px;font-size:12px;font-weight:500}.inventory-category-arrow{margin-left:auto;font-size:12px;color:var(--color-text-muted)}.inventory-list{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px}.inventory-card{border:1px solid var(--color-border);border-radius:8px;padding:10px 14px;background:var(--color-bg-secondary);transition:border-color .15s}.inventory-card:hover{border-color:var(--color-border-input)}.inventory-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.inventory-card-name{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.inventory-card-body{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.inventory-quantity-row{display:flex;align-items:center;gap:5px}.inventory-qty-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-card-bg);color:var(--color-text-primary);cursor:pointer;font-size:14px;line-height:1;transition:border-color .15s}.inventory-qty-btn:hover{border-color:var(--color-accent)}.inventory-quantity{font-weight:600;font-size:14px;min-width:50px;text-align:center;color:var(--color-text-primary)}.inventory-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px}.inventory-status--ok{background:#dcfce7;color:#166534}.inventory-status--low{background:#fef3c7;color:#92400e}.inventory-status--out{background:#fee2e2;color:#991b1b}.inventory-expiration{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px}.inventory-exp--ok{background:#dcfce7;color:#166534}.inventory-exp--soon{background:#fef3c7;color:#92400e}.inventory-exp--urgent{background:#fee2e2;color:#991b1b}.inventory-exp--expired{background:#991b1b;color:#fff}.inventory-card-meta{display:flex;gap:12px;font-size:12px;color:var(--color-text-secondary)}.inventory-meta-item{white-space:nowrap}.inventory-card-notes{margin:4px 0 0;font-size:13px;color:var(--color-text-secondary);width:100%}.inventory-card-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.inventory-action-btn{background:var(--color-card-bg);color:var(--color-text-primary);border:1px solid var(--color-border);padding:4px 10px;border-radius:8px;cursor:pointer;font-size:12px;transition:border-color .15s}.inventory-action-btn:hover{border-color:var(--color-accent)}.inventory-action-btn--grocery{background:var(--color-accent);color:#fff;border-color:transparent}.inventory-action-btn--grocery:hover{opacity:.9}.profile-preview{display:flex;align-items:center;gap:16px;margin-bottom:24px}.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.1rem;font-weight:600;color:var(--color-text-primary)}.profile-section{margin-bottom:20px}.profile-label{display:block;font-weight:600;font-size:13px;margin-bottom:8px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.profile-input{width:100%;max-width:360px;padding:8px 12px;border:1px solid var(--color-border-input);border-radius:8px;font-size:14px;background:var(--color-input-bg);color:var(--color-text-primary);font-family:Inter,sans-serif;transition:border-color .15s}.profile-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.profile-avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-width:400px}.profile-avatar-grid__item{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:1.4rem;border:2px solid var(--color-border);border-radius:8px;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-ring)}.profile-color-grid{display:flex;gap:10px;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:8px 20px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;font-family:Inter,sans-serif}.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}}
