:root{--color-primary: #6B8F5E;--color-primary-light: #A3BE97;--color-primary-dark: #5A7A4E;--color-bg: #FAF8F5;--color-bg-card: #FFFFFF;--color-bg-muted: #F2EDE7;--color-text: #4A4540;--color-text-muted: #787370;--color-text-inverse: #FFFFFF;--color-border: #E0DCD6;--color-error: #C44D56;--color-success: #5E8A52;--font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-h1: 28px;--text-h2: 22px;--text-h3: 18px;--text-body: 16px;--text-caption: 13px;--text-label: 14px;--weight-normal: 400;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-normal: 1.4;--leading-relaxed: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-modal: 0 8px 30px rgba(0, 0, 0, .12);--transition-fast: .15s ease-out;--transition-default: .2s ease-out;--transition-slow: .25s ease-out}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms ease-out;--transition-default: 0ms ease-out;--transition-slow: 0ms ease-out}}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font:inherit;cursor:pointer;border:none;background:none;padding:0}input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}body{font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-normal);line-height:var(--leading-relaxed);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:var(--text-h1);font-weight:var(--weight-bold);line-height:var(--leading-tight)}h2{font-size:var(--text-h2);font-weight:var(--weight-bold);line-height:var(--leading-tight)}h3{font-size:var(--text-h3);font-weight:var(--weight-semibold);line-height:var(--leading-normal)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary-light);color:var(--color-text)}.navbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background-color:var(--color-bg-card);box-shadow:var(--shadow-card);position:sticky;top:0;z-index:100}.nav-brand{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--color-primary);margin-right:var(--space-6);white-space:nowrap}.nav-links-desktop{display:flex;align-items:center;gap:var(--space-1);flex:1}.nav-link{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text-muted);transition:color var(--transition-default),background-color var(--transition-default)}.nav-link:hover{color:var(--color-text);background-color:var(--color-bg-muted)}.nav-link.active{color:var(--color-primary);background-color:var(--color-bg-muted)}.nav-logout{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--transition-default),background-color var(--transition-default)}.nav-logout:hover{color:var(--color-error);background-color:var(--color-bg-muted)}.nav-logout-desktop{margin-left:auto}.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;margin-left:auto;border-radius:var(--radius-sm);transition:background-color var(--transition-default)}.nav-toggle:hover{background-color:var(--color-bg-muted)}.nav-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-toggle-icon{display:block;width:20px;height:2px;background-color:var(--color-text);position:relative}.nav-toggle-icon:before,.nav-toggle-icon:after{content:"";position:absolute;left:0;width:100%;height:2px;background-color:var(--color-text);transition:transform var(--transition-default)}.nav-toggle-icon:before{top:-6px}.nav-toggle-icon:after{top:6px}.nav-drawer,.nav-backdrop{display:none}.skip-link{position:absolute;top:-100%;left:var(--space-4);padding:var(--space-2) var(--space-4);background-color:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-sm);font-weight:var(--weight-semibold);z-index:200;transition:top var(--transition-default)}.skip-link:focus{top:var(--space-2)}@media (max-width: 767px){.nav-links-desktop,.nav-logout-desktop{display:none}.nav-toggle{display:flex}.nav-drawer{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;padding:var(--space-5);background-color:var(--color-bg-card);box-shadow:var(--shadow-modal);z-index:150;transform:translate(-100%);transition:transform var(--transition-slow);gap:var(--space-1)}.nav-drawer.open{transform:translate(0)}.nav-drawer .nav-link{padding:var(--space-3) var(--space-4);font-size:var(--text-body);width:100%;border-radius:var(--radius-md);min-height:44px}.nav-drawer .nav-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.nav-drawer .nav-logout{margin-top:auto;padding:var(--space-3) var(--space-4);font-size:var(--text-body);width:100%;border-radius:var(--radius-md);text-align:left}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000004d;z-index:140;opacity:1;transition:opacity var(--transition-slow)}}.page-layout{max-width:1200px;margin:0 auto;padding:var(--space-5) var(--space-5)}@media (max-width: 767px){.page-layout{padding:var(--space-4) var(--space-4)}}.landing{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family)}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-bg-card);position:sticky;top:0;z-index:10}.landing-logo{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--color-primary-dark);letter-spacing:-.3px}.landing-header-actions{display:flex;align-items:center;gap:var(--space-4)}.landing-link{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-primary);text-decoration:none}.landing-link:hover{color:var(--color-primary-dark)}.landing-btn-primary{display:inline-block;background:var(--color-primary);color:var(--color-text-inverse);font-family:var(--font-family);font-size:var(--text-label);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);text-decoration:none;transition:background var(--transition-fast);border:none;cursor:pointer}.landing-btn-primary:hover{background:var(--color-primary-dark)}.landing-btn-lg{font-size:var(--text-body);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md)}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-6);gap:var(--space-5);max-width:680px;margin:0 auto}.landing-hero-title{font-size:clamp(28px,5vw,48px);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text);margin:0}.landing-hero-sub{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0}.landing-section{padding:var(--space-8) var(--space-6)}.landing-section-alt{background:var(--color-bg-muted)}.landing-section-inner{max-width:860px;margin:0 auto}.landing-section-title{font-size:var(--text-h2);font-weight:var(--weight-bold);margin:0 0 var(--space-5);color:var(--color-text)}.landing-section-desc{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0 0 var(--space-5)}.landing-callout{display:flex;gap:var(--space-5);background:var(--color-bg-card);border:1px solid var(--color-border);border-left:4px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-6)}.landing-callout-icon{font-size:24px;font-weight:var(--weight-bold);color:var(--color-error);flex-shrink:0;line-height:1;margin-top:2px}.landing-callout h2{font-size:var(--text-h3);font-weight:var(--weight-bold);margin:0 0 var(--space-3);color:var(--color-text)}.landing-callout p{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0 0 var(--space-3)}.landing-callout p:last-child{margin-bottom:0}.landing-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-6)}.landing-step{display:flex;gap:var(--space-5);align-items:flex-start}.landing-step-num{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:var(--color-text-inverse);font-weight:var(--weight-bold);font-size:var(--text-body);flex-shrink:0}.landing-step h3{font-size:var(--text-h3);font-weight:var(--weight-semibold);margin:0 0 var(--space-2);color:var(--color-text)}.landing-step p{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.landing-feature-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card)}.landing-feature-card h3{font-size:var(--text-body);font-weight:var(--weight-bold);margin:0 0 var(--space-2);color:var(--color-text)}.landing-feature-card p{font-size:var(--text-label);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0}.landing-sites{list-style:none;padding:0;margin:0 0 var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}.landing-site-chip{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--text-label);font-weight:var(--weight-semibold);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.landing-site-chip:hover{border-color:var(--color-primary);box-shadow:0 1px 4px #0000000f}.landing-site-chip a{color:var(--color-text);text-decoration:none}.landing-site-chip a:hover{color:var(--color-primary)}.landing-sites-note{font-size:var(--text-caption);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0}.landing-cta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);padding:var(--space-8) var(--space-6);background:var(--color-primary-dark);color:var(--color-text-inverse)}.landing-cta h2{font-size:var(--text-h2);font-weight:var(--weight-bold);margin:0;color:var(--color-text-inverse)}.landing-cta p{font-size:var(--text-body);color:var(--color-primary-light);margin:0}.landing-cta .landing-btn-primary{background:var(--color-bg-card);color:var(--color-primary-dark)}.landing-cta .landing-btn-primary:hover{background:var(--color-bg-muted)}.landing-footer{padding:var(--space-5) var(--space-6);border-top:1px solid var(--color-border);text-align:center;font-size:var(--text-caption);color:var(--color-text-muted)}.landing-footer-links{display:flex;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-3)}.landing-footer-links a{color:var(--color-text-muted);text-decoration:none}.landing-footer-links a:hover{color:var(--color-primary);text-decoration:underline}@media (max-width: 767px){.landing-header{padding:var(--space-3) var(--space-4)}.landing-hero{padding:var(--space-7) var(--space-4)}.landing-section{padding:var(--space-6) var(--space-4)}.landing-callout{flex-direction:column;gap:var(--space-3)}.landing-features{grid-template-columns:1fr}.landing-cta{padding:var(--space-7) var(--space-4)}}@media (min-width: 768px) and (max-width: 1024px){.landing-features{grid-template-columns:repeat(2,1fr)}}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-5);background-color:var(--color-bg)}.auth-card{width:100%;max-width:400px;background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-7) var(--space-6)}.auth-brand{display:block;text-align:center;font-size:var(--text-h2);font-weight:var(--weight-bold);color:var(--color-primary);margin-bottom:var(--space-6)}.auth-card h1,.auth-title{text-align:center;margin-bottom:var(--space-5);color:var(--color-text)}.auth-field label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.auth-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.auth-label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.auth-field input,.auth-input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);color:var(--color-text);background-color:var(--color-bg-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-field input:focus,.auth-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.auth-input.error{border-color:var(--color-error)}.auth-input.error:focus{box-shadow:0 0 0 3px #c44d5633}.auth-field-error{font-size:var(--text-caption);color:var(--color-error);animation:authFadeIn var(--transition-default) ease-out}.auth-error{text-align:center;font-size:var(--text-caption);color:var(--color-error);background-color:#c44d5614;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);animation:authFadeIn var(--transition-default) ease-out}.auth-submit,.auth-btn{width:100%;padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-default);display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-5)}.auth-submit:hover{background-color:var(--color-primary-dark)}.auth-submit:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-submit.loading{pointer-events:none}.auth-submit.loading:after{content:"";display:inline-block;width:16px;height:16px;border:2px solid var(--color-text-inverse);border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.auth-nav-link{text-align:center;font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-4)}.auth-nav-link a{color:var(--color-primary);font-weight:var(--weight-semibold);transition:color var(--transition-fast)}.auth-nav-link a:hover{color:var(--color-primary-dark)}@keyframes authFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 767px){.auth-page{padding:var(--space-4)}.auth-card{padding:var(--space-5) var(--space-4);border-radius:var(--radius-md)}}.home-create-card{max-width:400px;margin:var(--space-8) auto;background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-7) var(--space-6);text-align:center}.home-create-card h1{margin-bottom:var(--space-5)}.home-create-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4);text-align:left}.home-create-field label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.home-create-field input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);color:var(--color-text);background-color:var(--color-bg-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.home-create-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.home-create-btn{width:100%;padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-default)}.home-create-btn:hover{background-color:var(--color-primary-dark)}.home-title-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.home-title-row h1{margin-bottom:0}.home-edit-name-btn{font-size:var(--text-caption);color:var(--color-text-muted);padding:var(--space-1) var(--space-2)}.home-name-form{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.home-name-input{font-size:var(--text-h1, 1.5rem);font-weight:var(--weight-bold);padding:var(--space-1) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-muted);color:var(--color-text);min-width:180px}.home-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.home-section{margin-bottom:var(--space-6)}.home-stats{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-7)}.stats-group{display:flex;flex-direction:column;gap:var(--space-3)}.stats-group-title{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0}.stats-group-subtitle{font-size:var(--text-caption);color:var(--color-text-muted);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em}.stat-meal-times{display:flex;flex-direction:column;gap:var(--space-2)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.stat-cards--compact{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.stat-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-4);background-color:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.stat-value{font-size:var(--text-body);font-weight:var(--weight-bold);color:var(--color-text);line-height:1.2;word-break:break-word}.stat-label{font-size:var(--text-caption);color:var(--color-text-muted);line-height:1.3}.stat-sub{font-size:var(--text-caption);color:var(--color-text-muted);opacity:.7;line-height:1.3}.stat-cards--seasons{grid-template-columns:repeat(4,1fr)}@media (max-width: 600px){.stat-cards--seasons{grid-template-columns:repeat(2,1fr)}}.stat-card--season{position:relative;border:1.5px solid transparent}.stat-card--active-season{border-color:var(--color-primary)}.stat-season-name{font-size:var(--text-caption);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-season-badge{display:inline-block;margin-top:var(--space-2);padding:2px var(--space-2);background-color:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-semibold)}.home-section h2{margin-bottom:var(--space-4);color:var(--color-text)}.member-list{display:flex;flex-direction:column;gap:var(--space-3)}.member-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.member-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:var(--color-bg-muted);color:var(--color-text);font-size:var(--text-label);font-weight:var(--weight-bold);flex-shrink:0}.member-name{flex:1;font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text)}.role-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-semibold)}.role-badge.owner{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.role-badge.member{background-color:var(--color-bg-muted);color:var(--color-text-muted)}.member-remove-btn{margin-left:auto;font-size:var(--text-caption);color:var(--color-text-muted)}.member-remove-confirm{margin-left:auto;display:flex;gap:var(--space-2)}.invite-form{display:flex;gap:var(--space-3);align-items:flex-end}.invite-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.invite-field label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.invite-field input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);color:var(--color-text);background-color:var(--color-bg-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.invite-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.invite-btn{padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-default)}.invite-btn:hover{background-color:var(--color-primary-dark)}.invite-success{font-size:var(--text-caption);color:var(--color-success);padding:var(--space-2) 0;animation:homeFadeIn var(--transition-default) ease-out}.home-error{font-size:var(--text-caption);color:var(--color-error);padding:var(--space-2) 0;animation:homeFadeIn var(--transition-default) ease-out}.home-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--color-text-muted)}.home-empty-members{color:var(--color-text-muted);font-size:var(--text-body);padding:var(--space-3) 0}@keyframes homeFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 767px){.invite-form{flex-direction:column;align-items:stretch}}.meal-card{background-color:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);transition:box-shadow var(--transition-fast),transform var(--transition-fast);display:flex;flex-direction:column;gap:var(--space-3)}.meal-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.card-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.card-header h3{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.type-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-semibold);text-transform:capitalize}.type-badge.main{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.type-badge.side{background-color:var(--color-bg-muted);color:var(--color-text-muted)}.type-badge.dish{background-color:#6b8f5e26;color:var(--color-primary-dark)}.type-badge.combo{background-color:#78737026;color:var(--color-text)}.trial-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-semibold);border:1.5px solid var(--color-border);color:var(--color-text-muted);background:none}.card-recency{font-size:var(--text-caption);color:var(--color-text-muted)}.card-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.btn-ghost{padding:var(--space-1) var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.btn-ghost:hover{color:var(--color-text);background-color:var(--color-bg-muted)}.card-confirm{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-muted);border-radius:var(--radius-sm);animation:cardSlideDown var(--transition-default) ease-out}.card-confirm span{font-size:var(--text-caption);color:var(--color-text);flex:1}.btn-danger{padding:var(--space-1) var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-error);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.btn-danger:hover{opacity:.9}.btn-cancel{padding:var(--space-1) var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast)}.btn-cancel:hover{color:var(--color-text)}.meal-card-inactive{opacity:.6}.meal-list-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.btn-ghost-active{color:var(--color-primary);background-color:var(--color-primary-light)}.card-error{font-size:var(--text-caption);color:var(--color-error)}@media (max-width: 767px){.btn-ghost,.btn-danger,.btn-cancel{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}}.btn-ghost:focus-visible,.btn-danger:focus-visible,.btn-cancel:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 375px){.meal-card{padding:var(--space-3) var(--space-4)}.card-actions{gap:var(--space-1)}}@keyframes cardSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-card{background-color:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-field label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.form-field input,.form-field select{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);color:var(--color-text);background-color:var(--color-bg-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.ingredients-section{display:flex;flex-direction:column;gap:var(--space-3)}.ingredients-label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.ingredient-row{display:flex;align-items:flex-end;gap:var(--space-2);animation:formSlideIn var(--transition-default) ease-out}.ingredient-row .form-field{flex:1}.ingredient-row .form-field.qty,.ingredient-row .form-field.unit{flex:0 0 80px}.ingredient-row .form-field label{font-size:var(--text-caption)}.ingredient-row .form-field input{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.btn-remove-ingredient{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),background-color var(--transition-fast)}.btn-remove-ingredient:hover{color:var(--color-error);background-color:var(--color-bg-muted)}.btn-remove-ingredient:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-add-ingredient{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-primary);background:none;border:1.5px dashed var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);align-self:flex-start}.btn-add-ingredient:hover{background-color:var(--color-bg-muted)}.btn-add-ingredient:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.combo-fields{display:flex;flex-direction:column;gap:var(--space-4)}.combo-fields .form-field{flex:1}.combo-sides-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:200px;overflow-y:auto;padding:var(--space-2);background-color:var(--color-bg-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-sm)}.combo-side-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-body);transition:background-color var(--transition-fast)}.combo-side-option:hover{background-color:var(--color-bg-card)}.combo-side-option input[type=checkbox]{width:auto;flex-shrink:0;accent-color:var(--color-primary)}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.btn-primary{padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-default)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:none;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.btn-secondary:hover{color:var(--color-text);border-color:var(--color-text-muted)}.form-error{font-size:var(--text-caption);color:var(--color-error);animation:formFadeIn var(--transition-default) ease-out}.meal-times-checkboxes{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-1)}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-body);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:auto;flex-shrink:0;accent-color:var(--color-primary)}.field-hint{font-size:var(--text-caption);color:var(--color-text-muted);font-weight:var(--weight-normal)}.meal-days-input{width:80px}@keyframes formSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes formFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 767px){.ingredient-row{flex-wrap:wrap}.ingredient-row .form-field.qty,.ingredient-row .form-field.unit{flex:1}.combo-fields{flex-direction:column}.btn-remove-ingredient{min-width:44px;min-height:44px}.btn-add-ingredient{min-height:44px}}.repertoire-page h1{margin-bottom:var(--space-5)}.tab-bar{display:flex;gap:var(--space-1);border-bottom:1.5px solid var(--color-border);margin-bottom:var(--space-3)}.repertoire-tab-description{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-5)}.tab-btn{padding:var(--space-3) var(--space-4);font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--transition-default),border-color var(--transition-default);margin-bottom:-1.5px}.tab-btn:hover{color:var(--color-text)}.tab-btn[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tab-panel{animation:tabFadeIn var(--transition-default) ease-out}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4)}.meal-list-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}.meal-list-actions .btn-add{margin-bottom:0}.import-recipe-form{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card)}.import-recipe-input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-input, var(--color-bg-card));color:var(--color-text)}.import-recipe-actions{display:flex;gap:var(--space-3)}.btn-add{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text-inverse);background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:var(--space-4);transition:background-color var(--transition-default)}.btn-add:hover{background-color:var(--color-primary-dark)}.empty-state{text-align:center;padding:var(--space-7) var(--space-5);color:var(--color-text-muted);font-size:var(--text-body)}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--space-7);color:var(--color-text-muted)}@keyframes tabFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 767px){.card-grid{grid-template-columns:1fr}.tab-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}}.planner-page h1{margin-bottom:var(--space-4)}.week-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-4)}.week-nav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text);cursor:pointer;font-size:var(--text-body);transition:background-color var(--transition-fast),border-color var(--transition-fast)}.week-nav-btn:hover{background-color:var(--color-bg-muted);border-color:var(--color-text-muted)}.week-label{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text)}.this-week-badge{display:inline-flex;padding:var(--space-1) var(--space-2);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-primary-dark);background-color:var(--color-primary-light);border-radius:var(--radius-sm)}.plan-status{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-bold);text-transform:capitalize;transition:background-color var(--transition-default),color var(--transition-default)}.status-draft{background-color:var(--color-bg-muted);color:var(--color-text-muted)}.status-ready{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.plan-action{padding:var(--space-2) var(--space-4);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-primary);background:none;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.plan-action:hover{background-color:var(--color-primary);color:var(--color-text-inverse)}.plan-action-danger{color:var(--color-danger, #c0392b);border-color:var(--color-danger, #c0392b)}.plan-action-danger:hover{background-color:var(--color-danger, #c0392b);color:var(--color-text-inverse)}.planner-grid{overflow-x:auto}.planner-grid table{width:100%;border-collapse:separate;border-spacing:var(--space-1);table-layout:fixed}.planner-grid th{padding:var(--space-2) var(--space-2);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);background-color:var(--color-bg-muted);border-radius:var(--radius-sm);text-align:center;white-space:nowrap}.planner-grid th[scope=row]{text-align:left;width:80px;min-width:80px}.planner-grid td{padding:0;vertical-align:top}.slot-cell{min-height:60px;padding:var(--space-2);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.slot-cell:active{transform:scale(.97)}.slot-empty{border:1.5px dashed var(--color-border);background-color:transparent}.slot-empty .slot-add-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background-color:var(--color-bg-muted);color:var(--color-text-muted);font-size:var(--text-body);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.slot-empty .slot-add-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.slot-filled{flex-direction:column;background-color:var(--color-bg-card);box-shadow:var(--shadow-card)}.slot-filled:hover{box-shadow:0 2px 8px #00000014}.slot-order-in{background-color:var(--color-bg-muted);border:1.5px solid var(--color-border)}.slot-name{font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.slot-recipe-link{display:block;font-size:10px;color:var(--color-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;opacity:.8}.slot-recipe-link:hover{text-decoration:underline;opacity:1}.slot-order-label{font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-style:italic}.slot-readonly{cursor:default;opacity:.7}.slot-readonly:active{transform:none}.no-plan{text-align:center;padding:var(--space-8) var(--space-5)}.no-plan p{color:var(--color-text-muted);font-size:var(--text-body);margin-bottom:var(--space-4)}.no-plan .btn-primary{display:inline-flex}.reopen-confirm{background-color:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:100%;margin:var(--space-4);box-shadow:var(--shadow-modal);text-align:center}.reopen-confirm p{margin:0 0 var(--space-5);font-size:var(--text-body);color:var(--color-text);line-height:1.5}.reopen-confirm .form-actions{justify-content:center}@media (max-width: 767px){.planner-grid-desktop{display:none}.week-nav{gap:var(--space-2)}.week-label{font-size:var(--text-caption)}}@media (min-width: 768px){.planner-mobile{display:none}}.planner-day-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.planner-day-nav-btn{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text);cursor:pointer;font-size:var(--text-body);transition:background-color var(--transition-fast),border-color var(--transition-fast)}.planner-day-nav-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.planner-day-nav-btn:hover{background-color:var(--color-bg-muted);border-color:var(--color-text-muted)}.planner-day-label{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text);text-align:center;flex:1}.planner-day-dots{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.planner-day-dot{width:28px;height:28px;border-radius:50%;border:none;background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);transition:background-color var(--transition-fast),color var(--transition-fast);min-width:44px;min-height:44px}.planner-day-dot:hover{background-color:var(--color-bg-muted);color:var(--color-text)}.planner-day-dot-active{background-color:var(--color-primary);color:var(--color-text-inverse);border-radius:50%;width:28px;height:28px}.planner-day-dot:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.planner-day-card{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.day-card-row{display:flex;align-items:stretch;border-bottom:1px solid var(--color-border)}.day-card-row:last-child{border-bottom:none}.day-card-slot-label{width:90px;min-width:90px;padding:var(--space-3) var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-muted);background-color:var(--color-bg-muted);display:flex;align-items:center;text-transform:capitalize}.day-card-slot-cell{flex:1;padding:var(--space-2);min-height:56px;display:flex;align-items:stretch}.day-card-slot-cell .slot-cell{flex:1}.day-card-slot-cell .slot-add-btn{width:100%;height:100%;border-radius:var(--radius-sm)}@media (max-width: 375px){.planner-day-label{font-size:var(--text-caption)}.planner-day-dot{min-width:36px;min-height:36px;font-size:11px}.day-card-slot-label{width:72px;min-width:72px;font-size:11px}}@media (max-width: 767px) and (orientation: landscape){.planner-day-card{max-height:calc(100vh - 200px);overflow-y:auto}.planner-day-dots{margin-bottom:var(--space-2)}}.planner-actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-3)}.import-url-tab{padding:var(--space-3) var(--space-5)}.import-url-hint{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-3)}.import-url-actions{display:flex;justify-content:flex-end;margin-top:var(--space-3)}.new-meal-tab{padding:var(--space-3) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.new-meal-tab form{display:flex;flex-direction:column;gap:var(--space-3)}.new-meal-field{display:flex;flex-direction:column;gap:var(--space-1)}.new-meal-field label,.new-meal-label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text)}.new-meal-select{padding:var(--space-2) var(--space-3);font-size:var(--text-body);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-muted);color:var(--color-text)}.new-meal-times{display:flex;gap:var(--space-4);flex-wrap:wrap}.trial-meals-banner{background-color:var(--color-primary-light);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.trial-banner-header h3{font-size:var(--text-body);font-weight:var(--weight-bold);color:var(--color-primary-dark);margin:0 0 var(--space-1)}.trial-banner-header p{font-size:var(--text-caption);color:var(--color-text-muted);margin:0 0 var(--space-3)}.trial-banner-error{font-size:var(--text-caption);color:var(--color-danger, #c0392b);margin-bottom:var(--space-2)}.trial-meals-list{list-style:none;padding:0;margin:0 0 var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.trial-meal-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}.trial-meal-name{font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.trial-meal-actions{display:flex;gap:var(--space-2);flex-shrink:0}.trial-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-caption)}.trial-dismiss-all{font-size:var(--text-caption);color:var(--color-text-muted)}.slot-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background-color:#0006;animation:fadeIn var(--transition-default) ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slot-picker-modal{width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);animation:scaleIn var(--transition-slow) ease-out;overflow:hidden}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.slot-picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0}.slot-picker-header h2{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--color-text);margin:0;text-transform:capitalize}.picker-tabs{display:flex;gap:var(--space-1);border-bottom:1.5px solid var(--color-border);padding:0 var(--space-5);flex-shrink:0}.slot-picker-search{display:block;width:100%;padding:var(--space-3) var(--space-4);margin:0;font-size:var(--text-body);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-muted);border:none;border-bottom:1px solid var(--color-border);outline:none;flex-shrink:0;transition:background-color var(--transition-fast)}.slot-picker-search::placeholder{color:var(--color-text-muted)}.slot-picker-search:focus-visible{background-color:var(--color-bg-card);border-bottom-color:var(--color-primary);outline:none}.slot-picker-content{flex:1;overflow-y:auto;padding:var(--space-2) 0}.slot-picker-content ul{list-style:none;margin:0;padding:0}.picker-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-3) var(--space-5);background:none;border:none;cursor:pointer;font-family:var(--font-family);font-size:var(--text-body);color:var(--color-text);text-align:left;transition:background-color var(--transition-fast)}.picker-item:hover{background-color:var(--color-bg-muted)}.picker-item:active{background-color:var(--color-primary-light)}.picker-item:disabled{opacity:.5;cursor:not-allowed}.picker-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.picker-item-name{font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-item-recency{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap;margin-left:var(--space-3);flex-shrink:0}.picker-item-selected,.picker-item-selected:hover{background-color:var(--color-primary-light)}.main-side-picker{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:0}.main-side-column{display:flex;flex-direction:column;overflow-y:auto}.main-side-column:first-child{border-right:1px solid var(--color-border)}.main-side-column h3{font-size:var(--text-label);font-weight:var(--weight-bold);color:var(--color-text-muted);padding:var(--space-2) var(--space-4);margin:0;background-color:var(--color-bg-muted);position:sticky;top:0}.main-side-column ul{list-style:none;margin:0;padding:0}.main-side-column .picker-item{padding:var(--space-3) var(--space-4)}.order-in-action{display:flex;align-items:center;justify-content:center;padding:var(--space-7) var(--space-5)}.btn-danger-ghost{padding:var(--space-2) var(--space-4);font-size:var(--text-caption);font-weight:var(--weight-semibold);font-family:var(--font-family);color:var(--color-error);background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.btn-danger-ghost:hover{background-color:#c44d5614;border-radius:var(--radius-sm)}.btn-danger-ghost:disabled{opacity:.5;cursor:not-allowed}.picker-error{padding:var(--space-2) var(--space-5);color:var(--color-error);font-size:var(--text-caption);font-weight:var(--weight-semibold);flex-shrink:0}.day-count-picker{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.day-count-label{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text)}.day-count-hint{font-size:var(--text-caption);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-2))}.day-count-buttons{display:flex;gap:var(--space-2);flex-wrap:wrap}.day-count-btn{width:44px;height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.day-count-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.day-count-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.day-count-btn-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.day-count-actions{display:flex;gap:var(--space-3)}.picker-no-results{text-align:center;padding:var(--space-5);color:var(--color-text-muted);font-size:var(--text-body)}@media (max-width: 767px){.slot-picker-modal{max-width:100%;max-height:90vh;margin:var(--space-4)}.picker-tabs .tab-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.main-side-picker{grid-template-columns:1fr 1fr}}@media (max-width: 375px){.slot-picker-modal{margin:var(--space-2);max-height:92vh}.slot-picker-header{padding:var(--space-3) var(--space-4)}.picker-item{padding:var(--space-2) var(--space-3)}}@media (max-width: 767px) and (orientation: landscape){.slot-picker-modal{max-height:80vh;margin:var(--space-2) var(--space-4)}}.groceries-page h1{margin-bottom:var(--space-5)}.grocery-actions{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.grocery-generate{text-align:center;padding:var(--space-7) var(--space-5)}.grocery-generate p{color:var(--color-text-muted);font-size:var(--text-body);margin-bottom:var(--space-4)}.grocery-trip-tabs{margin-top:var(--space-3)}.grocery-tabs{display:flex;gap:var(--space-1);border-bottom:1.5px solid var(--color-border);margin-bottom:var(--space-4)}.grocery-item-list{list-style:none;margin:0;padding:0}.grocery-item{display:flex;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);transition:opacity var(--transition-default)}.grocery-item:last-child{border-bottom:none}.grocery-item label{display:flex;align-items:center;gap:var(--space-3);width:100%;cursor:pointer}.grocery-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;min-width:22px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-card);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);position:relative}.grocery-checkbox:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.grocery-checkbox:checked:after{content:"";position:absolute;top:3px;left:6px;width:5px;height:9px;border:solid var(--color-text-inverse);border-width:0 2px 2px 0;transform:rotate(45deg)}.grocery-checkbox:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.grocery-item-name{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text);flex:1;transition:color var(--transition-default)}.grocery-item-qty{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap}.grocery-item-checked{opacity:.5}.grocery-item-checked .grocery-item-name{text-decoration:line-through;color:var(--color-text-muted)}.grocery-item-staple .grocery-item-name:after{content:"staple";display:inline-flex;margin-left:var(--space-2);padding:1px var(--space-2);font-size:11px;font-weight:var(--weight-bold);color:var(--color-primary-dark);background-color:var(--color-primary-light);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;vertical-align:middle}.export-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-label);font-weight:var(--weight-semibold);font-family:var(--font-family);color:var(--color-primary);background:none;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.export-btn:hover{background-color:var(--color-primary);color:var(--color-text-inverse)}.export-btn:disabled{opacity:.5;cursor:not-allowed}.export-btn-success{color:var(--color-success);border-color:var(--color-success)}.export-btn-success:hover{background-color:var(--color-success)}.export-btn-error{color:var(--color-error);border-color:var(--color-error)}.add-grocery-item-form{margin-top:var(--space-4)}.add-grocery-item-fields{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.add-grocery-item-name{flex:1 1 140px;min-width:100px;padding:var(--space-2) var(--space-3);font-size:var(--text-body);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-input, var(--color-bg-card));color:var(--color-text)}.add-grocery-item-qty,.add-grocery-item-unit{width:70px;flex-shrink:0;padding:var(--space-2) var(--space-3);font-size:var(--text-body);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-input, var(--color-bg-card));color:var(--color-text)}@media (max-width: 479px){.add-grocery-item-fields{flex-direction:column;align-items:stretch}.add-grocery-item-qty,.add-grocery-item-unit{width:100%}}@media (max-width: 767px) and (orientation: landscape){.add-grocery-item-fields{flex-direction:row;flex-wrap:nowrap}.add-grocery-item-name{flex:1}}.grocery-empty-state{text-align:center;padding:var(--space-7) var(--space-5)}.grocery-empty-state p{color:var(--color-text-muted);font-size:var(--text-body);margin-bottom:var(--space-4)}@media (max-width: 767px){.grocery-actions{flex-direction:column;align-items:stretch}.grocery-tabs .tab-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.grocery-item label{padding:var(--space-2) 0;min-height:44px}.add-grocery-item-name{width:100%;flex:1 1 100%}}.export-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.settings-page h1{margin-bottom:var(--space-5)}.settings-section{margin-bottom:var(--space-6)}.settings-section h2{font-size:var(--text-h2);font-weight:var(--weight-bold);color:var(--color-text);margin-bottom:var(--space-4)}.staple-list{list-style:none;margin:0;padding:0;margin-bottom:var(--space-4)}.staple-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.staple-item:last-child{border-bottom:none}.staple-item-name{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-text);flex:1}.staple-item-detail{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap}.staple-item-actions{display:flex;gap:var(--space-2);flex-shrink:0}.staple-confirm{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-caption);color:var(--color-text-muted)}.staple-form{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;padding:var(--space-4);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.staple-form-edit{border-color:var(--color-primary-light);background-color:var(--color-bg-muted)}.staple-form .form-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:100px}.staple-form .form-field label{font-size:var(--text-label);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.staple-form .form-field input{padding:var(--space-2) var(--space-3);font-size:var(--text-body);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}.staple-form .form-field input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.staple-form-actions{display:flex;gap:var(--space-2);align-items:flex-end}.shopping-days{display:flex;flex-wrap:wrap;gap:var(--space-2)}.day-toggle{padding:var(--space-2) var(--space-3);font-size:var(--text-label);font-weight:var(--weight-semibold);font-family:var(--font-family);color:var(--color-text-muted);background:none;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);min-width:44px;text-align:center}.day-toggle:hover{border-color:var(--color-primary-light);color:var(--color-text)}.day-toggle-active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.day-toggle-active:hover{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-text-inverse)}.day-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shopping-days-error{color:var(--color-error);font-size:var(--text-caption);margin-top:var(--space-2)}.settings-hint{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-3);line-height:var(--leading-relaxed)}.pantry-add-form{display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-3)}.pantry-add-form input{flex:1;padding:var(--space-2) var(--space-3);font-size:var(--text-body);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}.pantry-add-form input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}@media (max-width: 767px){.staple-form{flex-direction:column}.staple-form .form-field{min-width:100%}.shopping-days{gap:var(--space-1)}.day-toggle{padding:var(--space-2);font-size:var(--text-caption)}}.feedback-page h1{margin-bottom:var(--space-3)}.feedback-hint{font-size:var(--text-body);color:var(--color-text-muted);margin-bottom:var(--space-5);line-height:var(--leading-relaxed)}.feedback-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:560px}.feedback-textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-body);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.feedback-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.feedback-form .btn-primary{align-self:flex-start}.legal-page{min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family)}.legal-header{display:flex;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-bg-card);position:sticky;top:0;z-index:10}.legal-back{font-size:var(--text-h3);font-weight:var(--weight-bold);color:var(--color-text);text-decoration:none}.legal-back:hover{color:var(--color-primary)}.legal-content{max-width:720px;margin:0 auto;padding:var(--space-6);line-height:var(--leading-relaxed)}.legal-content h1{font-size:var(--text-h1);font-weight:var(--weight-bold);margin:0 0 var(--space-2)}.legal-updated{font-size:var(--text-caption);color:var(--color-text-muted);margin:0 0 var(--space-6)}.legal-content h2{font-size:var(--text-h3);font-weight:var(--weight-bold);margin:var(--space-6) 0 var(--space-3)}.legal-content h3{font-size:var(--text-body);font-weight:var(--weight-bold);margin:var(--space-4) 0 var(--space-2)}.legal-content p{margin:0 0 var(--space-3);font-size:var(--text-body);color:var(--color-text)}.legal-content ul{margin:0 0 var(--space-3);padding-left:var(--space-5)}.legal-content li{margin-bottom:var(--space-2);font-size:var(--text-body)}.legal-content a{color:var(--color-primary);text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-content code{font-size:var(--text-caption);background-color:var(--color-bg-muted);padding:2px 6px;border-radius:var(--radius-sm)}.legal-table{width:100%;border-collapse:collapse;margin:var(--space-3) 0 var(--space-4);font-size:var(--text-body)}.legal-table th,.legal-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.legal-table th{font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 767px){.legal-content{padding:var(--space-4)}.legal-header{padding:var(--space-3) var(--space-4)}}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--color-bg-card);border-top:1px solid var(--color-border);box-shadow:0 -2px 8px #00000014;font-family:var(--font-family)}.cookie-banner-text{font-size:var(--text-label);color:var(--color-text);margin:0;line-height:var(--leading-relaxed)}.cookie-banner-text a{color:var(--color-primary);text-decoration:none;font-weight:var(--weight-semibold)}.cookie-banner-text a:hover{text-decoration:underline}.cookie-banner-btn{flex-shrink:0;background:var(--color-primary);color:var(--color-text-inverse);font-family:var(--font-family);font-size:var(--text-label);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-5);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.cookie-banner-btn:hover{background:var(--color-primary-dark)}@media (max-width: 767px){.cookie-banner{flex-direction:column;gap:var(--space-3);padding:var(--space-4);text-align:center}}
