@font-face{font-family:"DM Serif Display";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-ext-400-normal-p18AlW_x.woff2) format("woff2"),url(/assets/dm-serif-display-latin-ext-400-normal-B1toqZab.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"DM Serif Display";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-400-normal-C5_t9oOD.woff2) format("woff2"),url(/assets/dm-serif-display-latin-400-normal-_kVFYEpx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:var(--font-body);line-height:var(--line-height-normal);font-weight:var(--font-weight-medium);color-scheme:dark;color:var(--color-text-primary);background-color:var(--color-background)}:root[data-theme=light]{color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:inherit}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,body{overflow-x:hidden;width:100%;overscroll-behavior-y:contain}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh;overflow-x:hidden}h1,h2{font-family:var(--font-display);font-weight:var(--font-weight-normal);letter-spacing:.01em}h1{font-size:var(--font-size-4xl);line-height:var(--line-height-tight)}button{border-radius:var(--radius-md);border:1px solid transparent;border-color:var(--color-border-dark);padding:.6em 1.2em;font-size:1em;font-weight:var(--font-weight-medium);font-family:inherit;background-color:var(--button-bg);color:var(--color-text-primary);cursor:pointer;transition:border-color .25s;min-height:44px;display:inline-flex;align-items:center;justify-content:center}button:hover{border-color:var(--color-primary)}button:focus,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 768px){button{min-height:48px;padding:.75em 1.5em;font-size:1rem}}input,textarea,select{max-width:100%;box-sizing:border-box;min-height:44px;font-size:16px;font-family:inherit}input:not([type=checkbox]):not([type=radio]),textarea,select{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm)}input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary)}select option{background-color:var(--color-surface);color:var(--color-text-primary)}@media (max-width: 768px){input,textarea,select{min-height:48px;padding:.75rem;font-size:16px}input[type=checkbox],input[type=radio]{min-width:24px;min-height:24px;width:24px;height:24px}}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(200,132,90,.12)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--color-background)}*::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}@media (max-width: 768px){*::-webkit-scrollbar{width:4px;height:4px}}.error-boundary-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;background-color:var(--color-surface-variant);text-align:center}.error-boundary-content{max-width:600px;background:var(--color-surface);padding:40px;border-radius:12px;box-shadow:0 2px 8px #0f0a081a}.error-boundary-icon{font-size:64px;margin-bottom:20px}.error-boundary-title{font-size:24px;font-weight:600;margin-bottom:12px;color:var(--color-text-primary)}.error-boundary-message{font-size:16px;color:var(--color-text-tertiary);margin-bottom:24px;line-height:1.5}.error-boundary-report-status{font-size:14px;color:var(--color-text-tertiary);margin-bottom:16px;padding:8px 16px;border-radius:4px;background-color:var(--color-surface-variant)}.error-boundary-report-sent{color:var(--color-success-dark);background-color:var(--color-success-light)}.error-boundary-report-error{color:var(--color-error-dark);background-color:var(--color-error-light)}.error-boundary-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.error-boundary-button{padding:12px 24px;font-size:14px;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.error-boundary-button-primary{background-color:var(--color-success);color:var(--color-text-on-primary)}.error-boundary-button-primary:hover{background-color:var(--color-success-dark)}.error-boundary-button-secondary{background-color:var(--color-surface-variant);color:var(--color-text-primary);border:1px solid var(--color-border)}.error-boundary-button-secondary:hover{background-color:var(--color-surface-variant)}.error-boundary-details{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.error-boundary-details summary{cursor:pointer;font-size:14px;color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none}.error-boundary-details summary:hover{color:var(--color-text-primary)}.error-boundary-error-info{margin-top:16px;padding:16px;background-color:var(--color-surface-variant);border-radius:6px;text-align:left;font-family:monospace;font-size:12px;color:var(--color-error);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.password-input-wrapper{display:flex;align-items:center;width:100%}.password-input-wrapper input{flex:1;min-width:0;box-sizing:border-box;margin:0}.password-toggle-btn{flex-shrink:0;width:44px;height:38px;margin-left:-50px;background:transparent;border:none;padding:0;cursor:pointer;color:var(--color-text-tertiary, var(--color-text-tertiary));display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0;transition:color var(--transition-fast, .15s ease-in-out),background-color var(--transition-fast, .15s ease-in-out);z-index:1}.password-toggle-btn:hover{color:var(--color-text-primary, var(--color-text-primary));background-color:var(--color-surface-hover, var(--color-surface-variant))}.password-toggle-btn:focus{outline:none;color:var(--color-primary, var(--color-primary))}.password-toggle-btn svg{width:20px;height:20px;flex-shrink:0}.password-input{padding:.8em 48px .8em .8em;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, var(--color-surface-variant));background-color:var(--color-surface-variant, var(--color-surface-variant));color:var(--color-text-primary, var(--color-text-primary));font-size:1em;box-sizing:border-box}.password-input:focus{border-color:var(--color-primary, var(--color-primary));outline:none}.password-input:disabled{opacity:.6;cursor:not-allowed}.auth-form{display:flex;flex-direction:column;gap:15px}.auth-form div{display:flex;flex-direction:column;gap:5px;text-align:left}.auth-form .password-input-wrapper{display:flex;flex-direction:row;align-items:center}.auth-form label{font-weight:700}.auth-form input{padding:.8em;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, var(--color-surface-variant));background-color:var(--color-surface-variant, var(--color-surface-variant));color:var(--color-text-primary, var(--color-text-primary));font-size:1em}.auth-form input:focus{border-color:var(--color-primary, var(--color-primary));outline:none}.auth-form button{margin-top:10px}.auth-form .password-toggle-btn{margin-top:0}.auth-form .error-message{color:var(--color-error, var(--color-error));font-size:.875em;margin-top:4px}.auth-form input[aria-invalid=true]{border-color:var(--color-error, var(--color-error))}.auth-divider{display:flex;align-items:center;text-align:center;margin:var(--spacing-md, 1rem) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.auth-divider span{padding:0 var(--spacing-md, 1rem);color:var(--color-text-tertiary, var(--color-text-tertiary));font-size:var(--font-size-sm, .875rem);text-transform:uppercase;letter-spacing:.05em}.google-signin-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm, .5rem);padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background-color:var(--color-surface, var(--color-surface));color:var(--color-text-primary, var(--color-text-primary));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, .5rem);font-size:var(--font-size-base, 1rem);cursor:pointer;transition:background-color var(--transition-fast, .15s ease-in-out),border-color var(--transition-fast, .15s ease-in-out);min-height:var(--touch-target-min, 44px)}.google-signin-button:hover:not(:disabled){background-color:var(--color-surface-hover, var(--color-surface-variant));border-color:var(--color-border-focus, var(--color-primary))}.google-signin-button:disabled{opacity:.6;cursor:not-allowed}.auth-form .success-message{color:var(--color-success, var(--color-success));font-size:.875em;background-color:#6bcb771a;padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);border-radius:var(--radius-sm, .25rem);border:1px solid var(--color-success, var(--color-success));text-align:center}.auth-form .password-requirements{background-color:var(--color-surface, var(--color-surface));padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);border-radius:var(--radius-sm, .25rem);font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));margin-top:var(--spacing-xs, .25rem)}.auth-form .password-requirements-title{margin:0 0 var(--spacing-xs, .25rem) 0;font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, var(--color-text-primary))}.auth-form .password-requirements ul{margin:0;padding-left:var(--spacing-lg, 1.5rem);list-style-type:disc}.auth-form .password-requirements li{margin-bottom:var(--spacing-xs, .25rem);line-height:1.4}.auth-form .password-requirements li:last-child{margin-bottom:0}.auth-form .guest-upgrade-note,.auth-form .guest-signin-warning{padding:.75em 1em;border-radius:var(--radius-sm, 4px);font-size:.9em;line-height:1.4}.auth-form .guest-upgrade-note{background-color:var(--color-primary-alpha-10, rgba(200, 132, 90, .12));border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));color:var(--color-text-primary)}.auth-form .guest-signin-warning{background-color:var(--color-warning-alpha-10, rgba(232, 184, 48, .1));border:1px solid var(--color-warning, #E8B830);color:var(--color-text-primary)}.footer{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto;flex-shrink:0}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--spacing-xs)}.footer-link{color:var(--color-text-tertiary);font-size:var(--font-size-sm);text-decoration:none;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast)}.footer-link:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.footer-link:focus{outline:2px solid var(--color-primary);outline-offset:2px}.footer-copyright{color:var(--color-text-tertiary);font-size:var(--font-size-xs);margin:0;text-align:center}@media (max-width: 768px){.footer{padding:var(--spacing-md)}.footer-links{flex-direction:column;gap:var(--spacing-xs)}.footer-link{padding:var(--spacing-sm);min-height:var(--touch-target-min, 44px);display:flex;align-items:center;justify-content:center}}.language-selector-container{display:flex;flex-direction:column;gap:var(--spacing-sm)}.language-selector-label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-base)}.language-selector{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-background);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%;max-width:300px}.language-selector:hover:not(:disabled){border-color:var(--color-primary)}.language-selector:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.language-selector:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-background-secondary)}.language-selector-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.language-selector-compact{position:fixed;top:var(--spacing-md);right:var(--spacing-md);z-index:var(--z-fixed, 1030)}.language-selector-compact .language-selector{max-width:none;width:auto;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);background-color:var(--color-surface, var(--color-surface));border-color:var(--color-border, var(--color-surface-variant))}@media (max-width: 768px){.language-selector-compact{top:var(--spacing-sm);right:var(--spacing-sm)}.language-selector-compact .language-selector{font-size:var(--font-size-xs);padding:var(--spacing-xs)}}.auth-page-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background-color:var(--color-background)}.page-container{display:flex;flex-direction:column;align-items:center;padding:2rem;box-sizing:border-box;width:100%;flex:1;justify-content:center}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.auth-brand-logo{width:56px;height:56px}.auth-brand-name{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-primary);letter-spacing:.02em}.auth-form-container{display:flex;flex-direction:column;gap:20px;background-color:var(--color-surface);padding:var(--spacing-2xl) var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.auth-form-container h1{margin:0;text-align:center;font-size:var(--font-size-3xl)}.auth-description{margin:0;text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.auth-form button[type=submit],.auth-form-container>form button[type=submit]{background:var(--gradient-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-md);transition:filter var(--transition-fast),box-shadow var(--transition-fast)}.auth-form button[type=submit]:hover:not(:disabled),.auth-form-container>form button[type=submit]:hover:not(:disabled){filter:brightness(1.06);box-shadow:var(--shadow-lg)}.auth-form button[type=submit]:disabled,.auth-form-container>form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.dashboard-container{text-align:center}.nav-button{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.5em;margin-top:var(--spacing-xs);font-size:.9em;text-align:center}.nav-button:hover{color:var(--color-primary-hover);text-decoration:underline}.forgot-password-link{margin-top:0}@media (max-width: 768px){.page-container{padding:var(--mobile-padding);flex:1 0 auto;justify-content:center}.auth-brand-logo{width:48px;height:48px}.auth-form-container{padding:var(--spacing-xl) var(--spacing-lg);max-width:100%;gap:var(--spacing-md)}.auth-form-container h1{font-size:var(--font-size-2xl)}.auth-form-container input{min-height:var(--touch-target-optimal);font-size:16px;padding:var(--spacing-md)}.auth-form-container button{min-height:var(--touch-target-optimal);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.nav-button{padding:var(--spacing-md);font-size:var(--font-size-base);min-height:var(--touch-target-min)}}.email-verification-container{text-align:center}.email-verification-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--spacing-md, 1rem);border-radius:50%;background:linear-gradient(135deg,#c8845a2e,#d4a57414);border:1px solid var(--color-border-dark);color:var(--color-primary)}.email-verification-instructions{color:var(--text-primary, var(--color-text-primary));margin-bottom:var(--spacing-sm, .5rem)}.email-verification-hint{color:var(--text-tertiary, var(--color-text-tertiary));font-size:var(--font-size-sm, .875rem);margin-bottom:var(--spacing-lg, 1.5rem)}.email-verification-success{color:var(--success-color, var(--color-success));font-size:var(--font-size-sm, .875rem);background-color:var(--success-bg, rgba(107, 203, 119, .1));padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);border-radius:var(--radius-sm, .25rem);margin-bottom:var(--spacing-md, 1rem)}.email-verification-error{color:var(--error-color, var(--color-error));font-size:var(--font-size-sm, .875rem);background-color:var(--error-bg, rgba(207, 102, 121, .1));padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);border-radius:var(--radius-sm, .25rem);margin-bottom:var(--spacing-md, 1rem)}.email-verification-actions{display:flex;flex-direction:column;gap:var(--spacing-sm, .5rem)}.email-verification-actions .primary-button{padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background-color:var(--accent-color, var(--color-primary));color:var(--color-text-primary);border:none;border-radius:var(--radius-md, .5rem);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast, .15s ease-in-out);min-height:var(--touch-target-min, 44px)}.email-verification-actions .primary-button:hover:not(:disabled){background-color:var(--accent-color-hover, var(--color-primary-dark))}.email-verification-actions .primary-button:disabled{opacity:.6;cursor:not-allowed}.email-verification-actions .secondary-button{padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background-color:transparent;color:var(--accent-color, var(--color-primary));border:1px solid var(--accent-color, var(--color-primary));border-radius:var(--radius-md, .5rem);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast, .15s ease-in-out);min-height:var(--touch-target-min, 44px)}.email-verification-actions .secondary-button:hover:not(:disabled){background-color:var(--accent-bg, rgba(200, 132, 90, .1))}.email-verification-actions .secondary-button:disabled{opacity:.6;cursor:not-allowed}.email-verification-actions .text-button{padding:var(--spacing-sm, .5rem);background-color:transparent;color:var(--text-tertiary, var(--color-text-tertiary));border:none;font-size:var(--font-size-sm, .875rem);cursor:pointer;text-decoration:underline}.email-verification-actions .text-button:hover{color:var(--text-secondary, var(--color-text-tertiary))}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{min-width:300px;max-width:500px;padding:16px 20px;border-radius:8px;box-shadow:0 4px 12px #0f0a0826;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto;animation:slideIn .3s ease-out;font-size:14px;line-height:1.4}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast.toast-exit{animation:slideOut .3s ease-in forwards}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.toast-success{background-color:var(--color-success);color:var(--color-text-on-primary)}.toast-error{background-color:var(--color-error);color:var(--color-text-on-primary)}.toast-info{background-color:var(--color-info);color:var(--color-text-on-primary)}.toast-warning{background-color:var(--color-primary);color:var(--color-text-on-primary)}.toast-content{flex:1;display:flex;align-items:center;gap:10px}.toast-icon{font-size:20px;flex-shrink:0}.toast-message{flex:1;word-break:break-word}.toast-close{background:none;border:none;color:inherit;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;opacity:.8;transition:opacity .2s,background-color .2s}.toast-close:hover{opacity:1;background-color:#0f0a081a}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;max-width:100%}}.recipe-generator{background-color:var(--color-surface);border:1px solid var(--border-card);border-radius:var(--radius-xl);padding:var(--spacing-lg);box-shadow:0 0 20px #c8845a0d;height:fit-content}.recipe-generator-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.recipe-generator h2.vibe-label{font-family:var(--font-display);font-weight:var(--font-weight-normal);font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:0;text-align:left;flex:1}.vibe-input{width:100%;min-height:64px;padding:var(--spacing-md);background:var(--color-background-tertiary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);resize:none;transition:border-color var(--transition-base)}.vibe-input:focus{outline:none;border-color:var(--color-primary)}.vibe-input::placeholder{color:var(--color-text-secondary);opacity:.6}.suggestion-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.suggestion-chip{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--tag-border);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--font-size-sm);min-height:auto;cursor:pointer;transition:all var(--transition-base)}.suggestion-chip:hover,.suggestion-chip.active{background:#c8845a33;border-color:var(--color-primary);color:var(--color-primary)}.on-hand-row{display:flex;flex-direction:column;gap:var(--spacing-sm)}.on-hand-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.on-hand-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs)}.on-hand-chip{min-height:auto}.on-hand-input{flex:1;min-width:180px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-tertiary);border:1px solid transparent;border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--font-size-sm)}.on-hand-input:focus{outline:none;border-color:var(--color-primary)}.on-hand-input::placeholder{color:var(--color-text-secondary);opacity:.6}.generator-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.advanced-toggle{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--color-primary);font-size:var(--font-size-sm);opacity:.75;cursor:pointer;transition:opacity var(--transition-base)}.advanced-toggle:hover{opacity:1}.advanced-chevron{display:inline-flex;transition:transform var(--transition-base)}.advanced-chevron.open{transform:rotate(180deg)}.advanced-drawer{display:flex;flex-direction:column;gap:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.clear-session-button{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all .2s ease}.clear-session-button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text-primary)}.clear-session-button:disabled{opacity:.5;cursor:not-allowed}.recipe-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-row{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-row label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-base)}.form-row input,.form-row select{width:100%}.help-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xs);line-height:1.4}.toggle-row{display:flex;gap:var(--spacing-xs)}.toggle-option{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);transition:var(--transition-base);color:var(--color-text-primary)}.toggle-option:hover{border-color:var(--color-primary)}.toggle-option.active{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.mode-selector{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.mode-option{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;min-width:70px;min-height:auto;color:var(--color-text-primary);transition:var(--transition-base);flex:1 1 0}.mode-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.mode-option.active{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.mode-icon{font-size:var(--font-size-xl);margin-bottom:var(--spacing-xs)}.mode-name{font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-medium);text-align:center;white-space:normal;line-height:var(--line-height-tight, 1.25)}.form-row.checkbox-row{flex-direction:row;align-items:center;padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-base)}.form-row.checkbox-row:hover{background-color:var(--color-primary-light)}.form-row.checkbox-row input[type=checkbox]{width:auto;margin:0;margin-right:var(--spacing-sm)}.form-row.checkbox-row label{margin:0;cursor:pointer;flex:1}.portion-inputs{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-md)}.portion-inputs input{min-width:0}.portion-inputs input.input-error{border-color:var(--color-error)}.portion-inputs select{width:120px}.generate-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);margin-left:auto;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);background:var(--gradient-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-md)}.generate-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow)}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{background:var(--color-text-tertiary);cursor:not-allowed;transform:none}.tag-input-container{display:flex;flex-direction:column;gap:var(--spacing-sm)}.selected-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:999px;font-size:var(--font-size-sm);color:var(--color-primary)}.tag button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:var(--color-primary);color:var(--color-text-on-primary);border-radius:50%;cursor:pointer;font-size:var(--font-size-sm);line-height:1;transition:var(--transition-base)}.tag button:hover{background:var(--color-primary-hover)}.input-with-dropdown{display:flex;gap:var(--spacing-sm)}.input-with-dropdown input{flex:1}.input-with-dropdown button{white-space:nowrap;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:var(--transition-base)}.input-with-dropdown button:hover:not(:disabled){background:var(--color-primary-hover)}.input-with-dropdown button:disabled{background:var(--color-text-tertiary);cursor:not-allowed}.equipment-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-sm)}.equipment-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base)}.equipment-checkbox:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.equipment-checkbox input[type=checkbox]{width:auto;margin:0}.equipment-checkbox input:checked+span{color:var(--color-primary);font-weight:var(--font-weight-medium)}.conflict-warning{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:var(--color-warning-dark);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.conflict-warning .icon{flex-shrink:0;width:16px;height:16px}.avoid-tag{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.avoid-tag button{background:var(--color-error)}.avoid-tag button:hover{background:var(--color-error-dark)}@media (max-width: 768px){.recipe-generator{padding:var(--mobile-padding)}.recipe-generator h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}.recipe-form{gap:var(--spacing-md)}.form-row{gap:var(--mobile-gap)}.form-row label{font-size:var(--font-size-base)}.form-row.checkbox-row{padding:var(--spacing-md);min-height:var(--touch-target-optimal)}.portion-inputs{grid-template-columns:1fr;gap:var(--mobile-gap)}.portion-inputs select{width:100%}.generate-button{margin-top:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-optimal)}.mode-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.mode-option{min-width:auto;padding:var(--spacing-sm)}.mode-icon{font-size:var(--font-size-lg)}.mode-name{font-size:var(--font-size-xs)}.equipment-checkboxes{grid-template-columns:1fr 1fr}.input-with-dropdown{flex-direction:column}.input-with-dropdown button{width:100%}}.guest-quota-indicator{margin:0 0 .25rem;font-size:.85rem;color:var(--color-secondary, #D4A574);text-align:right}.skeleton{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-hover) 50%,var(--color-surface) 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.recipe-skeleton{padding:var(--spacing-xl);max-width:var(--max-width-lg);background-color:var(--color-surface);border-radius:var(--radius-xl)}.skeleton-title{height:32px;width:60%;margin-bottom:var(--spacing-xl)}.skeleton-section{margin-bottom:var(--spacing-lg)}.skeleton-line{height:16px;margin-bottom:var(--spacing-md);width:100%}.skeleton-line:last-child{width:80%}.skeleton-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-2xl);margin-top:var(--spacing-xl)}.skeleton-column{display:flex;flex-direction:column;gap:var(--spacing-md)}.skeleton-header{height:24px;width:40%;margin-bottom:var(--spacing-lg)}.inventory-skeleton{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg) 0}.skeleton-item{height:60px;border-radius:var(--radius-lg)}.list-skeleton{display:flex;flex-direction:column;gap:var(--spacing-sm)}.skeleton-list-item{height:48px;border-radius:var(--radius-md)}.card-skeleton{border-radius:var(--radius-xl);padding:var(--spacing-xl);background-color:var(--color-surface);box-shadow:var(--shadow-lg)}.skeleton-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.skeleton-card-title{height:24px;width:60%}.skeleton-card-action{height:32px;width:32px;border-radius:var(--radius-full)}.skeleton-card-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.skeleton-card-text{height:14px}.skeleton-card-text:last-child{width:70%}.cards-skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-xl);padding:var(--spacing-lg) 0}.profile-skeleton{max-width:var(--max-width-lg);margin:0 auto;background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl)}.skeleton-tabs{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.skeleton-tab{height:40px;width:150px;border-radius:var(--radius-md)}.skeleton-form-group{margin-bottom:var(--spacing-xl)}.skeleton-label{height:16px;width:150px;margin-bottom:var(--spacing-md)}.skeleton-input{height:40px;width:100%;border-radius:var(--radius-md)}.skeleton-checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-md)}.skeleton-checkbox{height:20px;width:120px;border-radius:var(--radius-sm)}@media (max-width: 768px){.skeleton-columns,.cards-skeleton{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background-color:#0f0a0899;display:flex;justify-content:center;align-items:center;z-index:1000;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--spacing-md) 0;box-sizing:border-box}.modal-content{background:var(--color-surface);padding:2rem;border-radius:8px;width:90%;max-width:500px;max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;margin:auto;flex-shrink:0;box-shadow:0 5px 15px #0f0a084d;text-align:center}.modal-content h2{margin-top:0;color:var(--color-text-primary)}.modal-content p{margin-bottom:1.5rem;color:var(--color-text-tertiary)}.modal-actions{display:flex;justify-content:center;gap:1rem}.modal-actions button{padding:10px 20px;border:none;border-radius:5px;cursor:pointer;font-weight:700}.modal-actions .primary-action{background-color:var(--color-primary);color:var(--color-text-on-primary)}.modal-actions .secondary-action{background-color:var(--color-text-tertiary);color:var(--color-text-on-primary)}@media (max-width: 768px){.modal-content{width:95%;max-width:95vw;padding:var(--spacing-lg);max-height:90vh;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content h2{font-size:var(--font-size-xl)}.modal-content p{font-size:var(--font-size-base);margin-bottom:var(--spacing-lg)}.modal-actions{flex-direction:column;gap:var(--mobile-gap)}.modal-actions button{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-optimal)}}.ingredient-check-modal{max-width:500px;margin:0 auto}.ingredient-check-modal h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);text-align:center}.ingredient-check-modal .subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-lg)}.all-available{text-align:center;padding:var(--spacing-lg) 0}.all-available .success-icon{width:64px;height:64px;background-color:var(--color-success);color:var(--color-text-on-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-3xl);margin:0 auto var(--spacing-lg)}.all-available p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.ingredient-section{margin-bottom:var(--spacing-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.ingredient-section h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.select-buttons{display:flex;gap:var(--spacing-xs)}.select-button{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.select-button:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-on-primary)}.select-button:disabled{opacity:.5;cursor:not-allowed}.ingredient-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:200px;overflow-y:auto;padding-right:var(--spacing-sm)}.ingredient-list::-webkit-scrollbar{width:6px}.ingredient-list::-webkit-scrollbar-track{background:var(--color-background);border-radius:var(--radius-full)}.ingredient-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.ingredient-list::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.ingredient-item{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);border:1px solid var(--color-border)}.ingredient-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.ingredient-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0}.ingredient-name{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ingredient-section.already-in-list{background-color:var(--color-success-light, rgba(107, 203, 119, .1));padding:var(--spacing-md);border-radius:var(--radius-md)}.ingredient-section.already-in-list h3{color:var(--color-success);margin-bottom:var(--spacing-sm)}.ingredient-item.in-grocery{display:flex;align-items:center;gap:var(--spacing-sm);background-color:transparent;border:none;padding:var(--spacing-xs) 0}.ingredient-item.in-grocery .check-icon{color:var(--color-success);font-weight:var(--font-weight-bold)}.ingredient-section.existing-in-list{background-color:var(--color-info-light, rgba(212, 165, 116, .1));padding:var(--spacing-md);border-radius:var(--radius-md)}.ingredient-section.existing-in-list h3{color:var(--color-primary)}.ingredient-section.existing-in-list .section-info{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 var(--spacing-sm)}.ingredient-item.existing-grocery{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.ingredient-item.existing-grocery.incompatible{border-color:var(--color-warning, var(--color-warning));background-color:var(--color-warning-light, rgba(232, 184, 48, .1))}.ingredient-item.existing-grocery .ingredient-label{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.ingredient-item.existing-grocery .ingredient-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ingredient-item.existing-grocery .ingredient-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.quantity-preview{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.quantity-preview strong{color:var(--color-success);font-weight:var(--font-weight-semibold)}.quantity-warning{font-size:var(--font-size-xs);color:var(--color-warning, var(--color-warning))}.ingredient-section.partial-available{background-color:var(--color-warning-light, rgba(232, 184, 48, .1));padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-warning, var(--color-warning))}.ingredient-section.partial-available h3{color:var(--color-warning-dark, var(--color-warning-dark))}.ingredient-section.partial-available .section-info{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 var(--spacing-sm)}.ingredient-item.partial-item{background-color:var(--color-surface)}.ingredient-item.partial-item .ingredient-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.shortage-indicator{font-size:var(--font-size-xs);color:var(--color-warning-dark, var(--color-warning-dark));font-weight:var(--font-weight-medium);display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px)}.info-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background-color:var(--color-text-tertiary, var(--color-text-tertiary));color:var(--color-bg-primary, var(--color-background));font-size:10px;font-weight:var(--font-weight-bold, 700);cursor:help;flex-shrink:0;line-height:1}.info-tooltip-trigger:hover{background-color:var(--color-text-secondary, var(--color-text-tertiary))}.smart-amount{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.grocery-amount-preview{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.available-summary{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.available-summary .check-icon{color:var(--color-success);font-weight:var(--font-weight-bold)}.available-summary span:last-child{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.primary-button{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-success);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.primary-button:hover:not(:disabled){background-color:var(--color-success)}.primary-button:disabled{opacity:.7;cursor:not-allowed}.secondary-button{padding:var(--spacing-md) var(--spacing-xl);background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.secondary-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-text-tertiary)}.secondary-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.ingredient-check-modal{padding:var(--spacing-md)}.section-header{flex-direction:column;align-items:flex-start}.modal-actions{flex-direction:column}.primary-button,.secondary-button{width:100%;min-height:var(--touch-target-optimal)}}.substitution-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);background-color:transparent;border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.substitution-button:hover:not(:disabled){background-color:var(--color-primary-light);color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.substitution-button:focus{outline:none;box-shadow:0 0 0 2px var(--color-background),0 0 0 4px var(--color-primary)}.substitution-button:disabled{opacity:.5;cursor:not-allowed}.substitution-button--small{padding:2px var(--spacing-xs);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.substitution-button--icon-only{padding:var(--spacing-xs);width:28px;height:28px;border-radius:var(--radius-full)}.substitution-button__icon{display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-base);line-height:1}@media (max-width: 768px){.substitution-button{min-height:var(--touch-target-min);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base)}.substitution-button--small{min-height:36px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.substitution-button--icon-only{min-width:var(--touch-target-min);min-height:var(--touch-target-min);width:var(--touch-target-min);height:var(--touch-target-min)}}.substitution-modal-overlay{position:fixed;inset:0;background-color:#0f0a08b3;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal);padding:var(--spacing-md)}.substitution-modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:80vh;max-height:80dvh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.substitution-modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.substitution-modal__header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.substitution-modal__close{background:transparent;border:none;font-size:var(--font-size-2xl);color:var(--color-text-tertiary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.substitution-modal__close:hover{color:var(--color-text-primary)}.substitution-modal__content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.substitution-modal__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.substitution-modal__loading .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--spacing-md)}.substitution-modal__error{background-color:#cf66791a;border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-md);color:var(--color-error);text-align:center}.substitution-modal__no-results{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.substitution-modal__no-results p:first-child{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.substitution-modal__no-results p:last-child{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.substitution-suggestions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.substitution-suggestion{background:var(--color-surface-variant);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.substitution-suggestion__main{flex:1;min-width:0}.substitution-suggestion__header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.substitution-suggestion__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.substitution-suggestion__confidence{font-size:var(--font-size-xs);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:var(--font-weight-medium)}.confidence--high{background-color:#6bcb7733;color:var(--color-success)}.confidence--medium{background-color:#e8b83033;color:var(--color-warning)}.confidence--low{background-color:#8a7a6c33;color:var(--color-text-tertiary)}.substitution-suggestion__ratio{font-size:var(--font-size-sm);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.substitution-suggestion__notes{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.substitution-suggestion__dietary{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.dietary-tag{font-size:var(--font-size-xs);background-color:var(--color-primary-light);color:var(--color-primary);padding:2px var(--spacing-xs);border-radius:var(--radius-sm)}.substitution-suggestion__select{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast);white-space:nowrap}.substitution-suggestion__select:hover{background-color:var(--color-primary-hover)}.substitution-evaluate{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.substitution-evaluate__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.substitution-evaluate__row{display:flex;gap:var(--spacing-sm)}.substitution-evaluate__input{flex:1;min-width:0;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-variant);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-base)}.substitution-evaluate__input:focus{outline:none;border-color:var(--color-primary)}.substitution-evaluate__submit{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast);white-space:nowrap}.substitution-evaluate__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.substitution-evaluate__submit:disabled{opacity:.5;cursor:not-allowed}.substitution-evaluate__loading{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.substitution-evaluate__loading .spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.substitution-evaluate__loading p{margin:0}.substitution-evaluate__error{margin-top:var(--spacing-md);background-color:#cf66791a;border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-md);color:var(--color-error);font-size:var(--font-size-sm)}.substitution-verdict-panel{margin-top:var(--spacing-md);background:var(--color-surface-variant);border-radius:var(--radius-md);border-left:3px solid var(--color-border);padding:var(--spacing-md)}.substitution-verdict-panel--works{border-left-color:var(--color-success)}.substitution-verdict-panel--works-with-adjustments{border-left-color:var(--color-warning)}.substitution-verdict-panel--not-recommended{border-left-color:var(--color-error)}.substitution-verdict-panel__header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);flex-wrap:wrap}.substitution-verdict-panel__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.substitution-verdict{font-size:var(--font-size-xs);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:var(--font-weight-medium)}.substitution-verdict--works{background-color:#6bcb7733;color:var(--color-success)}.substitution-verdict--works-with-adjustments{background-color:#e8b83033;color:var(--color-warning)}.substitution-verdict--not-recommended{background-color:#cf667933;color:var(--color-error)}.substitution-verdict-panel__amount{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.substitution-verdict-panel__ratio{font-size:var(--font-size-sm);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.substitution-verdict-panel__notes{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.substitution-verdict-panel__impact{margin:0 0 var(--spacing-sm)}.substitution-verdict-panel__impact-row{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.substitution-verdict-panel__impact-row dt{flex-shrink:0;min-width:64px;font-weight:var(--font-weight-medium);color:var(--color-text-tertiary)}.substitution-verdict-panel__impact-row dd{margin:0;color:var(--color-text-secondary)}.substitution-evaluate__apply--warn{background-color:transparent;border:1px solid var(--color-error);color:var(--color-error)}.substitution-evaluate__apply--warn:hover{background-color:#cf66791a}.substitution-evaluate__alternatives{margin-top:var(--spacing-md)}.substitution-evaluate__alternatives h3{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-text-tertiary)}@media (max-width: 768px){.substitution-modal-overlay{padding:var(--spacing-sm);align-items:flex-end}.substitution-modal{max-height:90vh;max-height:90dvh;border-bottom-left-radius:0;border-bottom-right-radius:0}.substitution-modal__header{padding:var(--spacing-md)}.substitution-modal__header h2{font-size:var(--font-size-lg)}.substitution-modal__content{padding:var(--spacing-md)}.substitution-suggestion{flex-direction:column;gap:var(--spacing-sm)}.substitution-suggestion__select{width:100%;min-height:var(--touch-target-optimal);font-size:var(--font-size-base)}}.substitution-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm);background-color:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-primary)}.substitution-badge__icon{font-size:var(--font-size-xs)}.substitution-badge__text{font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.substitution-badge__revert{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;margin-left:var(--spacing-xs);font-size:var(--font-size-base);color:var(--color-primary);cursor:pointer;line-height:1;width:16px;height:16px;border-radius:var(--radius-full);transition:all var(--transition-fast)}.substitution-badge__revert:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.substitution-badge--compact{padding:2px var(--spacing-xs);gap:2px}.substitution-badge--compact .substitution-badge__text{display:none}@media (max-width: 768px){.substitution-badge{padding:var(--spacing-xs) var(--spacing-sm)}.substitution-badge__revert{width:24px;height:24px;font-size:var(--font-size-lg)}}.no-substitutes-modal-overlay{position:fixed;inset:0;background-color:#0f0a08b3;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal);padding:var(--spacing-md)}.no-substitutes-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);width:100%;max-width:400px;text-align:center;box-shadow:var(--shadow-xl);position:relative}.no-substitutes-modal__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:transparent;border:none;font-size:var(--font-size-2xl);color:var(--color-text-tertiary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.no-substitutes-modal__close:hover{color:var(--color-text-primary)}.no-substitutes-modal__icon{width:60px;height:60px;border-radius:var(--radius-full);background-color:#e8b83033;color:var(--color-warning);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg)}.no-substitutes-modal__message{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--spacing-lg);line-height:var(--line-height-relaxed)}.no-substitutes-modal__message strong{color:var(--color-primary)}.no-substitutes-modal__excluded{background-color:var(--color-surface-variant);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);text-align:left}.no-substitutes-modal__excluded-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.no-substitutes-modal__excluded-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.no-substitutes-modal__excluded-list li{background-color:var(--color-primary-light);color:var(--color-primary);padding:2px var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm)}.no-substitutes-modal__actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.no-substitutes-modal__button{width:100%;padding:var(--spacing-md);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.no-substitutes-modal__button--primary{background-color:var(--color-primary);color:var(--color-text-on-primary)}.no-substitutes-modal__button--primary:hover{background-color:var(--color-primary-hover)}.no-substitutes-modal__button--secondary{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.no-substitutes-modal__button--secondary:hover{background-color:var(--color-surface-variant);color:var(--color-text-primary)}.no-substitutes-modal__hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0}@media (max-width: 768px){.no-substitutes-modal-overlay{padding:var(--spacing-sm);align-items:flex-end}.no-substitutes-modal{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:var(--spacing-lg)}.no-substitutes-modal__icon{width:50px;height:50px;font-size:var(--font-size-2xl)}.no-substitutes-modal__message{font-size:var(--font-size-base)}.no-substitutes-modal__button{min-height:var(--touch-target-optimal)}}.unit-system-selector{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);position:relative}.unit-system-dropdown{padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, 6px);background-color:var(--color-surface, var(--color-surface));color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem);font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s ease-in-out);min-width:130px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23cbd5e1' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm, .5rem) center;padding-right:calc(var(--spacing-sm, .5rem) + 16px)}.unit-system-dropdown:hover:not(:disabled){border-color:var(--color-primary, var(--color-primary));background-color:var(--color-surface-hover, var(--color-surface-variant))}.unit-system-dropdown:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px;border-color:var(--color-primary, var(--color-primary))}.unit-system-dropdown:disabled{opacity:.5;cursor:not-allowed}.unit-system-dropdown option{background-color:var(--color-surface, var(--color-surface));color:var(--color-text-primary, var(--color-text-primary));padding:var(--spacing-sm, .5rem)}.unit-system-selector-loading{display:flex;align-items:center;margin-right:var(--spacing-xs, .25rem)}.loading-spinner{width:14px;height:14px;border:2px solid var(--color-border, var(--color-surface-variant));border-top-color:var(--color-primary, var(--color-primary));border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 480px){.unit-system-dropdown{font-size:var(--font-size-sm, .875rem);min-width:110px;padding:var(--spacing-xs, .25rem) var(--spacing-xs, .25rem);padding-right:calc(var(--spacing-xs, .25rem) + 16px)}}.loading-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);background-color:var(--color-surface);border-radius:var(--radius-lg);min-height:300px;gap:var(--spacing-lg);animation:fadeIn .3s ease-in}.loading-progress-icon{font-size:3rem;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.loading-progress-content{text-align:center;max-width:400px}.loading-progress-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;min-height:1.5em}.loading-progress-description{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0;line-height:1.5}.loading-progress-spinner{margin-top:var(--spacing-md)}.spinner{width:40px;height:40px;border:4px solid var(--color-surface-variant);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.error-display{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);background-color:var(--color-surface);border-radius:var(--radius-lg);border:2px solid var(--color-error);min-height:300px;gap:var(--spacing-lg);animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-illustration{width:min(300px,70%);height:auto;animation:shake .5s ease-in-out}.error-icon{display:inline-flex;align-items:center;margin-right:var(--spacing-sm);vertical-align:middle}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-content{text-align:center;max-width:500px;width:100%}.error-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-error);margin:0 0 var(--spacing-sm) 0}.error-message{font-size:var(--font-size-base);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;line-height:1.5}.error-suggestions{background-color:var(--color-surface-variant);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);text-align:left}.error-suggestions-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);margin:0 0 var(--spacing-sm) 0;text-transform:uppercase;letter-spacing:.5px}.error-suggestions ul{list-style:none;padding:0;margin:0}.error-suggestions li{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--spacing-xs) 0;padding-left:var(--spacing-md);position:relative}.error-suggestions li:before{content:"•";position:absolute;left:0;color:var(--color-primary);font-weight:700}.error-actions{margin-top:var(--spacing-md)}.retry-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-background);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all .2s ease}.retry-button:hover{background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.retry-button:active{transform:translateY(0)}.retry-button:disabled{background-color:var(--color-surface-variant);color:var(--color-text-secondary);cursor:not-allowed;transform:none}.error-max-retries{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-md);font-style:italic}.modal-content:has(.recipe-adjustment-modal){max-width:720px;width:min(95vw,720px);text-align:left}.recipe-adjustment-modal{display:flex;flex-direction:column;gap:var(--spacing-md, 16px);width:100%;max-height:70vh;max-height:70dvh;overflow-y:auto}.recipe-adjustment-modal .modal-title{margin:0 0 var(--spacing-sm, 8px) 0;font-size:var(--font-size-xl, 1.25rem);color:var(--color-text-primary, var(--color-text-primary));font-weight:600}.adjustment-mode-selector{display:flex;gap:var(--spacing-xs, 4px);background-color:var(--color-surface, var(--color-surface-variant));padding:var(--spacing-xs, 4px);border-radius:var(--border-radius, 8px)}.mode-button{flex:1;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border:none;background-color:transparent;border-radius:var(--border-radius, 8px);cursor:pointer;font-size:.9rem;font-weight:500;color:var(--color-text-secondary, var(--color-text-tertiary));transition:all .2s ease}.mode-button:hover{background-color:var(--color-surface-hover, var(--color-surface-variant))}.mode-button.active{background-color:var(--color-primary, var(--color-primary-dark));color:var(--color-text-on-primary)}.serving-mode-content{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.current-servings{display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-sm, 8px);background-color:var(--color-surface, var(--color-surface-variant));border-radius:var(--border-radius, 8px)}.current-servings .label{color:var(--color-text-secondary, var(--color-text-tertiary))}.current-servings .value{font-weight:600;color:var(--color-text-primary, var(--color-text-primary))}.new-servings-input{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.new-servings-input label{font-weight:500}.new-servings-input input{width:100px;padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius, 8px);font-size:1rem}.new-servings-input .unit-label{color:var(--color-text-secondary, var(--color-text-tertiary))}.ingredient-mode-content{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.instruction-text{color:var(--color-text-secondary, var(--color-text-tertiary));font-size:.9rem;margin:0}.ingredient-selection-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);max-height:300px;overflow-y:auto;padding-right:var(--spacing-xs, 4px);width:100%}.ingredient-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius, 8px);background-color:var(--color-surface);cursor:pointer;transition:all .2s ease;text-align:left}.ingredient-option:hover{border-color:var(--color-primary, var(--color-primary-dark));background-color:var(--color-primary-light, var(--color-primary-light))}.ingredient-option.selected{border-color:var(--color-primary, var(--color-primary-dark));background-color:var(--color-primary-light, var(--color-primary-light));border-width:2px}.ingredient-option .ingredient-name{flex:1;font-weight:500}.ingredient-option .ingredient-quantity{color:var(--color-text-secondary, var(--color-text-tertiary));font-size:.9rem}.selected-indicator{color:var(--color-primary, var(--color-primary-dark));font-weight:700;margin-left:var(--spacing-sm, 8px)}.new-quantity-input{display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-md, 16px);background-color:var(--color-surface, var(--color-surface-variant));border-radius:var(--border-radius, 8px)}.new-quantity-input label{font-weight:500}.new-quantity-input input{width:120px;padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius, 8px);font-size:1rem}.new-quantity-input select{padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius, 8px);font-size:.9rem;background-color:var(--color-surface)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md, 16px);padding:var(--spacing-lg, 24px)}.loading-container p{color:var(--color-text-secondary, var(--color-text-tertiary));font-size:.9rem;margin:0}.adjusted-preview{background-color:var(--color-surface, var(--color-surface-variant));border-radius:var(--border-radius, 8px);padding:var(--spacing-md, 16px)}.adjusted-preview h4{margin:0 0 var(--spacing-sm, 8px) 0;color:var(--color-text-primary, var(--color-text-primary))}.scale-factor{font-size:.9rem;color:var(--color-text-secondary, var(--color-text-tertiary));margin:0 0 var(--spacing-md, 16px) 0}.new-portions{color:var(--color-primary, var(--color-primary-dark));font-weight:600}.adjusted-ingredients-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.adjusted-ingredient{display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);background-color:var(--color-surface);border-radius:var(--border-radius, 8px)}.adjusted-ingredient .ingredient-name{flex:1;font-weight:500}.quantity-change{display:flex;align-items:center;gap:var(--spacing-xs, 4px);font-size:.9rem}.quantity-change .original{color:var(--color-text-secondary, var(--color-text-tertiary));text-decoration:line-through}.quantity-change .arrow{color:var(--color-text-secondary, var(--color-text-tertiary))}.quantity-change .adjusted{color:var(--color-primary, var(--color-primary-dark));font-weight:600}.scaling-badge{font-size:.75rem;padding:2px 6px;border-radius:12px;white-space:nowrap}.scaling-badge.non-linear{background-color:var(--color-warning-light);color:var(--color-warning-dark)}.scaling-badge.minimum-amount{background-color:var(--color-info-light);color:var(--color-primary-dark)}.scaling-badge.no-change{background-color:var(--color-surface-variant);color:var(--color-text-secondary)}.adjustment-notes{cursor:help;font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm, 8px);margin-top:var(--spacing-md, 16px);padding-top:var(--spacing-md, 16px);border-top:1px solid var(--color-border, var(--color-border))}.modal-actions button{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--border-radius, 8px);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cancel-button{background-color:transparent;border:1px solid var(--color-border, var(--color-border));color:var(--color-text-secondary, var(--color-text-tertiary))}.cancel-button:hover{background-color:var(--color-surface, var(--color-surface-variant))}.recalculate-button{background-color:var(--color-primary, var(--color-primary-dark));border:none;color:var(--color-text-on-primary)}.recalculate-button:hover:not(:disabled){background-color:var(--color-primary-dark, var(--color-primary-dark))}.recalculate-button:disabled{opacity:.6;cursor:not-allowed}.revert-button{background-color:transparent;border:1px solid var(--color-border, var(--color-border));color:var(--color-text-secondary, var(--color-text-tertiary))}.revert-button:hover{background-color:var(--color-surface, var(--color-surface-variant))}.apply-button{background-color:var(--color-success, var(--color-success));border:none;color:var(--color-text-on-primary)}.apply-button:hover{background-color:var(--color-success-dark, var(--color-success-dark))}@media (max-width: 600px){.modal-content:has(.recipe-adjustment-modal){width:98vw;max-width:98vw;padding:var(--spacing-md, 12px)}.recipe-adjustment-modal{max-height:75vh;max-height:75dvh}.adjustment-mode-selector{flex-direction:column}.new-servings-input{flex-wrap:wrap}.new-quantity-input{flex-wrap:wrap;gap:var(--spacing-sm, 8px)}.new-quantity-input input{width:100%;flex:1}.new-quantity-input select{flex:1}.modal-actions{flex-wrap:wrap}.modal-actions button{flex:1;min-width:100px}.ingredient-selection-list{max-height:200px}}@media (prefers-color-scheme: dark){.adjustment-mode-selector{background-color:var(--color-surface-dark, var(--color-surface-variant))}.mode-button{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.mode-button:hover{background-color:var(--color-surface-hover-dark, var(--color-surface-hover))}.current-servings{background-color:var(--color-surface-dark, var(--color-surface-variant))}.ingredient-option{background-color:var(--color-surface-dark, var(--color-surface-variant));border-color:var(--color-border-dark, var(--color-text-secondary))}.ingredient-option:hover,.ingredient-option.selected{background-color:var(--color-primary-light-dark, var(--color-primary-dark))}.new-quantity-input{background-color:var(--color-surface-dark, var(--color-surface-variant))}.new-quantity-input input,.new-quantity-input select{background-color:var(--color-surface-dark, var(--color-surface-variant));color:var(--color-text-primary-dark, var(--color-surface-variant));border-color:var(--color-border-dark, var(--color-text-secondary))}.adjusted-preview{background-color:var(--color-surface-dark, var(--color-surface-variant))}.adjusted-ingredient{background-color:var(--color-surface-dark, var(--color-surface-hover))}.modal-actions{border-top-color:var(--color-border-dark, var(--color-text-secondary))}}.report-recipe-modal{width:100%;max-width:500px;text-align:left}.report-recipe-title{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.report-recipe-description{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.report-recipe-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.report-recipe-reason-fieldset{margin:0;padding:0;border:none}.report-recipe-reason-legend{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.report-recipe-reason-options{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.report-recipe-reason-option{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.report-recipe-reason-option:hover,.report-recipe-reason-option.selected{border-color:var(--color-primary);background-color:var(--color-primary-light)}.report-recipe-reason-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.report-recipe-reason-label{font-size:var(--font-size-sm);color:var(--color-text-primary)}.report-recipe-description-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.report-recipe-description-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.report-recipe-description-input{width:100%;min-height:100px;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast)}.report-recipe-description-input::placeholder{color:var(--color-text-tertiary)}.report-recipe-description-input:focus{outline:none;border-color:var(--color-border-focus)}.report-recipe-description-input:disabled{opacity:.6;cursor:not-allowed}.report-recipe-char-count{align-self:flex-end;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.report-recipe-disclosure{padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-recipe-disclosure-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.report-recipe-disclosure-list{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.report-recipe-disclosure-list li{margin-bottom:var(--spacing-xs)}.report-recipe-disclosure-list li:last-child{margin-bottom:0}.report-recipe-consent{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer}.report-recipe-consent input[type=checkbox]{margin-top:2px;cursor:pointer}.report-recipe-consent span{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal)}.report-recipe-error{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-error);background-color:#cf66791a;border-radius:var(--radius-md)}.report-recipe-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.report-recipe-button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.report-recipe-button:disabled{opacity:.5;cursor:not-allowed}.report-recipe-button-primary{color:var(--color-background);background-color:var(--color-primary);border:none}.report-recipe-button-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.report-recipe-button-secondary{color:var(--color-text-secondary);background-color:transparent;border:1px solid var(--color-border)}.report-recipe-button-secondary:hover:not(:disabled){background-color:var(--color-surface-hover)}.report-recipe-success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) 0;text-align:center}.report-recipe-success-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:var(--font-size-xl);color:var(--color-success);background-color:#6bcb771a;border-radius:var(--radius-full)}.report-recipe-success-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.report-recipe-success-message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media (max-width: 480px){.report-recipe-reason-options{flex-direction:column}.report-recipe-reason-option{width:100%;justify-content:center}.report-recipe-actions{flex-direction:column-reverse}.report-recipe-button{width:100%;min-height:var(--touch-target-optimal)}}.register-upsell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.5rem;border-radius:var(--radius-md, 8px);background-color:var(--color-surface, #1E1816);border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));box-shadow:var(--shadow-md, 0 4px 12px rgba(20, 12, 8, .4))}.register-upsell-inline{margin:1rem 0}.register-upsell-icon{color:var(--color-primary, #C8845A)}.register-upsell-title{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);font-size:1.25rem;color:var(--color-text-primary, #F5EDE4)}.register-upsell-message,.register-upsell-keep{margin:0;color:var(--color-text-secondary, #B0A090);line-height:1.5}.register-upsell-cta{display:inline-block;margin-top:.5rem;padding:.65em 1.4em;border-radius:var(--radius-sm, 6px);background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600;text-decoration:none}.register-upsell-cta:hover{background-color:var(--color-secondary, #D4A574)}.register-upsell-close{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-secondary, #B0A090);cursor:pointer}.register-upsell-close:hover{color:var(--color-text-primary, #F5EDE4);background-color:var(--color-primary-alpha-10, rgba(200, 132, 90, .12))}.register-upsell-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background-color:#140c08a6}.register-upsell-overlay .register-upsell{max-width:420px;width:100%}.share-recipe-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5em 1em;border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-primary, #C8845A);font-weight:500;cursor:pointer}.share-recipe-btn:hover:not(:disabled){background-color:var(--color-primary-alpha-10, rgba(200, 132, 90, .12))}.share-recipe-btn:disabled{opacity:.6;cursor:default}.share-link-modal{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:100%}.share-link-title{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);font-size:1.25rem;color:var(--color-text-primary, #F5EDE4)}.share-link-hint{margin:0;color:var(--color-text-secondary, #B0A090);line-height:1.5;font-size:.9rem}.share-link-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch}.share-link-row input{flex:1 1 180px;min-width:0;padding:.5em .75em;border:1px solid var(--color-primary-alpha-20, rgba(200, 132, 90, .2));border-radius:var(--radius-sm, 6px);background-color:var(--color-bg, #1A1412);color:var(--color-text-primary, #F5EDE4);font-size:.9rem}.share-link-copy-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5em 1em;border:none;border-radius:var(--radius-sm, 6px);background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600;cursor:pointer;white-space:nowrap}.share-link-copy-btn:hover{background-color:var(--color-secondary, #D4A574)}.share-link-native-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5em 1em;border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-primary, #C8845A);font-weight:500;cursor:pointer}.share-link-native-btn:hover{background-color:var(--color-primary-alpha-10, rgba(200, 132, 90, .12))}.share-link-close-btn{align-self:flex-end;padding:.4em .9em;border:none;border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-secondary, #B0A090);cursor:pointer}.share-link-close-btn:hover{color:var(--color-text-primary, #F5EDE4)}.translation-control{display:inline-flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.translation-control>.icon{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.translation-control-select{padding:var(--space-xxs) var(--space-xs);font-size:var(--font-size-sm);font-family:inherit;color:var(--text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.translation-control-select:disabled{opacity:.6;cursor:not-allowed}.translation-control-loading{font-size:var(--font-size-xs);color:var(--text-secondary)}.translated-by-ai-badge{display:inline-flex;align-items:center;padding:2px var(--space-xs);font-size:var(--font-size-xs);color:var(--accent-color);border:1px solid var(--accent-color);border-radius:var(--radius-full);white-space:nowrap}.translation-control-error{font-size:var(--font-size-xs);color:var(--color-error)}.recipe-display{background-color:var(--color-surface);border:1px solid var(--border-card);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:0 0 20px #c8845a0d;min-height:500px;display:flex;flex-direction:column}.recipe-display.placeholder,.recipe-display.error{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-lg);font-style:italic}.recipe-display.error{color:var(--color-error);font-style:normal}.recipe-header{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.recipe-title-centered{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);width:100%;text-align:center;flex-wrap:wrap}.recipe-header h2{margin:0;color:var(--color-text-primary);font-size:var(--font-size-3xl);line-height:var(--line-height-tight)}.recipe-modified-indicator{background-color:var(--color-warning);color:var(--color-background);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.recipe-meta{display:flex;align-items:center;justify-content:center;gap:var(--spacing-lg);width:100%}.recipe-meta-item{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.recipe-actions-centered{display:flex;gap:var(--spacing-md);align-items:center;justify-content:center;flex-wrap:wrap}.accept-cooking-button{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-success);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);white-space:nowrap;cursor:pointer;transition:all var(--transition-base)}.accept-cooking-button:hover:not(:disabled){background-color:var(--color-success);box-shadow:var(--shadow-md);transform:scale(1.05)}.accept-cooking-button:active:not(:disabled){transform:scale(.95)}.accept-cooking-button:disabled{cursor:not-allowed;opacity:.7}.accept-cooking-button.in-queue{background-color:var(--color-text-tertiary)}.save-button{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);white-space:nowrap;cursor:pointer;transition:all var(--transition-base)}.save-button:hover:not(:disabled){background-color:var(--color-error);box-shadow:var(--shadow-md);transform:scale(1.05)}.save-button:active:not(:disabled){transform:scale(.95)}.save-button.saved{background-color:var(--color-text-tertiary);opacity:1}.report-recipe-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-warning);color:var(--color-text-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);white-space:nowrap;cursor:pointer;transition:all var(--transition-base)}.report-recipe-button:hover{background-color:var(--color-warning-hover, var(--color-warning));box-shadow:var(--shadow-md);transform:scale(1.02)}.report-recipe-button:active{transform:scale(.98)}.recipe-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-2xl)}.recipe-ingredients,.recipe-instructions-section{display:flex;flex-direction:column;gap:var(--spacing-xl)}.ingredients-header{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary-light)}.ingredients-header h3{margin:0;padding:0;border:none;font-size:var(--font-size-xl);color:var(--color-primary)}.ingredients-controls-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:nowrap}.adjust-amounts-button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.adjust-amounts-button:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.adjust-amounts-button:active{transform:scale(.95)}.recipe-adjusted-badge{background-color:var(--color-info);color:var(--color-text-on-primary);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.recipe-preparation h3,.recipe-instructions h3{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary-light)}.recipe-ingredients ul,.recipe-preparation ol,.recipe-instructions ol{margin:0;padding-left:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.recipe-ingredients li,.recipe-preparation li,.recipe-instructions li{color:var(--color-text-secondary);line-height:var(--line-height-relaxed);padding-left:var(--spacing-sm);text-align:left}.recipe-ingredients li{position:relative}.recipe-ingredients li::marker{color:var(--color-primary);font-weight:var(--font-weight-bold)}.recipe-ingredients li.available{color:var(--color-success);font-weight:var(--font-weight-medium)}.recipe-ingredients li.ingredient-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.ingredient-text{flex:1;min-width:0}.ingredient-note-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;color:var(--color-text-secondary);font-size:.85rem;cursor:help;opacity:.6;transition:opacity .15s;vertical-align:middle}.recommended-amount-hint,.approximate-weight-hint{color:var(--color-text-secondary);font-size:.875rem;font-style:italic}.recipe-ingredients li.substituted{color:var(--color-primary);font-style:italic}.reset-substitutions-button{padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.reset-substitutions-button:hover{background-color:var(--color-surface-variant);color:var(--color-text-primary);border-color:var(--color-text-secondary)}.ingredient-legend{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.recipe-instructions li{padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);border-left:3px solid var(--color-primary);transition:all var(--transition-base)}.recipe-instructions li:hover{background-color:var(--color-primary-light);transform:translate(4px)}.recipe-instructions li::marker{color:var(--color-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}@media (max-width: 1024px){.recipe-columns{grid-template-columns:1fr;gap:var(--spacing-xl)}}@media (max-width: 768px){.recipe-display{padding:var(--mobile-padding);min-height:auto}.recipe-header{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.recipe-actions-centered{flex-direction:column;width:100%}.accept-cooking-button,.save-button,.reset-substitutions-button{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-optimal)}.recipe-title-centered{flex-direction:column;align-items:center;gap:var(--spacing-sm)}.recipe-ingredients li.ingredient-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.recipe-header h2{font-size:var(--font-size-2xl);line-height:1.3}.ingredients-header{align-items:flex-start;gap:var(--spacing-sm)}.ingredients-controls-row{width:100%;justify-content:flex-start;flex-wrap:nowrap}.adjust-amounts-button{min-height:var(--touch-target-min);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs, .75rem)}.ingredients-header h3,.recipe-preparation h3,.recipe-instructions h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.recipe-ingredients li,.recipe-instructions li{font-size:var(--font-size-base);line-height:1.6}.recipe-instructions li{padding:var(--spacing-sm) var(--spacing-md)}.ingredient-legend{font-size:var(--font-size-xs)}}.nudge-card{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-lg);background:linear-gradient(135deg,#d4a5741a,#c8845a0d);border:1px solid var(--color-border-dark);border-radius:var(--radius-lg)}.nudge-card-icon{color:var(--color-primary);flex-shrink:0;margin-top:2px}.nudge-card-body{flex:1;min-width:0}.nudge-card-question{margin:0;font-size:var(--font-size-base);color:var(--color-text-primary);line-height:1.5}.nudge-card-hint{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.nudge-card-consent{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#c8845a14;border-radius:var(--radius-md)}.nudge-card-consent-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.nudge-card-consent-label input{margin-top:3px;flex-shrink:0;accent-color:var(--color-primary)}.nudge-card-consent-link{display:inline-block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:underline}.nudge-card-consent-link:hover{color:var(--color-primary-hover)}.nudge-card-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.nudge-card-accept{padding:var(--spacing-xs) var(--spacing-lg);background:var(--color-primary);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast)}.nudge-card-accept:hover:not(:disabled){background:var(--color-primary-hover)}.nudge-card-accept:disabled{opacity:.5;cursor:not-allowed}.nudge-card-secondary{padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-dark);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.nudge-card-secondary:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-primary)}.nudge-card-secondary:disabled{opacity:.5;cursor:not-allowed}.cooking-status-inner{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);text-align:center;padding:var(--spacing-xl)}.cooking-status--panel{background:var(--color-background-tertiary);border:1px solid rgba(200,132,90,.2);border-radius:var(--radius-xl)}.cooking-status.cooking-status--takeover{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:#1a1412f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-theme=light] .cooking-status.cooking-status--takeover{background:#faf5eef0}.cooking-status--takeover .cooking-status-inner{max-width:420px;padding:var(--spacing-xl)}.cooking-status-title{font-family:var(--font-display);font-weight:var(--font-weight-normal);font-size:var(--font-size-xl);color:var(--color-primary);margin:0}.cooking-status--takeover .cooking-status-title{font-size:var(--font-size-2xl)}.cooking-status-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:0}.cooking-status-elapsed{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.cooking-typing{display:flex;gap:5px}.cooking-typing span{width:9px;height:9px;background:var(--color-primary);border-radius:50%;animation:cookingTypingBounce 1.4s infinite ease-in-out}.cooking-typing span:nth-child(1){animation-delay:-.32s}.cooking-typing span:nth-child(2){animation-delay:-.16s}@keyframes cookingTypingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.cooking-typing span{animation:none;opacity:.6}}.home-status-panel{display:flex;flex-direction:column;gap:var(--spacing-lg)}.status-widget{padding:var(--spacing-lg);background:var(--color-background-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-xl)}.status-widget-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md)}.status-widget-count{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-sm)}.queue-count-badge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-primary);border-radius:50%;color:var(--color-text-on-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);flex-shrink:0}.status-widget-list{list-style:none;padding:0;margin:0 0 var(--spacing-md);font-size:var(--font-size-sm)}.status-widget-list li{padding:var(--spacing-sm) 0;color:var(--color-text-primary);border-bottom:1px solid rgba(245,237,228,.05)}.status-widget-list li:last-child{border-bottom:none}.status-widget-empty{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:0 0 var(--spacing-md)}.status-widget-link{display:block;text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:none;transition:opacity var(--transition-base)}.status-widget-link:hover{opacity:.8}.suggestions-banner{background:linear-gradient(135deg,var(--color-primary-light, var(--color-info-light)) 0%,var(--color-primary-lighter, var(--color-info-light)) 100%);border:1px solid var(--color-primary, var(--color-primary));border-radius:var(--radius-lg, 12px);padding:var(--spacing-md, 16px) var(--spacing-lg, 24px);margin-bottom:var(--spacing-lg, 24px);box-shadow:var(--shadow-md, 0 4px 6px rgba(15, 10, 8, .1));animation:slideDown .3s ease-out}.suggestions-banner-content{display:flex;align-items:center;gap:var(--spacing-md, 16px);flex-wrap:wrap}.suggestions-banner-icon{font-size:2rem;flex-shrink:0}.suggestions-banner-message{flex:1;min-width:200px}.suggestions-banner-text{font-size:var(--font-size-md, 1rem);color:var(--color-text-primary, var(--color-background));line-height:1.5}.suggestions-banner-count{font-weight:700;color:var(--color-primary-dark, var(--color-primary-dark));font-size:1.1em}.suggestions-banner-actions{display:flex;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.suggestions-banner-button{padding:var(--spacing-xs, 6px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s) ease;border:none;white-space:nowrap}.suggestions-banner-button:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.suggestions-banner-button-primary{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary)}.suggestions-banner-button-primary:hover{background:var(--color-primary-dark, var(--color-primary-dark));transform:translateY(-1px)}.suggestions-banner-button-primary:active{transform:translateY(0)}.suggestions-banner-button-secondary{background:var(--color-surface, white);color:var(--color-text-secondary, var(--color-text-tertiary));border:1px solid var(--color-border, var(--color-border))}.suggestions-banner-button-secondary:hover{background:var(--color-surface-hover, var(--color-surface-variant));border-color:var(--color-primary, var(--color-primary));color:var(--color-primary, var(--color-primary))}.suggestions-banner-button-dismiss{background:transparent;color:var(--color-text-muted, var(--color-text-tertiary));padding:var(--spacing-xs, 6px) var(--spacing-sm, 8px)}.suggestions-banner-button-dismiss:hover{color:var(--color-text-primary, var(--color-background));background:var(--color-surface-hover, var(--color-surface-variant))}@media (max-width: 768px){.suggestions-banner{padding:var(--spacing-sm, 12px) var(--spacing-md, 16px)}.suggestions-banner-content{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm, 12px)}.suggestions-banner-icon{display:none}.suggestions-banner-actions{width:100%;justify-content:flex-start}.suggestions-banner-button{flex:1;text-align:center;padding:var(--spacing-sm, 10px) var(--spacing-sm, 12px)}.suggestions-banner-button-dismiss{flex:0;padding:var(--spacing-sm, 10px)}}@media (prefers-color-scheme: dark){.suggestions-banner{background:linear-gradient(135deg,var(--color-primary-dark, var(--color-surface-variant)) 0%,var(--color-surface-dark, var(--color-background)) 100%);border-color:var(--color-primary, var(--color-primary))}.suggestions-banner-text{color:var(--color-text-light, var(--color-surface-variant))}.suggestions-banner-count{color:var(--color-primary-light, var(--color-primary-hover))}.suggestions-banner-button-secondary{background:var(--color-surface-dark, var(--color-surface-variant));color:var(--color-text-light, var(--color-surface-variant));border-color:var(--color-border-dark, var(--color-text-secondary))}.suggestions-banner-button-secondary:hover{background:var(--color-surface-hover-dark, var(--color-surface-hover))}.suggestions-banner-button-dismiss{color:var(--color-text-muted-dark, var(--color-text-tertiary))}.suggestions-banner-button-dismiss:hover{color:var(--color-text-light, var(--color-surface-variant));background:var(--color-surface-hover-dark, var(--color-surface-hover))}}.suggestions-modal-overlay{position:fixed;inset:0;background:#0f0a0880;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out;padding:var(--spacing-md, 16px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.suggestions-modal{background:var(--color-surface, white);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(15, 10, 8, .1));max-width:500px;width:100%;max-height:80vh;max-height:80dvh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.suggestions-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-lg, 24px);border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.suggestions-modal-title-container{flex:1}.suggestions-modal-title{font-size:var(--font-size-xl, 1.5rem);font-weight:600;color:var(--color-text-primary, var(--color-background));margin:0;display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.suggestions-modal-icon{font-size:1.5rem}.suggestions-modal-subtitle{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary));margin:var(--spacing-xs, 4px) 0 0 0}.suggestions-modal-close{background:transparent;border:none;font-size:1.5rem;color:var(--color-text-muted, var(--color-text-tertiary));cursor:pointer;padding:var(--spacing-xs, 4px);line-height:1;border-radius:var(--radius-sm, 4px);transition:all var(--transition-fast, .15s) ease}.suggestions-modal-close:hover{color:var(--color-text-primary, var(--color-background));background:var(--color-surface-hover, var(--color-surface-variant))}.suggestions-modal-close:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.suggestions-modal-content{flex:1;overflow-y:auto;padding:var(--spacing-md, 16px) var(--spacing-lg, 24px)}.suggestions-recipe-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.suggestions-recipe-card{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 16px);padding:var(--spacing-md, 16px);background:var(--color-surface-secondary, var(--color-surface-variant));border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border, var(--color-surface-variant));transition:all var(--transition-fast, .15s) ease}.suggestions-recipe-card:hover{border-color:var(--color-primary-light, var(--color-primary-hover));box-shadow:var(--shadow-sm, 0 2px 4px rgba(15, 10, 8, .05))}.suggestions-recipe-info{flex:1;min-width:0}.suggestions-recipe-title{font-size:var(--font-size-md, 1rem);font-weight:600;color:var(--color-text-primary, var(--color-background));margin:0 0 var(--spacing-xs, 4px) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestions-recipe-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px);align-items:center}.suggestions-recipe-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs, .75rem);color:var(--color-success, var(--color-success));font-weight:500}.badge-icon{font-size:.875rem}.suggestions-recipe-ingredients{font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted, var(--color-text-tertiary))}.suggestions-recipe-meal-type{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, var(--color-text-tertiary));background:var(--color-surface, white);padding:2px 8px;border-radius:var(--radius-full, 999px);border:1px solid var(--color-border, var(--color-surface-variant))}.suggestions-cook-now-button{display:inline-flex;align-items:center;gap:var(--spacing-xs, 6px);padding:var(--spacing-sm, 10px) var(--spacing-md, 16px);background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s) ease;white-space:nowrap}.suggestions-cook-now-button:hover:not(:disabled){background:var(--color-primary-dark, var(--color-primary-dark));transform:translateY(-1px)}.suggestions-cook-now-button:active:not(:disabled){transform:translateY(0)}.suggestions-cook-now-button:disabled{opacity:.7;cursor:not-allowed}.suggestions-cook-now-button:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.cook-icon{font-size:1rem}.suggestions-button-loading{display:inline-flex;align-items:center;gap:var(--spacing-xs, 6px)}.loading-spinner{width:14px;height:14px;border:2px solid rgba(245,237,228,.3);border-top-color:var(--color-text-on-primary);border-radius:50%;animation:spin .8s linear infinite}.suggestions-modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl, 48px) var(--spacing-lg, 24px);text-align:center}.suggestions-modal-empty-icon{font-size:3rem;margin-bottom:var(--spacing-md, 16px)}.suggestions-modal-empty p{color:var(--color-text-secondary, var(--color-text-tertiary));margin:0}.suggestions-modal-footer{padding:var(--spacing-md, 16px) var(--spacing-lg, 24px);border-top:1px solid var(--color-border, var(--color-surface-variant));display:flex;justify-content:center}.suggestions-browse-all{display:inline-flex;align-items:center;gap:var(--spacing-xs, 6px);background:transparent;border:none;color:var(--color-primary, var(--color-primary));font-size:var(--font-size-sm, .875rem);font-weight:500;cursor:pointer;padding:var(--spacing-sm, 10px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);transition:all var(--transition-fast, .15s) ease}.suggestions-browse-all:hover{background:var(--color-primary-light, var(--color-info-light));color:var(--color-primary-dark, var(--color-primary-dark))}.suggestions-browse-all:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.arrow-icon{font-size:1.1em;transition:transform var(--transition-fast, .15s) ease}.suggestions-browse-all:hover .arrow-icon{transform:translate(4px)}@media (max-width: 480px){.suggestions-modal{max-height:90vh;max-height:90dvh;margin:var(--spacing-sm, 8px)}.suggestions-modal-header{padding:var(--spacing-md, 16px)}.suggestions-modal-content{padding:var(--spacing-sm, 12px) var(--spacing-md, 16px)}.suggestions-recipe-card{flex-direction:column;align-items:stretch;gap:var(--spacing-sm, 12px)}.suggestions-cook-now-button{width:100%;justify-content:center}}@media (prefers-color-scheme: dark){.suggestions-modal{background:var(--color-surface-dark, var(--color-background));border:1px solid var(--color-border-dark, var(--color-text-primary))}.suggestions-modal-header{border-bottom-color:var(--color-border-dark, var(--color-text-primary))}.suggestions-modal-title{color:var(--color-text-light, var(--color-surface-variant))}.suggestions-modal-subtitle{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.suggestions-modal-close{color:var(--color-text-muted-dark, var(--color-text-tertiary))}.suggestions-modal-close:hover{color:var(--color-text-light, var(--color-surface-variant));background:var(--color-surface-hover-dark, var(--color-surface-variant))}.suggestions-recipe-card{background:var(--color-surface-secondary-dark, var(--color-surface-variant));border-color:var(--color-border-dark, var(--color-text-primary))}.suggestions-recipe-card:hover{border-color:var(--color-primary, var(--color-primary))}.suggestions-recipe-title{color:var(--color-text-light, var(--color-surface-variant))}.suggestions-recipe-meal-type{background:var(--color-surface-dark, var(--color-background));border-color:var(--color-border-dark, var(--color-text-primary));color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.suggestions-modal-footer{border-top-color:var(--color-border-dark, var(--color-text-primary))}.suggestions-browse-all:hover{background:var(--color-primary-dark, var(--color-surface-variant))}}.welcome-card{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);background:linear-gradient(135deg,#c8845a1f,#d4a5740f);border:1px solid var(--color-border-dark);border-radius:var(--radius-lg)}.welcome-card-icon{color:var(--color-primary);flex-shrink:0;margin-top:2px}.welcome-card-body{flex:1;min-width:0}.welcome-card-title{margin:0 0 var(--spacing-xs);font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text-primary)}.welcome-card-message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.welcome-card-link{color:var(--color-primary);text-decoration:underline}.welcome-card-link:hover{color:var(--color-primary-hover)}.welcome-card-dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.welcome-card-dismiss:hover{color:var(--color-text-primary);background-color:#c8845a1f}.guest-quota-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;border-radius:var(--radius-md, 8px);background-color:var(--color-surface, #1E1816);border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));text-align:center}.guest-quota-card-icon{color:var(--color-secondary, #D4A574)}.guest-quota-card-title{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);font-size:1.4rem;color:var(--color-text-primary, #F5EDE4)}.guest-quota-card-message{margin:0;max-width:40ch;color:var(--color-text-secondary, #B0A090);line-height:1.5}.guest-quota-card-cta{display:inline-block;margin-top:.5rem;padding:.7em 1.6em;border-radius:var(--radius-sm, 6px);background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600;text-decoration:none}.guest-quota-card-cta:hover{background-color:var(--color-secondary, #D4A574)}.home-page{position:relative;max-width:var(--max-width-2xl);width:100%;margin:0 auto;padding:var(--spacing-md) 0;display:flex;flex-direction:column;gap:var(--spacing-lg)}.home-page:before{content:"";position:absolute;inset:calc(-1 * var(--spacing-lg));background-image:url(/assets/home-ambient-CvaD0grw.webp);background-size:cover;background-position:center top;border-radius:var(--radius-2xl);opacity:.35;pointer-events:none;z-index:0}[data-theme=light] .home-page:before{background-image:url(/assets/home-ambient-light-CsTcdPrU.webp)}.home-page>*{position:relative;z-index:1}.home-greeting-section{display:flex;justify-content:space-between;align-items:flex-start}.home-greeting{font-family:var(--font-display);font-weight:var(--font-weight-normal);font-size:var(--font-size-2xl);color:var(--color-text-primary);line-height:var(--line-height-tight);margin:0}.home-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--spacing-lg);align-items:start}.home-main{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0}.home-status-column{display:none}@media (min-width: 1280px){.home-page{padding:var(--spacing-lg) var(--spacing-md)}.home-greeting{font-size:var(--font-size-3xl)}.home-columns{grid-template-columns:minmax(0,1fr) 320px;gap:var(--spacing-xl)}.home-status-column{display:flex;flex-direction:column;gap:var(--spacing-lg);position:sticky;top:var(--spacing-md)}}.modal-overlay{position:fixed;inset:0;background-color:#0f0a0899;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);animation:fadeIn .2s ease-out}.modal-content{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl);max-width:500px;width:90%;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}.modal-content h2{margin-bottom:var(--spacing-md);color:var(--color-text-primary)}.modal-content p{margin-bottom:var(--spacing-xl);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.primary-action{background-color:var(--color-primary);color:var(--color-text-on-primary)}.secondary-action{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}@media (max-width: 768px){.modal-content{padding:var(--spacing-lg);width:95%;max-width:95vw}.modal-content h2{font-size:var(--font-size-xl)}.modal-actions{flex-direction:column;gap:var(--spacing-sm)}.modal-actions button{width:100%}}.add-to-staples-prompt{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-top:var(--space-md);color:var(--color-text)}.add-to-staples-prompt p{margin:0;flex:1 1 240px}.add-to-staples-actions{display:flex;gap:var(--space-sm)}.add-to-staples-accept{background:var(--gradient-primary);color:var(--palette-bg);border:none;border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);font-weight:600;cursor:pointer}.add-to-staples-dismiss{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);cursor:pointer}.profile-container{max-width:var(--max-width-md);margin:var(--spacing-lg) auto;background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--spacing-2xl);overflow:hidden;box-sizing:border-box}.profile-container h1{text-align:center;margin-bottom:var(--spacing-xl);color:var(--color-text-primary)}.profile-sections{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-xl)}.form-group label{display:block;font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:var(--font-size-lg)}.no-restrictions-checkbox{margin-bottom:var(--spacing-md)}.no-restrictions-label{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base)}.no-restrictions-label:hover{border-color:var(--color-primary)}.no-restrictions-label.selected,.no-restrictions-label:has(input:checked){border-color:var(--color-primary);background-color:var(--color-primary-light)}.no-restrictions-label input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.no-restrictions-label span{font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:center}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-lg)}.checkbox-group.disabled{opacity:.5}.checkbox-group label.disabled{cursor:not-allowed}.checkbox-group label{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);cursor:pointer;transition:all var(--transition-base);font-weight:var(--font-weight-normal);font-size:var(--font-size-base);text-align:center;margin:0}.checkbox-group label:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary)}.checkbox-group label:has(input:checked){background-color:var(--color-primary-light);border-color:var(--color-primary)}.checkbox-group input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.list-manager{display:flex;flex-direction:column;gap:var(--spacing-lg)}.input-group{display:flex;gap:var(--spacing-md);align-items:stretch;width:100%}.input-group input{flex:1;margin:0;min-width:0;max-width:100%}.input-group button{padding:var(--spacing-sm) var(--spacing-xl);white-space:nowrap;flex-shrink:0}.item-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.item-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-base)}.item-list li:hover{background-color:var(--color-surface);border-color:var(--color-primary);transform:translate(4px)}.item-list span{flex:1;color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.item-list div{display:flex;gap:var(--spacing-sm)}.item-list button{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.item-edit{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);flex:1}.item-edit input{flex:1;min-width:0;margin:0}.item-edit-actions{display:flex;gap:var(--spacing-sm)}.item-edit-error{width:100%;margin:0}.cuisine-chip-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.cuisine-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-xs) var(--spacing-md);background-color:var(--tag-bg);border:1px solid var(--tag-border);border-radius:var(--radius-full, 999px);color:var(--color-text-primary);font-size:var(--font-size-sm)}.cuisine-chip button{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-full, 999px);transition:color var(--transition-base)}.cuisine-chip button:hover{color:var(--color-error)}.profile-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-2xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.save-button{flex:1;padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none}.save-button:hover:not(:disabled){background-color:var(--color-primary-dark)}.save-button:disabled{opacity:.6;cursor:not-allowed}.nav-button{padding:var(--spacing-md) var(--spacing-xl);font-weight:var(--font-weight-medium)}.item-list-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-tertiary);font-style:italic}@media (max-width: 768px){.profile-container{padding:var(--mobile-padding);margin:var(--spacing-md) auto}.profile-container h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}.profile-sections{gap:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{font-size:var(--font-size-base);margin-bottom:var(--spacing-sm)}.checkbox-group{grid-template-columns:1fr;gap:var(--mobile-gap);padding:var(--spacing-sm)}.checkbox-group label{padding:var(--spacing-md);min-height:var(--touch-target-optimal);font-size:var(--font-size-base)}.input-group{flex-direction:column;gap:var(--mobile-gap)}.input-group button{width:100%;padding:var(--spacing-md);min-height:var(--touch-target-optimal)}.item-list li{padding:var(--spacing-md);flex-wrap:wrap}.item-list span{font-size:var(--font-size-base)}.item-list button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);min-height:var(--touch-target-min)}.profile-actions{flex-direction:column;gap:var(--mobile-gap);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.save-button,.nav-button{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-optimal)}}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-md)}.radio-option{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base)}.radio-option:hover{border-color:var(--color-primary);background-color:var(--color-primary-light)}.radio-option input[type=radio]{flex-shrink:0;width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary)}.radio-content{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.radio-label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-md)}.radio-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.health-data-consent-section{background-color:var(--color-surface);border:1px solid var(--color-warning, var(--color-warning));border-radius:var(--radius-md);padding:var(--spacing-md);margin-top:var(--spacing-lg)}.consent-checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4;color:var(--color-text-primary)}.consent-checkbox-label input[type=checkbox]{margin-top:3px;min-width:18px;min-height:18px;accent-color:var(--color-warning, var(--color-warning));cursor:pointer}.consent-privacy-link{display:block;margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:underline}.consent-privacy-link:hover{color:var(--color-primary-hover)}.consent-required-message{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);margin-bottom:0}.security-settings{display:flex;flex-direction:column;gap:var(--spacing-xl)}.oauth-notice{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-md);background-color:var(--color-info-bg, rgba(212, 165, 116, .1));border-radius:var(--radius-md)}.danger-zone{border:1px solid var(--color-error);background-color:var(--color-error-bg, rgba(207, 102, 121, .05));border-radius:var(--radius-lg);padding:var(--spacing-lg)}.danger-zone h3{color:var(--color-error)}.delete-account-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-base)}.delete-account-button:hover{background-color:var(--color-error-hover, var(--color-error))}@media (max-width: 768px){.delete-account-button{width:100%;min-height:var(--touch-target-optimal)}}.profile-advanced-section{margin-top:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.profile-advanced-section>summary{cursor:pointer;padding:var(--space-sm) var(--space-md);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);list-style-position:inside}.profile-advanced-section>summary:hover{color:var(--color-primary)}.profile-advanced-section[open]>summary{border-bottom:1px solid var(--color-border)}.profile-advanced-section>*:not(summary){padding:var(--space-sm) var(--space-md)}.guest-upgrade-card{display:flex;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;border-radius:var(--radius-md, 8px);background-color:var(--color-surface, #1E1816);border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));box-shadow:var(--shadow-md, 0 4px 12px rgba(20, 12, 8, .4));text-align:left}.guest-upgrade-card-icon{flex-shrink:0;color:var(--color-primary, #C8845A)}.guest-upgrade-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.guest-upgrade-card-title{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);font-size:1.35rem;color:var(--color-text-primary, #F5EDE4)}.guest-upgrade-card-message{margin:0;color:var(--color-text-secondary, #B0A090);line-height:1.5}.guest-upgrade-card-cta{display:inline-block;margin-top:.25rem;padding:.65em 1.4em;border-radius:var(--radius-sm, 6px);background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600;text-decoration:none}.guest-upgrade-card-cta:hover{background-color:var(--color-secondary, #D4A574)}.guest-upgrade-card-signin{margin:.25rem 0 0;color:var(--color-text-secondary, #B0A090)}.guest-upgrade-card-signin a{color:var(--color-secondary, #D4A574)}.guest-upgrade-card-warning{margin:0;padding:.5em .75em;border-left:3px solid var(--color-warning, #E8B830);background-color:var(--color-warning-alpha-10, rgba(232, 184, 48, .1));color:var(--color-text-secondary, #B0A090);font-size:.85rem;line-height:1.4}.select-container{display:flex;flex-direction:column;gap:var(--spacing-xs, .5rem);width:100%}.select-label{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, var(--color-text-primary))}.select{padding:var(--spacing-sm, .75rem);font-size:var(--font-size-base, 1rem);border:2px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, .5rem);background-color:var(--color-surface, var(--color-surface));color:var(--color-text-primary, var(--color-text-primary));transition:all .2s ease-in-out;cursor:pointer;width:100%;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm, .75rem) center;background-size:1rem;padding-right:calc(var(--spacing-sm, .75rem) * 3)}.select:hover:not(:disabled){border-color:var(--color-primary, var(--color-primary))}.select:focus{outline:none;border-color:var(--color-primary, var(--color-primary));box-shadow:0 0 0 3px #c8845a1a}.select:disabled{background-color:var(--color-surface-variant, var(--color-surface-variant));color:var(--color-text-tertiary, var(--color-text-tertiary));cursor:not-allowed;opacity:.6}.select.error{border-color:var(--color-error, var(--color-error))}.select.error:focus{border-color:var(--color-error, var(--color-error));box-shadow:0 0 0 3px #cf66791a}.select-help-text{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));margin:0}.select-error{font-size:var(--font-size-sm, .875rem);color:var(--color-error, var(--color-error));margin:0;display:flex;align-items:center;gap:var(--spacing-xs, .5rem)}.select-error .icon{flex-shrink:0;width:16px;height:16px}@media (max-width: 768px){.select{min-height:var(--touch-target-min, 44px);font-size:var(--font-size-base, 1rem)}.select-label{font-size:var(--font-size-base, 1rem)}}.settings-section{background-color:var(--color-surface, var(--color-surface));border-radius:var(--radius-lg, .75rem);padding:var(--spacing-lg, 1.5rem);margin-bottom:var(--spacing-md, 1rem);border:1px solid var(--color-border, var(--color-surface-variant));box-shadow:0 1px 3px #0f0a084d}.settings-section-header{display:flex;align-items:flex-start;gap:var(--spacing-md, 1rem);margin-bottom:var(--spacing-lg, 1.5rem);padding-bottom:var(--spacing-md, 1rem);border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.settings-section-icon{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--color-primary, var(--color-primary))}.settings-section-icon svg{width:100%;height:100%}.settings-section-title-wrapper{flex:1}.settings-section-title{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-text-primary));margin:0;margin-bottom:var(--spacing-xs, .5rem)}.settings-section-description{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));margin:0;line-height:1.5}.settings-section-content{display:flex;flex-direction:column;gap:var(--spacing-md, 1rem)}.settings-section-content>*{width:100%}@media (max-width: 768px){.settings-section{padding:var(--spacing-md, 1rem);border-radius:var(--radius-md, .5rem)}.settings-section-header{flex-direction:column;gap:var(--spacing-sm, .75rem)}.settings-section-icon{width:2rem;height:2rem}.settings-section-title{font-size:var(--font-size-lg, 1.125rem)}.settings-section-content{gap:var(--spacing-sm, .75rem)}}@media (prefers-contrast: high){.settings-section{border:2px solid currentColor}.settings-section-header{border-bottom-width:2px}}@media print{.settings-section{page-break-inside:avoid;box-shadow:none;border:1px solid var(--color-background)}}.profile-section{background-color:var(--color-surface);border:1px solid var(--border-card);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-base)}.profile-section.open{border-color:var(--color-border-dark)}.profile-section-heading{margin:0;font-size:inherit;font-weight:inherit}.profile-section-header{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-lg);background:transparent;border:none;cursor:pointer;text-align:left;color:var(--color-text-primary);transition:background-color var(--transition-base)}.profile-section-header:hover{background-color:var(--color-primary-lighter)}.profile-section-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:var(--color-primary)}.profile-section-titles{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.profile-section-title{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text-primary);line-height:1.2}.profile-section-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.35}.profile-section-chevron{display:flex;align-items:center;flex-shrink:0;color:var(--color-text-secondary);transition:transform var(--transition-base)}.profile-section.open .profile-section-chevron{transform:rotate(180deg)}.profile-section-panel{padding:0 var(--spacing-lg) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xl);animation:profile-section-reveal .2s ease-out}@keyframes profile-section-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.profile-section-header{padding:var(--spacing-md);min-height:var(--touch-target-optimal)}.profile-section-panel{padding:0 var(--spacing-md) var(--spacing-md)}.profile-section-icon{width:36px;height:36px}.profile-section-title{font-size:var(--font-size-lg)}}.household-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.household-member-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.household-member-row{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.household-member-icon{color:var(--color-primary);flex-shrink:0;display:inline-flex}.household-member-icon .icon{width:18px;height:18px}.household-member-main{display:flex;flex-direction:column;gap:var(--spacing-2xs);flex:1;min-width:0}.household-member-label{font-weight:600;color:var(--color-text)}.household-member-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.household-member-constraints{font-size:var(--font-size-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.household-member-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.household-member-actions button,.household-list-actions button,.household-form-actions button{display:inline-flex;align-items:center;gap:var(--spacing-2xs)}.household-member-actions .icon,.household-list-actions .icon,.household-add-button .icon{width:14px;height:14px;flex-shrink:0}.household-add-button .icon{width:16px;height:16px}.household-list-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm)}.household-remove-all{color:var(--color-danger)}.household-member-form{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-variant)}.household-member-form h3{margin:0;font-size:var(--font-size-md)}.household-field{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.household-field-label{font-weight:600}.household-minor-row{display:flex;align-items:center;gap:var(--spacing-xs)}.household-form-actions{display:flex;gap:var(--spacing-xs)}.household-minor-badge,.household-goal-badge{font-size:var(--font-size-xs)}.toggle-container{display:flex;flex-direction:column;gap:var(--spacing-xs, .5rem);width:100%}.toggle-content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 1rem)}.toggle-container.label-right .toggle-content{flex-direction:row-reverse}.toggle-label-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem);flex:1}.toggle-label{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary, var(--color-text-primary))}.toggle-description{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));line-height:1.4}.toggle-switch{position:relative;display:inline-block;width:3rem;height:1.75rem;flex-shrink:0;cursor:pointer}.toggle-switch.disabled{cursor:not-allowed;opacity:.5}.toggle-input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;background-color:var(--color-surface-variant, var(--color-surface-variant));border-radius:var(--radius-full, 9999px);transition:all .2s ease-in-out}.toggle-slider:before{position:absolute;content:"";height:1.375rem;width:1.375rem;left:.1875rem;bottom:.1875rem;background-color:var(--color-surface);border-radius:50%;transition:all .2s ease-in-out;box-shadow:0 1px 3px #0f0a081a}.toggle-input:checked+.toggle-slider{background-color:var(--color-primary, var(--color-primary))}.toggle-input:checked+.toggle-slider:before{transform:translate(1.25rem)}.toggle-input:focus+.toggle-slider{box-shadow:0 0 0 3px #c8845a1a;outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.toggle-input:disabled+.toggle-slider{background-color:var(--color-surface-variant, var(--color-surface-variant));cursor:not-allowed}.toggle-input:disabled+.toggle-slider:before{background-color:var(--color-text-disabled, var(--color-text-tertiary))}.toggle-switch:hover:not(.disabled) .toggle-slider{background-color:var(--color-border-hover, var(--color-text-tertiary))}.toggle-switch:hover:not(.disabled) .toggle-input:checked+.toggle-slider{background-color:var(--color-primary-hover, var(--color-primary))}.toggle-help-text{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));margin:0}@media (max-width: 768px){.toggle-switch{width:3.5rem;height:2rem}.toggle-slider:before{height:1.625rem;width:1.625rem}.toggle-input:checked+.toggle-slider:before{transform:translate(1.5rem)}.toggle-label{font-size:var(--font-size-base, 1rem)}.toggle-content{min-height:var(--touch-target-min, 44px)}}@media (prefers-reduced-motion: no-preference){.toggle-slider,.toggle-slider:before{transition:all .3s cubic-bezier(.4,0,.2,1)}}@media (prefers-contrast: high){.toggle-input:focus+.toggle-slider{outline:3px solid currentColor}.toggle-slider{border:2px solid currentColor}}.custom-standard-form{background:var(--color-background, var(--color-text-primary));border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius, 8px);padding:var(--spacing-md, 1rem);margin-top:var(--spacing-md, 1rem)}.custom-standard-form h4{margin:0 0 var(--spacing-md, 1rem) 0;font-size:var(--font-size-md, 1rem);color:var(--color-text-primary, var(--color-background))}.form-group{margin-bottom:var(--spacing-md, 1rem)}.form-group label{display:block;margin-bottom:var(--spacing-xs, .25rem);font-size:var(--font-size-sm, .875rem);font-weight:500;color:var(--color-text-primary, var(--color-background))}.form-group input,.form-group select{width:100%;padding:var(--spacing-sm, .5rem);font-size:var(--font-size-md, 1rem);border:1px solid var(--color-border, var(--color-border));border-radius:var(--border-radius-sm, 4px);background:var(--color-background, var(--color-text-primary));color:var(--color-text-primary, var(--color-background))}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary, var(--color-primary));box-shadow:0 0 0 2px #c8845a40}.form-group input:disabled,.form-group select:disabled{background:var(--color-disabled, var(--color-surface-variant));cursor:not-allowed}.form-group input[aria-invalid=true],.form-group select[aria-invalid=true]{border-color:var(--color-danger, var(--color-error))}.form-row{display:flex;gap:var(--spacing-md, 1rem)}.form-row .form-group{flex:1}.error-text{display:block;margin-top:var(--spacing-xs, .25rem);font-size:var(--font-size-sm, .875rem);color:var(--color-danger, var(--color-error))}.submit-error{text-align:center;margin-bottom:var(--spacing-md, 1rem)}.form-buttons{display:flex;gap:var(--spacing-sm, .75rem);justify-content:flex-end;margin-top:var(--spacing-md, 1rem)}.form-buttons button{padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);font-size:var(--font-size-md, 1rem);border:none;border-radius:var(--border-radius-sm, 4px);cursor:pointer;transition:background-color .2s ease}.form-buttons .cancel-button{background:var(--color-secondary, var(--color-text-tertiary));color:var(--color-text-on-primary)}.form-buttons .cancel-button:hover:not(:disabled){background:var(--color-secondary-dark, var(--color-surface-hover))}.form-buttons .submit-button{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary)}.form-buttons .submit-button:hover:not(:disabled){background:var(--color-primary-dark, var(--color-primary-dark))}.form-buttons button:disabled{opacity:.65;cursor:not-allowed}.checkbox-group{padding:var(--spacing-sm, .75rem);background:var(--color-surface, var(--color-surface-variant));border-radius:var(--border-radius-sm, 4px)}.checkbox-label{display:flex!important;align-items:center;gap:var(--spacing-sm, .5rem);cursor:pointer;font-weight:400!important}.checkbox-label input[type=checkbox]{width:auto;margin:0;cursor:pointer;accent-color:var(--color-primary, var(--color-primary))}.checkbox-label span{color:var(--color-text-primary, var(--color-background))}.help-text{margin:var(--spacing-xs, .25rem) 0 0 0;font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.package-standards-tab{display:flex;flex-direction:column;gap:var(--spacing-lg, 1.5rem)}.package-standards-section{background:var(--color-surface, var(--color-surface-variant));border-radius:var(--border-radius, 8px);padding:var(--spacing-md, 1rem)}.package-standards-section h3{margin:0 0 var(--spacing-xs, .5rem) 0;font-size:var(--font-size-lg, 1.125rem);color:var(--color-text-primary, var(--color-background))}.section-description{margin:0 0 var(--spacing-md, 1rem) 0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 1rem);padding:var(--spacing-sm, .75rem) 0}.toggle-row label{font-weight:500;color:var(--color-text-primary, var(--color-background))}.standards-list{display:flex;flex-direction:column;gap:var(--spacing-sm, .75rem)}.standard-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm, .75rem);background:var(--color-background, var(--color-text-primary));border-radius:var(--border-radius-sm, 4px);border:1px solid var(--color-border, var(--color-border));transition:opacity .2s ease}.standard-item.disabled{opacity:.6}.standard-item.custom{border-left:3px solid var(--color-primary, var(--color-primary))}.standard-info{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.standard-name{font-weight:500;color:var(--color-text-primary, var(--color-background))}.standard-size{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.standard-store,.standard-notes{font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted, var(--color-text-tertiary));font-style:italic}.created-from-badge{display:inline-block;margin-left:var(--spacing-xs, .25rem);padding:2px 6px;font-size:var(--font-size-xs, .65rem);font-weight:400;color:var(--color-primary, var(--color-primary));background:var(--color-primary-light, var(--color-primary-light));border-radius:var(--border-radius-sm, 4px);vertical-align:middle}.standard-controls{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs, .5rem)}.round-up-toggle{display:flex;align-items:center;font-size:var(--font-size-sm, .875rem)}.round-up-toggle label{color:var(--color-text-secondary, var(--color-text-tertiary))}.standard-actions{display:flex;gap:var(--spacing-xs, .5rem)}.edit-button,.delete-button{padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);font-size:var(--font-size-sm, .875rem);border:none;border-radius:var(--border-radius-sm, 4px);cursor:pointer;transition:background-color .2s ease}.edit-button{background:var(--color-secondary, var(--color-text-tertiary));color:var(--color-text-on-primary)}.edit-button:hover{background:var(--color-secondary-dark, var(--color-surface-hover))}.delete-button{background:var(--color-danger, var(--color-error));color:var(--color-text-on-primary)}.delete-button:hover{background:var(--color-danger-dark, var(--color-error-dark))}.empty-state{padding:var(--spacing-lg, 1.5rem);text-align:center;color:var(--color-text-secondary, var(--color-text-tertiary));background:var(--color-background, var(--color-text-primary));border-radius:var(--border-radius-sm, 4px);border:1px dashed var(--color-border, var(--color-border))}.add-button{display:block;width:100%;padding:var(--spacing-sm, .75rem);margin-top:var(--spacing-sm, .75rem);font-size:var(--font-size-md, 1rem);color:var(--color-primary, var(--color-primary));background:transparent;border:2px dashed var(--color-primary, var(--color-primary));border-radius:var(--border-radius, 8px);cursor:pointer;transition:background-color .2s ease,color .2s ease}.add-button:hover{background:var(--color-primary-light, var(--color-primary-light))}.delete-confirmation{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:var(--spacing-lg, 1.5rem);background:var(--color-background, var(--color-text-primary));border-radius:var(--border-radius, 8px);box-shadow:0 4px 20px #0f0a0826;z-index:1000;text-align:center}.delete-confirmation p{margin:0 0 var(--spacing-md, 1rem) 0;color:var(--color-text-primary, var(--color-background))}.confirmation-buttons{display:flex;gap:var(--spacing-sm, .75rem);justify-content:center}.confirm-button{padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background:var(--color-danger, var(--color-error));color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-sm, 4px);cursor:pointer}.confirm-button:hover{background:var(--color-danger-dark, var(--color-error-dark))}.cancel-button{padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background:var(--color-secondary, var(--color-text-tertiary));color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-sm, 4px);cursor:pointer}.cancel-button:hover{background:var(--color-secondary-dark, var(--color-surface-hover))}.error-message{color:var(--color-danger, var(--color-error));padding:var(--spacing-md, 1rem);text-align:center}.equipment-section{margin-bottom:var(--spacing-lg, 1.5rem);padding:var(--spacing-md, 1rem);border:1px solid var(--color-border);border-radius:var(--radius-lg, 8px);background-color:var(--color-surface)}.equipment-section-title{margin:0 0 var(--spacing-xs, .5rem) 0;font-size:var(--font-size-lg, 1.125rem);font-weight:600;color:var(--color-text-primary)}.equipment-section-description{margin:0 0 var(--spacing-md, 1rem) 0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary)}.equipment-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-sm, .75rem)}.equipment-checkbox-grid--large{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.equipment-checkbox-item{display:flex;align-items:center;justify-content:center;position:relative;padding:var(--spacing-sm, .75rem) var(--spacing-md, 1rem);cursor:pointer;transition:all .2s ease;border-radius:var(--radius-md, 6px);border:1px solid var(--color-border);background-color:var(--color-surface)}.equipment-checkbox-item:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary)}.equipment-checkbox-item:has(input:checked){background-color:var(--color-primary-light);border-color:var(--color-primary)}.equipment-checkbox-item:has(input:checked):after{content:"✓";position:absolute;top:2px;right:4px;font-size:11px;font-weight:700;color:var(--color-primary);line-height:1}.equipment-checkbox-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.equipment-label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary);text-align:center}.sized-equipment-category{margin-top:var(--spacing-md, 1rem);padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--color-border)}.sized-equipment-category:first-of-type{margin-top:0;padding-top:0;border-top:none}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm, .75rem)}.category-header h4{margin:0;font-size:var(--font-size-md, 1rem);font-weight:600;color:var(--color-text-primary)}.add-equipment-btn{padding:var(--spacing-xs, .5rem) var(--spacing-sm, .75rem);font-size:var(--font-size-sm, .875rem);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md, 4px);cursor:pointer;transition:background-color .2s ease}.add-equipment-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.add-equipment-btn:disabled{opacity:.5;cursor:not-allowed}.equipment-form{margin-bottom:var(--spacing-md, 1rem);padding:var(--spacing-sm, .75rem);border:1px solid var(--color-border);border-radius:var(--radius-md, 4px);background-color:var(--color-surface-variant)}.form-row{display:flex;gap:var(--spacing-sm, .75rem);margin-bottom:var(--spacing-sm, .75rem);flex-wrap:wrap}.form-row:last-child{margin-bottom:0}.equipment-form select,.equipment-form input[type=number],.equipment-form input[type=text]{flex:1;min-width:120px;padding:var(--spacing-xs, .5rem);font-size:var(--font-size-sm, .875rem);border:1px solid var(--color-border);border-radius:var(--radius-md, 4px);background-color:var(--color-surface);color:var(--color-text-primary)}.equipment-form select option{background-color:var(--color-surface);color:var(--color-text-primary)}.equipment-form input::placeholder{color:var(--color-text-tertiary)}.equipment-form select:focus,.equipment-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.form-actions{display:flex;gap:var(--spacing-sm, .75rem);margin-top:var(--spacing-sm, .75rem)}.form-actions button{padding:var(--spacing-xs, .5rem) var(--spacing-md, 1rem);font-size:var(--font-size-sm, .875rem);border-radius:var(--radius-md, 4px);cursor:pointer;transition:background-color .2s ease}.form-actions button:first-child{background-color:var(--color-primary);color:var(--color-text-on-primary);border:none}.form-actions button:first-child:hover:not(:disabled){background-color:var(--color-primary-hover)}.form-actions button:first-child:disabled{opacity:.5;cursor:not-allowed}.form-actions .cancel-btn{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.form-actions .cancel-btn:hover{background-color:var(--color-surface-hover)}.sized-equipment-list{list-style:none;margin:0;padding:0}.sized-equipment-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs, .5rem) var(--spacing-sm, .75rem);margin-bottom:var(--spacing-xs, .5rem);background-color:var(--color-surface-variant);border-radius:var(--radius-md, 4px);border:1px solid var(--color-border)}.sized-equipment-item:last-child{margin-bottom:0}.equipment-info{font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary)}.delete-btn{padding:var(--spacing-2xs, .25rem) var(--spacing-xs, .5rem);font-size:var(--font-size-xs, .75rem);background-color:transparent;color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md, 4px);cursor:pointer;transition:all .2s ease}.delete-btn:hover:not(:disabled){background-color:var(--color-error);color:var(--color-text-on-primary)}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.empty-list-message{font-size:var(--font-size-sm, .875rem);color:var(--color-text-tertiary);font-style:italic;margin:0}.other-equipment-input-group{display:flex;gap:var(--spacing-sm, .75rem);margin-bottom:var(--spacing-sm, .75rem)}.other-equipment-input-group input{flex:1;padding:var(--spacing-xs, .5rem);font-size:var(--font-size-sm, .875rem);border:1px solid var(--color-border);border-radius:var(--radius-md, 4px);background-color:var(--color-surface);color:var(--color-text-primary)}.other-equipment-input-group input::placeholder{color:var(--color-text-tertiary)}.other-equipment-input-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.other-equipment-input-group button{padding:var(--spacing-xs, .5rem) var(--spacing-md, 1rem);font-size:var(--font-size-sm, .875rem);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md, 4px);cursor:pointer;transition:background-color .2s ease}.other-equipment-input-group button:hover:not(:disabled){background-color:var(--color-primary-hover)}.other-equipment-input-group button:disabled{opacity:.5;cursor:not-allowed}.other-equipment-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, .5rem);list-style:none;margin:0;padding:0}.other-equipment-chip{display:flex;align-items:center;gap:var(--spacing-xs, .5rem);padding:var(--spacing-2xs, .25rem) var(--spacing-sm, .75rem);background-color:var(--color-surface-variant);border:1px solid var(--color-border);border-radius:999px;font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary)}.other-equipment-chip button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;transition:all .2s ease}.other-equipment-chip button:hover{background-color:#cf667933;color:var(--color-error)}@media (max-width: 600px){.equipment-checkbox-grid{grid-template-columns:repeat(2,1fr)}.form-row{flex-direction:column}.equipment-form select,.equipment-form input{min-width:100%}.category-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs, .5rem)}}.change-password-form{display:flex;flex-direction:column;gap:var(--spacing-md);max-width:400px}.change-password-form h3{margin:0 0 var(--spacing-md) 0;color:var(--color-text-primary)}.change-password-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.change-password-form label{font-weight:500;color:var(--color-text-primary)}.change-password-form input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-base)}.change-password-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-alpha)}.change-password-form input:disabled{opacity:.6;cursor:not-allowed}.change-password-form .error-message{color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-sm);background-color:var(--color-error-bg, rgba(207, 102, 121, .1));border-radius:var(--border-radius-sm)}.change-password-form .password-requirements{background-color:var(--color-surface);padding:var(--spacing-md);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.change-password-form .password-requirements ul{margin:0;padding-left:var(--spacing-lg)}.change-password-form .password-requirements li{margin-bottom:var(--spacing-xs)}.change-password-form .change-password-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-sm);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background-color .2s ease}.change-password-form .change-password-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.change-password-form .change-password-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.change-password-form{max-width:100%}.change-password-form input{min-height:var(--touch-target-optimal);font-size:16px}.change-password-form .change-password-button{min-height:var(--touch-target-optimal)}}.delete-account-dialog{padding:var(--spacing-lg);max-width:450px}.delete-account-dialog .dialog-title{margin:0 0 var(--spacing-md) 0;color:var(--color-error);font-size:var(--font-size-xl)}.delete-account-dialog .warning-section{background-color:var(--color-error-bg, rgba(207, 102, 121, .1));border:1px solid var(--color-error);border-radius:var(--border-radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.delete-account-dialog .warning-text{color:var(--color-error);font-weight:600;margin:0 0 var(--spacing-sm) 0}.delete-account-dialog .warning-details{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--spacing-md) 0}.delete-account-dialog .data-list{margin-top:var(--spacing-md)}.delete-account-dialog .data-list p{margin:0 0 var(--spacing-sm) 0;font-weight:500;color:var(--color-text-primary)}.delete-account-dialog .data-list ul{margin:0;padding-left:var(--spacing-lg);color:var(--color-text-secondary)}.delete-account-dialog .data-list li{margin-bottom:var(--spacing-xs)}.delete-account-dialog .delete-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.delete-account-dialog .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.delete-account-dialog label{font-weight:500;color:var(--color-text-primary)}.delete-account-dialog input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-base)}.delete-account-dialog input:focus{outline:none;border-color:var(--color-error);box-shadow:0 0 0 2px #cf667933}.delete-account-dialog input:disabled{opacity:.6;cursor:not-allowed}.delete-account-dialog .error-message{color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-sm);background-color:var(--color-error-bg, rgba(207, 102, 121, .1));border-radius:var(--border-radius-sm)}.delete-account-dialog .dialog-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-md)}.delete-account-dialog .cancel-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);cursor:pointer;transition:background-color .2s ease}.delete-account-dialog .cancel-button:hover:not(:disabled){background-color:var(--color-surface-hover)}.delete-account-dialog .delete-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-sm);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background-color .2s ease}.delete-account-dialog .delete-button:hover:not(:disabled){background-color:var(--color-error-hover, var(--color-error))}.delete-account-dialog .delete-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.delete-account-dialog{padding:var(--spacing-md)}.delete-account-dialog input{min-height:var(--touch-target-optimal);font-size:16px}.delete-account-dialog .dialog-actions{flex-direction:column-reverse}.delete-account-dialog .cancel-button,.delete-account-dialog .delete-button{width:100%;min-height:var(--touch-target-optimal)}}.kofi-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs, .25rem);border-radius:var(--border-radius-sm, 4px);color:var(--color-text-secondary, var(--color-text-tertiary));text-decoration:none;transition:color .2s ease,transform .2s ease}.kofi-button:hover{color:#ff5e5b;transform:scale(1.1)}.kofi-button:focus{outline:2px solid var(--color-primary, var(--color-primary));outline-offset:2px}.kofi-button:active{transform:scale(.95)}.kofi-icon-svg{width:20px;height:20px}.support-links-kofi{padding:var(--spacing-sm)}.feedback-modal{width:100%;max-width:500px;text-align:left}.feedback-title{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.feedback-description{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.feedback-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.feedback-type-fieldset{margin:0;padding:0;border:none}.feedback-type-legend{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.feedback-type-options{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.feedback-type-option{display:flex;flex-direction:column;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.feedback-type-option:hover,.feedback-type-option.selected{border-color:var(--color-primary);background-color:var(--color-primary-light)}.feedback-type-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.feedback-type-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.feedback-type-description{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-normal)}.feedback-message-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.feedback-message-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.feedback-message-input{width:100%;min-height:120px;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast)}.feedback-message-input::placeholder{color:var(--color-text-tertiary)}.feedback-message-input:focus{outline:none;border-color:var(--color-border-focus)}.feedback-message-input.has-error{border-color:var(--color-error)}.feedback-message-input:disabled{opacity:.6;cursor:not-allowed}.feedback-message-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.feedback-validation-error{font-size:var(--font-size-xs);color:var(--color-error)}.feedback-char-count{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.feedback-char-count.over-limit{color:var(--color-error)}.feedback-submit-error{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-error);background-color:#cf66791a;border-radius:var(--radius-md)}.feedback-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.feedback-button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.feedback-button:disabled{opacity:.5;cursor:not-allowed}.feedback-button-primary{color:var(--color-background);background-color:var(--color-primary);border:none}.feedback-button-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.feedback-button-secondary{color:var(--color-text-secondary);background-color:transparent;border:1px solid var(--color-border)}.feedback-button-secondary:hover:not(:disabled){background-color:var(--color-surface-hover)}.feedback-success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) 0;text-align:center}.feedback-success-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:var(--font-size-xl);color:var(--color-success);background-color:#6bcb771a;border-radius:var(--radius-full)}.feedback-success-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.feedback-success-message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media (max-width: 480px){.feedback-type-options{grid-template-columns:1fr}.feedback-actions{flex-direction:column-reverse}.feedback-button{width:100%;min-height:var(--touch-target-optimal)}}.guest-signout-warning{text-align:center;max-width:420px}.guest-signout-warning-icon{color:var(--color-warning);margin-bottom:var(--spacing-md)}.guest-signout-warning h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.guest-signout-warning-message{font-size:var(--font-size-base);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.guest-signout-warning-keep{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.guest-signout-warning-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.guest-signout-create-account{display:block;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);text-decoration:none;transition:all var(--transition-base)}.guest-signout-create-account:hover{box-shadow:var(--shadow-md)}.guest-signout-confirm{padding:var(--spacing-md) var(--spacing-lg);background-color:transparent;color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base)}.guest-signout-confirm:hover{background-color:var(--color-error);color:var(--color-text-on-primary)}.guest-signout-cancel{padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer}.guest-signout-cancel:hover{color:var(--color-text-primary)}.support-links{display:flex;flex-direction:column;gap:var(--spacing-xs)}.support-links-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:10px 12px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.support-links-item:hover{background:var(--color-primary-lighter);color:var(--color-text-primary)}.support-links-row{display:flex;align-items:center;gap:var(--spacing-xs)}.support-links-row .support-links-logout{flex:1}.support-links-kofi{flex-shrink:0}.support-links-profile{margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light)}@media (min-width: 1024px){.support-links-profile{display:none}}.category-section{margin-bottom:var(--spacing-md, 12px);border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--border-radius-md, 8px);overflow:hidden;background-color:var(--color-surface, var(--color-text-primary))}.category-header{display:flex;align-items:center;width:100%;padding:var(--spacing-md, 12px) var(--spacing-lg, 16px);background-color:var(--color-surface-secondary, var(--color-surface-variant));border:none;cursor:pointer;font-size:1rem;font-weight:600;color:var(--color-text-primary, var(--color-background));transition:background-color .2s ease;text-align:left}.category-header:hover{background-color:var(--color-surface-hover, var(--color-surface-variant))}.category-header:focus{outline:2px solid var(--color-primary, var(--color-primary-dark));outline-offset:-2px}.category-header.collapsed{border-bottom:none}.category-header.expanded{border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.category-icon{display:inline-flex;align-items:center;justify-content:center;margin-right:var(--spacing-sm, 8px);flex-shrink:0}.category-icon .category-art{width:28px;height:28px;object-fit:contain;flex-shrink:0}.category-name{flex:1;font-weight:600}.category-count{color:var(--color-text-secondary, var(--color-text-tertiary));font-weight:400;margin-left:var(--spacing-sm, 8px);font-size:.875rem}.category-toggle{font-size:1.25rem;font-weight:700;color:var(--color-text-secondary, var(--color-text-tertiary));margin-left:var(--spacing-md, 12px);width:24px;text-align:center;flex-shrink:0}.category-items{padding:var(--spacing-sm, 8px) 0}@media (max-width: 768px){.category-header{padding:var(--spacing-sm, 8px) var(--spacing-md, 12px)}.category-name{font-size:.9rem}.category-count{font-size:.8rem}}.quantity-unit-input{display:flex;gap:var(--spacing-sm, 8px);align-items:center}.quantity-unit-input .quantity-input{width:80px;min-width:60px;padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--radius-md, 4px);font-size:var(--font-size-base, 14px)}.quantity-unit-input .unit-select{width:100px;min-width:80px;padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--radius-md, 4px);font-size:var(--font-size-base, 14px);background-color:var(--color-background, white);cursor:pointer}.quantity-unit-input .quantity-input:focus,.quantity-unit-input .unit-select:focus{outline:none;border-color:var(--color-primary, var(--color-success));box-shadow:0 0 0 2px #6bcb7733}.quantity-unit-input.inline-edit{gap:var(--spacing-xs, 4px)}.quantity-unit-input.inline-edit .quantity-input{width:60px;padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);font-size:var(--font-size-sm, 12px);border:2px solid var(--color-primary, var(--color-success));border-radius:var(--radius-md, 4px)}.quantity-unit-input.inline-edit .unit-select{width:80px;padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);font-size:var(--font-size-sm, 12px);border:2px solid var(--color-primary, var(--color-success));border-radius:var(--radius-md, 4px)}.quantity-unit-input .quantity-input:disabled,.quantity-unit-input .unit-select:disabled{background-color:var(--color-disabled-bg, var(--color-surface-variant));cursor:not-allowed;opacity:.7}@media (max-width: 480px){.quantity-unit-input{flex-wrap:wrap}.quantity-unit-input .quantity-input,.quantity-unit-input .unit-select{flex:1;min-width:0}}.category-selector{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.category-selector .category-select-art{width:28px;height:28px;object-fit:contain;flex-shrink:0}.category-selector .category-select{width:140px;min-width:120px;padding:var(--spacing-sm, 8px);border:1px solid var(--color-border, var(--color-border));border-radius:var(--radius-md, 4px);font-size:var(--font-size-base, 14px);background-color:var(--color-background, white);cursor:pointer}.category-selector .category-select:focus{outline:none;border-color:var(--color-primary, var(--color-success));box-shadow:0 0 0 2px #6bcb7733}.category-selector.inline-edit{display:inline-flex}.category-selector.inline-edit .category-select{width:120px;min-width:100px;padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);font-size:var(--font-size-sm, 12px);border:2px solid var(--color-primary, var(--color-success));border-radius:var(--radius-md, 4px)}.category-selector .category-select:disabled{background-color:var(--color-disabled-bg, var(--color-surface-variant));cursor:not-allowed;opacity:.7}@media (max-width: 480px){.category-selector .category-select{width:100%;min-width:0}}.inventory-container{max-width:var(--max-width-lg);margin:var(--spacing-lg) auto;background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg);overflow:hidden;box-sizing:border-box}.inventory-container h1{font-size:var(--font-size-3xl);color:var(--color-text-primary);margin-bottom:var(--spacing-xl);text-align:center}.tabs{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border);overflow:hidden;padding-bottom:0}.tab-button{padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:none;border-bottom:3px solid transparent;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;flex-shrink:0;margin-bottom:-2px}.tab-button:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.tab-content{animation:fadeIn .3s ease-in-out}.inventory-form{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-background);border-radius:var(--radius-lg);width:100%;align-items:center}.inventory-form input[type=text]{margin:0;min-width:150px;flex:1}.inventory-form button{padding:var(--spacing-sm) var(--spacing-xl);white-space:nowrap;flex-shrink:0}.inventory-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.inventory-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base);gap:var(--spacing-md)}.inventory-item:hover{background-color:var(--color-surface);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.item-fields{flex:1;display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.editable-field{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text-primary);border:1px solid transparent;min-width:60px;display:inline-block}.editable-field:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.item-quantity{color:var(--color-text-secondary);font-weight:var(--font-weight-normal);white-space:nowrap}.inline-edit-input{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);border:2px solid var(--color-primary);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);outline:none;box-shadow:var(--shadow-md);min-width:100px}.inline-edit-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.item-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.delete-btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.delete-btn:hover{background-color:var(--color-error);box-shadow:var(--shadow-sm)}.move-btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.move-btn:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;inset:0;background-color:#0f0a0880;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-in-out}.modal-content{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-xl);max-width:400px;width:90%;animation:slideUp .3s ease-out}.move-modal h3{font-size:var(--font-size-xl);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.move-modal p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.move-form{margin-bottom:var(--spacing-lg)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.cancel-btn{padding:var(--spacing-sm) var(--spacing-xl);font-size:var(--font-size-base);background-color:var(--color-background);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.cancel-btn:hover{background-color:var(--color-surface);border-color:var(--color-text-secondary)}.confirm-btn{padding:var(--spacing-sm) var(--spacing-xl);font-size:var(--font-size-base);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.confirm-btn:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.inventory-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base)}.inventory-list li:hover{background-color:var(--color-surface);border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translate(4px)}.inventory-list span{flex:1;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.inventory-list div{display:flex;gap:var(--spacing-sm)}.inventory-list button{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none}.inventory-list button:hover{background-color:var(--color-primary-hover)}.inventory-list:empty+p,.tab-content>p:last-child{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-tertiary);font-style:italic}@media (max-width: 768px){.inventory-container{padding:var(--mobile-padding);margin:var(--spacing-md) auto;border-radius:var(--radius-lg)}.inventory-container h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}.tabs{gap:var(--mobile-gap);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tab-button{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-optimal)}.inventory-form{grid-template-columns:1fr;gap:var(--mobile-gap);padding:var(--spacing-md)}.inventory-form button{width:100%;padding:var(--spacing-md)}.inventory-item{flex-direction:column;align-items:stretch;padding:var(--spacing-md)}.item-fields{flex-direction:column;align-items:stretch;gap:var(--mobile-gap)}.editable-field{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);min-height:var(--touch-target-min);display:flex;align-items:center}.inline-edit-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base)}.item-actions{width:100%;margin-top:var(--spacing-sm)}.delete-btn,.move-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);min-height:var(--touch-target-optimal)}.modal-content{padding:var(--spacing-lg);max-width:95%}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.inventory-list li{flex-direction:column;align-items:stretch;gap:var(--spacing-md);padding:var(--spacing-md)}.inventory-list div{width:100%}.inventory-list button{flex:1;min-height:var(--touch-target-optimal)}}.loading-state,.error-message{max-width:var(--max-width-lg);margin:2rem auto;padding:2rem;background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center;color:var(--color-text-primary)}.inventory-form .expiry-input{margin:0;flex-shrink:0;padding:var(--spacing-sm);background-color:var(--color-background);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);color-scheme:inherit}.expiry-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap}.expiry-badge .icon{width:12px;height:12px;flex-shrink:0}.expiry-badge.expiry-soon{color:var(--color-warning);border-color:var(--color-warning)}.expiry-badge.expiry-today,.expiry-badge.expiry-expired{color:var(--color-error);border-color:var(--color-error)}.expiry-add-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;flex-shrink:0;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer}.expiry-add-btn .icon{width:14px;height:14px;flex-shrink:0}.expiry-add-btn:hover{color:var(--color-primary)}.expiring-soon-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-background);border:1px solid var(--color-warning);border-radius:var(--radius-lg)}.expiring-soon-title{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-md);font-size:var(--font-size-md);color:var(--color-warning)}.expiring-soon-title .icon{width:18px;height:18px;flex-shrink:0}.expiring-soon-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.expiring-soon-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) 0}.expiring-soon-item .expiring-soon-name{font-weight:500}.expiring-soon-item .expiring-soon-quantity{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.expiring-soon-item .expiry-badge{margin-left:auto}.kitchen-title{font-family:var(--font-display);color:var(--color-text);margin-bottom:var(--space-md)}.staples-description{color:var(--color-text-secondary);margin-bottom:var(--space-md)}.staples-add-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.staples-add-row input{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-sm) var(--space-md)}.staples-add-row input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.staples-add-button{background:var(--gradient-primary);color:var(--palette-bg);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-weight:600;cursor:pointer}.staples-add-button:hover{filter:brightness(1.1)}.staples-toolbar{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-md)}.staples-search{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-sm) var(--space-md)}.staples-search:focus{outline:none;border-color:var(--color-primary)}.staples-select-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);cursor:pointer;white-space:nowrap}.staples-select-toggle.active,.staples-select-toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}.staples-bulk-bar{display:flex;align-items:center;justify-content:space-between;background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);color:var(--color-text)}.staples-remove-selected{background:transparent;border:1px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);cursor:pointer}.staples-remove-selected:hover{background:var(--color-error);color:var(--palette-bg)}.staples-chip-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) 0}.staple-chip{display:inline-flex;align-items:center;gap:var(--space-xs);background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:var(--radius-full);color:var(--color-text);padding:var(--space-xs) var(--space-sm) var(--space-xs) var(--space-md);font-size:.9rem;line-height:1.4}.staple-chip.selectable{cursor:pointer;padding-right:var(--space-md)}.staple-chip.selected{border-color:var(--color-primary);background:var(--color-primary);color:var(--palette-bg)}.staple-chip-action,.staple-chip-remove{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xs);border-radius:50%}.staple-chip-action:hover{color:var(--color-primary)}.staple-chip-remove:hover{color:var(--color-error)}.staples-empty-state{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--color-text-secondary)}.staples-empty-art{width:min(280px,70vw);max-width:100%;border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.staples-empty-state h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:var(--space-sm)}.staples-no-results{color:var(--color-text-secondary);padding:var(--space-md) 0}.kitchen-precision-hint{margin-top:var(--space-xl);color:var(--color-text-secondary);font-size:.9rem}.kitchen-precision-hint a{color:var(--color-primary)}.move-existing-quantity{color:var(--color-text-secondary);font-size:.9rem}.move-replace-warning{color:var(--color-warning);background:#e8b8301a;border:1px solid rgba(232,184,48,.3);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:.9rem}.save-as-package-overlay{position:fixed;inset:0;background-color:#0f0a0880;display:flex;align-items:center;justify-content:center;z-index:1000}.save-as-package-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:450px;width:90%;box-shadow:var(--shadow-lg)}.save-as-package-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0;text-align:center}.save-as-package-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-lg) 0;text-align:center}.save-as-package-description strong{color:var(--color-text-primary)}.save-as-package-form{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-field label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.form-field input[type=number],.form-field input[type=text]{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base)}.form-field input[type=number]:focus,.form-field input[type=text]:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-field input[type=number]{width:100px}.checkbox-field{flex-direction:row;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-field input[type=checkbox]{width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-field label{font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer}.calculated-size{background-color:var(--color-surface-variant);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-secondary);text-align:center}.calculated-size strong{color:var(--color-primary)}.save-as-package-error{background-color:#cf66791a;color:var(--color-error);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:center}.save-as-package-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.save-as-package-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);border:none}.save-as-package-button:disabled{opacity:.7;cursor:not-allowed}.save-as-package-button.primary{background-color:var(--color-primary);color:var(--color-background)}.save-as-package-button.primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.save-as-package-button.secondary{background-color:var(--color-surface-variant);color:var(--color-text-primary);border:1px solid var(--color-border)}.save-as-package-button.secondary:hover:not(:disabled){background-color:var(--color-surface-hover)}.bought-section{margin-top:var(--spacing-xl, 24px);border:2px dashed var(--color-border, var(--color-surface-variant));border-radius:var(--border-radius-md, 8px);overflow:hidden;background-color:var(--color-surface, var(--color-text-primary));opacity:.9}.bought-section-header{display:flex;align-items:center;width:100%;padding:var(--spacing-md, 12px) var(--spacing-lg, 16px);background-color:var(--color-surface-secondary, var(--color-surface-variant));border:none;cursor:pointer;font-size:1rem;font-weight:600;color:var(--color-text-secondary, var(--color-text-tertiary));transition:background-color .2s ease;text-align:left}.bought-section-header:hover{background-color:var(--color-surface-hover, var(--color-surface-variant))}.bought-section-header:focus{outline:2px solid var(--color-primary, var(--color-primary-dark));outline-offset:-2px}.bought-section-header.collapsed{border-bottom:none}.bought-section-header.expanded{border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.bought-section-icon{font-size:1.25rem;margin-right:var(--spacing-sm, 8px);flex-shrink:0}.bought-section-title{flex:1;font-weight:600}.bought-section-count{color:var(--color-text-tertiary, var(--color-text-tertiary));font-weight:400;margin-left:var(--spacing-sm, 8px);font-size:.875rem}.bought-section-toggle{font-size:1.25rem;font-weight:700;color:var(--color-text-tertiary, var(--color-text-tertiary));margin-left:var(--spacing-md, 12px);width:24px;text-align:center;flex-shrink:0}.bought-section-items{padding:var(--spacing-sm, 8px) var(--spacing-md, 12px)}.bought-item-row{display:flex;align-items:center;gap:var(--spacing-md, 12px);padding:var(--spacing-sm, 8px) var(--spacing-md, 12px);background-color:var(--color-background, var(--color-text-primary));border:1px solid var(--color-border-light, var(--color-surface-variant));border-radius:var(--border-radius-sm, 4px);margin-bottom:var(--spacing-xs, 4px);animation:slideToBottom .2s ease-out}.bought-item-row:last-child{margin-bottom:0}.bought-item-checkbox{flex-shrink:0}.bought-item-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-success, var(--color-success))}.bought-item-name{flex:1;font-size:var(--font-size-base, 1rem);color:var(--color-text-tertiary, var(--color-text-tertiary));text-decoration:line-through}.bought-item-quantity{color:var(--color-text-tertiary, var(--color-text-tertiary));font-size:var(--font-size-sm, .875rem);text-decoration:line-through}.bought-section-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) var(--space-xs) var(--space-xs);border-top:1px solid var(--color-border);margin-top:var(--space-sm)}.bought-action-primary{flex:1;min-width:180px;background:var(--gradient-primary);color:var(--palette-bg);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-weight:600;cursor:pointer}.bought-action-primary:hover:not(:disabled){filter:brightness(1.1)}.bought-action-primary:disabled{opacity:.6;cursor:not-allowed}.bought-action-secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer}.bought-action-secondary:hover:not(:disabled){color:var(--color-error);border-color:var(--color-error)}@keyframes slideToBottom{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.bought-section-header{padding:var(--spacing-sm, 8px) var(--spacing-md, 12px)}.bought-section-icon{font-size:1.1rem}.bought-section-title{font-size:.9rem}.bought-section-count{font-size:.8rem}.bought-item-row{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px)}.bought-item-name{font-size:.9rem}.bought-item-quantity{font-size:.8rem}}.grocery-list-container{max-width:var(--max-width-md);margin:var(--space-lg) auto;padding:0 var(--space-md);min-height:500px}.grocery-title{font-family:var(--font-display);color:var(--color-text);margin-bottom:var(--space-md)}.grocery-add-form{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md);align-items:center}.grocery-add-form input[type=text]{margin:0;min-width:150px;flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-sm) var(--space-md)}.grocery-add-form input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.grocery-add-button{display:inline-flex;align-items:center;gap:var(--space-xs);background:var(--gradient-primary);color:var(--palette-bg);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}.grocery-add-button:hover{filter:brightness(1.1)}.grocery-list{list-style:none;padding:0;margin:0 0 var(--space-md) 0;display:flex;flex-direction:column;gap:var(--space-sm)}.grocery-list-item-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.grocery-list-item-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.item-selection{flex-shrink:0}.item-selection input[type=checkbox]{width:20px;height:20px;margin:0;cursor:pointer;accent-color:var(--color-primary)}.item-fields{flex:1;display:flex;align-items:center;gap:var(--space-md);min-width:0}.editable-field{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text);border:1px solid transparent;display:inline-block}.editable-field:hover{border-color:var(--color-primary);background:var(--tag-bg)}.item-name{flex:1;min-width:100px}.item-quantity{color:var(--color-text-secondary);font-weight:var(--font-weight-normal);white-space:nowrap;min-width:60px}.item-category{font-size:var(--font-size-xl);min-width:32px;text-align:center;flex-shrink:0}.inline-edit-input{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);border:2px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);outline:none;box-shadow:var(--shadow-md);min-width:100px}.inline-edit-input.quantity-input{min-width:80px}.inline-edit-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.item-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.delete-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-xs);background:transparent;color:var(--color-text-secondary);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.delete-btn:hover{color:var(--color-error);border-color:var(--color-error)}.grocery-empty-state{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--color-text-secondary)}.grocery-empty-art{width:min(280px,70vw);max-width:100%;border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.grocery-empty-state h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:var(--space-sm)}@media (max-width: 768px){.grocery-list-container{padding:0 var(--mobile-padding);margin:var(--space-md) auto}.grocery-list-item-row{flex-direction:column;align-items:stretch;padding:var(--space-sm);gap:var(--mobile-gap)}.item-selection{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0}.item-selection input[type=checkbox]{width:24px;height:24px;min-width:24px;min-height:24px;margin:0}.item-fields{flex-direction:column;align-items:stretch;gap:var(--mobile-gap)}.editable-field{width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base);min-height:var(--touch-target-min);display:flex;align-items:center}.inline-edit-input{width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base)}.item-actions{width:100%;margin-top:var(--space-xs)}.delete-btn{width:100%;padding:var(--space-sm) var(--space-md);min-height:var(--touch-target-optimal)}}.loading-state,.error-message{max-width:var(--max-width-md);margin:2rem auto;padding:2rem;text-align:center;color:var(--color-text)}.error-message{color:var(--color-error)}.recipe-card-v2{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:box-shadow var(--transition-base),border-color var(--transition-base)}.recipe-card-v2:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-border)}.recipe-card-v2.highlighted{border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.recipe-card-art{position:relative;height:148px;flex-shrink:0;background:radial-gradient(120% 90% at 20% 0%,rgba(200,132,90,.14),transparent 60%),var(--color-background-tertiary)}.recipe-card-art img{width:100%;height:100%;object-fit:contain;padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xl);opacity:.9}.recipe-card-match-bar{position:absolute;top:0;left:0;right:0;height:4px;background:var(--art-track)}.recipe-card-match-bar:after{content:"";position:absolute;top:0;left:0;height:100%;width:var(--match);background:var(--color-primary);border-radius:0 2px 2px 0}.recipe-card-match-text{position:absolute;top:10px;left:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);background:var(--art-chip-bg);padding:3px 8px;border-radius:var(--radius-sm)}.recipe-card-art-badges{position:absolute;top:10px;right:12px;display:flex;align-items:center;gap:var(--spacing-xs)}.recipe-card-header-actions{position:absolute;top:40px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}.recipe-card-art-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-xl) var(--spacing-md) var(--spacing-sm);background:var(--art-title-scrim);pointer-events:none}.recipe-card-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin:0;overflow-wrap:anywhere}.recipe-card-v2 .availability-badge{flex-shrink:0}.recipe-card-v2 .badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.recipe-card-v2 .badge-ready{background-color:#6bcb7733;color:var(--color-success)}.recipe-card-v2 .badge-mostly-ready{background-color:#e8b83033;color:var(--color-warning-dark)}.recipe-card-v2 .badge-not-ready{background-color:#cf667933;color:var(--color-error)}.recipe-card-body{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);flex:1}.recipe-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-card-sections{display:flex;flex-direction:column;gap:var(--spacing-xs)}.recipe-card-section{border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.recipe-card-section-toggle{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;min-height:var(--touch-target-min);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.recipe-card-section-toggle:hover{background:var(--color-background-hover)}.recipe-card-section-toggle.expanded{border-bottom:1px solid var(--color-border-light)}.recipe-card-section-icon{display:inline-flex;color:var(--color-primary)}.recipe-card-section-label{flex:1}.recipe-card-section-indicator{display:inline-flex;color:var(--color-text-tertiary)}.recipe-card-ingredients-extra{padding:var(--spacing-sm) var(--spacing-md) 0}.recipe-card-section-content{margin:0;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex;flex-direction:column;gap:var(--spacing-xs)}.recipe-card-ingredients{list-style:none;padding-left:var(--spacing-md)}.recipe-card-footer{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:0 var(--spacing-md) var(--spacing-md)}.recipe-card-primary-action{display:flex}.recipe-card-primary-action>*{flex:1}.recipe-card-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.recipe-card-actions>*{flex:1 1 auto}.filter-tag{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, .875rem);font-weight:500}.filter-tag-text{white-space:nowrap}.filter-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background-color:transparent;color:inherit;font-size:1rem;font-weight:700;cursor:pointer;border-radius:50%;transition:background-color var(--transition-fast, .15s)}.filter-tag-remove:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.filter-tag-remove:focus{outline:2px solid var(--color-border-focus);outline-offset:1px}.filter-bar{display:flex;flex-direction:column;gap:var(--spacing-md, 16px);padding:var(--spacing-md, 16px);background-color:var(--color-surface);border-radius:var(--radius-lg, 12px);margin-bottom:var(--spacing-lg, 24px);border:1px solid var(--color-border)}.filter-bar-row{display:flex;flex-wrap:wrap;gap:var(--spacing-md, 16px);align-items:center}.filter-section{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.filter-label{font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem);white-space:nowrap}.search-container{display:flex;align-items:center;flex:1;min-width:200px;max-width:400px;position:relative}.search-input{width:100%;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);padding-right:calc(var(--spacing-sm, 8px) + 1.5rem);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:var(--font-size-base, 1rem);background-color:var(--color-surface-variant);color:var(--color-text-primary);transition:border-color var(--transition-fast, .15s)}.search-input::placeholder{color:var(--color-text-tertiary)}.search-input:focus{outline:none;border-color:var(--color-primary, var(--color-info));box-shadow:0 0 0 2px var(--color-primary-light, rgba(212, 165, 116, .2))}.search-clear-btn{position:absolute;right:var(--spacing-xs, 4px);display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.25rem;cursor:pointer;border-radius:50%;transition:background-color var(--transition-fast, .15s)}.search-clear-btn:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.results-count{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary);white-space:nowrap}.toggle-group{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, 4px)}.toggle-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background-color:var(--color-surface-variant);color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem);cursor:pointer;transition:all var(--transition-fast, .15s)}.toggle-btn:hover{border-color:var(--color-primary);background-color:var(--color-primary-light);color:var(--color-text-primary)}.toggle-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.toggle-btn-count{font-size:var(--font-size-xs, .75rem);opacity:.8}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px)}.checkbox-label{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px);font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-input{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.favorites-only-label{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background-color:var(--color-surface-variant);transition:all var(--transition-fast, .15s)}.favorites-only-label:hover{border-color:var(--color-warning);background-color:#e8b83026}.favorites-only-label:has(.checkbox-input:checked){border-color:var(--color-warning);background-color:#e8b83033}.favorites-only-text{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px)}.filter-dropdown{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background-color:var(--color-surface-variant);color:var(--color-text-primary);font-size:var(--font-size-sm, .875rem);cursor:pointer;min-width:120px}.filter-dropdown option{background-color:var(--color-surface);color:var(--color-text-primary)}.filter-dropdown:focus{outline:none;border-color:var(--color-primary)}.sort-section{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:nowrap}.sort-direction-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background-color:var(--color-surface-variant);color:var(--color-text-secondary);font-size:1rem;cursor:pointer;transition:all var(--transition-fast, .15s)}.sort-direction-btn:hover{border-color:var(--color-primary);background-color:var(--color-primary-light);color:var(--color-text-primary)}.sort-direction-btn--asc{transform:rotate(180deg)}.active-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px);align-items:center;padding-top:var(--spacing-sm, 8px);border-top:1px solid var(--color-border)}.clear-all-btn{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:none;background:transparent;color:var(--color-error);font-size:var(--font-size-sm, .875rem);cursor:pointer;text-decoration:underline}.clear-all-btn:hover{color:var(--color-error-hover)}@media (max-width: 768px){.filter-bar{padding:var(--spacing-sm, 8px)}.filter-bar-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm, 8px)}.search-container{max-width:100%;width:100%}.toggle-group{width:100%}.toggle-btn{flex:1;justify-content:center}.sort-section{margin-left:0;width:100%;justify-content:space-between}.filter-dropdown{flex:1}}.save-adjustment-dialog-backdrop{position:fixed;inset:0;background-color:#0f0a0880;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.save-adjustment-dialog{background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:480px;width:100%;max-height:90vh;max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;animation:dialog-slide-in .2s ease-out}@keyframes dialog-slide-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.save-adjustment-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border)}.save-adjustment-dialog-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.save-adjustment-dialog-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-tertiary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.save-adjustment-dialog-close:hover:not(:disabled){color:var(--color-text-primary)}.save-adjustment-dialog-close:disabled{cursor:not-allowed;opacity:.5}.save-adjustment-dialog-content{padding:var(--spacing-xl);flex:1;overflow-y:auto}.save-adjustment-description{margin:0 0 var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--font-size-base)}.save-adjustment-description strong{color:var(--color-primary)}.save-adjustment-summary{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.summary-item{display:flex;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-xs) 0}.summary-item:not(:last-child){border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.summary-label{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.summary-value{color:var(--color-text-primary);font-weight:var(--font-weight-medium);text-align:right}.save-adjustment-question{margin:0;color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.save-adjustment-dialog-footer{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border);background-color:var(--color-background)}.save-adjustment-button{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none;min-height:var(--touch-target-min)}.save-adjustment-button:disabled{cursor:not-allowed;opacity:.6}.save-adjustment-button.update-original{background-color:var(--color-primary);color:var(--color-text-on-primary)}.save-adjustment-button.update-original:hover:not(:disabled){background-color:var(--color-primary-dark)}.save-adjustment-button.save-as-new{background-color:var(--color-success);color:var(--color-text-on-primary)}.save-adjustment-button.save-as-new:hover:not(:disabled){background-color:var(--color-success)}.save-adjustment-button.preview-only{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.save-adjustment-button.preview-only:hover:not(:disabled){background-color:var(--color-surface-variant);color:var(--color-text-primary)}@media (prefers-color-scheme: dark){.save-adjustment-dialog-backdrop{background-color:#0f0a08b3}}@media (max-width: 768px){.save-adjustment-dialog-backdrop{padding:var(--spacing-md)}.save-adjustment-dialog{max-height:95vh;max-height:95dvh}.save-adjustment-dialog-header,.save-adjustment-dialog-content,.save-adjustment-dialog-footer{padding:var(--spacing-md)}.save-adjustment-dialog-header h2{font-size:var(--font-size-lg)}.save-adjustment-button{padding:var(--spacing-md);min-height:var(--touch-target-optimal)}}.saved-recipes-container{max-width:var(--max-width-2xl);margin:var(--spacing-lg) auto;padding:var(--spacing-xl)}.saved-recipes-container h1{font-size:var(--font-size-4xl);color:var(--color-text-primary);margin-bottom:var(--spacing-2xl);text-align:center}.saved-recipes-container>p{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-tertiary);font-style:italic;font-size:var(--font-size-lg)}.saved-recipes-container.error{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--color-error);font-size:var(--font-size-lg)}.saved-recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);align-items:start}.delete-recipe-btn{width:32px;height:32px;min-width:32px;padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--art-chip-bg);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xl);line-height:1;cursor:pointer;transition:all var(--transition-base)}.delete-recipe-btn:hover{background-color:var(--color-error);color:var(--color-text-on-primary);border-color:var(--color-error);transform:rotate(90deg)}.favorite-toggle-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--art-chip-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;padding:var(--spacing-xs);transition:transform var(--transition-base);color:var(--color-text-secondary);flex-shrink:0}.favorite-toggle-btn:hover{transform:scale(1.15)}.favorite-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.favorite-toggle-btn.is-favorite{color:var(--color-warning)}.accept-cooking-btn{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-success);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.accept-cooking-btn:hover:not(:disabled){transform:scale(1.02)}.accept-cooking-btn:active:not(:disabled){transform:scale(.98)}.accept-cooking-btn:disabled{cursor:not-allowed;opacity:.7}.accept-cooking-btn.in-queue{background-color:var(--color-text-tertiary)}.ingredient-item{display:flex;align-items:flex-start;gap:var(--spacing-xs)}.ingredient-icon{flex-shrink:0;width:1.2em;text-align:center}.ingredient-available .ingredient-icon,.ingredient-available .ingredient-text{color:var(--color-success)}.ingredient-always-on-stock .ingredient-icon,.ingredient-always-on-stock .ingredient-text{color:var(--color-text-tertiary)}.ingredient-in-grocery .ingredient-icon,.ingredient-in-grocery .ingredient-text{color:var(--color-warning-dark)}.ingredient-missing .ingredient-icon,.ingredient-missing .ingredient-text{color:var(--color-error)}.quantity-info{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:var(--spacing-xs);font-style:italic}.saved-recipes-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.add-own-recipe-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.add-own-recipe-btn:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.add-own-recipe-btn .icon{width:16px;height:16px}.own-recipe-badge{display:inline-block;padding:2px var(--spacing-sm);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.edit-own-recipe-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.edit-own-recipe-btn:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.edit-own-recipe-btn .icon{width:16px;height:16px}.adjust-amounts-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.adjust-amounts-btn:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.adjust-amounts-btn:active{transform:scale(.98)}.add-missing-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-warning-dark);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.add-missing-btn:active{transform:scale(.98)}.saved-recipes-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl) var(--spacing-xl);text-align:center}.saved-recipes-empty-art{width:min(240px,60vw);opacity:.9}.saved-recipes-empty p{color:var(--color-text-tertiary);font-style:italic;font-size:var(--font-size-lg);margin:0}.saved-recipes-empty-filter{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-xl);background-color:var(--color-surface);border-radius:var(--radius-xl);border:2px dashed var(--color-border);text-align:center}.saved-recipes-empty-filter-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.6}.saved-recipes-empty-filter-message{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-medium)}.saved-recipes-empty-filter-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0}.clear-filters-link{display:inline;padding:0;border:none;background:none;color:var(--color-primary);font-size:inherit;cursor:pointer;text-decoration:underline}.clear-filters-link:hover{color:var(--color-primary-dark)}@media (max-width: 1024px){.saved-recipes-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 768px){.saved-recipes-container{padding:var(--mobile-padding)}.saved-recipes-container h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}.saved-recipes-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.delete-recipe-btn{width:var(--touch-target-min);height:var(--touch-target-min);min-width:var(--touch-target-min);min-height:var(--touch-target-min);font-size:var(--font-size-xl)}.accept-cooking-btn{min-height:var(--touch-target-optimal)}}.delete-confirm-modal{text-align:center}.delete-confirm-modal h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.delete-confirm-modal .warning-text{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.delete-confirm-modal .modal-actions{display:flex;gap:var(--spacing-md);justify-content:center}.delete-confirm-modal .secondary-button{padding:var(--spacing-md) var(--spacing-lg);background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base)}.delete-confirm-modal .secondary-button:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.delete-confirm-modal .danger-button{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.delete-confirm-modal .danger-button:hover:not(:disabled){box-shadow:var(--shadow-md)}.delete-confirm-modal button:disabled{opacity:.6;cursor:not-allowed}.cooking-queue-container{max-width:var(--max-width-2xl);margin:var(--spacing-lg) auto;padding:var(--spacing-xl)}.cooking-queue-container h1{font-size:var(--font-size-4xl);color:var(--color-text-primary);margin-bottom:var(--spacing-2xl);text-align:center}.cooking-queue-container.error{text-align:center}.cooking-queue-container .error-message{color:var(--color-error);font-size:var(--font-size-lg);padding:var(--spacing-3xl)}.empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-tertiary)}.empty-state-art{width:min(240px,60vw);opacity:.9;margin-bottom:var(--spacing-md)}.empty-state p{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.empty-state-hint{font-style:italic;font-size:var(--font-size-base)!important}.cooking-queue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);align-items:start}.status-badge.status-queued{background-color:var(--color-text-tertiary);color:var(--color-text-on-primary)}.status-badge.status-in-progress{background-color:var(--color-warning);color:var(--color-background)}.status-badge.status-completed{background-color:var(--color-success);color:var(--color-text-on-primary)}.ingredient-count{font-weight:var(--font-weight-medium)}.added-time{font-style:italic}.cook-now-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);min-height:var(--touch-target-optimal);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-glow);transition:all var(--transition-base)}.cook-now-button:hover{transform:scale(1.02);filter:brightness(1.05)}.cook-now-button:active{transform:scale(.98)}.remove-from-queue-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:transparent;color:var(--color-text-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base)}.remove-from-queue-button:hover{background-color:var(--color-error);color:var(--color-text-on-primary);border-color:var(--color-error)}.remove-modal-content{text-align:center}.remove-modal-content h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.remove-modal-content p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:var(--line-height-relaxed)}.remove-modal-content strong{color:var(--color-text-primary)}.remove-modal-actions{display:flex;gap:var(--spacing-md);justify-content:center}.confirm-remove-button{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-error);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.confirm-remove-button:hover:not(:disabled){background-color:var(--color-error);transform:scale(1.02)}.confirm-remove-button:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 1024px){.cooking-queue-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 768px){.cooking-queue-container{padding:var(--mobile-padding)}.cooking-queue-container h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}.cooking-queue-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.remove-from-queue-button{min-height:var(--touch-target-optimal)}.remove-modal-actions{flex-direction:column}.cancel-button,.confirm-remove-button{width:100%;min-height:var(--touch-target-optimal)}}.queue-ingredient-row{display:inline-flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.step-assistant-panel{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.assistant-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.assistant-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base)}.assistant-button:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.assistant-button:disabled{opacity:.6;cursor:not-allowed}.button-icon{font-size:var(--font-size-base)}.button-text{white-space:nowrap}.question-input-area{margin-top:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.clear-response-warning{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-warning-light, var(--color-warning-light));border:1px solid var(--color-warning, var(--color-warning));border-radius:var(--radius-md);color:var(--color-warning-dark, var(--color-warning-dark))}.warning-icon{font-size:var(--font-size-base)}.warning-text{flex:1;font-size:var(--font-size-sm)}.warning-actions{display:flex;gap:var(--spacing-sm);margin-left:auto}.warning-button{padding:var(--spacing-xs) var(--spacing-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.warning-button.confirm{background-color:var(--color-warning, var(--color-warning));color:var(--color-warning-dark, var(--color-warning-dark))}.warning-button.confirm:hover{background-color:var(--color-warning-hover, var(--color-warning-dark))}.warning-button.cancel{background-color:transparent;color:var(--color-text-secondary)}.warning-button.cancel:hover{background-color:var(--color-background)}.question-input{width:100%;min-height:80px;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background);resize:vertical;transition:all var(--transition-base)}.question-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light, rgba(var(--color-primary-rgb), .2))}.question-input::placeholder{color:var(--color-text-tertiary)}.question-input:disabled{background-color:var(--color-surface);cursor:not-allowed}.example-questions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.examples-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.example-button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base)}.example-button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.example-button:disabled{opacity:.6;cursor:not-allowed}.submit-question-button{align-self:flex-end;padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.submit-question-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.submit-question-button:disabled{opacity:.6;cursor:not-allowed}.assistant-loading{margin-top:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-background);border-radius:var(--radius-md)}.assistant-loading .loading-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:var(--font-size-base);color:var(--color-text-secondary)}.assistant-response{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background-color:var(--color-background);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.response-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.response-header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.response-icon{font-size:var(--font-size-lg)}.response-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.response-close-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.response-close-button:hover{background-color:var(--color-surface-hover, rgba(15, 10, 8, .05));color:var(--color-text-primary)}.response-content{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-relaxed, 1.7);white-space:pre-wrap}.assistant-thread{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background-color:var(--color-background);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.thread-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.clear-thread-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.clear-thread-button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.clear-thread-button:disabled{opacity:.6;cursor:not-allowed}.thread-turns{display:flex;flex-direction:column;gap:var(--spacing-md);max-height:320px;overflow-y:auto}.thread-turn{display:flex;flex-direction:column;gap:var(--spacing-sm)}.thread-question{display:flex;align-items:baseline;gap:var(--spacing-sm);align-self:flex-end;max-width:90%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary)}.thread-role{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.thread-question-text{white-space:pre-wrap}.thread-answer{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-relaxed, 1.7);white-space:pre-wrap}.step-assistant-panel.response-only .assistant-thread{margin-top:var(--spacing-md)}.assistant-error{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-error-light, var(--color-error-light));border:1px solid var(--color-error, var(--color-error));border-radius:var(--radius-md)}.error-header{display:flex;align-items:center;gap:var(--spacing-sm)}.error-icon{font-size:var(--font-size-base);flex-shrink:0}.error-text{flex:1;font-size:var(--font-size-sm);color:var(--color-error-dark, var(--color-error-dark))}.step-assistant-panel.response-only{margin-top:0;padding:var(--spacing-lg);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);position:relative}.step-assistant-panel.response-only .assistant-response,.step-assistant-panel.response-only .assistant-loading,.step-assistant-panel.response-only .assistant-error{margin-top:0}.panel-close-button{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-xl);cursor:pointer;transition:all var(--transition-base);z-index:1}.panel-close-button:hover{background-color:var(--color-surface-hover, rgba(15, 10, 8, .05));color:var(--color-text-primary)}.step-assistant-panel.response-only .question-input-area{margin-top:var(--spacing-md)}.step-assistant-panel.buttons-only{background-color:transparent;border:none;padding:0;margin-top:var(--spacing-lg)}@media (max-width: 480px){.step-assistant-panel{padding:var(--spacing-md)}.assistant-buttons{flex-direction:column}.assistant-button{width:100%;justify-content:center}.warning-actions{width:100%;justify-content:flex-end}.example-questions{flex-direction:column;align-items:flex-start}.example-button{font-size:var(--font-size-sm)}.submit-question-button{width:100%}}.cooking-mode-container{position:fixed;inset:0;--cooking-stage-edge: #0d0a08;background-color:var(--color-background);display:flex;flex-direction:column;align-items:center;z-index:var(--z-modal);overflow:hidden}[data-theme=light] .cooking-mode-container{--palette-copper: #a86a44;--palette-gold: #9c7a3c;--cooking-stage-edge: #eae0d2}.cooking-mode-shell{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden}.cooking-mode-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg)}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.cooking-mode-loading p{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.cooking-mode-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-xl);text-align:center}.cooking-mode-error h2{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary)}.cooking-mode-error p{font-size:var(--font-size-base);color:var(--color-text-secondary);max-width:400px}.back-to-queue-button{padding:var(--spacing-md) var(--spacing-xl);min-height:56px;background-color:var(--color-primary);color:var(--palette-bg);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.back-to-queue-button:hover{background-color:var(--color-primary-hover)}.cooking-mode-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:0 var(--spacing-sm);background-color:var(--color-background);border-bottom:1px solid var(--border-subtle);min-height:56px;flex-shrink:0}.exit-cooking-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-primary);opacity:.6;border:none;border-radius:var(--radius-full);cursor:pointer;transition:opacity var(--transition-base),background-color var(--transition-base);flex-shrink:0}.exit-cooking-button:hover,.exit-cooking-button:active{opacity:1;background-color:var(--color-primary-light)}.exit-cooking-button .icon{width:24px;height:24px;flex-shrink:0}.close-panel-button .icon,.timer-action-button .icon{width:20px;height:20px;flex-shrink:0}.prev-button .icon,.skip-next-button .icon{width:28px;height:28px;flex-shrink:0}.wake-lock-indicator .icon{width:12px;height:12px;flex-shrink:0}.completion-celebration .icon{width:64px;height:64px;flex-shrink:0}.cooking-recipe-title{flex:1;font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);color:var(--palette-copper);margin:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.wake-lock-indicator{display:inline-flex;align-items:center;color:var(--palette-copper);opacity:.4;flex-shrink:0}.ingredients-toggle-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-width:44px;min-height:44px;padding:var(--spacing-xs) var(--spacing-sm);background-color:transparent;color:var(--color-text-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.ingredients-toggle-button:hover{background-color:var(--color-primary-light)}.ingredients-toggle-button.active{background-color:var(--color-primary-light);color:var(--palette-copper);box-shadow:inset 0 -2px 0 var(--palette-copper)}.ingredients-badge{background-color:var(--tag-bg);border:1px solid var(--tag-border);color:var(--palette-gold);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.cooking-progress{position:relative;flex-shrink:0;padding-bottom:var(--spacing-md);background-color:var(--color-background)}.cooking-progress-track{display:flex;gap:3px;height:4px;width:100%;background-color:transparent}.cooking-progress-segment{flex:1;height:100%;border-radius:2px;background-color:var(--palette-copper);opacity:.2;transition:opacity .25s ease-out}.cooking-progress-segment.completed{opacity:1}.cooking-progress-segment.current{animation:segment-breathe 2s ease-in-out infinite}@keyframes segment-breathe{0%,to{opacity:.8}50%{opacity:1}}.cooking-progress-continuous{display:block;height:100%;border-radius:2px;background-color:var(--palette-copper);transition:width .25s ease-out}.cooking-progress-fraction{position:absolute;right:var(--spacing-md);top:8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);opacity:.7}.cooking-mode-main{flex:1;display:flex;position:relative;overflow:hidden;min-height:0}.step-stage{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.step-display{flex:1;display:flex;align-items:safe center;justify-content:center;padding:var(--spacing-lg) var(--spacing-xl);overflow-y:auto;min-height:0}.step-content-wrapper{display:flex;flex-direction:column;width:100%;max-width:700px;gap:var(--spacing-lg);margin:auto 0}.step-content-main{width:100%}.step-content{width:100%;text-align:left}.step-number{font-family:var(--font-display);font-size:40px;line-height:1.1;color:var(--palette-copper)}.step-number-rule{width:24px;height:2px;background-color:var(--palette-copper);opacity:.3;margin:var(--spacing-sm) 0 var(--spacing-md)}.step-instruction{font-size:24px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:1.55;margin:0;max-width:28em;overflow-wrap:break-word}.step-ingredient,.step-duration{display:inline;position:relative;background:none;border:none;padding:0;margin:0;font:inherit;color:var(--palette-copper);cursor:pointer}.step-ingredient:hover,.step-ingredient[aria-expanded=true]{text-decoration:underline;text-underline-offset:4px}.step-duration{display:inline-flex;align-items:baseline;gap:4px;border-bottom:1px dashed var(--palette-copper);white-space:nowrap}.step-duration .icon{align-self:center}.step-duration:hover{color:var(--palette-gold);border-bottom-color:var(--palette-gold)}.step-ingredient-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:var(--surface-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;z-index:5}.step-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--palette-copper);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-md)}.step-title{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin-bottom:var(--spacing-xl)}.preparation-steps-list{text-align:left;margin:0;padding-left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.preparation-step-item{font-size:var(--font-size-lg);color:var(--color-text-primary);line-height:var(--line-height-relaxed);padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-md);border-left:3px solid var(--palette-copper)}.no-preparation{font-size:var(--font-size-lg);color:var(--color-text-tertiary);font-style:italic}.step-completed-badge{display:inline-block;margin-top:var(--spacing-lg);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.step-assistant-panel.response-only{max-height:40vh;overflow-y:auto}.timer-dock{flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.timer-card{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);background-color:var(--surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-md)}.timer-card-info{display:flex;align-items:baseline;gap:var(--spacing-md);min-width:0}.timer-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timer-clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.timer-card.expanded .timer-clock{font-size:clamp(48px,12vw,64px);line-height:1.1}.timer-card.compact .timer-clock{font-size:var(--font-size-2xl)}.timer-card.done{border-color:var(--palette-copper);animation:timer-done-flash .6s ease-in-out 3}.timer-card.done .timer-label{color:var(--palette-gold);font-weight:var(--font-weight-semibold)}@keyframes timer-done-flash{0%,to{background-color:var(--surface-elevated)}50%{background-color:var(--color-primary-light)}}.timer-card-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.timer-action-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.timer-action-button:hover{color:var(--palette-copper);border-color:var(--color-border-hover);background-color:var(--color-primary-lighter)}.timer-more-badge{align-self:flex-end;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cooking-mode-footer{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);min-height:88px;background-color:var(--color-surface);border-top:1px solid var(--border-subtle);flex-shrink:0}.nav-button{border:none;cursor:pointer;transition:transform 80ms ease,background-color var(--transition-base),color var(--transition-base)}.prev-button,.skip-next-button{flex:0 0 48px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-primary);opacity:.6;border-radius:var(--radius-full)}.prev-button:hover:not(:disabled),.skip-next-button:hover:not(:disabled){opacity:1;background-color:var(--color-primary-light)}.prev-button:disabled,.skip-next-button:disabled{opacity:.2;cursor:not-allowed}.primary-action-button{flex:1;min-height:56px;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--palette-copper);color:var(--palette-bg);border-radius:var(--radius-xl);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.primary-action-button:hover{background-color:var(--color-primary-hover)}.primary-action-button:active{transform:scale(.96);background-color:var(--color-primary-dark)}.complete-button{background-color:var(--palette-gold)}.complete-button:hover{background-color:var(--color-secondary-hover)}.keyboard-hint{display:none;flex-shrink:0;text-align:center;font-size:var(--font-size-xs);color:var(--color-text-primary);opacity:.4;padding-bottom:var(--spacing-sm);background-color:var(--color-surface)}.ingredients-scrim{position:fixed;inset:0;background-color:#1a141280;opacity:0;pointer-events:none;transition:opacity .28s ease;z-index:15}.ingredients-scrim.open{opacity:1;pointer-events:auto}.ingredients-panel{position:fixed;left:0;right:0;bottom:0;max-height:75vh;background-color:var(--surface-elevated);border-top:1px solid var(--color-border-dark);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-xl);transform:translateY(100%);visibility:hidden;transition:transform .32s cubic-bezier(.32,.72,0,1),visibility 0s linear .32s;z-index:16;display:flex;flex-direction:column}.ingredients-panel.open{transform:translateY(0);visibility:visible;transition-delay:0s}.sheet-handle{width:40px;height:4px;border-radius:2px;background-color:var(--palette-copper);opacity:.4;margin:var(--spacing-sm) auto 0;flex-shrink:0}.ingredients-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-border);flex-shrink:0}.ingredients-panel-header h2{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin:0}.close-panel-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:transparent;color:var(--color-text-tertiary);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)}.close-panel-button:hover{background-color:var(--color-primary-light);color:var(--color-text-primary)}.ingredients-panel-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.adjust-all-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);min-height:40px;background-color:var(--color-primary-light);color:var(--palette-copper);border:1px solid var(--color-primary-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.adjust-all-button:hover{background-color:var(--palette-copper);color:var(--palette-bg)}.adjust-all-button:active{transform:scale(.95)}.unsaved-changes-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-warning-light);color:var(--color-warning);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);flex-shrink:0}.save-changes-btn{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-warning);color:var(--palette-bg);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.save-changes-btn:hover{background-color:var(--color-warning-hover)}.ingredients-checklist{flex:1;list-style:none;margin:0;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-lg);overflow-y:auto;display:flex;flex-direction:column;min-height:0}.ingredient-item{border-bottom:1px solid rgba(200,132,90,.08);transition:background-color var(--transition-fast)}.ingredient-item:last-child{border-bottom:none}.ingredient-item.checked{opacity:.5}.ingredient-display{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);min-height:56px}.ingredient-label{flex:1;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) 0 var(--spacing-sm) var(--spacing-xs);cursor:pointer;min-width:0}.ingredient-label input[type=checkbox]{width:24px;height:24px;flex-shrink:0;accent-color:var(--palette-copper);cursor:pointer}.ingredient-text{flex:1;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--spacing-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:var(--line-height-normal);word-break:break-word;overflow-wrap:break-word;min-width:0}.ingredient-item.checked .ingredient-text{text-decoration:line-through;color:var(--color-text-tertiary)}.ingredient-quantity{margin-left:auto;font-weight:var(--font-weight-normal);color:var(--color-text-primary);opacity:.7;white-space:nowrap}.ingredient-quantity.modified{color:var(--palette-copper);opacity:1}.ingredient-note-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:.85rem;cursor:help;opacity:.6;transition:opacity .15s;vertical-align:middle}.ingredient-note-icon:hover{opacity:1}.modified-badge{color:var(--palette-copper);font-weight:var(--font-weight-bold)}.converted-badge{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-style:italic}.cooking-tip{display:block;width:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic;font-weight:var(--font-weight-normal);margin-top:var(--spacing-2xs)}.edit-ingredient-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background-color:transparent;color:var(--palette-copper);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.edit-ingredient-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary-border)}.ingredient-edit-form{padding:var(--spacing-sm) var(--spacing-md);margin:var(--spacing-xs) 0;background-color:var(--color-background);border-radius:var(--radius-md);border:1px solid var(--color-primary-border)}.edit-quantity-row{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.edit-quantity-input,.edit-unit-input{flex:1;min-width:0;padding:var(--spacing-sm);min-height:44px;background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base)}.edit-quantity-input:focus,.edit-unit-input:focus{outline:none;border-color:var(--color-border-focus)}.ingredient-name-display{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.edit-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.edit-save-btn,.edit-cancel-btn{padding:var(--spacing-sm) var(--spacing-md);min-height:44px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.edit-save-btn{background-color:var(--palette-copper);color:var(--palette-bg);border:none;font-weight:var(--font-weight-semibold)}.edit-save-btn:hover{background-color:var(--color-primary-hover)}.edit-cancel-btn{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.edit-cancel-btn:hover{background-color:var(--color-background);border-color:var(--color-border-hover)}.exit-modal-content,.completion-modal-content{text-align:center}.exit-modal-content h2,.completion-modal-content h2{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.exit-modal-content p,.completion-modal-content p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:var(--line-height-relaxed)}.completion-celebration{display:flex;justify-content:center;color:var(--palette-copper);margin-bottom:var(--spacing-md)}.exit-modal-actions,.completion-modal-actions{display:flex;gap:var(--spacing-md);justify-content:center}.cancel-button{padding:var(--spacing-md) var(--spacing-xl);background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.cancel-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-border-hover)}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.confirm-exit-button{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-error);color:var(--palette-bg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.confirm-exit-button:hover{background-color:var(--color-error-hover)}.mark-cooked-button{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--palette-copper);color:var(--palette-bg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.mark-cooked-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.mark-cooked-button:disabled{opacity:.7;cursor:not-allowed}.deduction-summary-modal{max-width:500px;margin:0 auto}.deduction-summary-header{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);color:var(--palette-copper)}.deduction-summary-header h2{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin:0}.deduction-summary-subtitle{text-align:center;font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.deduction-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.deduction-section h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border)}.deduction-section ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:200px;overflow-y:auto}.deduction-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--surface-elevated);border-radius:var(--radius-md);gap:var(--spacing-sm)}.deduction-item.consumed{background-color:var(--color-error-light)}.deduction-item.skipped{background-color:var(--surface-elevated);border-left:3px solid var(--palette-gold);opacity:.8}.deduction-name{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.deduction-amount{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.consumed-badge{padding:2px 8px;background-color:var(--color-error);color:var(--palette-bg);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.remaining-badge{padding:2px 8px;background-color:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.skip-reason{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.skipped-section h3{color:var(--color-text-tertiary)}.no-deductions{text-align:center;font-size:var(--font-size-base);color:var(--color-text-tertiary);font-style:italic;padding:var(--spacing-lg) 0}.deduction-summary-actions{display:flex;justify-content:center;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.deduction-summary-actions .primary-button{padding:var(--spacing-md) var(--spacing-2xl);min-height:48px;background-color:var(--palette-copper);color:var(--palette-bg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.deduction-summary-actions .primary-button:hover{background-color:var(--color-primary-hover)}@media (min-width: 768px){.cooking-mode-header{min-height:64px;padding:0 var(--spacing-md)}.cooking-recipe-title{font-size:var(--font-size-2xl)}.step-display{padding:var(--spacing-xl) var(--spacing-3xl)}.step-number{font-size:56px}.step-number-rule{width:32px;margin:var(--spacing-md) 0 var(--spacing-lg)}.step-instruction{font-size:32px}.cooking-mode-footer{min-height:96px;padding:var(--spacing-md) var(--spacing-lg)}.primary-action-button{min-height:64px;font-size:var(--font-size-xl)}}@media (min-width: 1024px){.step-stage{flex:1 1 55%;min-width:0}.step-display{padding:var(--spacing-xl) var(--spacing-2xl)}.step-number{font-size:64px}.step-number-rule{width:40px}.step-instruction{font-size:36px}.ingredients-scrim{display:none}.ingredients-panel{position:static;flex:0 0 45%;max-width:480px;max-height:none;height:auto;transform:none;visibility:visible;transition:none;border-radius:0;border-top:none;border-left:1px solid var(--border-subtle);box-shadow:none;background-color:var(--surface-elevated)}.ingredients-panel:not(.open){display:none}.sheet-handle,.close-panel-button{display:none}.keyboard-hint{display:block}}@media (min-width: 1280px){.cooking-mode-container{background-color:var(--cooking-stage-edge)}.cooking-mode-shell{max-width:1200px;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle)}}@media (max-width: 480px){.step-display{padding:var(--spacing-lg) var(--spacing-lg)}.exit-modal-actions,.completion-modal-actions{flex-direction:column}.cancel-button,.confirm-exit-button,.mark-cooked-button{width:100%;min-height:var(--touch-target-optimal)}.deduction-summary-actions .primary-button{width:100%}}@media (prefers-reduced-motion: reduce){.cooking-progress-segment.current{animation:none;opacity:1}.timer-card.done{animation:none}.ingredients-panel,.ingredients-scrim{transition:none}}.cooking-history-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl)}.cooking-history-container h1{font-size:var(--font-size-3xl);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.history-subtitle{font-size:var(--font-size-base);color:var(--color-text-tertiary);margin-bottom:var(--spacing-xl)}.history-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.history-tab{padding:var(--spacing-sm) var(--spacing-lg);background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--radius-md) var(--radius-md) 0 0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);position:relative}.history-tab:hover{color:var(--color-text-primary);background-color:var(--color-background)}.history-tab.active{color:var(--color-primary);background-color:var(--color-surface)}.history-tab.active:after{content:"";position:absolute;bottom:calc(-1 * var(--spacing-sm) - 1px);left:0;right:0;height:2px;background-color:var(--color-primary)}.generation-params{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.param-badge{font-size:var(--font-size-xs);padding:2px 8px;background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-full);opacity:.8}.expires-badge.expires-hours{background-color:#d4a5741a;color:var(--color-info);border-color:var(--color-info)}.expires-badge.expires-hours.expiring-soon{background-color:#cf66791a;color:var(--color-error);border-color:var(--color-error)}.history-error{padding:var(--spacing-xl);background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:var(--radius-md);text-align:center}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg);align-items:start}.remove-history-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background-color:var(--art-chip-bg);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xl);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.remove-history-btn:hover:not(:disabled){background-color:var(--color-error);color:var(--color-text-on-primary);border-color:var(--color-error)}.remove-history-btn:disabled{opacity:.5;cursor:not-allowed}.cooked-date{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.expires-badge{font-size:var(--font-size-xs);padding:2px 8px;background-color:var(--color-background);color:var(--color-text-secondary);border-radius:var(--radius-full);border:1px solid var(--color-border)}.expires-badge.expiring-soon{background-color:#cf66791a;color:var(--color-error);border-color:var(--color-error)}.modifications-note{font-size:var(--font-size-xs);color:var(--color-warning);font-style:italic}.cook-again-btn,.save-favorite-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);min-width:120px}.cook-again-btn{background-color:var(--color-primary);color:var(--color-text-on-primary)}.cook-again-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.cook-again-btn.in-queue{background-color:var(--color-success);cursor:default}.cook-again-btn:disabled{opacity:.7;cursor:not-allowed}.save-favorite-btn{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.save-favorite-btn:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-on-primary)}.save-favorite-btn:disabled{opacity:.7;cursor:not-allowed}.adjust-btn{flex:0 0 auto;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);min-width:auto}.adjust-btn:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.adjust-btn:active{transform:scale(.95)}.adjust-btn.adjusted{background-color:var(--color-info);border-color:var(--color-info);color:var(--color-text-on-primary)}.adjust-btn.adjusted:hover{opacity:.9}.history-empty{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);background-color:var(--color-surface);border-radius:var(--radius-lg)}.history-empty p{font-size:var(--font-size-base);color:var(--color-text-tertiary);margin-bottom:var(--spacing-sm)}.history-empty p:first-child{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.remove-confirm-modal{text-align:center}.remove-confirm-modal h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.remove-confirm-modal p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.remove-confirm-modal .warning-text{font-size:var(--font-size-sm);color:var(--color-error);margin-bottom:var(--spacing-xl)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:center}.cancel-button,.remove-button{padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.cancel-button{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.cancel-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-text-tertiary)}.remove-button{background-color:var(--color-error);color:var(--color-text-on-primary);border:none}.remove-button:hover:not(:disabled){background-color:var(--color-error)}.cancel-button:disabled,.remove-button:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 768px){.cooking-history-container{padding:var(--spacing-md)}.history-tabs{flex-direction:column;gap:var(--spacing-xs)}.history-tab{width:100%;text-align:center;border-radius:var(--radius-md);min-height:var(--touch-target-optimal);display:flex;align-items:center;justify-content:center}.history-tab.active:after{display:none}.history-tab.active{background-color:var(--color-primary);color:var(--color-text-on-primary)}.history-grid{grid-template-columns:1fr}.cook-again-btn,.save-favorite-btn{width:100%;min-height:var(--touch-target-optimal)}.modal-actions{flex-direction:column}.cancel-button,.remove-button{width:100%;min-height:var(--touch-target-optimal)}}.meal-plan-detail{padding:var(--spacing-md) 0;display:flex;flex-direction:column;gap:var(--spacing-lg)}.meal-plan-back-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);padding:0;align-self:flex-start;text-decoration:none}.meal-plan-back-link:hover{color:var(--color-primary)}.meal-plan-back-link svg{width:16px;height:16px}.meal-plan-header{display:flex;align-items:flex-start;gap:var(--spacing-md)}.meal-plan-header-icon{color:var(--color-primary);flex-shrink:0;display:inline-flex;margin-top:var(--spacing-xs)}.meal-plan-header-icon svg{width:32px;height:32px}.meal-plan-header h1{font-family:var(--font-display);font-size:var(--font-size-3xl);color:var(--color-text);margin:0 0 var(--spacing-xs)}.meal-plan-summary{color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.meal-plan-shopping{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.meal-plan-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-sm)}.meal-plan-section-header h2,.meal-plan-meals>h2{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text);margin:0}.meal-plan-grocery-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-primary);color:var(--palette-bg, #1a1412);border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);cursor:pointer}.meal-plan-grocery-button:disabled{opacity:.6;cursor:not-allowed}.meal-plan-grocery-button svg{width:16px;height:16px}.meal-plan-shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.meal-plan-shopping-item{display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-light)}.meal-plan-shopping-item:last-child{border-bottom:none}.shopping-item-name{color:var(--color-text);font-weight:var(--font-weight-medium)}.shopping-item-amount{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.shopping-item-days{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-left:auto}.regenerate-meal-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2xs, 2px) var(--spacing-sm);font-size:var(--font-size-sm);cursor:pointer;flex-shrink:0}.regenerate-meal-button:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary)}.regenerate-meal-button:disabled{opacity:.6;cursor:not-allowed}.regenerate-meal-button svg{width:14px;height:14px}.regenerate-feedback-label{display:block;margin:var(--spacing-sm) 0 var(--spacing-xs);color:var(--color-text);font-weight:var(--font-weight-medium)}.regenerate-feedback-input{width:100%;padding:var(--spacing-sm);background:var(--color-background-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-base);resize:none;margin-bottom:var(--spacing-md)}.regenerate-submit-button{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.regenerate-submit-button svg{width:16px;height:16px}.meal-plan-grocery-actions{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.meal-plan-grocery-secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.shopping-item-availability{font-size:var(--font-size-xs);border-radius:var(--radius-full);padding:0 var(--spacing-sm);border:1px solid var(--color-border);color:var(--color-text-secondary)}.shopping-item-availability--available,.shopping-item-availability--always-on-stock{color:var(--color-success);border-color:var(--color-success)}.shopping-item-availability--in-grocery{color:var(--color-primary);border-color:var(--color-primary)}.shopping-item-availability--missing{color:var(--color-text-secondary);border-color:var(--color-border)}.meal-plan-meals{display:flex;flex-direction:column;gap:var(--spacing-md)}.meal-plan-meal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.meal-plan-meal-header{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.meal-plan-meal-header h3{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text);margin:0;flex:1;min-width:0}.meal-plan-day-badge{background:var(--color-surface-hover);color:var(--color-primary);border-radius:var(--radius-full);padding:var(--spacing-2xs, 2px) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);flex-shrink:0}.meal-plan-time{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.meal-plan-time svg{width:14px;height:14px}.meal-plan-meal-description{color:var(--color-text-secondary);margin:var(--spacing-sm) 0;line-height:var(--line-height-normal)}.meal-plan-leftover-note{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-success);font-size:var(--font-size-sm);margin:0 0 var(--spacing-sm)}.meal-plan-leftover-note svg{width:14px;height:14px}.meal-plan-key-ingredients{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.meal-plan-ingredient-chip{background:var(--color-surface-hover);color:var(--color-text-secondary);border-radius:var(--radius-full);padding:var(--spacing-2xs, 2px) var(--spacing-sm);font-size:var(--font-size-xs)}.meal-plan-expand-button,.accept-for-cooking-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-primary);color:var(--palette-bg, #1a1412);border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);cursor:pointer}.meal-plan-expand-button:disabled,.accept-for-cooking-button:disabled{opacity:.6;cursor:not-allowed}.meal-plan-expand-button svg,.accept-for-cooking-button svg{width:16px;height:16px}.meal-plan-expanded{margin-top:var(--spacing-md)}.meal-plan-in-queue{color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-full);padding:var(--spacing-2xs, 2px) var(--spacing-sm);font-size:var(--font-size-xs)}.meal-plan-goal-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.meal-plan-goal-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);background-color:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-md);padding:2px var(--spacing-sm);font-size:var(--font-size-sm)}.meal-plan-goal-target{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.meal-plan-goal-disclaimer{margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.meal-plan-goal-disclaimer a{color:var(--color-primary);text-decoration:underline}.meal-plan-nutrition{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--spacing-xs) 0}.meal-plan-nutrition-estimate{display:inline-block;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.meal-plan-household-row{display:flex;flex-direction:column;gap:var(--spacing-2xs);margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.meal-plan-household-members{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.meal-plan-household-members .icon{width:14px;height:14px;flex-shrink:0;color:var(--color-primary)}.meal-plan-household-binding{font-size:var(--font-size-sm)}.meal-plan-serving-guidance{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--spacing-xs) 0}.plans-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.plan-list-item{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-md);transition:border-color .15s ease}.plan-list-item:hover{border-color:var(--color-border-hover)}.plan-list-link{display:flex;align-items:center;gap:var(--spacing-md);flex:1;min-width:0;text-decoration:none;color:inherit}.plan-list-icon{color:var(--color-primary);flex-shrink:0;display:inline-flex}.plan-list-icon svg{width:28px;height:28px}.plan-list-body{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:0}.plan-list-title{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-list-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.plan-delete-button{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);display:inline-flex;flex-shrink:0}.plan-delete-button svg{width:16px;height:16px}.plan-delete-button:hover{color:var(--color-error);background:var(--color-surface-hover)}.plan-list-goal{align-self:flex-start;border:1px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-md);padding:0 var(--spacing-sm);font-size:var(--font-size-xs);margin-top:2px}.plan-goal-controls{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.plan-goal-target{display:flex;flex-direction:column;gap:var(--spacing-xs)}.plan-goal-personalise{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.plan-goal-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm)}.plan-goal-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.plan-goal-field-wide{grid-column:1 / -1}.plan-goal-computed{font-weight:600;color:var(--color-primary);margin:0}.plan-goal-clear-data{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--spacing-xs);background:none;border:none;color:var(--color-error);font-size:var(--font-size-sm);cursor:pointer;padding:0;text-decoration:underline}.plan-goal-disclaimer{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.plan-goal-disclaimer a{color:var(--color-primary);text-decoration:underline}.plan-goal-controls .health-data-consent-section{background-color:var(--color-surface);border:1px solid var(--color-warning);border-radius:var(--radius-md);padding:var(--spacing-md)}.plan-goal-controls .consent-checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4;color:var(--color-text-primary)}.plan-goal-controls .consent-checkbox-label input[type=checkbox]{margin-top:3px;min-width:18px;min-height:18px;accent-color:var(--color-warning);cursor:pointer}.plan-goal-controls .consent-privacy-link{display:block;margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:underline}.plan-goal-controls .consent-required-message{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);margin-bottom:0}.plan-generation-form{display:flex;flex-direction:column;gap:var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin:var(--spacing-md) 0}.plan-vibe-label{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text)}.plan-week-controls{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.plan-week-controls select{flex:0 0 auto}.plan-week-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-primary);color:var(--palette-bg, #1a1412);border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);cursor:pointer}.plan-week-button:disabled{opacity:.6;cursor:not-allowed}.plan-week-button svg{width:16px;height:16px}.household-picker{display:flex;flex-direction:column;gap:var(--spacing-xs)}.household-picker-label{font-weight:var(--font-weight-medium);color:var(--color-text)}.household-picker-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.household-picker-chip{display:inline-flex;align-items:center;gap:var(--spacing-2xs);padding:var(--spacing-2xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-full, 999px);background:var(--color-surface);cursor:pointer;font-size:var(--font-size-sm)}.household-picker-chip input{accent-color:var(--color-primary)}.household-picker-chip-meta{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.household-picker-chip-meta:before{content:"·";margin-right:var(--spacing-2xs)}.household-setup-hint{margin:0}.new-plan-toggle{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-surface-hover);color:var(--color-primary);border:1px solid var(--color-border-dark);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);cursor:pointer;align-self:flex-start;margin:var(--spacing-sm) 0}.new-plan-toggle:hover{border-color:var(--color-border-hover)}.new-plan-toggle svg{width:16px;height:16px}.nutrition-disclaimer-modal{display:flex;flex-direction:column;gap:var(--spacing-md)}.nutrition-disclaimer-modal h2{margin:0;font-size:var(--font-size-xl)}.nutrition-disclaimer-modal p{margin:0;line-height:1.5;color:var(--color-text-primary)}.nutrition-disclaimer-modal a{color:var(--color-primary);text-decoration:underline}.nutrition-disclaimer-modal .consent-checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.nutrition-disclaimer-modal .remove-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.nutrition-disclaimer-modal .cancel-button{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);cursor:pointer}.nutrition-disclaimer-accept{background-color:var(--color-primary);color:var(--color-text-on-primary, var(--color-background));border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:600;cursor:pointer}.nutrition-disclaimer-accept:hover:not(:disabled){background-color:var(--color-primary-hover)}.nutrition-disclaimer-accept:disabled,.nutrition-disclaimer-modal .cancel-button:disabled{opacity:.6;cursor:not-allowed}.plan-page{padding:var(--spacing-md) 0}.plan-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.plan-page-header h1{font-family:var(--font-display);font-size:var(--font-size-3xl);color:var(--color-text);margin:0}.plan-history-section{margin-top:var(--spacing-xl)}.plan-history-section h2{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text);margin:0 0 var(--spacing-sm)}.own-recipe-page{max-width:720px;margin:0 auto;padding:1rem}.own-recipe-page h1{margin-bottom:1rem}.own-recipe-form{display:flex;flex-direction:column;gap:1.25rem}.own-recipe-field{display:flex;flex-direction:column;gap:.35rem}.own-recipe-field label{font-weight:600;color:var(--color-text-primary)}.own-recipe-form input,.own-recipe-form select,.own-recipe-form textarea{padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font:inherit}.own-recipe-form input:focus,.own-recipe-form select:focus,.own-recipe-form textarea:focus{outline:none;border-color:var(--color-border-focus)}.own-recipe-meta,.own-recipe-section{border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.own-recipe-meta legend,.own-recipe-section legend{font-weight:600;padding:0 .4rem;color:var(--color-text-primary)}.own-recipe-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.own-recipe-field-wide{grid-column:1 / -1}.own-recipe-portion-row{display:flex;gap:.5rem}.own-recipe-portion-row input{width:6rem}.own-recipe-ingredient-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem;align-items:center}.own-recipe-step-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem;align-items:start}.own-recipe-step-number{padding-top:.6rem;color:var(--color-text-secondary);font-weight:600}.own-recipe-step-row textarea{resize:vertical}.own-recipe-add-button{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border:1px dashed var(--color-border);border-radius:var(--border-radius-md);background:transparent;color:var(--accent-color);cursor:pointer;font:inherit}.own-recipe-add-button:hover{border-color:var(--accent-color)}.own-recipe-remove-button{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border:1px solid var(--color-border);border-radius:var(--border-radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer}.own-recipe-remove-button:hover{color:var(--color-danger);border-color:var(--color-danger)}.own-recipe-remove-button .icon,.own-recipe-add-button .icon{width:16px;height:16px;flex-shrink:0}.own-recipe-error{color:var(--color-danger);font-size:.9rem;margin:0}.own-recipe-hint{color:var(--color-text-secondary);font-size:.85rem;margin:0}.own-recipe-load-error{color:var(--color-danger);margin-bottom:1rem}.own-recipe-actions{display:flex;justify-content:flex-end;gap:.75rem}.own-recipe-save-button{padding:.6rem 1.4rem;border:none;border-radius:var(--border-radius-md);background:var(--accent-color);color:var(--color-text-on-primary);font:inherit;font-weight:600;cursor:pointer}.own-recipe-save-button:hover:not(:disabled){background:var(--accent-color-hover)}.own-recipe-save-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 560px){.own-recipe-ingredient-row{grid-template-columns:minmax(0,1fr) auto}.own-recipe-ingredient-row input:first-child{grid-column:1 / -1}}.token-usage-card{background-color:var(--color-bg-primary, var(--color-text-primary));border-radius:var(--radius-lg, .75rem);padding:var(--spacing-lg, 1.5rem);border:1px solid var(--color-border, var(--color-text-secondary));box-shadow:0 1px 3px #0f0a081a}.token-usage-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg, 1.5rem);padding-bottom:var(--spacing-md, 1rem);border-bottom:1px solid var(--color-border, var(--color-text-secondary));flex-wrap:wrap;gap:var(--spacing-md, 1rem)}.token-usage-card-title{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-surface));margin:0}.token-usage-date-range{display:flex;gap:var(--spacing-xs, .5rem);background-color:var(--color-bg-secondary, var(--color-surface-variant));padding:var(--spacing-xs, .25rem);border-radius:var(--radius-md, .5rem)}.token-usage-date-btn{padding:var(--spacing-xs, .5rem) var(--spacing-md, 1rem);border:none;background:transparent;color:var(--color-text-secondary, var(--color-text-tertiary));font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;border-radius:var(--radius-sm, .375rem);transition:all .2s ease}.token-usage-date-btn:hover{color:var(--color-text-primary, var(--color-surface));background-color:var(--color-bg-hover, var(--color-border))}.token-usage-date-btn.active{background-color:var(--color-bg-primary, var(--color-text-primary));color:var(--color-primary, var(--color-primary));box-shadow:0 1px 2px #0f0a081a}.token-usage-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl, 2rem);gap:var(--spacing-md, 1rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.token-usage-error{padding:var(--spacing-md, 1rem);background-color:var(--color-error-bg, var(--color-error-light));border:1px solid var(--color-error-border, var(--color-error-light));border-radius:var(--radius-md, .5rem);color:var(--color-error, var(--color-error));text-align:center}.token-usage-no-data{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md, 1rem);padding:var(--spacing-xl, 2rem);text-align:center;color:var(--color-text-secondary, var(--color-text-tertiary));font-style:italic}.token-usage-no-data p{margin:0}.token-usage-stats{display:flex;flex-direction:column;gap:var(--spacing-md, 1rem);margin-bottom:var(--spacing-lg, 1.5rem)}.token-usage-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md, 1rem)}.token-usage-stat-item{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem);padding:var(--spacing-md, 1rem);background-color:var(--color-bg-secondary, var(--color-surface-variant));border-radius:var(--radius-md, .5rem)}.token-usage-stat-item.token-usage-stat-primary{background-color:var(--color-primary-bg, var(--color-primary-light));border:1px solid var(--color-primary-border, var(--color-primary-hover))}.token-usage-stat-label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary));font-weight:var(--font-weight-medium, 500)}.token-usage-stat-value{font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-surface))}.token-usage-stat-primary .token-usage-stat-value{color:var(--color-primary, var(--color-primary))}.token-usage-by-model{padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--color-border, var(--color-border))}.token-usage-section-title{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-surface));margin:0 0 var(--spacing-md, 1rem) 0}.token-usage-model-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md, 1rem)}.token-usage-model-item{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem);padding:var(--spacing-md, 1rem);background-color:var(--color-bg-secondary, var(--color-surface-variant));border-radius:var(--radius-md, .5rem)}.token-usage-model-name{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-surface));text-transform:capitalize}.token-usage-model-tokens{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-primary, var(--color-primary))}.token-usage-model-calls{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.token-usage-per-user{margin-top:var(--spacing-lg, 1.5rem);padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--color-border, var(--color-border))}.token-usage-per-user .token-usage-stat-row{grid-template-columns:repeat(3,1fr)}.token-usage-actions{margin-top:var(--spacing-lg, 1.5rem);padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--color-border, var(--color-border));display:flex;justify-content:center}.token-usage-aggregate-btn{padding:var(--spacing-sm, .5rem) var(--spacing-lg, 1.5rem);background-color:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md, .5rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all .2s ease}.token-usage-aggregate-btn:hover:not(:disabled){background-color:var(--color-primary-hover, var(--color-primary-dark))}.token-usage-aggregate-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.token-usage-card{padding:var(--spacing-md, 1rem)}.token-usage-card-header{flex-direction:column;align-items:flex-start}.token-usage-date-range{width:100%;justify-content:space-between}.token-usage-date-btn{flex:1;text-align:center}.token-usage-stat-row,.token-usage-model-grid,.token-usage-per-user .token-usage-stat-row{grid-template-columns:1fr}.token-usage-stat-value{font-size:var(--font-size-xl, 1.25rem)}}@media (prefers-color-scheme: dark){.token-usage-card{background-color:var(--color-bg-primary-dark, var(--color-surface));border-color:var(--color-border-dark, var(--color-surface-variant))}.token-usage-card-header{border-bottom-color:var(--color-border-dark, var(--color-surface-variant))}.token-usage-card-title{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-date-range{background-color:var(--color-bg-secondary-dark, var(--color-surface-variant))}.token-usage-date-btn{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.token-usage-date-btn:hover{color:var(--color-text-primary-dark, var(--color-surface-variant));background-color:var(--color-bg-hover-dark, var(--color-surface-hover))}.token-usage-date-btn.active{background-color:var(--color-bg-primary-dark, var(--color-surface));color:var(--color-primary, var(--color-primary))}.token-usage-stat-item{background-color:var(--color-bg-secondary-dark, var(--color-surface-variant))}.token-usage-stat-item.token-usage-stat-primary{background-color:#c8845a1a;border-color:#c8845a4d}.token-usage-stat-label{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.token-usage-stat-value{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-by-model{border-top-color:var(--color-border-dark, var(--color-surface-variant))}.token-usage-section-title,.token-usage-model-name{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-model-item{background-color:var(--color-bg-secondary-dark, var(--color-surface-variant))}.token-usage-model-calls{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}.token-usage-error{background-color:#cf66791a;border-color:#cf66794d;color:var(--color-error-hover)}.token-usage-no-data,.token-usage-loading{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}}.token-usage-by-feature{background-color:var(--color-bg-primary, var(--color-text-primary));border-radius:var(--radius-lg, .75rem);padding:var(--spacing-lg, 1.5rem);border:1px solid var(--color-border, var(--color-text-secondary));box-shadow:0 1px 3px #0f0a081a}.token-usage-by-feature-title{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-surface));margin:0 0 var(--spacing-lg, 1.5rem) 0;padding-bottom:var(--spacing-md, 1rem);border-bottom:1px solid var(--color-border, var(--color-text-secondary))}.token-usage-by-feature-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl, 2rem);gap:var(--spacing-md, 1rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.token-usage-spinner{width:2rem;height:2rem;border:3px solid var(--color-border, var(--color-text-secondary));border-top-color:var(--color-primary, var(--color-primary));border-radius:50%;animation:token-usage-spin 1s linear infinite}@keyframes token-usage-spin{to{transform:rotate(360deg)}}.token-usage-feature-groups{display:flex;flex-direction:column;gap:var(--spacing-lg, 1.5rem)}.token-usage-feature-group{background-color:var(--color-bg-secondary, var(--color-surface-variant));border-radius:var(--radius-md, .5rem);padding:var(--spacing-md, 1rem)}.token-usage-feature-group-title{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-surface));margin:0 0 var(--spacing-md, 1rem) 0;display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.token-usage-feature-group-title:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background-color:var(--color-primary, var(--color-primary))}.token-usage-feature-list{display:flex;flex-direction:column;gap:var(--spacing-sm, .5rem)}.token-usage-feature-item{display:flex;flex-direction:column;gap:var(--spacing-sm, .5rem);padding:var(--spacing-md, 1rem);background-color:var(--color-bg-primary, var(--color-text-primary));border-radius:var(--radius-sm, .375rem);border:1px solid var(--color-border, var(--color-border))}.token-usage-feature-header{display:flex;justify-content:space-between;align-items:center}.token-usage-feature-name{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-surface))}.token-usage-feature-calls{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, var(--color-text-tertiary));background-color:var(--color-bg-secondary, var(--color-surface-variant));padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);border-radius:var(--radius-full, 9999px)}.token-usage-feature-details{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm, .5rem)}.token-usage-feature-stat{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.token-usage-stat-label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary));text-transform:uppercase;letter-spacing:.05em}.token-usage-stat-value{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-surface))}.token-usage-stat-input{color:var(--color-info, var(--color-info))}.token-usage-stat-output{color:var(--color-success, var(--color-success))}@media (max-width: 768px){.token-usage-by-feature{padding:var(--spacing-md, 1rem)}.token-usage-feature-details{grid-template-columns:1fr 1fr}.token-usage-feature-details .token-usage-feature-stat:last-child{grid-column:span 2}}@media (max-width: 480px){.token-usage-feature-details{grid-template-columns:1fr}.token-usage-feature-details .token-usage-feature-stat:last-child{grid-column:span 1}}@media (prefers-color-scheme: dark){.token-usage-by-feature{background-color:var(--color-bg-primary-dark, var(--color-surface));border-color:var(--color-border-dark, var(--color-surface-variant))}.token-usage-by-feature-title{color:var(--color-text-primary-dark, var(--color-surface-variant));border-bottom-color:var(--color-border-dark, var(--color-surface-variant))}.token-usage-feature-group{background-color:var(--color-bg-secondary-dark, var(--color-surface-variant))}.token-usage-feature-group-title{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-feature-item{background-color:var(--color-bg-primary-dark, var(--color-surface));border-color:var(--color-border-dark, var(--color-surface-hover))}.token-usage-feature-name{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-feature-calls{color:var(--color-text-secondary-dark, var(--color-text-tertiary));background-color:var(--color-bg-tertiary-dark, var(--color-surface-hover))}.token-usage-stat-label{color:var(--color-text-tertiary-dark, var(--color-text-tertiary))}.token-usage-stat-value{color:var(--color-text-primary-dark, var(--color-surface-variant))}.token-usage-by-feature-loading{color:var(--color-text-secondary-dark, var(--color-text-tertiary))}}.security-alerts-card{background-color:var(--color-surface, var(--color-surface));border-radius:var(--radius-lg, .75rem);padding:var(--spacing-lg, 1.5rem);border:1px solid var(--color-border, var(--color-surface-variant))}.security-alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md, 1rem)}.security-alerts-title{font-size:var(--font-size-lg, 1.125rem);font-weight:600;color:var(--color-text-primary, var(--color-text-primary));margin:0;display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.security-alerts-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 var(--spacing-xs, .25rem);background-color:var(--error-color, var(--color-error));color:var(--color-text-primary);border-radius:9999px;font-size:var(--font-size-sm, .875rem);font-weight:600}.security-alerts-refresh{padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);background-color:transparent;border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-sm, .25rem);color:var(--color-text-secondary, var(--color-text-tertiary));font-size:var(--font-size-lg, 1.125rem);cursor:pointer;transition:all var(--transition-fast, .15s ease-in-out)}.security-alerts-refresh:hover:not(:disabled){border-color:var(--accent-color, var(--color-primary));color:var(--accent-color, var(--color-primary))}.security-alerts-refresh:disabled{opacity:.5;cursor:not-allowed}.security-alerts-filters{display:flex;gap:var(--spacing-md, 1rem);margin-bottom:var(--spacing-md, 1rem);flex-wrap:wrap}.security-alerts-filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.security-alerts-filter-group label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.security-alerts-filter-group select{padding:var(--spacing-sm, .5rem);background-color:var(--color-background, var(--color-background));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-sm, .25rem);color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem);min-width:150px}.security-alerts-loading,.security-alerts-error,.security-alerts-empty{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm, .5rem);padding:var(--spacing-xl, 2rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.security-alerts-error{color:var(--error-color, var(--color-error))}.security-alerts-spinner{width:1.25rem;height:1.25rem;border:2px solid var(--color-border, var(--color-surface-variant));border-top-color:var(--accent-color, var(--color-primary));border-radius:50%;animation:spin 1s linear infinite}.security-alerts-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm, .5rem);max-height:400px;overflow-y:auto}.security-alert-item{background-color:var(--color-background, var(--color-background));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, .5rem);padding:var(--spacing-md, 1rem);transition:border-color var(--transition-fast, .15s ease-in-out)}.security-alert-item:hover{border-color:var(--color-border-focus, var(--color-primary))}.security-alert-item.resolved{opacity:.6}.security-alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm, .5rem)}.security-alert-type-badge{display:inline-block;padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);border-radius:var(--radius-sm, .25rem);font-size:var(--font-size-xs, .75rem);font-weight:600;color:var(--color-text-primary);text-transform:uppercase}.security-alert-timestamp{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary))}.security-alert-body{margin-bottom:var(--spacing-sm, .5rem)}.security-alert-details{margin:0 0 var(--spacing-xs, .25rem) 0;color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem)}.security-alert-user,.security-alert-ip{margin:0;font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, var(--color-text-tertiary))}.security-alert-user strong,.security-alert-ip strong{color:var(--color-text-tertiary, var(--color-text-tertiary))}.security-alert-actions{display:flex;justify-content:flex-end}.security-alert-resolve-btn{padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);background-color:var(--success-color, var(--color-success));color:var(--color-text-primary);border:none;border-radius:var(--radius-sm, .25rem);font-size:var(--font-size-sm, .875rem);cursor:pointer;transition:background-color var(--transition-fast, .15s ease-in-out)}.security-alert-resolve-btn:hover:not(:disabled){background-color:var(--success-color-hover, var(--color-success-dark))}.security-alert-resolve-btn:disabled{opacity:.6;cursor:not-allowed}.security-alert-resolved-badge{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary));display:flex;align-items:center;gap:var(--spacing-xs, .25rem)}.security-alert-resolved-date{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary))}.user-stats-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.user-stats-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.user-stats-card__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);padding:var(--spacing-md) 0}.user-stats-card__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.user-stats-card__error{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-error);padding:var(--spacing-md) 0}.user-stats-card__error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.user-stats-card__content{display:flex;flex-direction:column;gap:var(--spacing-md)}.user-stats-card__stat{display:flex;flex-direction:column;gap:var(--spacing-xs)}.user-stats-card__stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.user-stats-card__stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.feedback-list{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.feedback-list__header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}@media (min-width: 768px){.feedback-list__header{flex-direction:row;justify-content:space-between;align-items:flex-start}}.feedback-list__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.feedback-list__filters{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.feedback-list__filter{display:flex;flex-direction:column;gap:var(--spacing-xs)}.feedback-list__filter-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.feedback-list__filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;min-width:140px}.feedback-list__filter-select:focus{outline:none;border-color:var(--color-primary)}.feedback-list__loading,.feedback-list__error,.feedback-list__empty{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);justify-content:center}.feedback-list__loading{color:var(--color-text-secondary)}.feedback-list__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.feedback-list__error{color:var(--color-error)}.feedback-list__error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.feedback-list__empty{color:var(--color-text-secondary);font-style:italic}.feedback-list__items{display:flex;flex-direction:column;gap:var(--spacing-md)}.feedback-list__item{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.feedback-list__item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm);flex-wrap:wrap;gap:var(--spacing-sm)}.feedback-list__badges{display:flex;gap:var(--spacing-xs)}.feedback-list__type,.feedback-list__status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.feedback-list__type--bug{background-color:#cf66791a;color:var(--color-error)}.feedback-list__type--feature{background-color:#d4a5741a;color:var(--color-info)}.feedback-list__type--ui-ux{background-color:#d4a5741a;color:var(--color-secondary)}.feedback-list__type--general{background-color:#8a7a6c1a;color:var(--color-text-tertiary)}.feedback-list__status--new{background-color:#6bcb771a;color:var(--color-success)}.feedback-list__status--reviewed{background-color:#e8b8301a;color:var(--color-warning)}.feedback-list__status--resolved{background-color:#8a7a6c1a;color:var(--color-text-tertiary)}.feedback-list__timestamp{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.feedback-list__message{margin:0 0 var(--spacing-md) 0;color:var(--color-text-primary);line-height:1.5;word-break:break-word}.feedback-list__item-footer{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--spacing-sm)}.feedback-list__meta{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.feedback-list__action-button{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .2s}.feedback-list__action-button:hover{background-color:var(--color-primary-hover)}.feedback-list__pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.feedback-list__pagination-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s}.feedback-list__pagination-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-primary)}.feedback-list__pagination-button:disabled{opacity:.5;cursor:not-allowed}.feedback-list__page-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-reports{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.error-reports__header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}@media (min-width: 768px){.error-reports__header{flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}}.error-reports__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.error-reports__stats{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.error-reports__stat{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background-color:var(--color-background);color:var(--color-text-secondary)}.error-reports__stat--open{background-color:#d4a5741a;color:var(--color-info)}.error-reports__stat--critical{background-color:#cf66791a;color:var(--color-error)}.error-reports__filters{display:flex;gap:var(--spacing-md);flex-wrap:wrap;width:100%}@media (min-width: 768px){.error-reports__filters{width:auto}}.error-reports__filter{display:flex;flex-direction:column;gap:var(--spacing-xs)}.error-reports__filter-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-reports__filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;min-width:140px}.error-reports__filter-select:focus{outline:none;border-color:var(--color-primary)}.error-reports__loading,.error-reports__error,.error-reports__empty{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);justify-content:center}.error-reports__loading{color:var(--color-text-secondary)}.error-reports__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:error-reports-spin .8s linear infinite}@keyframes error-reports-spin{to{transform:rotate(360deg)}}.error-reports__error{color:var(--color-error)}.error-reports__error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.error-reports__empty{color:var(--color-text-secondary);font-style:italic}.error-reports__items{display:flex;flex-direction:column;gap:var(--spacing-md)}.error-reports__item{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md);transition:border-color .2s}.error-reports__item:hover{border-color:var(--color-border-hover, var(--color-border))}.error-reports__item--expanded{border-color:var(--color-primary)}.error-reports__item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm);flex-wrap:wrap;gap:var(--spacing-sm);cursor:pointer}.error-reports__badges{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.error-reports__type,.error-reports__status,.error-reports__severity{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.error-reports__type--javascript{background-color:#e8b8301a;color:var(--color-warning)}.error-reports__type--promise{background-color:#d4a5741a;color:var(--color-secondary)}.error-reports__type--network{background-color:#d4a5741a;color:var(--color-info)}.error-reports__type--render{background-color:#cf66791a;color:var(--color-error)}.error-reports__type--user-reported{background-color:#6bcb771a;color:var(--color-success)}.error-reports__severity--low{background-color:#8a7a6c1a;color:var(--color-text-tertiary)}.error-reports__severity--medium{background-color:#e8b8301a;color:var(--color-warning)}.error-reports__severity--high{background-color:#c8845a1a;color:var(--color-primary)}.error-reports__severity--critical,.error-reports__status--open{background-color:#cf66791a;color:var(--color-error)}.error-reports__status--investigating{background-color:#d4a5741a;color:var(--color-info)}.error-reports__status--resolved{background-color:#6bcb771a;color:var(--color-success)}.error-reports__status--wont-fix{background-color:#8a7a6c1a;color:var(--color-text-tertiary)}.error-reports__count{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background-color:#cf66791a;color:var(--color-error)}.error-reports__timestamp{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.error-reports__message{margin:0 0 var(--spacing-md) 0;color:var(--color-text-primary);line-height:1.5;word-break:break-word;font-family:monospace;font-size:var(--font-size-sm)}.error-reports__details{margin:var(--spacing-md) 0;padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-md);border:1px solid var(--color-border)}.error-reports__detail-section{margin-bottom:var(--spacing-md)}.error-reports__detail-section:last-child{margin-bottom:0}.error-reports__detail-section h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.error-reports__code{margin:0;padding:var(--spacing-sm);background-color:var(--color-background);border-radius:var(--border-radius-sm);font-family:monospace;font-size:var(--font-size-xs);overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--color-text-primary);max-height:200px;overflow-y:auto}.error-reports__info-list{margin:0;padding:0 0 0 var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-reports__info-list li{margin-bottom:var(--spacing-xs)}.error-reports__item-footer{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--spacing-sm)}.error-reports__meta{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.error-reports__actions{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.error-reports__action-button{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .2s,opacity .2s}.error-reports__action-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.error-reports__action-button:disabled{opacity:.6;cursor:not-allowed}.error-reports__action-button--investigating{background-color:var(--color-info)}.error-reports__action-button--investigating:hover:not(:disabled){background-color:var(--color-primary)}.error-reports__action-button--resolved{background-color:var(--color-success)}.error-reports__action-button--resolved:hover:not(:disabled){background-color:var(--color-success-dark)}.error-reports__action-button--wont-fix{background-color:var(--color-text-tertiary)}.error-reports__action-button--wont-fix:hover:not(:disabled){background-color:var(--color-surface-hover)}.error-reports__action-button--reopen{background-color:var(--color-primary)}.error-reports__action-button--reopen:hover:not(:disabled){background-color:var(--color-primary-dark)}.error-reports__pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.error-reports__pagination-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s}.error-reports__pagination-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-primary)}.error-reports__pagination-button:disabled{opacity:.5;cursor:not-allowed}.error-reports__page-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.user-search-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.user-search-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.user-search-card__search-bar{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.user-search-card__input{flex:1;min-width:200px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-base)}.user-search-card__input:focus{outline:none;border-color:var(--color-primary)}.user-search-card__input:disabled{opacity:.6;cursor:not-allowed}.user-search-card__search-button,.user-search-card__clear-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s}.user-search-card__search-button{background-color:var(--color-primary);color:var(--color-text-on-primary);border:none}.user-search-card__search-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.user-search-card__search-button:disabled{opacity:.5;cursor:not-allowed}.user-search-card__clear-button{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.user-search-card__clear-button:hover{background-color:var(--color-background);color:var(--color-text-primary)}.user-search-card__loading,.user-search-card__error,.user-search-card__empty{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);justify-content:center}.user-search-card__loading{color:var(--color-text-secondary)}.user-search-card__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.user-search-card__error{color:var(--color-error)}.user-search-card__error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.user-search-card__empty{color:var(--color-text-secondary);font-style:italic}.user-search-card__results{display:flex;flex-direction:column;gap:var(--spacing-md)}.user-search-card__result{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.user-search-card__result-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border)}.user-search-card__result-row:last-child{border-bottom:none}.user-search-card__result-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.user-search-card__result-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.user-search-card__result-value--uid{font-family:monospace;font-size:var(--font-size-xs);word-break:break-all}.faq-form-modal-overlay{position:fixed;inset:0;background-color:#0f0a0880;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.faq-form-modal{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;max-height:90dvh;overflow-y:auto}.faq-form-modal__header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.faq-form-modal__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.faq-form-modal__form{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg)}.faq-form-modal__field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.faq-form-modal__field--checkbox{flex-direction:row;align-items:center;gap:var(--spacing-sm)}.faq-form-modal__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.faq-form-modal__checkbox-label{font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer}.faq-form-modal__textarea{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);resize:vertical;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.faq-form-modal__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6bcb771a}.faq-form-modal__textarea::placeholder{color:var(--color-text-tertiary)}.faq-form-modal__textarea--large{min-height:150px}.faq-form-modal__textarea--error{border-color:var(--color-error)}.faq-form-modal__textarea--error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #cf66791a}.faq-form-modal__textarea:disabled{background-color:var(--color-background);cursor:not-allowed;opacity:.7}.faq-form-modal__select{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.faq-form-modal__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6bcb771a}.faq-form-modal__select:disabled{background-color:var(--color-background);cursor:not-allowed;opacity:.7}.faq-form-modal__checkbox{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.faq-form-modal__checkbox:disabled{cursor:not-allowed;opacity:.7}.faq-form-modal__error{font-size:var(--font-size-sm);color:var(--color-error)}.faq-form-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.faq-form-modal__button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.faq-form-modal__button:disabled{cursor:not-allowed;opacity:.7}.faq-form-modal__button--cancel{background-color:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.faq-form-modal__button--cancel:hover:not(:disabled){background-color:var(--color-surface);border-color:var(--color-text-secondary)}.faq-form-modal__button--save{background-color:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-text-on-primary)}.faq-form-modal__button--save:hover:not(:disabled){background-color:var(--color-primary-hover)}.faq-form-modal__button--save:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 768px){.faq-form-modal{max-width:100%;margin:var(--spacing-md)}.faq-form-modal__header,.faq-form-modal__form{padding:var(--spacing-md)}.faq-form-modal__actions{flex-direction:column-reverse}.faq-form-modal__button{width:100%;justify-content:center}}.faq-management{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.faq-management__header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-background)}.faq-management__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.faq-management__controls{display:flex;align-items:center;gap:var(--spacing-md)}.faq-management__filter-select{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-base)}.faq-management__filter-select:focus{outline:none;border-color:var(--color-primary)}.faq-management__add-button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;transition:background-color var(--transition-base)}.faq-management__add-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.faq-management__add-button:disabled{opacity:.7;cursor:not-allowed}.faq-management__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);gap:var(--spacing-md)}.faq-management__spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:faq-management-spin 1s linear infinite}@keyframes faq-management-spin{to{transform:rotate(360deg)}}.faq-management__error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);gap:var(--spacing-md);color:var(--color-error)}.faq-management__error-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);background-color:#cf66791a;border-radius:50%}.faq-management__retry-button{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:1px solid var(--color-primary);border-radius:var(--radius-md);background-color:transparent;color:var(--color-primary);cursor:pointer;transition:background-color var(--transition-base)}.faq-management__retry-button:hover{background-color:#6bcb771a}.faq-management__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);gap:var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--font-size-base)}.faq-management__seed-button{padding:var(--spacing-sm) var(--spacing-xl);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:2px dashed var(--color-primary);border-radius:var(--radius-md);background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all var(--transition-base)}.faq-management__seed-button:hover:not(:disabled){background-color:#6bcb771a;border-style:solid}.faq-management__seed-button:disabled{opacity:.6;cursor:not-allowed}.faq-management__list{display:flex;flex-direction:column}.faq-management__item{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.faq-management__item:last-child{border-bottom:none}.faq-management__item:hover{background-color:var(--color-background)}.faq-management__item-content{flex:1;min-width:0;padding-right:var(--spacing-lg)}.faq-management__item-header{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-xs)}.faq-management__item-question{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.faq-management__status-badge{padding:2px var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.faq-management__status-badge--published{background-color:#6bcb771a;color:var(--color-primary)}.faq-management__status-badge--draft{background-color:#e8b8301a;color:var(--color-warning)}.faq-management__item-meta{display:flex;flex-direction:column;gap:var(--spacing-xs)}.faq-management__item-category{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.faq-management__item-answer{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.faq-management__item-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.faq-management__reorder-buttons{display:flex;flex-direction:column;gap:2px}.faq-management__action-button{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.faq-management__action-button:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-text-secondary)}.faq-management__action-button:disabled{opacity:.5;cursor:not-allowed}.faq-management__action-button--icon{padding:4px 8px;font-size:var(--font-size-sm);line-height:1}.faq-management__action-button--publish{border-color:var(--color-primary);color:var(--color-primary)}.faq-management__action-button--publish:hover:not(:disabled){background-color:#6bcb771a}.faq-management__action-button--unpublish{border-color:var(--color-warning);color:var(--color-warning)}.faq-management__action-button--unpublish:hover:not(:disabled){background-color:#e8b8301a}.faq-management__action-button--edit{border-color:var(--color-info);color:var(--color-info)}.faq-management__action-button--edit:hover:not(:disabled){background-color:#d4a5741a}.faq-management__action-button--delete{border-color:var(--color-error);color:var(--color-error)}.faq-management__action-button--delete:hover:not(:disabled){background-color:#cf66791a}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.faq-management__header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.faq-management__controls{flex-direction:column}.faq-management__filter-select,.faq-management__add-button{width:100%}.faq-management__item{flex-direction:column;gap:var(--spacing-md)}.faq-management__item-content{padding-right:0}.faq-management__item-actions{width:100%;flex-wrap:wrap}.faq-management__action-button{flex:1;text-align:center}.faq-management__reorder-buttons{flex-direction:row}}.whats-new-modal{text-align:center;padding:var(--spacing-md, 16px) 0}.whats-new-header{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md, 16px);margin-bottom:var(--spacing-lg, 24px)}.whats-new-icon{color:var(--color-primary, var(--color-primary))}.whats-new-icon svg{width:48px;height:48px;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.1) rotate(5deg);opacity:.9}}.whats-new-title{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-text-primary));margin:0}.whats-new-version{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs, 4px);font-size:var(--font-size-md, 1rem);color:var(--color-primary, var(--color-primary));font-weight:var(--font-weight-medium, 500);margin-bottom:var(--spacing-lg, 24px)}.whats-new-date{font-size:var(--font-size-sm, .875rem);color:var(--color-text-tertiary, var(--color-text-tertiary));font-weight:var(--font-weight-normal, 400)}.whats-new-content{background:var(--color-bg-secondary, var(--color-surface));border-radius:var(--radius-md, 8px);padding:var(--spacing-lg, 24px);margin-bottom:var(--spacing-lg, 24px);max-height:300px;overflow-y:auto;text-align:left}.whats-new-notes{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, var(--color-text-secondary));line-height:1.7}.whats-new-notes br+br{display:block;margin-top:var(--spacing-sm, 8px);content:""}.whats-new-empty{font-size:var(--font-size-sm, .875rem);color:var(--color-text-tertiary, var(--color-text-tertiary));font-style:italic;margin:0}.whats-new-button{width:100%;padding:var(--spacing-md, 16px);background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md, 8px);font-size:var(--font-size-md, 1rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease}.whats-new-button:hover{background:var(--color-primary-hover, var(--color-primary-hover));transform:translateY(-1px)}.whats-new-button:active{transform:translateY(0)}.whats-new-button:focus{outline:2px solid var(--color-border-focus, var(--color-primary));outline-offset:2px}.whats-new-content::-webkit-scrollbar{width:8px}.whats-new-content::-webkit-scrollbar-track{background:var(--color-bg-primary, var(--color-background));border-radius:4px}.whats-new-content::-webkit-scrollbar-thumb{background:var(--color-border, var(--color-surface-variant));border-radius:4px}.whats-new-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover, var(--color-surface-hover))}@media (max-width: 640px){.whats-new-modal{padding:var(--spacing-sm, 8px) 0}.whats-new-icon svg{width:40px;height:40px}.whats-new-title{font-size:var(--font-size-lg, 1.125rem)}.whats-new-content{padding:var(--spacing-md, 16px);max-height:250px}}.modal-content:has(.release-editor){max-width:min(90vw,850px);width:fit-content}.release-editor{width:min(calc(90vw - 4rem),750px);max-width:calc(90vw - 4rem);text-align:left;box-sizing:border-box}.release-editor-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg, 24px)}.release-editor-title{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-text-primary));margin:0}.release-editor-close{background:transparent;border:none;color:var(--color-text-tertiary, var(--color-text-tertiary));font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin:-4px -4px 0 0}.release-editor-close:hover{color:var(--color-text-primary, var(--color-text-primary))}.release-editor-error{background:#cf667926;border:1px solid var(--color-error, var(--color-error));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);color:var(--color-error, var(--color-error));font-size:var(--font-size-sm, .875rem)}.release-editor-language-selector{display:flex;align-items:center;gap:var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);padding-bottom:var(--spacing-md, 16px);border-bottom:1px solid var(--color-border, var(--color-surface-variant))}.release-editor-language-label{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-secondary, var(--color-text-secondary));white-space:nowrap}.release-editor-select{flex:1;max-width:200px;background:var(--color-bg-secondary, var(--color-surface));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem);font-family:inherit;cursor:pointer;transition:border-color var(--transition-fast, .15s) ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.release-editor-select:hover{border-color:var(--color-text-tertiary, var(--color-text-tertiary))}.release-editor-select:focus{outline:none;border-color:var(--color-primary, var(--color-primary))}.release-editor-select option{background:var(--color-bg-secondary, var(--color-surface));color:var(--color-text-primary, var(--color-text-primary));padding:var(--spacing-sm, 8px)}.release-editor-content{margin-bottom:var(--spacing-lg, 24px)}.release-editor-label{display:block;font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-secondary, var(--color-text-secondary));margin-bottom:var(--spacing-sm, 8px)}.release-editor-textarea{width:100%;background:var(--color-bg-secondary, var(--color-surface));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, 8px);padding:var(--spacing-md, 16px);color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem);font-family:inherit;line-height:1.6;resize:vertical;min-height:200px;transition:border-color var(--transition-fast, .15s) ease}.release-editor-textarea:focus{outline:none;border-color:var(--color-primary, var(--color-primary))}.release-editor-textarea::placeholder{color:var(--color-text-tertiary, var(--color-text-tertiary))}.release-editor-hint{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary));margin:var(--spacing-sm, 8px) 0 0 0}.release-editor-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 16px);padding-top:var(--spacing-md, 16px);border-top:1px solid var(--color-border, var(--color-surface-variant))}.release-editor-actions-right{display:flex;gap:var(--spacing-sm, 8px)}.release-editor-button{padding:var(--spacing-sm, 8px) var(--spacing-lg, 24px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease;border:none;white-space:nowrap}.release-editor-button--primary{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary)}.release-editor-button--primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary-hover))}.release-editor-button--secondary{background:#c8845a26;color:var(--color-primary, var(--color-primary));border:1px solid var(--color-primary, var(--color-primary))}.release-editor-button--secondary:hover:not(:disabled){background:#c8845a40}.release-editor-button--cancel{background:transparent;color:var(--color-text-tertiary, var(--color-text-tertiary))}.release-editor-button--cancel:hover{color:var(--color-text-primary, var(--color-text-primary))}.release-editor-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.release-editor{width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.release-editor-language-selector{flex-direction:column;align-items:stretch;gap:var(--spacing-sm, 8px)}.release-editor-select{max-width:none}.release-editor-actions{flex-direction:column;align-items:stretch}.release-editor-actions-right{flex-direction:column}.release-editor-button{width:100%;text-align:center}}.maintenance-scheduler{background:var(--color-bg-primary, var(--color-background));border-radius:var(--radius-md, 8px);padding:var(--spacing-lg, 24px)}.scheduler-title{font-size:var(--font-size-md, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-text-primary));margin:0 0 var(--spacing-md, 16px) 0}.scheduler-error{background:#cf667926;border:1px solid var(--color-error, var(--color-error));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);color:var(--color-error, var(--color-error));font-size:var(--font-size-sm, .875rem)}.scheduler-success{background:#6bcb7726;border:1px solid var(--color-success, var(--color-success));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);color:var(--color-success, var(--color-success));font-size:var(--font-size-sm, .875rem)}.scheduler-form{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.scheduler-row{display:flex;gap:var(--spacing-md, 16px)}.scheduler-field{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.scheduler-field--full{flex:none;width:100%}.scheduler-label{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-secondary, var(--color-text-secondary))}.scheduler-input{background:var(--color-bg-secondary, var(--color-surface));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-sm, .875rem);transition:border-color var(--transition-fast, .15s) ease}.scheduler-input:focus{outline:none;border-color:var(--color-primary, var(--color-primary))}.scheduler-input::placeholder{color:var(--color-text-tertiary, var(--color-text-tertiary))}.scheduler-input[type=date],.scheduler-input[type=time]{color-scheme:inherit}.scheduler-actions{display:flex;gap:var(--spacing-sm, 8px);margin-top:var(--spacing-sm, 8px)}.scheduler-button{padding:var(--spacing-sm, 8px) var(--spacing-lg, 24px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease;border:none}.scheduler-button--primary{background:var(--color-warning, var(--color-warning));color:var(--color-bg-primary, var(--color-background))}.scheduler-button--primary:hover:not(:disabled){background:var(--color-warning)}.scheduler-button--secondary{background:transparent;color:var(--color-text-tertiary, var(--color-text-tertiary));border:1px solid var(--color-border, var(--color-surface-variant))}.scheduler-button--secondary:hover:not(:disabled){color:var(--color-text-primary, var(--color-text-primary));border-color:var(--color-border-hover, var(--color-surface-hover))}.scheduler-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.scheduler-row,.scheduler-actions{flex-direction:column}.scheduler-button{width:100%;text-align:center}}.releases-management{display:flex;flex-direction:column;gap:var(--spacing-xl, 32px)}.releases-error-banner{background:#cf667926;border:1px solid var(--color-error, var(--color-error));border-radius:var(--radius-md, 8px);padding:var(--spacing-md, 16px);display:flex;justify-content:space-between;align-items:center;color:var(--color-error, var(--color-error));font-size:var(--font-size-sm, .875rem)}.releases-error-banner button{background:transparent;border:1px solid var(--color-error, var(--color-error));color:var(--color-error, var(--color-error));padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:var(--font-size-xs, .75rem)}.releases-section{background:var(--color-bg-secondary, var(--color-surface));border-radius:var(--radius-lg, 12px);padding:var(--spacing-lg, 24px)}.releases-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md, 16px)}.releases-section-title{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-text-primary));margin:0 0 var(--spacing-md, 16px) 0;display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.releases-section-header .releases-section-title{margin-bottom:0}.releases-count{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);font-size:var(--font-size-xs, .75rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border-radius:var(--radius-full, 9999px);font-weight:var(--font-weight-medium, 500)}.maintenance-status-card{background:var(--color-bg-primary, var(--color-background));border-radius:var(--radius-md, 8px);padding:var(--spacing-lg, 24px);margin-bottom:var(--spacing-lg, 24px)}.maintenance-active,.maintenance-scheduled,.maintenance-inactive{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.maintenance-status-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px);padding:var(--spacing-xs, 4px) var(--spacing-md, 16px);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);width:fit-content}.maintenance-status-badge--active{background:#cf667926;color:var(--color-error, var(--color-error));border:1px solid var(--color-error, var(--color-error))}.maintenance-status-badge--scheduled{background:#e8b83026;color:var(--color-warning, var(--color-warning));border:1px solid var(--color-warning, var(--color-warning))}.maintenance-status-badge--inactive{background:#6bcb7726;color:var(--color-success, var(--color-success));border:1px solid var(--color-success, var(--color-success))}.maintenance-info{color:var(--color-text-secondary, var(--color-text-secondary));font-size:var(--font-size-sm, .875rem);margin:0}.maintenance-message{color:var(--color-text-tertiary, var(--color-text-tertiary))}.maintenance-cancel-button{background:var(--color-error, var(--color-error));color:var(--color-text-on-primary);border:none;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;width:fit-content;transition:all var(--transition-fast, .15s) ease}.maintenance-cancel-button:hover:not(:disabled){background:var(--color-error)}.maintenance-cancel-button:disabled{opacity:.5;cursor:not-allowed}.releases-create-button{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);border:none;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease}.releases-create-button:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary-hover))}.releases-create-button:disabled{opacity:.5;cursor:not-allowed}.releases-create-form{background:var(--color-bg-primary, var(--color-background));border-radius:var(--radius-md, 8px);padding:var(--spacing-md, 16px);margin-bottom:var(--spacing-md, 16px);display:flex;gap:var(--spacing-md, 16px);align-items:center;flex-wrap:wrap}.releases-version-input{flex:1;min-width:150px;background:var(--color-bg-secondary, var(--color-surface));border:1px solid var(--color-border, var(--color-surface-variant));border-radius:var(--radius-md, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);color:var(--color-text-primary, var(--color-text-primary));font-size:var(--font-size-md, 1rem)}.releases-version-input:focus{outline:none;border-color:var(--color-primary, var(--color-primary))}.releases-create-actions{display:flex;gap:var(--spacing-sm, 8px)}.releases-action-button{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease;border:none}.releases-action-button--primary{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary)}.releases-action-button--primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary-hover))}.releases-action-button--secondary{background:transparent;color:var(--color-text-tertiary, var(--color-text-tertiary));border:1px solid var(--color-border, var(--color-surface-variant))}.releases-action-button--secondary:hover{color:var(--color-text-primary, var(--color-text-primary));border-color:var(--color-border-hover, var(--color-surface-hover))}.releases-action-button:disabled{opacity:.5;cursor:not-allowed}.releases-loading,.releases-empty{text-align:center;color:var(--color-text-tertiary, var(--color-text-tertiary));font-size:var(--font-size-sm, .875rem);padding:var(--spacing-lg, 24px)}.releases-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.release-item{display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-primary, var(--color-background));border-radius:var(--radius-md, 8px);padding:var(--spacing-md, 16px);gap:var(--spacing-md, 16px)}.release-item--pending{border-left:3px solid var(--color-warning, var(--color-warning))}.release-item--published{border-left:3px solid var(--color-success, var(--color-success))}.release-info{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.release-version{font-size:var(--font-size-md, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary, var(--color-text-primary))}.release-date{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary, var(--color-text-tertiary))}.release-edit-button{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary);border:none;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease;white-space:nowrap}.release-edit-button:hover{background:var(--color-primary-hover, var(--color-primary-hover))}.release-edit-button--secondary{background:transparent;color:var(--color-text-secondary, var(--color-text-secondary));border:1px solid var(--color-border, var(--color-surface-variant))}.release-edit-button--secondary:hover{color:var(--color-text-primary, var(--color-text-primary));border-color:var(--color-border-hover, var(--color-surface-hover));background:#f5ede40d}@media (max-width: 640px){.releases-section{padding:var(--spacing-md, 16px)}.releases-section-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md, 16px)}.release-item{flex-direction:column;align-items:flex-start}.release-edit-button{width:100%;text-align:center}.releases-create-form{flex-direction:column;align-items:stretch}.releases-version-input{width:100%}}.mfa-gate{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:var(--spacing-lg)}.mfa-gate--loading{flex-direction:column;gap:var(--spacing-md);color:var(--text-secondary)}.mfa-gate__spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:mfa-spin 1s linear infinite}@keyframes mfa-spin{to{transform:rotate(360deg)}}.mfa-gate__card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:100%;text-align:center;box-shadow:var(--shadow-md)}.mfa-gate__icon{color:var(--primary);margin-bottom:var(--spacing-md)}.mfa-gate__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm)}.mfa-gate__description{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--spacing-lg)}.mfa-gate__form{display:flex;flex-direction:column;gap:var(--spacing-md)}.mfa-gate__input-wrapper{display:flex;justify-content:center}.mfa-gate__input{width:180px;padding:var(--spacing-md);font-size:var(--font-size-2xl);font-family:var(--font-mono, monospace);text-align:center;letter-spacing:.5em;border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-elevated);color:var(--text-primary);transition:border-color .2s}.mfa-gate__input:focus{outline:none;border-color:var(--primary)}.mfa-gate__input::placeholder{color:var(--text-muted);letter-spacing:.3em}.mfa-gate__error{color:var(--error);font-size:var(--font-size-sm);margin:0}.mfa-gate__submit{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-on-primary);background:var(--primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,opacity .2s}.mfa-gate__submit:hover:not(:disabled){background:var(--primary-hover)}.mfa-gate__submit:disabled{opacity:.6;cursor:not-allowed}.mfa-gate__init{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-light)}.mfa-gate__init-text{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--spacing-md)}.mfa-gate__init-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--primary);background:transparent;border:1px solid var(--primary);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,color .2s}.mfa-gate__init-button:hover:not(:disabled){background:var(--primary);color:var(--text-on-primary)}.mfa-gate__init-button:disabled{opacity:.6;cursor:not-allowed}.mfa-gate__setup-link{margin-top:var(--spacing-lg);padding:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary);background:transparent;border:none;cursor:pointer;text-decoration:underline;transition:color .2s}.mfa-gate__setup-link:hover{color:var(--primary)}.debug-log-viewer{padding:var(--space-md);background:var(--background-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.debug-log-viewer--loading,.debug-log-viewer--error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg);justify-content:center}.debug-log-viewer--error{color:var(--color-error);background:var(--color-error-bg, rgba(207, 102, 121, .1))}.debug-log-viewer__spinner{width:16px;height:16px;border:2px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.debug-log-viewer__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.debug-log-viewer__header h4{margin:0;font-size:var(--font-size-md);font-weight:600}.debug-log-viewer__controls{display:flex;gap:var(--space-xs)}.debug-log-viewer__btn{padding:var(--space-xs) var(--space-sm);background:var(--background-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-xs);transition:background-color .15s ease}.debug-log-viewer__btn:hover{background:var(--background-primary)}.debug-log-viewer__btn--small{padding:var(--space-xxs) var(--space-xs)}.debug-log-viewer__meta{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);color:var(--text-secondary);font-size:var(--font-size-xs)}.debug-log-viewer__section{margin-bottom:var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.debug-log-viewer__section-header{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--background-secondary);border:none;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;text-align:left;transition:background-color .15s ease}.debug-log-viewer__section-header:hover{background:var(--background-primary)}.debug-log-viewer__section-content{padding:var(--space-sm) var(--space-md);background:var(--background-primary)}.debug-log-viewer__chevron{transition:transform .2s ease;font-size:var(--font-size-xs)}.debug-log-viewer__chevron.expanded{transform:rotate(90deg)}.debug-log-viewer__json,.debug-log-viewer__code{margin:0;padding:var(--space-sm);background:var(--background-code, var(--color-surface));color:var(--text-code, var(--color-text-secondary));border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:pre-wrap;word-break:break-word;max-height:400px;overflow:auto}.debug-log-viewer__inventory{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.debug-log-viewer__inventory ul{margin:var(--space-xs) 0 0 0;padding-left:var(--space-md);max-height:200px;overflow:auto}.debug-log-viewer__inventory li{font-size:var(--font-size-xs)}.debug-log-viewer__steps{margin-top:var(--space-md)}.debug-log-viewer__steps h5{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-sm);font-weight:600}.debug-log-viewer__step{border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:var(--space-xs);overflow:hidden}.debug-log-viewer__step.expanded{border-color:var(--color-primary)}.debug-log-viewer__step-header{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--background-secondary);border:none;cursor:pointer;font-size:var(--font-size-sm);text-align:left;transition:background-color .15s ease}.debug-log-viewer__step-header:hover{background:var(--background-primary)}.debug-log-viewer__step-type{flex:1;font-weight:500}.step-type--prompt_validation{color:var(--color-info, var(--color-info))}.step-type--initial_generation{color:var(--color-success, var(--color-success))}.step-type--response_validation{color:var(--color-info, var(--color-info))}.step-type--retry_generation,.step-type--retry_validation{color:var(--color-warning, var(--color-warning))}.step-type--consistency_validation,.step-type--correction_generation{color:var(--color-info, var(--color-info))}.step-type--correction_applied,.step-type--final_recipe{color:var(--color-success, var(--color-success))}.debug-log-viewer__step-time{color:var(--text-secondary);font-size:var(--font-size-xs)}.debug-log-viewer__step-status{padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.debug-log-viewer__step-status.valid{background:var(--color-success-bg, rgba(107, 203, 119, .1));color:var(--color-success, var(--color-success))}.debug-log-viewer__step-status.invalid{background:var(--color-error-bg, rgba(207, 102, 121, .1));color:var(--color-error, var(--color-error))}.debug-log-viewer__step-attempt{padding:var(--space-xxs) var(--space-xs);background:var(--color-warning-bg, rgba(232, 184, 48, .1));color:var(--color-warning, var(--color-warning));border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.debug-log-viewer__step-content{padding:var(--space-md);background:var(--background-primary);border-top:1px solid var(--border-color)}.debug-log-viewer__prompt-section,.debug-log-viewer__response-section,.debug-log-viewer__metadata-section{margin-bottom:var(--space-md)}.debug-log-viewer__prompt-section:last-child,.debug-log-viewer__response-section:last-child,.debug-log-viewer__metadata-section:last-child{margin-bottom:0}.debug-log-viewer__prompt-section h6,.debug-log-viewer__response-section h6,.debug-log-viewer__metadata-section h6{margin:0 0 var(--space-xs) 0;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;color:var(--text-secondary)}@media (max-width: 640px){.debug-log-viewer__header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.debug-log-viewer__meta{flex-wrap:wrap}.debug-log-viewer__inventory{grid-template-columns:1fr}}.recipe-reports-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.recipe-reports-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.recipe-reports-card__header h3{margin:0;font-size:var(--font-size-lg);color:var(--color-text-primary)}.recipe-reports-card__refresh-btn{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast)}.recipe-reports-card__refresh-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.recipe-reports-card__refresh-btn:disabled{opacity:.6;cursor:not-allowed}.recipe-reports-card__stats{display:flex;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background-color:var(--color-surface-hover);border-radius:var(--radius-md)}.stat-item{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.stat-item strong{color:var(--color-text-primary)}.stat-new strong{color:var(--color-warning)}.stat-investigating strong{color:var(--color-info)}.stat-resolved strong{color:var(--color-success)}.recipe-reports-card__filters{margin-bottom:var(--spacing-md)}.recipe-reports-card__filters label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-reports-card__filters select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background-color:var(--color-surface);color:var(--color-text-primary)}.recipe-reports-card__error{padding:var(--spacing-md);background-color:#cf66791a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.recipe-reports-card__loading,.recipe-reports-card__empty{padding:var(--spacing-lg);text-align:center;color:var(--color-text-tertiary)}.recipe-reports-card__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.recipe-reports-card__item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.recipe-reports-card__item.expanded{border-color:var(--color-primary)}.recipe-reports-card__summary{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;background-color:var(--color-surface);transition:background-color var(--transition-fast)}.recipe-reports-card__summary:hover{background-color:var(--color-surface-hover)}.recipe-reports__reason{padding:2px var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.recipe-reports__reason--incorrect{background-color:#cf66791a;color:var(--color-error)}.recipe-reports__reason--safety{background-color:#cf667933;color:var(--color-error-dark)}.recipe-reports__reason--quality{background-color:#e8b8301a;color:var(--color-warning)}.recipe-reports__reason--restrictions{background-color:#d4a5741a;color:var(--color-secondary)}.recipe-reports__reason--other{background-color:#8a7a6c1a;color:var(--color-text-secondary)}.recipe-reports__status{padding:2px var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize}.recipe-reports__status--new{background-color:#e8b8301a;color:var(--color-warning)}.recipe-reports__status--investigating{background-color:#d4a5741a;color:var(--color-info)}.recipe-reports__status--resolved{background-color:#6bcb771a;color:var(--color-success)}.recipe-reports__recipe-name{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-reports__timestamp{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.recipe-reports-card__details{padding:var(--spacing-md);background-color:var(--color-surface-hover);border-top:1px solid var(--color-border)}.detail-section{margin-bottom:var(--spacing-md)}.detail-section:last-child{margin-bottom:0}.detail-section h4{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.detail-section p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.detail-list{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.detail-list li{margin-bottom:var(--spacing-xs)}.detail-list li strong{color:var(--color-text-primary)}.monospace{font-family:monospace;font-size:var(--font-size-xs);background-color:var(--color-surface);padding:var(--spacing-xs);border-radius:var(--radius-sm)}.debug-log-unavailable{font-style:italic;color:var(--color-text-tertiary);padding:var(--spacing-sm);background-color:var(--color-surface);border-radius:var(--radius-sm);border:1px dashed var(--color-border)}.recipe-reports-card__actions{margin-top:var(--spacing-md);display:flex;gap:var(--spacing-sm)}.action-btn{padding:var(--spacing-xs) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn--investigating{background-color:var(--color-info);color:var(--color-text-on-primary)}.action-btn--investigating:hover:not(:disabled){background-color:var(--color-primary)}.action-btn--resolved{background-color:var(--color-success);color:var(--color-text-on-primary)}.action-btn--resolved:hover:not(:disabled){background-color:var(--color-success)}.action-btn--reopen{background-color:var(--color-text-tertiary);color:var(--color-text-on-primary)}.action-btn--reopen:hover:not(:disabled){background-color:var(--color-text-secondary)}@media (max-width: 640px){.recipe-reports-card__summary{flex-wrap:wrap}.recipe-reports__recipe-name{width:100%;order:-1;margin-bottom:var(--spacing-xs)}.recipe-reports-card__stats{flex-direction:column;gap:var(--spacing-xs)}}.guest-access-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.guest-access-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.guest-access-card__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);padding:var(--spacing-md) 0}.guest-access-card__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:guest-access-spin .8s linear infinite}@keyframes guest-access-spin{to{transform:rotate(360deg)}}.guest-access-card__error{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-error);padding:var(--spacing-md) 0}.guest-access-card__error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.guest-access-card__content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.guest-access-card__config{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.guest-access-card__status-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.guest-access-card__status{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-md)}.guest-access-card__status--enabled{color:var(--color-success);background-color:color-mix(in srgb,var(--color-success) 15%,transparent)}.guest-access-card__status--paused{color:var(--color-error);background-color:color-mix(in srgb,var(--color-error) 15%,transparent)}.guest-access-card__toggle-button,.guest-access-card__save-button{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary);border-radius:var(--border-radius-md);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);cursor:pointer;transition:background-color .15s ease,color .15s ease}.guest-access-card__toggle-button:hover:not(:disabled),.guest-access-card__save-button:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-on-primary)}.guest-access-card__toggle-button:disabled,.guest-access-card__save-button:disabled{opacity:.5;cursor:not-allowed}.guest-access-card__limit-row{display:flex;align-items:center;gap:var(--spacing-sm)}.guest-access-card__limit-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.guest-access-card__limit-input{width:5rem;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-md)}.guest-access-card__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-md)}.guest-access-card__stat{display:flex;flex-direction:column;gap:var(--spacing-xs)}.guest-access-card__stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.guest-access-card__stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.migrations-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.migrations-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.migrations-card__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0}.migrations-card__list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.migrations-card__item{border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.migrations-card__item-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.migrations-card__item-title{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.migrations-card__item-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0}.migrations-card__run-button{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .2s;white-space:nowrap}.migrations-card__run-button:hover:not(:disabled){background-color:var(--color-primary-dark)}.migrations-card__run-button:disabled{opacity:.6;cursor:not-allowed}.migrations-card__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);padding:var(--spacing-sm) 0}.migrations-card__spinner{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:migrations-spin .8s linear infinite}@keyframes migrations-spin{to{transform:rotate(360deg)}}.migrations-card__error{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-error);padding:var(--spacing-sm) 0;font-size:var(--font-size-sm)}.migrations-card__error-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);flex-shrink:0}.migrations-card__result{margin-top:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--border-radius-md)}.migrations-card__result--success{background-color:var(--color-success-bg, var(--color-success-light));border:1px solid var(--color-success, var(--color-success))}.migrations-card__result--error{background-color:var(--color-error-bg, var(--color-error-light));border:1px solid var(--color-error, var(--color-error))}.migrations-card__result-header{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}.migrations-card__result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.migrations-card__stat{display:flex;flex-direction:column;gap:var(--spacing-xs)}.migrations-card__stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.migrations-card__stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.migrations-card__errors{margin-top:var(--spacing-md);font-size:var(--font-size-sm)}.migrations-card__errors ul{margin:var(--spacing-xs) 0 0 var(--spacing-md);padding:0}.migrations-card__errors li{color:var(--color-error)}.admin-dashboard{height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--spacing-lg) max(var(--spacing-lg),calc((100% - 1200px)/2))}.admin-dashboard--loading,.admin-dashboard--denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.admin-dashboard__spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--spacing-md)}.admin-dashboard__denied-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background-color:var(--color-error);color:var(--color-text-on-primary);border-radius:50%;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-lg)}.admin-dashboard__denied-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.admin-dashboard__denied-message{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.admin-dashboard__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.admin-dashboard__header-content{flex:1;min-width:200px}.admin-dashboard__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.admin-dashboard__subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.admin-dashboard__refresh-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s}.admin-dashboard__refresh-button:hover{background-color:var(--color-background);border-color:var(--color-primary)}.admin-dashboard__tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-dashboard__tab{padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--border-radius-md) var(--border-radius-md) 0 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;white-space:nowrap}.admin-dashboard__tab:hover{color:var(--color-text-primary);background-color:var(--color-background)}.admin-dashboard__tab--active{color:var(--color-primary);background-color:var(--color-surface);border-bottom:2px solid var(--color-primary);margin-bottom:-1px}.admin-dashboard__content{min-height:400px}.admin-dashboard__section{animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.admin-dashboard__grid{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.admin-dashboard__grid--full{grid-template-columns:1fr}@media (min-width: 768px){.admin-dashboard__grid--full{grid-template-columns:repeat(2,1fr)}}.recipes-hub{display:flex;flex-direction:column;flex:1;min-height:0}.recipes-hub-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--spacing-sm) var(--spacing-lg);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.recipes-hub-tabs{display:flex;gap:var(--spacing-xs);overflow-x:auto}.recipes-hub-search{position:relative;display:flex;align-items:center;margin-left:auto;margin-bottom:var(--spacing-xs);min-width:220px;flex:0 1 300px}.recipes-hub-search-icon{position:absolute;left:var(--spacing-sm);display:inline-flex;color:var(--color-text-tertiary);pointer-events:none}.recipes-hub-search .recipes-hub-search-input{width:100%;min-height:40px;padding:var(--spacing-xs) 40px var(--spacing-xs) 36px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-base)}.recipes-hub-search .recipes-hub-search-input:focus{outline:none;border-color:var(--color-primary)}.recipes-hub-search-input::placeholder{color:var(--color-text-tertiary)}.recipes-hub-search-clear{position:absolute;right:var(--spacing-xs);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-tertiary);cursor:pointer}.recipes-hub-search-clear:hover{color:var(--color-text-primary);background:var(--color-background-hover)}.recipes-hub-tab{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:12px 18px;min-height:var(--touch-target-min);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--transition-base),border-color var(--transition-base)}.recipes-hub-tab:hover{color:var(--color-text-primary)}.recipes-hub-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.recipes-hub-tab-badge{min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1}.recipes-hub-content{flex:1;min-height:0;display:flex;flex-direction:column}.beta-banner{background:linear-gradient(135deg,#c8845a26,#c8845a0d);border:1px solid var(--color-primary, var(--color-primary));border-radius:0;padding:var(--spacing-sm, 8px) var(--spacing-lg, 24px);animation:slideDown .3s ease-out}.beta-banner-content{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md, 16px);flex-wrap:wrap;max-width:var(--content-max-width, 1200px);margin:0 auto}.beta-banner-icon{flex-shrink:0;color:var(--color-primary, var(--color-primary))}.beta-banner-svg{width:20px;height:20px}.beta-banner-message{font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary, var(--color-text-primary));line-height:1.5;margin:0}.beta-banner-actions{display:flex;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.beta-banner-button{padding:var(--spacing-xs, 4px) var(--spacing-md, 16px);border-radius:var(--radius-md, 8px);font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all var(--transition-fast, .15s) ease;border:none;white-space:nowrap}.beta-banner-button:focus{outline:2px solid var(--color-border-focus, var(--color-primary));outline-offset:2px}.beta-banner-button-primary{background:var(--color-primary, var(--color-primary));color:var(--color-text-on-primary)}.beta-banner-button-primary:hover{background:var(--color-primary-hover, var(--color-primary-hover));transform:translateY(-1px)}.beta-banner-button-primary:active{transform:translateY(0)}.beta-banner-button-dismiss{background:transparent;color:var(--color-text-tertiary, var(--color-text-tertiary));padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px)}.beta-banner-button-dismiss:hover{color:var(--color-text-primary, var(--color-text-primary));background:#f5ede41a}@media (max-width: 640px){.beta-banner{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px)}.beta-banner-content{flex-direction:column;gap:var(--spacing-sm, 8px);text-align:center}.beta-banner-icon{display:none}.beta-banner-actions{justify-content:center;width:100%}.beta-banner-button{flex:1;text-align:center;max-width:150px}}.maintenance-announcement-banner{background:linear-gradient(135deg,#e8b83026,#e8b8300d);border:1px solid var(--color-warning, var(--color-warning));border-radius:0;padding:var(--spacing-sm, 8px) var(--spacing-lg, 24px);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.maintenance-announcement-content{display:flex;align-items:center;gap:var(--spacing-md, 16px);max-width:var(--content-max-width, 1200px);margin:0 auto}.maintenance-announcement-icon{flex-shrink:0;color:var(--color-warning, var(--color-warning))}.maintenance-announcement-svg{width:24px;height:24px}.maintenance-announcement-text{flex:1;min-width:0}.maintenance-announcement-message{font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary, var(--color-text-primary));line-height:1.5;margin:0}.maintenance-announcement-detail{color:var(--color-text-secondary, var(--color-text-secondary))}.maintenance-announcement-countdown{font-size:var(--font-size-xs, .75rem);color:var(--color-warning, var(--color-warning));margin:var(--spacing-xs, 4px) 0 0 0;font-weight:var(--font-weight-medium, 500)}.maintenance-announcement-dismiss{flex-shrink:0;padding:var(--spacing-xs, 4px);background:transparent;border:none;border-radius:var(--radius-sm, 4px);color:var(--color-text-tertiary, var(--color-text-tertiary));cursor:pointer;transition:all var(--transition-fast, .15s) ease}.maintenance-announcement-dismiss:hover{color:var(--color-text-primary, var(--color-text-primary));background:#f5ede41a}.maintenance-announcement-dismiss:focus{outline:2px solid var(--color-warning, var(--color-warning));outline-offset:2px}.maintenance-dismiss-svg{width:20px;height:20px;display:block}@media (max-width: 640px){.maintenance-announcement-banner{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px)}.maintenance-announcement-content{gap:var(--spacing-sm, 8px)}.maintenance-announcement-icon{display:none}.maintenance-announcement-message{font-size:var(--font-size-xs, .75rem)}.maintenance-announcement-countdown{font-size:.7rem}}.maintenance-screen{position:fixed;inset:0;background:var(--color-bg-primary, var(--color-background));z-index:var(--z-modal, 1050);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg, 24px)}.maintenance-screen-content{text-align:center;max-width:400px;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.maintenance-screen-icon{color:var(--color-primary, var(--color-primary));margin-bottom:var(--spacing-lg, 24px)}.maintenance-screen-svg{width:64px;height:64px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.maintenance-screen-title{font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, var(--color-text-primary));margin:0 0 var(--spacing-md, 16px) 0}.maintenance-screen-message{font-size:var(--font-size-md, 1rem);color:var(--color-text-secondary, var(--color-text-secondary));margin:0 0 var(--spacing-sm, 8px) 0;line-height:1.6}.maintenance-screen-version{font-size:var(--font-size-sm, .875rem);color:var(--color-primary, var(--color-primary));margin:0 0 var(--spacing-xl, 32px) 0;font-weight:var(--font-weight-medium, 500)}.maintenance-screen-loader{display:flex;justify-content:center;gap:var(--spacing-sm, 8px);margin-bottom:var(--spacing-xl, 32px)}.maintenance-loader-dot{width:10px;height:10px;background:var(--color-primary, var(--color-primary));border-radius:50%;animation:bounce 1.4s ease-in-out infinite}.maintenance-loader-dot:nth-child(1){animation-delay:0s}.maintenance-loader-dot:nth-child(2){animation-delay:.2s}.maintenance-loader-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.maintenance-screen-footer{font-size:var(--font-size-sm, .875rem);color:var(--color-text-tertiary, var(--color-text-tertiary));margin:0}.maintenance-admin-indicator{position:fixed;bottom:var(--spacing-md, 16px);right:var(--spacing-md, 16px);background:linear-gradient(135deg,#e8b83033,#e8b8301a);border:1px solid var(--color-warning, var(--color-warning));border-radius:var(--radius-lg, 12px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);display:flex;align-items:center;gap:var(--spacing-sm, 8px);z-index:var(--z-fixed, 1030);box-shadow:var(--shadow-lg);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.maintenance-admin-icon{color:var(--color-warning, var(--color-warning));flex-shrink:0}.maintenance-admin-icon svg{width:16px;height:16px;display:block}.maintenance-admin-text{font-size:var(--font-size-xs, .75rem);color:var(--color-warning, var(--color-warning));font-weight:var(--font-weight-medium, 500);white-space:nowrap}@media (max-width: 640px){.maintenance-screen-content{max-width:100%}.maintenance-screen-svg{width:48px;height:48px}.maintenance-screen-title{font-size:var(--font-size-xl, 1.25rem)}.maintenance-admin-indicator{bottom:var(--spacing-sm, 8px);right:var(--spacing-sm, 8px);left:var(--spacing-sm, 8px);justify-content:center}}.app-shell{display:flex;width:100%;height:100vh;height:100dvh;background-color:var(--color-background);overflow:hidden}.app-shell-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.app-shell-content{flex:1;min-height:0;display:flex;flex-direction:column;padding:var(--mobile-padding);padding-bottom:calc(64px + env(safe-area-inset-bottom,0px) + var(--spacing-md));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-shell-content-inner{flex:1;display:flex;flex-direction:column}.app-sidebar{display:none}.app-sidebar-logo{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);text-decoration:none}.app-sidebar-logo-image{width:32px;height:32px;flex-shrink:0}.app-sidebar-logo-text{font-family:var(--font-display);font-size:24px;color:var(--color-secondary);line-height:1}.app-sidebar-nav{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.app-nav-item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius-lg);color:var(--color-text-secondary);text-decoration:none;transition:background var(--transition-base),color var(--transition-base)}.app-nav-item:hover{background:var(--color-primary-lighter);color:var(--color-text-primary)}.app-nav-item.active{background:var(--color-primary-alpha);color:var(--color-primary)}.app-nav-label{font-size:15px;font-weight:var(--font-weight-medium)}.app-nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1}.app-sidebar-footer{margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light)}.app-tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:flex-end;background:linear-gradient(transparent,var(--color-background) 20%);padding:var(--spacing-sm) 0 calc(env(safe-area-inset-bottom,0px) + var(--spacing-sm));z-index:var(--z-fixed)}.app-tab{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:var(--touch-target-min);min-height:var(--touch-target-min);justify-content:center;color:var(--color-text-secondary);text-decoration:none;font-size:11px;transition:color var(--transition-base)}.app-tab.active{color:var(--color-primary)}.app-tab-icon{position:relative;display:inline-flex}.app-tab-badge{position:absolute;top:-6px;right:-10px;margin-left:0;min-width:16px;height:16px;font-size:10px}.app-tab-label{line-height:1}@media (min-width: 1024px){.app-sidebar{display:flex;flex-direction:column;width:240px;flex-shrink:0;padding:var(--spacing-xl) var(--spacing-md);background:var(--color-surface);border-right:1px solid var(--color-border-light);overflow-y:auto}.app-tabbar{display:none}.app-shell-content{padding:var(--spacing-lg)}}.app-guest-badge{background:var(--color-surface-variant, #241E1A);color:var(--color-secondary, #D4A574);border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));text-transform:uppercase;letter-spacing:.04em}.app-tab-badge.app-guest-badge{right:-14px;padding:0 4px}.update-banner{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:calc(100vw - var(--spacing-lg) * 2);animation:update-banner-slide-up .3s ease-out}@keyframes update-banner-slide-up{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.update-banner-content{display:flex;align-items:center;gap:var(--spacing-sm)}.update-banner-icon{font-size:var(--font-size-xl);color:var(--color-primary)}.update-banner-message{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.update-banner-actions{display:flex;gap:var(--spacing-sm)}.update-banner-button{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.update-banner-button-primary{background:var(--color-primary);color:var(--color-text-on-primary);border:none}.update-banner-button-primary:hover{background:var(--color-primary-hover)}.update-banner-button-primary:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.update-banner-button-secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.update-banner-button-secondary:hover{background:var(--color-surface-hover)}.update-banner-button-secondary:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@media (max-width: 480px){.update-banner{flex-direction:column;bottom:var(--spacing-md);left:var(--spacing-md);right:var(--spacing-md);transform:none;max-width:none;animation:update-banner-slide-up-mobile .3s ease-out}@keyframes update-banner-slide-up-mobile{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.update-banner-actions{width:100%;justify-content:stretch}.update-banner-button{flex:1}}.legal-page-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background-color:var(--color-background)}.legal-page-header{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.legal-page-logo{display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-primary);text-decoration:none;letter-spacing:.02em;transition:color var(--transition-fast)}.legal-page-logo-image{width:28px;height:28px;flex-shrink:0}.legal-page-logo:hover{color:var(--color-primary-hover)}.legal-page-back-link{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast)}.legal-page-back-link:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.legal-page-back-link .icon{flex-shrink:0;width:16px;height:16px}.legal-page-main{flex:1 0 auto;display:flex;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg)}.legal-page-content{width:100%;max-width:800px}.legal-page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-normal);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.legal-page-last-updated{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0 0 var(--spacing-xl) 0;padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.legal-page-body{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.legal-page-body h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--spacing-xl) 0 var(--spacing-md) 0}.legal-page-body h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--spacing-lg) 0 var(--spacing-sm) 0}.legal-page-body p{margin:0 0 var(--spacing-md) 0}.legal-page-body ul,.legal-page-body ol{margin:0 0 var(--spacing-md) 0;padding-left:var(--spacing-lg)}.legal-page-body li{margin-bottom:var(--spacing-xs)}.legal-page-body a{color:var(--color-primary);text-decoration:none}.legal-page-body a:hover{text-decoration:underline}.legal-page-body strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.legal-section{margin-bottom:var(--spacing-xl)}.legal-section:last-child{margin-bottom:0}.legal-address{white-space:pre-line}.legal-warning{background-color:#e8b8301a;border-left:4px solid var(--color-warning);padding:var(--spacing-md);margin:var(--spacing-md) 0;border-radius:0 var(--radius-md) var(--radius-md) 0}.legal-warning p{margin:0;color:var(--color-text-primary)}@media (max-width: 768px){.legal-page-header{flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.legal-page-main{padding:var(--spacing-md)}.legal-page-title{font-size:var(--font-size-2xl)}.legal-page-body h2{font-size:var(--font-size-lg)}.legal-page-back-link{min-height:var(--touch-target-min, 44px)}}.about-page{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.about-section{margin-bottom:var(--spacing-lg)}.about-section h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.about-section p{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.about-features-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.about-features-list li{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.about-features-list li:before{content:"✓";color:var(--color-primary);font-weight:var(--font-weight-bold);flex-shrink:0}.about-contact-email{font-family:var(--font-mono);background-color:var(--color-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);display:inline-block;margin-top:var(--spacing-sm)}.about-actions{display:flex;justify-content:center;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.about-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);transition:all var(--transition-base)}.about-link:hover{background-color:#6bcb771a;text-decoration:underline}.about-link:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 768px){.about-page{gap:var(--spacing-xl)}.about-section h2{font-size:var(--font-size-lg)}}.release-notes-page{display:flex;flex-direction:column;gap:var(--spacing-xl)}.release-notes-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-lg)}.release-notes-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md)}.release-notes-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.release-notes-loading p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.release-notes-error{padding:var(--spacing-xl);text-align:center;background-color:#cf66791a;border-radius:var(--radius-md);color:var(--color-error, var(--color-error))}.release-notes-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary);background-color:var(--color-surface);border-radius:var(--radius-md)}.release-notes-list{display:flex;flex-direction:column;gap:var(--spacing-xl)}.release-note-item{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:box-shadow var(--transition-base)}.release-note-item:hover{box-shadow:var(--shadow-md)}.release-note-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.release-version-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:var(--color-text-on-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);font-family:var(--font-mono)}.release-date{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.release-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.release-body{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.release-body-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.release-body-h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-top:var(--spacing-md)}.release-body-h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-top:var(--spacing-sm)}.release-body-h4{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-top:var(--spacing-sm)}.release-body-li{padding-left:var(--spacing-md);position:relative;list-style:none}.release-body-li:before{content:"•";color:var(--color-primary);font-weight:var(--font-weight-bold);position:absolute;left:0}.release-body-p{margin:0}.release-notes-actions{display:flex;justify-content:center;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.release-notes-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);transition:all var(--transition-base)}.release-notes-link:hover{background-color:#6bcb771a;text-decoration:underline}.release-notes-link:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 768px){.release-notes-page{gap:var(--spacing-lg)}.release-note-item{padding:var(--spacing-md)}.release-note-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}.faq-page{display:flex;flex-direction:column;gap:var(--spacing-xl)}.faq-controls{display:flex;flex-direction:column;gap:var(--spacing-lg)}.faq-search{width:100%}.faq-search-input{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.faq-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6bcb771a}.faq-search-input::placeholder{color:var(--color-text-tertiary)}.faq-category-filter{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.faq-category-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-full);background-color:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base)}.faq-category-button:hover{background-color:var(--color-background);border-color:var(--color-primary);color:var(--color-text-primary)}.faq-category-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.faq-category-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.faq-expand-controls{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.faq-expand-button,.faq-collapse-button{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-md);background-color:transparent;color:var(--color-primary);cursor:pointer;transition:background-color var(--transition-base)}.faq-expand-button:hover,.faq-collapse-button:hover{background-color:#6bcb771a}.faq-expand-button:focus,.faq-collapse-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.faq-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);overflow:hidden;transition:border-color var(--transition-base)}.faq-item:hover,.faq-item.expanded{border-color:var(--color-primary)}.faq-item-button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:left;border:none;background-color:transparent;color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-base)}.faq-item-button:hover{background-color:var(--color-background)}.faq-item-button:focus{outline:none;background-color:var(--color-background);box-shadow:inset 0 0 0 2px var(--color-primary)}.faq-question{flex:1;padding-right:var(--spacing-md)}.faq-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-light);color:var(--color-primary)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out}.faq-answer.visible{max-height:2000px;padding:0 var(--spacing-lg) var(--spacing-lg)}.faq-answer-content{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.faq-answer-content strong{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.faq-answer-content em{font-style:italic}.faq-answer-content code{font-family:var(--font-mono);background-color:var(--color-background);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.faq-answer-content a{color:var(--color-primary);text-decoration:none}.faq-answer-content a:hover{text-decoration:underline}.faq-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.faq-loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:faq-spin 1s linear infinite;margin-bottom:var(--spacing-md)}@keyframes faq-spin{to{transform:rotate(360deg)}}.faq-loading p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.faq-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center;background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-error)}.faq-error p{color:var(--color-error);font-size:var(--font-size-base);margin-bottom:var(--spacing-md)}.faq-retry-button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:1px solid var(--color-primary);border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;transition:all var(--transition-base)}.faq-retry-button:hover{background-color:var(--color-primary-hover)}.faq-retry-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.faq-empty,.faq-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center;background-color:var(--color-surface);border-radius:var(--radius-md)}.faq-empty p,.faq-no-results p{color:var(--color-text-secondary);font-size:var(--font-size-base)}@media (max-width: 768px){.faq-page{gap:var(--spacing-lg)}.faq-controls{gap:var(--spacing-md)}.faq-category-filter{gap:var(--spacing-xs)}.faq-category-button{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.faq-expand-controls{justify-content:center}.faq-item-button{padding:var(--spacing-sm) var(--spacing-md)}.faq-answer.visible{padding:0 var(--spacing-md) var(--spacing-md)}}.about-legal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.about-legal-list li{border-bottom:1px solid var(--color-border-light)}.about-legal-list li:last-child{border-bottom:none}.about-legal-link{display:block;padding:var(--spacing-md) var(--spacing-sm);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-base);border-radius:var(--radius-md);transition:background var(--transition-base),color var(--transition-base)}.about-legal-link:hover{background:var(--color-primary-lighter);color:var(--color-primary)}.not-found-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--spacing-xl);gap:var(--spacing-md)}.not-found-icon{color:var(--color-text-tertiary)}.not-found-page h1{font-size:var(--font-size-3xl);color:var(--color-text-primary);margin:0}.not-found-page p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0;max-width:420px}.not-found-home-link{margin-top:var(--spacing-md);padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);text-decoration:none;transition:all var(--transition-base)}.not-found-home-link:hover{box-shadow:var(--shadow-md)}.shared-recipe-shell{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;background-color:var(--color-bg, #1A1412)}.shared-recipe-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-primary-alpha-12, rgba(200, 132, 90, .12))}.shared-recipe-logo-link{display:inline-flex;align-items:center}.shared-recipe-logo{height:32px;width:auto}.shared-recipe-badge{padding:.25em .75em;border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));border-radius:999px;color:var(--color-secondary, #D4A574);font-size:.8rem;white-space:nowrap}.shared-recipe-main{width:100%;max-width:720px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;gap:1rem}.shared-recipe-actions{display:flex;flex-wrap:wrap;gap:.5rem}.shared-recipe-actions button{display:inline-flex;align-items:center;gap:.4rem;padding:.55em 1.1em;border-radius:var(--radius-sm, 6px);font-weight:500;cursor:pointer}.shared-cook-this-btn{border:none;background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600}.shared-cook-this-btn:hover{background-color:var(--color-secondary, #D4A574)}.shared-save-btn,.shared-report-btn,.shared-revoke-btn{border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));background:transparent;color:var(--color-primary, #C8845A)}.shared-save-btn:hover:not(:disabled),.shared-report-btn:hover,.shared-revoke-btn:hover{background-color:var(--color-primary-alpha-10, rgba(200, 132, 90, .12))}.shared-save-btn:disabled{opacity:.7;cursor:default}.shared-save-btn.saved{color:var(--color-success, #6BCB77);border-color:var(--color-success, #6BCB77)}.shared-revoke-btn{color:var(--color-error, #CF6679);border-color:#cf667966;margin-left:auto}.shared-revoke-btn:hover{background-color:#cf66791f}.shared-recipe-loading-text{margin:4rem auto;color:var(--color-text-secondary, #B0A090)}.shared-recipe-not-found{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:3rem 1rem}.shared-recipe-not-found h1{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);font-size:1.75rem;color:var(--color-text-primary, #F5EDE4)}.shared-recipe-not-found p{margin:0;color:var(--color-text-secondary, #B0A090)}.shared-recipe-not-found-art{width:min(220px,60vw);height:auto}.shared-recipe-home-cta{margin-top:.75rem;padding:.65em 1.4em;border-radius:var(--radius-sm, 6px);background-color:var(--color-primary, #C8845A);color:var(--color-bg, #1A1412);font-weight:600;text-decoration:none}.shared-recipe-home-cta:hover{background-color:var(--color-secondary, #D4A574)}.shared-revoke-modal{display:flex;flex-direction:column;gap:.75rem;max-width:420px}.shared-revoke-modal h3{margin:0;font-family:var(--font-heading, "DM Serif Display", serif);color:var(--color-text-primary, #F5EDE4)}.shared-revoke-modal p{margin:0;color:var(--color-text-secondary, #B0A090);line-height:1.5}.shared-revoke-modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.shared-revoke-cancel-btn{padding:.5em 1em;border:1px solid var(--color-primary-alpha-30, rgba(200, 132, 90, .3));border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-secondary, #B0A090);cursor:pointer}.shared-revoke-confirm-btn{padding:.5em 1em;border:none;border-radius:var(--radius-sm, 6px);background-color:var(--color-error, #CF6679);color:var(--color-bg, #1A1412);font-weight:600;cursor:pointer}.shared-revoke-confirm-btn:disabled{opacity:.7;cursor:default}:root{--palette-bg: #1a1412;--palette-surface: #1e1816;--palette-elevated: #241e1a;--palette-copper: #c8845a;--palette-gold: #d4a574;--palette-cream: #f5ede4;--palette-taupe: #b0a090;--palette-taupe-dim: #8a7a6c;--palette-success: #6bcb77;--palette-warning: #e8b830;--palette-error: #cf6679;--color-primary: var(--palette-copper);--color-primary-hover: var(--palette-gold);--color-primary-dark: #a86a44;--color-primary-light: rgba(200, 132, 90, .12);--color-primary-lighter: rgba(200, 132, 90, .08);--color-primary-alpha: rgba(200, 132, 90, .15);--color-primary-bg: rgba(200, 132, 90, .12);--color-primary-border: rgba(200, 132, 90, .3);--color-primary-rgb: 200, 132, 90;--color-secondary: var(--palette-gold);--color-secondary-hover: #e0b98a;--color-secondary-dark: #b98d5e;--color-success: var(--palette-success);--color-success-dark: #57a862;--color-success-light: rgba(107, 203, 119, .14);--color-success-bg: rgba(107, 203, 119, .14);--color-error: var(--palette-error);--color-error-hover: #d97f8f;--color-error-dark: #a94f5f;--color-error-light: rgba(207, 102, 121, .14);--color-error-bg: rgba(207, 102, 121, .14);--color-error-border: rgba(207, 102, 121, .35);--color-warning: var(--palette-warning);--color-warning-hover: #f0c855;--color-warning-dark: #c49a20;--color-warning-light: rgba(232, 184, 48, .14);--color-warning-bg: rgba(232, 184, 48, .14);--color-info: var(--palette-gold);--color-info-bg: rgba(212, 165, 116, .14);--color-info-light: rgba(212, 165, 116, .14);--color-info-border: rgba(212, 165, 116, .35);--color-danger: var(--color-error);--color-danger-dark: var(--color-error-dark);--color-background: var(--palette-bg);--color-background-secondary: var(--palette-surface);--color-background-tertiary: var(--palette-elevated);--color-background-subtle: var(--palette-surface);--color-background-hover: var(--palette-elevated);--color-surface: var(--palette-surface);--color-surface-hover: var(--palette-elevated);--color-surface-variant: var(--palette-elevated);--color-surface-secondary: var(--palette-elevated);--color-bg-primary: var(--palette-bg);--color-bg-secondary: var(--palette-surface);--color-bg-hover: var(--palette-elevated);--color-text-primary: var(--palette-cream);--color-text-secondary: var(--palette-taupe);--color-text-tertiary: var(--palette-taupe-dim);--color-text-muted: var(--palette-taupe-dim);--color-text-light: var(--palette-cream);--color-text: var(--palette-cream);--color-text-on-primary: #ffffff;--color-white: #ffffff;--color-text-disabled: rgba(176, 160, 144, .5);--color-disabled: rgba(176, 160, 144, .5);--color-disabled-bg: rgba(176, 160, 144, .12);--color-border: rgba(200, 132, 90, .15);--color-border-light: rgba(200, 132, 90, .1);--color-border-dark: rgba(200, 132, 90, .25);--color-border-hover: rgba(200, 132, 90, .3);--color-border-focus: var(--palette-copper);--tag-bg: rgba(200, 132, 90, .15);--tag-border: rgba(200, 132, 90, .3);--glow-copper: rgba(200, 132, 90, .25);--border-subtle: rgba(200, 132, 90, .12);--border-card: rgba(200, 132, 90, .15);--gradient-primary: linear-gradient(135deg, var(--palette-copper), var(--palette-gold));--art-chip-bg: rgba(26, 20, 18, .75);--art-title-scrim: linear-gradient(transparent, rgba(26, 20, 18, .95));--art-track: rgba(245, 237, 228, .12);--background-primary: var(--color-background);--background-secondary: var(--color-surface);--background-tertiary: var(--color-surface-variant);--background-code: var(--palette-elevated);--surface: var(--color-surface);--surface-elevated: var(--palette-elevated);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--text-muted: var(--color-text-muted);--text-on-primary: var(--color-text-on-primary);--text-code: var(--palette-gold);--border-color: var(--color-border);--border-light: var(--color-border-light);--accent-color: var(--color-primary);--accent-color-hover: var(--color-primary-hover);--accent-bg: var(--color-primary-light);--error-color: var(--color-error);--error-bg: var(--color-error-light);--error: var(--color-error);--success-color: var(--color-success);--success-color-hover: var(--color-success-dark);--success-bg: var(--color-success-light);--warning-color: var(--color-warning);--warning-color-hover: var(--color-warning-dark);--warning-bg: var(--color-warning-light);--primary: var(--color-primary);--primary-hover: var(--color-primary-hover);--button-bg: var(--color-surface-variant);--color-bg-primary-dark: var(--color-background);--color-bg-secondary-dark: var(--color-surface);--color-bg-tertiary-dark: var(--color-surface-variant);--color-bg-hover-dark: var(--color-surface-hover);--color-surface-dark: var(--color-surface);--color-surface-hover-dark: var(--color-surface-hover);--color-surface-secondary-dark: var(--color-surface-variant);--color-text-primary-dark: var(--color-text-primary);--color-text-secondary-dark: var(--color-text-secondary);--color-text-tertiary-dark: var(--color-text-tertiary);--color-text-muted-dark: var(--color-text-muted);--color-primary-light-dark: var(--color-primary-light);--font-display: "DM Serif Display", Georgia, "Times New Roman", serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--font-family: var(--font-body);--font-serif: var(--font-display);--font-sans: var(--font-body);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-2xs: .125rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--space-xxs: .125rem;--space-xs: var(--spacing-xs);--space-sm: var(--spacing-sm);--space-md: var(--spacing-md);--space-lg: var(--spacing-lg);--space-xl: var(--spacing-xl);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-full: 9999px;--border-radius: var(--radius-md);--border-radius-sm: var(--radius-sm);--border-radius-md: var(--radius-md);--border-radius-lg: var(--radius-lg);--shadow-sm: 0 1px 2px 0 rgba(15, 10, 8, .35);--shadow-md: 0 4px 8px -2px rgba(15, 10, 8, .4), 0 2px 4px -2px rgba(15, 10, 8, .3);--shadow-lg: 0 10px 18px -4px rgba(15, 10, 8, .45), 0 0 20px rgba(200, 132, 90, .05);--shadow-xl: 0 20px 28px -6px rgba(15, 10, 8, .5), 0 0 30px rgba(200, 132, 90, .07);--shadow-glow: 0 4px 12px rgba(200, 132, 90, .4);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--max-width-sm: 640px;--max-width-md: 768px;--max-width-lg: 1024px;--max-width-xl: 1280px;--max-width-2xl: 1536px;--content-max-width: var(--max-width-xl);--touch-target-min: 44px;--touch-target-optimal: 48px;--mobile-padding: var(--spacing-md);--mobile-gap: var(--spacing-sm);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}[data-theme=light]{--palette-bg: #faf5ee;--palette-surface: #fffaf3;--palette-elevated: #f3ebe0;--palette-cream: #2a1f18;--palette-taupe: #6a5a4c;--palette-taupe-dim: #8a7a6c;--palette-success: #3e8e4a;--palette-warning: #a87e14;--palette-error: #b34a5e;--color-primary: #a86a44;--color-primary-hover: #8f5637;--color-primary-dark: #8f5637;--color-primary-light: rgba(168, 106, 68, .1);--color-primary-lighter: rgba(168, 106, 68, .07);--color-primary-alpha: rgba(168, 106, 68, .13);--color-primary-bg: rgba(168, 106, 68, .1);--color-primary-border: rgba(168, 106, 68, .35);--color-primary-rgb: 168, 106, 68;--color-secondary: #9c7a3c;--color-secondary-hover: #7e6230;--color-secondary-dark: #7e6230;--color-info: #9c7a3c;--color-info-bg: rgba(156, 122, 60, .14);--color-info-light: rgba(156, 122, 60, .14);--color-info-border: rgba(156, 122, 60, .35);--text-code: #8f6a3e;--gradient-primary: linear-gradient(135deg, #a86a44, #8f6a3e);--color-success-dark: #2f6e39;--color-success-light: rgba(62, 142, 74, .14);--color-success-bg: rgba(62, 142, 74, .14);--color-error-hover: #983d50;--color-error-dark: #7e3242;--color-error-light: rgba(179, 74, 94, .12);--color-error-bg: rgba(179, 74, 94, .12);--color-error-border: rgba(179, 74, 94, .35);--color-warning-hover: #8f6a0f;--color-warning-dark: #7a5b0d;--color-warning-light: rgba(168, 126, 20, .14);--color-warning-bg: rgba(168, 126, 20, .14);--color-text-disabled: rgba(106, 90, 76, .5);--color-disabled: rgba(106, 90, 76, .5);--color-disabled-bg: rgba(106, 90, 76, .12);--color-border: rgba(168, 106, 68, .2);--color-border-light: rgba(168, 106, 68, .12);--color-border-dark: rgba(168, 106, 68, .32);--color-border-hover: rgba(168, 106, 68, .4);--color-border-focus: #a86a44;--tag-bg: rgba(168, 106, 68, .12);--tag-border: rgba(168, 106, 68, .3);--glow-copper: rgba(200, 132, 90, .2);--border-subtle: rgba(168, 106, 68, .15);--border-card: rgba(168, 106, 68, .18);--art-chip-bg: rgba(255, 250, 243, .85);--art-title-scrim: linear-gradient(transparent, rgba(250, 245, 238, .96));--art-track: rgba(42, 31, 24, .12);--shadow-sm: 0 1px 2px 0 rgba(90, 62, 44, .1);--shadow-md: 0 4px 8px -2px rgba(90, 62, 44, .12), 0 2px 4px -2px rgba(90, 62, 44, .08);--shadow-lg: 0 10px 18px -4px rgba(90, 62, 44, .14), 0 0 20px rgba(200, 132, 90, .06);--shadow-xl: 0 20px 28px -6px rgba(90, 62, 44, .16), 0 0 30px rgba(200, 132, 90, .08);--shadow-glow: 0 4px 12px rgba(168, 106, 68, .3)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background);margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-4xl);color:var(--color-text-primary)}h2{font-size:var(--font-size-3xl);color:var(--color-text-primary)}h3{font-size:var(--font-size-2xl);color:var(--color-text-primary)}h4{font-size:var(--font-size-xl);color:var(--color-text-secondary)}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}button{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}button:disabled{opacity:.5;cursor:not-allowed}.button-primary,button[type=submit]:not(.button-secondary):not(.button-ghost){background-color:var(--color-primary);color:var(--color-text-on-primary);box-shadow:var(--shadow-sm)}.button-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-primary:active:not(:disabled){transform:translateY(0)}.button-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.button-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.button-ghost{background-color:transparent;color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-md)}.button-ghost:hover:not(:disabled){background-color:var(--color-primary-light)}.button-danger{background-color:var(--color-error);color:var(--color-text-on-primary)}.button-danger:hover:not(:disabled){background-color:var(--color-error)}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font-family:var(--font-family);font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);transition:all var(--transition-base);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}input::placeholder{color:var(--color-text-tertiary)}input[type=checkbox],input[type=radio]{width:auto;margin-right:var(--spacing-sm);cursor:pointer;accent-color:var(--color-primary)}.error-message{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);display:flex;align-items:center;gap:var(--spacing-xs)}.success-message{color:var(--color-success);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.loading-container{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary);font-size:var(--font-size-lg)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.page-container{max-width:var(--max-width-xl);margin:0 auto;padding:var(--spacing-xl);min-height:calc(100vh - 80px);display:flex;flex-direction:column;justify-content:center}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-tertiary)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}@media (max-width: 768px){.page-container{padding:var(--spacing-md)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}}
