:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--color-text-primary, rgba(255, 255, 255, .87));background-color:var(--color-background, #242424);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--color-secondary, #646cff);text-decoration:inherit}a:hover{color:var(--color-secondary, #535bf2)}html,body{width:100%;min-width:0}body{margin:0;display:block;min-height:100vh;background-color:var(--color-background);color:var(--color-text-primary)}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1;color:var(--color-text-primary)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-surface-primary, #1a1a1a);color:var(--color-text-primary);cursor:pointer;box-shadow:none;outline:none;transition:border-color .25s}button:hover{border-color:var(--color-secondary, #646cff);box-shadow:none}button:focus,button:focus-visible{outline:none;box-shadow:none}:root{--color-primary: #4caf50;--color-primary-dark: #45a049;--color-primary-light: #66bb6a;--color-secondary: #2196f3;--color-secondary-dark: #1976d2;--color-secondary-light: #64b5f6;--color-accent: #ffc107;--color-accent-dark: #ff8f00;--color-accent-light: #ffeb3b;--color-success: #4caf50;--color-warning: #ff9800;--color-error: #f44336;--color-info: #2196f3;--color-background: #f5f5f5;--color-surface: #ffffff;--color-surface-secondary: #f8f8f8;--color-surface-tertiary: #f0f0f0;--color-text-primary: #1a1a1a;--color-text-secondary: #333333;--color-text-muted: #666666;--color-text-disabled: #999999;--color-border: #e0e0e0;--color-border-light: #f0f0f0;--color-border-focus: #4caf50;--color-border-hover: #cccccc;--color-surface-hover: rgba(0, 0, 0, .05);--font-family-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-system: system-ui, Avenir, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 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-size-5xl: 3rem;--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.6;--line-height-loose: 2;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--border-radius-none: 0;--border-radius-sm: .125rem;--border-radius-base: .25rem;--border-radius-md: .375rem;--border-radius-lg: .5rem;--border-radius-xl: .75rem;--border-radius-2xl: 1rem;--border-radius-3xl: 1.5rem;--border-radius-full: 9999px;--border-width-none: 0;--border-width-thin: 1px;--border-width-thick: 2px;--border-width-heavy: 4px;--shadow-none: none;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--transition-duration-fast: .15s;--transition-duration-base: .2s;--transition-duration-slow: .3s;--transition-timing-linear: linear;--transition-timing-in: cubic-bezier(.4, 0, 1, 1);--transition-timing-out: cubic-bezier(0, 0, .2, 1);--transition-timing-in-out: cubic-bezier(.4, 0, .2, 1);--transition-fast: all var(--transition-duration-fast) var(--transition-timing-in-out);--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--control-height: 44px;--control-border-radius: var(--border-radius-xl);--button-padding-y: var(--spacing-3);--button-padding-x: var(--spacing-4);--button-border-radius: var(--control-border-radius);--button-font-weight: var(--font-weight-medium);--button-transition: all var(--transition-duration-base) var(--transition-timing-in-out);--card-background: var(--color-surface);--card-border: var(--color-border);--card-border-radius: var(--border-radius-xl);--card-padding: var(--spacing-6);--card-shadow: var(--shadow-md);--card-shadow-hover: var(--shadow-lg);--input-background: var(--color-surface-secondary);--input-border: var(--color-border);--input-border-focus: var(--color-border-focus);--input-border-radius: var(--control-border-radius);--input-padding: var(--spacing-3);--input-color: var(--color-text-primary);--modal-backdrop: rgba(0, 0, 0, .7);--modal-background: var(--color-surface);--modal-border-radius: var(--border-radius-2xl);--modal-shadow: var(--shadow-2xl);--container-max-width: 1400px;--container-padding: var(--spacing-8);--grid-gap: var(--spacing-6);--grid-min-column-width: 300px;--flex-gap: var(--spacing-4)}@media(max-width:767px){:root{--container-padding: var(--spacing-4);--grid-min-column-width: 280px}}@media(min-width:768px){:root{--container-padding: var(--spacing-12)}}button,.icon-button,button:focus,.icon-button:focus,button:focus-visible,.icon-button:focus-visible,button:active,.icon-button:active,button:hover,.icon-button:hover{box-shadow:none!important;outline:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;text-shadow:none!important;filter:none!important}button,.icon-button{-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important}.secure-image{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;pointer-events:none}.secure-image{pointer-events:auto!important}.secure-image-loading{display:flex;align-items:center;justify-content:center;background:#f0f0f0;min-height:100px}.secure-image-loading .spinner{width:40px;height:40px;border:4px solid #e0e0e0;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.secure-image-error{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8f8f8;border:1px solid #e0e0e0;border-radius:4px;padding:20px;min-height:100px;color:#999}.secure-image-error span{font-size:48px;margin-bottom:10px}.secure-image-error p{margin:0;font-size:14px}.secure-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:-1}.secure-image[data-protected=true]{position:relative}.secure-image-container{user-select:none;-webkit-user-select:none}@media print{.secure-image{display:none!important}.secure-image:after{content:"[Image protected from printing]";display:block;padding:20px;background:#f0f0f0;text-align:center;color:#999}}@media(hover:none)and (pointer:coarse){.secure-image{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}}.secure-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.secure-image-wrapper{position:relative;overflow:hidden}.secure-image-wrapper:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background:transparent}.smart-image{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.star-rating-container{display:flex;align-items:center;gap:var(--spacing-1)}.star-rating-button{background:none!important;border:none!important;cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-muted);padding:0!important;margin:0!important;width:1.2em;height:1.2em;transition:color var(--transition-duration-base);display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0;box-shadow:none!important;outline:none}.star-rating-button:hover,.star-rating-button.active{color:var(--color-accent)}.star-rating-button.disabled{cursor:default}.star-rating-button.disabled:hover{color:var(--color-text-muted)}.star-rating-text{margin-left:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.star-rating-container.small .star-rating-button{font-size:var(--font-size-base)}.star-rating-container.large .star-rating-button{font-size:var(--font-size-xl)}.star-rating-display{pointer-events:none}.star-rating-display-star{position:relative;display:inline-block;width:1.2em;height:1.2em;line-height:0;vertical-align:middle;overflow:hidden;flex-shrink:0}.star-rating-display-star>span:first-child{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0!important;padding:0;display:flex!important;align-items:center;justify-content:center}.star-rating-display-star>span:first-child>span{margin:0!important;width:100%;height:100%;display:flex!important;align-items:center;justify-content:center}.star-rating-star-filled-overlay{position:absolute!important;top:0!important;left:0!important;right:0;bottom:0;width:100%;height:100%;margin:0!important;padding:0;display:flex!important;align-items:center;justify-content:center}.star-rating-star-filled-overlay>span{margin:0!important;width:100%;height:100%;display:flex!important;align-items:center;justify-content:center}.star-rating-container.small .star-rating-display-star{font-size:var(--font-size-base)}.star-rating-container.medium .star-rating-display-star{font-size:var(--font-size-lg)}.star-rating-container.large .star-rating-display-star{font-size:var(--font-size-xl)}.mention-autocomplete{position:absolute;background:var(--color-surface-primary, white);border:1px solid var(--color-border, #d0d0d0);border-radius:6px;box-shadow:var(--shadow-md, 0 4px 6px rgba(0, 0, 0, .1));max-width:280px;min-width:200px;max-height:200px;overflow-y:auto;overflow-x:hidden;z-index:1000;font-size:.875rem}.mention-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--color-border-light, #f0f0f0)}.mention-item:last-child{border-bottom:none}.mention-item:hover{background:var(--color-surface-hover, #f0f0f0)}.mention-item.selected{background:var(--color-surface-tertiary, #f0f0f0)}.mention-avatar{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,var(--color-primary, #4CAF50) 0%,var(--color-accent, #FF9800) 100%);color:var(--color-text-inverse, white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem;flex-shrink:0;overflow:hidden}.mention-avatar img{width:100%;height:100%;object-fit:cover}.mention-info{flex:1;min-width:0}.mention-username{font-weight:600;font-size:.875rem;color:var(--color-text-primary, #1a1a1a);margin-bottom:.15rem;line-height:1.3}.mention-name{font-size:.8rem;color:var(--color-text-muted, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--button-padding-y) var(--button-padding-x);border-radius:var(--button-border-radius);border:none;font-family:var(--font-family-primary);font-weight:var(--button-font-weight);font-size:var(--font-size-base);line-height:1;cursor:pointer;transition:var(--button-transition);text-decoration:none;white-space:nowrap;position:relative;overflow:hidden;min-height:var(--control-height);height:var(--control-height);isolation:isolate;z-index:0}.button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;transition:background var(--transition-duration-base) var(--transition-timing-in-out);pointer-events:none;border-radius:inherit;z-index:0}.button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.button:hover:not(:disabled):not(.button--loading){transform:none}.button:hover:not(:disabled):not(.button--loading):after{background:#0000002e}.button:active:not(:disabled):not(.button--loading){transform:none}.button:active:not(:disabled):not(.button--loading):after{background:#0000003d}.button--primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-text-primary);box-shadow:0 4px 15px #4caf504d}.button--primary:hover:not(:disabled):not(.button--loading){background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);box-shadow:0 6px 20px #4caf5066}.button--secondary{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-dark) 100%);color:var(--color-text-primary);box-shadow:0 4px 15px #2196f34d}.button--secondary:hover:not(:disabled):not(.button--loading){background:linear-gradient(135deg,var(--color-secondary-dark) 0%,var(--color-secondary) 100%);box-shadow:0 6px 20px #2196f366}.button--danger{background:linear-gradient(135deg,var(--color-error) 0%,#d32f2f 100%);color:var(--color-text-primary);box-shadow:0 4px 15px #f443364d}.button--danger:hover:not(:disabled):not(.button--loading){background:linear-gradient(135deg,#d32f2f 0%,var(--color-error) 100%);box-shadow:0 6px 20px #f4433666}.button--accent{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%);color:#000;box-shadow:0 4px 15px #ff98004d}.button--accent:hover:not(:disabled):not(.button--loading){background:linear-gradient(135deg,var(--color-accent-dark) 0%,var(--color-accent) 100%);box-shadow:0 6px 20px #ff980066}.button--icon{background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);padding:var(--spacing-3);min-width:auto;width:auto}.button--icon:hover:not(:disabled):not(.button--loading){background:var(--color-surface);border-color:var(--color-border-light)}.button--default{background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:none}.button--default:hover:not(:disabled):not(.button--loading){background:var(--color-button-hover, var(--color-surface-hover));color:var(--color-text-primary);border-color:var(--color-border-light);box-shadow:none;transform:none}.button--default:focus{outline:none;box-shadow:none}.button--default:focus-visible{outline:none;box-shadow:none}.button--default:active:not(:disabled):not(.button--loading){background:var(--color-surface-hover)}.button--default.button--active{background:var(--color-surface-hover);color:var(--color-text-primary);border-color:var(--color-border-light)}.button--small{padding:calc(var(--button-padding-y) * .75) calc(var(--button-padding-x) * .75);font-size:var(--font-size-sm);gap:var(--spacing-1)}.button--large{padding:calc(var(--button-padding-y) * 1.25) calc(var(--button-padding-x) * 1.25);font-size:var(--font-size-lg);gap:var(--spacing-3)}.button--disabled,.button:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.button--loading{cursor:wait;transform:none!important}.button--full-width{width:100%}.button__spinner{animation:spin 1s linear infinite;font-size:.8em;position:relative;z-index:1}.button__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}.button__icon--left{order:-1}.button__icon--right{order:1}.button__content{display:flex;align-items:center;justify-content:center;position:relative;z-index:1}@media(max-width:767px){.button{font-size:var(--font-size-sm);padding:calc(var(--button-padding-y) * .875) calc(var(--button-padding-x) * .875)}.button--large{font-size:var(--font-size-base)}}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--control-border-radius);background:transparent;cursor:pointer;transition:var(--transition-fast);font-size:inherit;padding:var(--spacing-2);line-height:1}.icon-button>*{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.icon-button:not(.icon-button--has-icon){color:var(--color-text-secondary)}.icon-button:hover:not(.icon-button--disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.icon-button:focus{outline:none!important;box-shadow:none!important}.icon-button:focus-visible{outline:none!important;box-shadow:none!important}.icon-button--primary{color:var(--color-primary)}.icon-button--primary:hover:not(.icon-button--disabled){background:#4caf501a}.icon-button--secondary{color:var(--color-secondary)}.icon-button--secondary:hover:not(.icon-button--disabled){background:#2196f31a}.icon-button--danger{color:var(--color-error)}.icon-button--danger:hover:not(.icon-button--disabled){background:#f443361a}.icon-button--sm{width:32px;height:32px;font-size:var(--font-size-sm)}.icon-button--md{width:40px;height:40px;font-size:var(--font-size-base)}.icon-button--lg{width:48px;height:48px;font-size:var(--font-size-lg)}.icon-button--slot{border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-surface-secondary);transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.icon-button--slot:hover:not(.icon-button--disabled){border-color:var(--color-border-dark)}.icon-button--slot.icon-button--sm{width:auto;min-width:36px;height:32px;padding:.4rem .65rem}.icon-button--slot.icon-button--md{width:auto;min-width:42px;height:38px;padding:.5rem .75rem}.icon-button--slot.icon-button--lg{width:auto;min-width:52px;height:44px;padding:.6rem .85rem}.icon-button--disabled{color:var(--color-text-disabled);cursor:not-allowed;opacity:.6}.icon-button__badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--color-primary);color:#fff;font-size:11px;font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--color-background);box-sizing:border-box}.icon-button__badge--primary{background:var(--color-primary)}.icon-button__badge--secondary{background:var(--color-secondary)}.icon-button__badge--danger{background:var(--color-error)}.icon-button__badge--warning{background:var(--color-warning)}.icon-button__badge--info{background:var(--color-info)}@media(max-width:767px){.icon-button--lg{width:44px;height:44px}.icon-button__badge{min-width:16px;height:16px;font-size:10px}}.post-card{position:relative;display:flex;gap:1rem;padding:1rem;background:var(--color-surface-primary, #ffffff);border:1px solid var(--color-border, #ddd);border-radius:8px;transition:box-shadow .2s}.post-card:hover{box-shadow:var(--shadow-md, 0 2px 8px rgba(0,0,0,.1))}.post-card-editing{border-color:var(--color-secondary, #007bff);box-shadow:0 0 0 2px #007bff33}.post-card-image-container{flex-shrink:0;width:120px;height:120px;border-radius:4px;overflow:hidden;background:var(--color-surface-tertiary, #f5f5f5);position:relative}.post-card-image-editable{cursor:pointer;border:2px dashed var(--color-secondary, #007bff)}.post-card-image-editable:hover{background:var(--color-hover, rgba(0, 0, 0, .05))}.post-card-image{width:100%;height:100%;object-fit:cover;display:block}.post-card-image-uploading{opacity:.5}.post-card-upload-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--color-text-muted, #aaa)}.post-card-upload-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:var(--color-text-inverse, white);font-size:.875rem;font-weight:500}.post-card-file-input{display:none}.post-card-content{flex:1;display:flex;flex-direction:column;gap:.75rem;min-width:0}.post-card-content-editing{gap:1rem}.post-card-link-container{display:flex;flex-direction:column;gap:.5rem}.post-card-link-editing{gap:.75rem}.post-card-recipe-link{font-weight:600;color:var(--color-secondary, #007bff);text-decoration:none;font-size:.9rem}.post-card-recipe-link:hover{text-decoration:underline}.post-card-recipe-link-editing{pointer-events:none;opacity:.7}.post-card-description{margin:0;color:var(--color-text-secondary, #333);font-size:.9rem;line-height:1.5;word-wrap:break-word}.post-card-textarea{width:100%;padding:.5rem;border:1px solid var(--color-border, #ddd);border-radius:4px;resize:vertical;min-height:80px;font-family:inherit;font-size:.9rem;box-sizing:border-box;max-width:100%;background:var(--input-background, #ffffff);color:var(--color-text-primary, #1a1a1a)}.post-card-textarea:focus{outline:none;border-color:var(--input-focus-border, #007bff);box-shadow:0 0 0 2px #007bff1a}.post-card-rating-editor{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.post-card-rating-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #555)}.post-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto}.post-card-rating{display:flex;align-items:center;gap:.25rem}.post-card-rating .star-rating-container{display:flex;align-items:center;gap:.15rem}.post-card-rating .star-rating-button{width:1.2em;height:1.2em;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:none}.post-card-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.post-card-like-btn{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border:1px solid var(--color-border, #ddd);background:var(--color-surface-primary, white);border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s;color:var(--color-text-primary, #1a1a1a)}.post-card-like-btn:hover{background:var(--color-hover, rgba(0, 0, 0, .05));border-color:var(--color-secondary, #007bff)}.post-card-like-btn-liked{background:#ffe6e6;border-color:#ff6b6b;color:#ff6b6b}.post-card-edit-btn{padding:.25rem .5rem;border:1px solid var(--color-secondary, #007bff);background:var(--color-surface-primary, white);color:var(--color-secondary, #007bff);border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.post-card-edit-btn:hover{background:var(--color-secondary, #007bff);color:var(--color-text-inverse, white)}.post-card-date{font-size:.8rem;color:var(--color-text-muted, #888);margin-left:auto}.post-card-edit-actions{display:flex;gap:.5rem}.post-card-save-btn,.post-card-cancel-btn{padding:.375rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.post-card-save-btn{background:var(--color-success, #28a745);color:var(--color-text-inverse, white)}.post-card-save-btn:hover:not(:disabled){background:#218838}.post-card-save-btn:disabled{opacity:.6;cursor:not-allowed}.post-card-save-btn-loading{background:#6c757d}.post-card-cancel-btn{background:#6c757d;color:var(--color-text-inverse, white)}.post-card-cancel-btn:hover:not(:disabled){background:#545b62}.post-card-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.post-card-privacy{position:absolute;top:.5rem;right:.5rem;font-size:1rem;opacity:.7}.post-card-mobile{flex-direction:column}.post-card-mobile .post-card-image-container{width:100%;height:200px}.post-card-mobile .post-card-bottom{flex-direction:column;align-items:flex-start;gap:.75rem}.post-card-mobile .post-card-actions{width:100%;justify-content:space-between}.post-card-mobile .post-card-date{margin-left:0}.post-card-compact{display:flex;gap:1rem;padding:1rem;background:var(--color-surface-primary, white);border:1px solid var(--color-border, #ddd);border-radius:8px;text-decoration:none;color:inherit;transition:all .2s}.post-card-compact:hover{box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.1));border-color:var(--color-secondary, #007bff)}.post-card-compact-image-container{flex-shrink:0;width:100px;height:100px;border-radius:4px;overflow:hidden;background:var(--color-surface-tertiary, #f5f5f5)}.post-card-compact-image{width:100%;height:100%;object-fit:cover;display:block}.post-card-compact-content{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0;position:relative}.post-card-compact-like-badge{position:absolute;top:0;right:0;display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--color-surface-primary, white);border:1px solid var(--color-border, #ddd);border-radius:12px;font-size:.75rem;color:#ff6b6b}.post-card-compact-header{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;font-size:.875rem;padding-right:3rem}.post-card-compact-username{font-weight:600;color:var(--color-secondary, #007bff)}.post-card-compact-recipe-title{font-weight:600;color:var(--color-text-secondary, #333)}.post-card-compact-rating{margin:.25rem 0}.post-card-compact-description{margin:0;color:var(--color-text-secondary, #555);font-size:.85rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.post-card-compact-date{font-size:.75rem;color:var(--color-text-muted, #888);margin-top:auto}@media(max-width:768px){.post-card-compact{flex-direction:column}.post-card-compact-image-container{width:100%;height:150px}.post-card-compact-header{padding-right:0}.post-card-compact-like-badge{position:static;align-self:flex-start}}#root{width:100%;max-width:1400px;margin:0 auto;padding:2rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-background);color:var(--color-text-primary);min-height:100vh;box-sizing:border-box}nav{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem;padding:1rem 0;border-bottom:1px solid var(--color-border)}nav a{color:var(--color-text-primary);text-decoration:none;font-weight:500;transition:color .3s ease}nav a:hover{color:var(--color-primary)}header{text-align:center;margin-bottom:3rem}header h1{color:var(--color-primary);font-size:clamp(2.5rem,5vw,4rem);font-weight:700;margin-bottom:1rem;letter-spacing:-.02em}header p{font-size:clamp(1rem,2vw,1.25rem);color:var(--color-text-secondary);max-width:600px;margin:0 auto;line-height:1.6}main{display:flex;flex-direction:column;gap:3rem}section h2{color:var(--color-primary);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:600;margin-bottom:1.5rem;text-align:center}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.recipe-card{background:var(--color-surface-primary);border:1px solid var(--color-border);border-radius:12px;padding:2rem;transition:transform .3s ease,box-shadow .3s ease;box-shadow:var(--shadow-md)}.recipe-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.recipe-card h3{color:var(--color-primary);margin-top:0;font-size:1.5rem;font-weight:600}.recipe-card p{color:var(--color-text-secondary);line-height:1.6}button{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 15px #4caf504d}button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}@media(max-width:767px){#root{padding:1rem}nav{flex-direction:column;gap:1rem}.recipe-grid{grid-template-columns:1fr}}@media(min-width:768px){#root{padding:3rem}nav{gap:3rem}.recipe-grid{grid-template-columns:repeat(auto-fit,minmax(450px,1fr))}.recipe-card{padding:2.5rem}}.file-button{transition:all .3s ease}.file-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #9c27b066}.green-button{transition:all .3s ease}.green-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.orange-button{transition:all .3s ease}.orange-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff6b3566}.blue-button{transition:all .3s ease}.blue-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2196f366}.red-button{transition:all .3s ease}.red-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f4433666}@media(max-width:768px){nav{justify-content:center!important;padding-bottom:0!important}nav>div:last-child{position:static!important;display:none!important}.mobile-user-info{display:flex!important}.featured-grid{grid-template-columns:1fr!important}main,section,article,div[style*=maxWidth]{padding-left:.25rem!important;padding-right:.25rem!important;margin:0!important}}.home-container{min-height:100vh;background:var(--color-background);padding:0}.home-hero{text-align:center;padding:4rem 2rem 3rem;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text-inverse, #fff)}.home-hero-title{font-size:3.5rem;font-weight:300;letter-spacing:2px;margin:0 0 1rem}.home-hero-subtitle{font-size:1.2rem;font-weight:300;max-width:600px;margin:0 auto;opacity:.95}@media(max-width:768px){.home-hero{padding:3rem .25rem 2rem!important}.home-main,.home-section{padding-left:.25rem!important;padding-right:.25rem!important;margin:0!important}.home-recipes-grid{grid-template-columns:1fr!important;gap:1rem!important}.home-recipe-card{margin-bottom:1rem}}.home-main{max-width:1400px;margin:0 auto;padding:4rem 2rem}.home-section-title{font-size:2rem;font-weight:300;letter-spacing:1px;text-align:center;margin-bottom:3rem;color:var(--color-text-primary)}.home-loading{text-align:center;padding:3rem;color:var(--color-text-muted);font-size:1.1rem}.home-recipes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-bottom:3rem}.home-recipe-card{position:relative;padding-bottom:100%;height:0;overflow:hidden;border-radius:8px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.1));text-decoration:none;display:block;transition:transform .3s ease,box-shadow .3s ease}.home-recipe-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg, 0 12px 24px rgba(0,0,0,.2))}.home-recipe-image-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.home-recipe-image{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .3s ease;display:block}.home-recipe-image.no-image{background:linear-gradient(135deg,#667eea,#764ba2)}.home-recipe-card:hover .home-recipe-image{transform:scale(1.05)}.home-recipe-top-badges{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:row;gap:.5rem;z-index:2}.home-recipe-like-badge,.home-recipe-save-badge{background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.4rem .65rem;border-radius:20px;display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500}.home-recipe-like-badge>span:not(.icon),.home-recipe-save-badge>span:not(.icon){color:#fff!important}.home-recipe-rating-badge{position:absolute;bottom:1rem;left:1rem;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.4rem .65rem;border-radius:20px;display:flex;align-items:center;gap:.25rem;font-size:.9rem;font-weight:500;z-index:2}.home-recipe-rating-badge .star-rating-container{display:flex;align-items:center;gap:.15rem}.home-recipe-rating-badge .star-rating-display-star{font-size:.85rem}.home-recipe-overlay{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(to top,#000000f2,#000000d9,#000000b3,#00000080,#0000004d,#0000);transform:translateY(100%);transition:transform .4s ease;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;color:var(--color-text-inverse, #fff);min-height:60%;pointer-events:none;box-sizing:border-box;overflow:hidden}.home-recipe-card:hover .home-recipe-overlay{transform:translateY(0)}.home-recipe-title{font-size:1.5rem;font-weight:400;margin:0 0 .5rem;letter-spacing:.5px;color:#fff;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.home-recipe-description{font-size:.95rem;line-height:1.5;margin:0 0 1rem;opacity:.9;color:#fff;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.home-recipe-details{font-size:.85rem;line-height:1.6;opacity:.85;font-family:monospace;color:#fff;text-align:right;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.home-recipe-details>div{word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.home-recipe-author{margin-top:.5rem;opacity:.7;color:#fff}.home-recipe-placeholder{position:relative;padding-bottom:100%;height:0;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px dashed rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}.home-recipe-placeholder-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-muted);font-size:1rem;text-align:center}.home-posts-section{margin-top:5rem}.home-posts-empty{text-align:center;padding:3rem;color:var(--color-text-muted);font-size:1.1rem}.home-posts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.home-post-card{display:flex;flex-direction:row;background:var(--color-surface-primary, #ffffff);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--color-text-primary);transition:transform .3s ease,box-shadow .3s ease;box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.2));min-height:150px}.home-post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg, 0 8px 20px rgba(0,0,0,.3))}.home-post-image-container{width:150px;min-width:150px;height:150px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-surface-tertiary, #f5f5f5)}.home-post-image{width:100%;height:100%;object-fit:cover;object-position:center}.home-post-content{padding:1.5rem;flex:1;display:flex;flex-direction:column;position:relative}.home-post-like-badge{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--color-text-primary);font-weight:500}.home-post-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9rem;color:var(--color-text-muted)}.home-post-username{color:var(--color-primary, #4CAF50);font-weight:600}.home-post-recipe-title{color:var(--color-secondary, #2196F3);font-weight:600}.home-post-description{margin:0 0 1rem;font-size:.95rem;line-height:1.5;color:var(--color-text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.home-post-date{font-size:.85rem;color:var(--color-text-muted);margin-top:auto}:root{--recipe-card-slot-background: rgba(0, 0, 0, .75);--recipe-card-slot-background-hover: rgba(0, 0, 0, .95);--recipe-card-slot-text-primary: #ffffff;--recipe-card-slot-text-secondary: rgba(255, 255, 255, .75);--recipe-card-slot-border: transparent}body.theme-light{--recipe-card-slot-background: var(--color-button-background, #ebe8dc);--recipe-card-slot-background-hover: var(--color-button-hover, #ddd9ca);--recipe-card-slot-text-primary: var(--color-text-primary, #1a1a1a);--recipe-card-slot-text-secondary: var(--color-text-secondary, #333333);--recipe-card-slot-border: rgba(0, 0, 0, .08)}body.theme-dark{--recipe-card-slot-background: rgba(0, 0, 0, .75);--recipe-card-slot-background-hover: rgba(0, 0, 0, .95);--recipe-card-slot-text-primary: #ffffff;--recipe-card-slot-text-secondary: rgba(255, 255, 255, .75);--recipe-card-slot-border: transparent}.recipe-card{display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--border-radius-xl);overflow:hidden;text-decoration:none;color:var(--color-text-primary);transition:transform var(--transition-duration-base) var(--transition-timing-in-out);cursor:pointer;position:relative}.recipe-card:hover{transform:translateY(-4px)}.recipe-card-grid{display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--border-radius-xl);overflow:hidden;text-decoration:none;color:var(--color-text-primary);transition:transform var(--transition-duration-base) var(--transition-timing-in-out);cursor:pointer;position:relative}.recipe-card-grid:hover{transform:translateY(-4px)}.recipe-card-detailed-square{position:relative;display:block;padding-bottom:100%;height:0;overflow:hidden;border-radius:12px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.1));text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.recipe-card-detailed-square:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg, 0 12px 24px rgba(0,0,0,.2))}.recipe-card-square-image-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:12px}.recipe-card-image-scroll-container{display:flex;width:100%;height:100%;overflow-x:scroll;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}.recipe-card-image-scroll-container::-webkit-scrollbar{display:none}.recipe-card-image-slide{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}.recipe-card-square-image{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .3s ease;display:block}.recipe-card-detailed-square:hover .recipe-card-square-image{transform:scale(1.05)}.recipe-card-square-image.no-image{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff}.recipe-card-square-title{position:absolute;top:1rem;left:1rem;right:8rem;z-index:2}.recipe-card-square-title h3{margin:0;font-size:1.1rem;font-weight:600;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.recipe-card-square-top-badges{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:row;gap:.5rem;z-index:2}.recipe-card-square-badge{background:var(--recipe-card-slot-background);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.4rem .65rem;border-radius:20px;display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--recipe-card-slot-text-primary);border:1px solid var(--recipe-card-slot-border)}.recipe-card-square-badge span{color:var(--recipe-card-slot-text-primary)!important}body.theme-light .recipe-card-square-badge{-webkit-backdrop-filter:none;backdrop-filter:none}.recipe-card-square-badge svg,.recipe-card-square-rating-badge svg,.recipe-card-square-privacy-icon svg,.recipe-card-badge svg,.recipe-card-like-count svg,.recipe-card-save-count svg{color:inherit}body.theme-light .recipe-card-square-rating-badge,body.theme-light .recipe-card-square-privacy-icon,body.theme-light .recipe-card-square-stats-box{-webkit-backdrop-filter:none;backdrop-filter:none}.recipe-card-square-rating-badge{position:absolute;bottom:1rem;left:1rem;background:var(--recipe-card-slot-background);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.4rem .65rem;border-radius:20px;display:flex;align-items:center;gap:.25rem;z-index:2;color:var(--recipe-card-slot-text-primary);border:1px solid var(--recipe-card-slot-border)}.recipe-card-square-rating-badge .star-rating-container{display:flex;align-items:center;gap:.15rem}.recipe-card-square-rating-badge .star-rating-display-star{font-size:.85rem}.recipe-card-square-privacy-icon{position:absolute;bottom:11.8rem;right:1rem;background:var(--recipe-card-slot-background);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.4rem .65rem;border-radius:20px;display:flex;align-items:center;justify-content:center;gap:.4rem;z-index:3;font-size:1rem;color:var(--recipe-card-slot-text-primary);border:1px solid var(--recipe-card-slot-border)}.recipe-card-square-stats-box{position:absolute;bottom:1rem;right:1rem;background:var(--recipe-card-slot-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.5rem .6rem;border-radius:6px;display:flex;flex-direction:column;gap:.25rem;z-index:2;min-width:120px;max-width:120px;cursor:pointer;transition:background .2s ease;border:1px solid var(--recipe-card-slot-border)}.recipe-card-square-stats-box:hover{background:var(--recipe-card-slot-background-hover)}.recipe-card-square-stats-content{display:flex;flex-direction:column;gap:.25rem}.recipe-card-square-stat{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.7rem}.recipe-card-square-stat-label{color:var(--recipe-card-slot-text-secondary);font-weight:500}.recipe-card-square-stat-value{color:var(--recipe-card-slot-text-primary);font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70px}.recipe-card-square-author{margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--recipe-card-slot-border);color:var(--recipe-card-slot-text-secondary);font-size:.65rem;font-style:italic;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card-detailed{text-decoration:none;color:inherit;border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-xl);padding:var(--spacing-4);background:var(--color-surface-secondary);cursor:pointer;transition:transform var(--transition-duration-base) var(--transition-timing-in-out),box-shadow var(--transition-duration-base) var(--transition-timing-in-out);height:450px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}.recipe-card-detailed:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.recipe-card-list{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-6);background:var(--color-surface);border-radius:var(--border-radius-base);text-decoration:none;color:var(--color-text-primary);transition:background var(--transition-duration-base) var(--transition-timing-in-out);cursor:pointer;position:relative}.recipe-card-list:hover{background:var(--color-surface-hover)}.recipe-card-compact{text-decoration:none;color:inherit;display:block;border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-xl);padding:var(--spacing-3) var(--spacing-6);background:var(--color-surface-secondary);cursor:pointer;transition:transform var(--transition-duration-base) var(--transition-timing-in-out),box-shadow var(--transition-duration-base) var(--transition-timing-in-out);width:100%;box-sizing:border-box}.recipe-card-compact:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.recipe-card-image-container{width:100%;height:200px;position:relative}.recipe-card-carousel-dots{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.4rem;z-index:10;padding:.25rem .5rem;background:#00000080;border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recipe-card-carousel-dot{width:.5rem;height:.5rem;border-radius:50%;background:#ffffff80;border:none;cursor:pointer;padding:0;transition:all .2s ease;flex-shrink:0}.recipe-card-carousel-dot:hover{background:#fffc;transform:scale(1.2)}.recipe-card-carousel-dot.active{background:#fff;width:.6rem;height:.6rem}.recipe-card-image{width:100%;height:200px;object-fit:cover;border-radius:var(--border-radius-base)}.recipe-card-rating-container{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);font-size:var(--font-size-sm)}.recipe-card-image-mini{width:60px;height:60px;object-fit:cover;border-radius:var(--border-radius-base);flex-shrink:0}.recipe-card-image-placeholder{width:100%;height:100%;background:var(--color-surface-tertiary);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--color-text-muted)}.recipe-card-image-placeholder-mini{width:60px;height:60px;background:var(--color-surface-tertiary);border-radius:var(--border-radius-base);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--color-text-muted)}.recipe-card-badges{position:absolute;top:var(--spacing-2);right:var(--spacing-2);display:flex;align-items:center;gap:var(--spacing-2);z-index:1}.recipe-card-badge{font-size:1.1rem;opacity:.9;color:var(--recipe-card-slot-text-primary);background:var(--recipe-card-slot-background);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);display:flex;align-items:center;border:1px solid var(--recipe-card-slot-border)}.recipe-card-like-count,.recipe-card-save-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--recipe-card-slot-text-primary);background:var(--recipe-card-slot-background);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);display:flex;align-items:center;gap:var(--spacing-1);pointer-events:none;border:1px solid var(--recipe-card-slot-border)}.recipe-card-like-count-inline,.recipe-card-save-count-inline{font-size:var(--font-size-sm);color:var(--recipe-card-slot-text-primary);display:flex;align-items:center;gap:var(--spacing-1);pointer-events:none}.recipe-card-rating-row{display:flex;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-2)}.recipe-card-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-3);min-height:0;overflow:hidden}.recipe-card-info-compact{flex:1;min-width:0;padding-right:60px}.recipe-card-list-metadata-compact{display:flex;align-items:center;gap:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-1);flex-wrap:wrap}.recipe-card-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);word-break:break-word;line-height:var(--line-height-tight)}.recipe-card-title-compact{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);min-width:200px;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px;color:var(--color-text-primary)}.recipe-card-title-mobile{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-primary)}.recipe-card-rating{display:flex;align-items:center;gap:.25rem;color:var(--color-accent);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.recipe-card-rating .star-rating-container{display:flex;align-items:center;gap:.15rem}.recipe-card-rating .star-rating-button{width:1.2em;height:1.2em;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center}.recipe-card-rating-stars{display:flex;align-items:center;gap:var(--spacing-1);margin-bottom:var(--spacing-2);font-size:var(--font-size-sm)}.recipe-card-rating-value{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.recipe-card-rating-container .star-rating-button{width:1.2em;height:1.2em;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center}.recipe-card-list-horizontal{display:flex;gap:.5rem;padding:.3rem .5rem;background:var(--color-surface);border-radius:6px;border:1px solid var(--color-border);text-decoration:none;color:var(--color-text-primary);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;align-items:center}.recipe-card-list-horizontal:hover{transform:translate(4px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.1))}.recipe-card-list-image-container{width:60px;height:60px;min-width:60px;border-radius:4px;overflow:hidden;flex-shrink:0}.recipe-card-list-image{width:100%;height:100%;object-fit:cover;display:block}.recipe-card-list-image-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff}.recipe-card-list-content{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0;justify-content:center}.recipe-card-list-title{margin:0;font-size:.75rem;font-weight:600;color:var(--color-text-primary);line-height:1.2;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.recipe-card-list-metadata{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.65rem;color:var(--color-text-secondary);line-height:1.2;text-align:left;width:100%}.recipe-card-list-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.recipe-card-list-author{font-style:italic;color:var(--color-text-muted);font-size:.65rem;flex-shrink:0;white-space:nowrap}.recipe-card-list-badges{display:flex;flex-direction:row;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.recipe-card-list-badge{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;padding:.15rem .3rem;background:var(--color-surface-secondary);border-radius:8px;font-size:.6rem;font-weight:500;line-height:1.2;height:1.3rem;min-height:1.3rem}.recipe-card-list-metadata span{white-space:nowrap;display:inline-block}.recipe-card-list-metadata strong{color:var(--color-text-primary);font-weight:600}.recipe-card-author{color:var(--color-text-disabled);font-size:var(--font-size-xs);margin:0;font-style:italic}.recipe-card-author-link{color:var(--color-primary);text-decoration:none}.recipe-card-author-link:hover{text-decoration:underline}.recipe-card-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;flex-grow:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-clamp:3;word-break:break-word;line-height:var(--line-height-relaxed)}.recipe-card-metadata{font-size:var(--font-size-xs);color:var(--color-text-muted);border-top:var(--border-width-thin) solid var(--color-border);padding-top:var(--spacing-2);margin-top:auto;line-height:var(--line-height-normal)}.recipe-card-metadata-item{margin-bottom:var(--spacing-1)}.recipe-card-metadata-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.recipe-card-tags{display:flex;gap:var(--spacing-2);flex-wrap:wrap;margin-top:var(--spacing-3)}.recipe-card-tag{background:var(--color-primary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);font-size:var(--font-size-xs);color:var(--color-text-primary)}.recipe-card-category-tags{margin-top:var(--spacing-3);display:flex;gap:var(--spacing-2);font-size:var(--font-size-xs);color:var(--color-text-disabled);flex-wrap:wrap}.recipe-card-category-tag{background:var(--color-surface-tertiary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);color:var(--color-text-secondary)}.recipe-card-list-desktop{display:flex;align-items:center;gap:var(--spacing-4)}.recipe-card-list-mobile{display:flex;gap:var(--spacing-3)}.recipe-card-list-mobile-content{display:flex;flex-direction:column;gap:var(--spacing-2);flex:1;min-width:0}.recipe-card-list-mobile-metadata{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap}@media(min-width:768px){.recipe-card-list-horizontal{padding:.3rem .5rem;gap:.5rem}.recipe-card-list-badges{gap:.25rem}}@media(max-width:767px){.recipe-card-image-mini,.recipe-card-image-placeholder-mini{width:50px;height:50px}.recipe-card-list-content,.recipe-card-info-compact{padding-right:0}.recipe-card-badges{top:var(--spacing-1);right:var(--spacing-1)}.recipe-card-badge{font-size:1rem;padding:var(--spacing-1)}.recipe-card-like-count,.recipe-card-save-count{font-size:var(--font-size-xs);padding:var(--spacing-1)}.recipe-card-list-horizontal{padding:.3rem .5rem;gap:.5rem}.recipe-card-list-badges{gap:.25rem}}.filter-bar-container{width:100%;margin-bottom:1.5rem;max-width:100%;box-sizing:border-box}@media(max-width:768px){.filter-bar-sticky-mobile .filter-bar-container{background:var(--color-background)!important;padding:0!important}}.filter-bar-controls,.filter-bar-controls-mobile{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.filter-bar-toggle-btn,.filter-bar-favorites-btn,.filter-bar-view-btn{padding:.4rem .65rem;border:2px solid transparent!important;background:var(--color-button-background)!important;color:var(--color-text-primary)!important;cursor:pointer;border-radius:20px;font-size:1.2rem;transition:none!important;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;vertical-align:middle;line-height:1;box-shadow:none!important;outline:none!important;will-change:auto;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0)}.filter-bar-toggle-btn>*,.filter-bar-favorites-btn>*,.filter-bar-view-btn>*{display:flex;align-items:center;justify-content:center}.filter-bar-toggle-btn.mobile,.filter-bar-favorites-btn.mobile,.filter-bar-view-btn.mobile{padding:.4rem .65rem;font-size:1.1rem}.filter-bar-toggle-btn:hover,.filter-bar-favorites-btn:hover,.filter-bar-view-btn:hover{background:var(--color-button-hover)!important;box-shadow:none!important;border:2px solid transparent!important}.filter-bar-toggle-btn.active,.filter-bar-favorites-btn.active,.filter-bar-view-btn.active{background:var(--color-primary, #00bfa5);color:var(--color-text-inverse, #ffffff);box-shadow:none;border:2px solid var(--color-text-primary)}.filter-bar-toggle-btn:focus,.filter-bar-favorites-btn:focus,.filter-bar-view-btn:focus,.filter-bar-toggle-btn:focus-visible,.filter-bar-favorites-btn:focus-visible,.filter-bar-view-btn:focus-visible{outline:none;box-shadow:none}.filter-bar-search,.filter-bar-search-mobile{width:100%;margin-bottom:1rem;max-width:100%;box-sizing:border-box}.filter-bar-search-input{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border, #444);border-radius:4px;background:var(--input-background, var(--color-button-background, #ebe8dc))!important;color:var(--input-color, var(--color-text-primary, #e0e0e0));font-size:1rem;box-sizing:border-box;max-width:100%}.filter-bar-search-input::placeholder{color:var(--color-text-muted, #999)}.filter-bar-search-input:focus{outline:none;border-color:var(--color-primary, #00bfa5)}.filter-bar-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:1.5rem}.filter-bar-filters-mobile{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.filter-bar-filter,.filter-bar-filter-mobile{padding:.5rem 2rem;border:none!important;border-radius:20px;background:var(--color-button-background)!important;color:var(--color-text-primary)!important;font-size:.9rem;cursor:pointer;transition:none!important;text-align:center;text-align-last:center;width:100%;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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 .5rem center;background-size:.875rem;will-change:auto;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0)}.filter-bar-filter-mobile{font-size:.85rem;padding:.4rem}.filter-bar-filter:hover,.filter-bar-filter-mobile:hover{background:var(--color-button-hover)!important}.filter-bar-filter:focus,.filter-bar-filter-mobile:focus{outline:none;border-color:transparent;box-shadow:none}.filter-bar-filter:focus-visible,.filter-bar-filter-mobile:focus-visible{outline:none!important;box-shadow:none!important;border-color:transparent!important}.filter-bar-filter:active,.filter-bar-filter-mobile:active{border-color:transparent!important;outline:none!important;box-shadow:none!important}.filter-bar-filter option,.filter-bar-filter-mobile option{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #e0e0e0)!important;padding:.75rem .5rem!important;font-size:.9rem!important;border:none!important;border-radius:20px!important;margin:.125rem .25rem!important;width:calc(100% - .5rem)!important;box-sizing:border-box!important;display:block!important;text-align:center!important}.filter-bar-filter::-webkit-listbox,.filter-bar-filter-mobile::-webkit-listbox{border:none!important;border-radius:20px!important;background:#ebe8dc!important;box-shadow:0 4px 12px #0000001a!important;padding:.5rem!important}.filter-bar-filter option:hover,.filter-bar-filter-mobile option:hover{background:var(--color-button-hover, #ddd9ca)!important}.filter-bar-filter,.filter-bar-filter-mobile{position:relative;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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 .5rem center;background-size:.875rem}.filter-bar-filter-sort{grid-column:span 2}@media(max-width:768px){.filter-bar-controls,.filter-bar-controls-mobile{gap:.4rem;width:100%;padding:0;justify-content:stretch}.filter-bar-toggle-btn,.filter-bar-favorites-btn,.filter-bar-view-btn,.filter-bar-toggle-btn.mobile,.filter-bar-favorites-btn.mobile,.filter-bar-view-btn.mobile{flex:1;min-width:0}.filter-bar-toggle-btn.active,.filter-bar-favorites-btn.active,.filter-bar-view-btn.active{border:none}.filter-bar-filters-mobile{gap:.4rem;width:100%}.filter-bar-filter-mobile{width:100%}}.recipes-list-container{max-width:1400px;margin:0 auto;padding:var(--container-padding);min-height:100vh;background:var(--color-background);box-sizing:border-box}@media(max-width:768px){.recipes-list-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);margin:0}.filter-bar-sticky-mobile{position:sticky;top:calc(var(--navbar-height-mobile) + var(--spacing-2));z-index:1100;background:transparent;padding:0;margin:0}.filter-bar-sticky-mobile .filter-bar-container{margin-bottom:.5rem;margin-top:0}.filter-bar-sticky-mobile .filter-bar-controls,.filter-bar-sticky-mobile .filter-bar-controls-mobile{margin-bottom:.5rem;margin-top:0;padding-top:.5rem;padding-bottom:.5rem;padding-left:0;padding-right:0}.filter-bar-sticky-mobile .filter-bar-search,.filter-bar-sticky-mobile .filter-bar-search-mobile,.filter-bar-sticky-mobile .filter-bar-filters,.filter-bar-sticky-mobile .filter-bar-filters-mobile{margin-bottom:.5rem;margin-top:0;padding-left:0;padding-right:0}}.recipes-list-title{text-align:center;margin-bottom:var(--spacing-4)}.recipes-list-title-mobile{margin-bottom:var(--spacing-3);text-align:center}.recipes-list-controls{display:flex;gap:var(--spacing-2);flex-wrap:wrap;justify-content:center;margin-bottom:var(--spacing-8)}.recipes-list-controls-mobile{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3);margin-bottom:var(--spacing-3);justify-content:center}.recipes-list-button{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;height:38px;transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipes-list-button:hover{background:var(--color-surface-hover)}.recipes-list-button.active{background:var(--color-secondary)}.recipes-list-button-mobile{padding:var(--spacing-3) var(--spacing-3);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;height:38px;font-size:var(--font-size-sm);transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipes-list-button-mobile:hover{background:var(--color-surface-hover)}.recipes-list-button-mobile.active{background:var(--color-secondary)}.recipes-list-favorites-button,.recipes-list-favorites-button.active{background:var(--color-warning)}.recipes-list-search{padding:var(--spacing-3);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);width:100%;box-sizing:border-box;margin-bottom:var(--spacing-8)}.recipes-list-search-mobile{margin-bottom:var(--spacing-3)}.recipes-list-filters{margin-bottom:var(--spacing-8);display:flex;flex-wrap:wrap;gap:var(--spacing-4);align-items:center;justify-content:center}.recipes-list-filters-mobile{margin-bottom:var(--spacing-8);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3);align-items:center;justify-content:center}.recipes-list-filter{padding:var(--spacing-3);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);width:auto}.recipes-list-filter-mobile{width:100%}.recipes-list-filter-sort{grid-column:span 2}.recipes-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-8)}.recipes-list-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.recipes-list-loading{text-align:center;padding:var(--spacing-12);color:var(--color-text-muted);font-size:var(--font-size-lg)}.recipes-list-empty{text-align:center;padding:var(--spacing-12);color:var(--color-text-muted)}.recipes-list-empty-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-4);color:var(--color-text-secondary)}.recipes-list-empty-text{font-size:var(--font-size-base);margin-bottom:var(--spacing-6);color:var(--color-text-muted)}.recipes-list-empty-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium)}.recipes-list-empty-link:hover{text-decoration:underline}.recipes-list-load-more{display:flex;justify-content:center;margin-top:var(--spacing-8);margin-bottom:var(--spacing-4)}.recipes-list-loading-more{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-base);margin:0;padding:var(--spacing-4)}.recipes-list-end-message{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-base)}.recipes-list-end-message p{margin:0}.ingredient-input{margin:0;flex:1;min-width:0}.ingredient-input-row{display:grid;grid-template-columns:110px 160px 1fr 44px 44px;gap:12px;align-items:center;width:100%}.ingredient-input-row:not(:has(.ingredient-nutrition-btn)){grid-template-columns:110px 160px 1fr 44px}.ingredient-quantity{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--control-border-radius);font-size:1rem;background:var(--color-input-bg, var(--color-surface-secondary));color:var(--color-text);transition:border-color .2s ease;box-sizing:border-box}.ingredient-quantity:focus{outline:none;border-color:var(--color-primary)}.ingredient-quantity::placeholder{color:var(--color-text-muted)}.ingredient-unit{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--control-border-radius);font-size:1rem;background:var(--color-input-bg, var(--color-surface-secondary));color:var(--color-text);cursor:pointer;transition:border-color .2s ease;box-sizing:border-box}.ingredient-unit:focus{outline:none;border-color:var(--color-primary)}.ingredient-unit optgroup{font-weight:600;color:var(--color-text-secondary);padding:4px 0;background:var(--color-surface)}.ingredient-unit option{padding:8px;font-weight:400;color:var(--color-text-primary);background:var(--color-surface)}.ingredient-unit option:hover{background:var(--color-surface-hover)}.ingredient-name{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--control-border-radius);font-size:1rem;background:var(--color-input-bg, var(--color-surface-secondary));color:var(--color-text);transition:border-color .2s ease;box-sizing:border-box}.ingredient-name:focus{outline:none;border-color:var(--color-primary)}.ingredient-name::placeholder{color:var(--color-text-muted)}.icon-button.ingredient-nutrition-btn{width:44px;height:44px;min-width:44px;border-radius:var(--control-border-radius);background:var(--color-button-background, var(--color-surface-secondary));border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.icon-button.ingredient-nutrition-btn:hover:not(.icon-button--disabled){background:var(--color-button-hover, var(--color-surface-hover));border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-1px)}.icon-button.ingredient-nutrition-btn.has-data{background:#4caf5026;border-color:var(--color-success);color:var(--color-success)}.icon-button.ingredient-nutrition-btn.has-data:hover{background:var(--color-success);color:var(--color-text-inverse, #fff)}.icon-button.ingredient-remove{width:44px;height:44px;min-width:44px;border-radius:var(--control-border-radius);background:var(--color-error);color:var(--color-text-inverse, #fff);border:none;transition:transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;justify-content:center}.icon-button.ingredient-remove:hover:not(.icon-button--disabled){background:var(--color-error-hover);transform:translateY(-1px)}.icon-button.ingredient-remove.icon-button--disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.ingredient-input-row{grid-template-columns:90px 130px 1fr 40px 40px;gap:10px}.ingredient-input-row:not(:has(.ingredient-nutrition-btn)){grid-template-columns:90px 130px 1fr 40px}.ingredient-quantity,.ingredient-unit,.ingredient-name{padding:8px 10px;font-size:.95rem}.ingredient-nutrition-btn,.ingredient-remove{width:40px;height:40px;min-width:40px}}@media(max-width:480px){.ingredient-input-row{display:grid;grid-template-columns:1fr 40px 40px;grid-template-rows:auto auto auto;gap:8px}.ingredient-quantity{grid-column:1;grid-row:1}.ingredient-nutrition-btn{grid-column:2;grid-row:1;width:40px;height:40px;min-width:40px}.ingredient-remove{grid-column:3;grid-row:1;width:40px;height:40px;min-width:40px}.ingredient-unit{grid-column:1 / -1;grid-row:2;width:100%}.ingredient-name{grid-column:1 / -1;grid-row:3;width:100%}.ingredient-input-row:not(:has(.ingredient-nutrition-btn)){grid-template-columns:1fr 40px}.ingredient-input-row:not(:has(.ingredient-nutrition-btn)) .ingredient-remove{grid-column:2}}.nutrition-search-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4)}.nutrition-search-modal{background:var(--color-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column}.nutrition-search-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:var(--border-width-thin) solid var(--color-border)}.nutrition-search-modal-header h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.nutrition-search-modal-close{background:none;border:none;cursor:pointer;padding:var(--spacing-2);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;transition:color var(--transition-duration-base) var(--transition-timing-in-out)}.nutrition-search-modal-close:hover{color:var(--color-text-primary)}.nutrition-search-modal-body{padding:var(--spacing-4);overflow-y:auto;flex:1}.nutrition-search-modal-description{margin:0 0 var(--spacing-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.nutrition-search-input-group{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.nutrition-search-input{flex:1;padding:var(--spacing-3);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-surface);transition:border-color var(--transition-duration-base) var(--transition-timing-in-out)}.nutrition-search-input:focus{outline:none;border-color:var(--color-primary)}.nutrition-search-error{padding:var(--spacing-3);background:var(--color-error-bg);border:var(--border-width-thin) solid var(--color-error);border-radius:var(--border-radius-base);color:var(--color-error);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.nutrition-search-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-6);color:var(--color-text-secondary)}.nutrition-search-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-3)}.nutrition-search-loading p{margin:0;font-size:var(--font-size-sm)}.nutrition-search-results{margin-bottom:var(--spacing-4)}.nutrition-search-results-title{margin:0 0 var(--spacing-3);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.nutrition-search-results-list{display:flex;flex-direction:column;gap:var(--spacing-2);max-height:400px;overflow-y:auto;padding:var(--spacing-1)}.nutrition-search-result-item{display:flex;gap:var(--spacing-3);padding:var(--spacing-3);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all var(--transition-duration-base) var(--transition-timing-in-out);background:var(--color-surface)}.nutrition-search-result-item:hover{background:var(--color-surface-hover);border-color:var(--color-primary-light)}.nutrition-search-result-item.selected{background:var(--color-primary-light);border-color:var(--color-primary)}.nutrition-search-result-item input[type=radio]{margin-top:2px;cursor:pointer}.nutrition-search-result-content{flex:1}.nutrition-search-result-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-1);display:flex;align-items:center;gap:var(--spacing-2)}.nutrition-search-result-badge{display:inline-block;padding:2px 8px;background:var(--color-primary);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--border-radius-sm)}.nutrition-search-result-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--spacing-2)}.nutrition-search-result-source{font-weight:var(--font-weight-medium)}.nutrition-search-result-brand{color:var(--color-text-tertiary)}.nutrition-search-result-preview{display:flex;gap:var(--spacing-3);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono)}.nutrition-search-result-preview span{padding:2px 6px;background:var(--color-surface-secondary);border-radius:var(--border-radius-sm)}.nutrition-search-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-top:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-secondary)}.nutrition-search-modal-footer-actions{display:flex;gap:var(--spacing-2)}@media(max-width:768px){.nutrition-search-modal{max-width:100%;max-height:100vh;border-radius:0}.nutrition-search-modal-footer{flex-direction:column;gap:var(--spacing-2)}.nutrition-search-modal-footer-actions{width:100%}.nutrition-search-modal-footer-actions button{flex:1}}.recipe-form-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);background:var(--color-background)}@media(max-width:767px){.recipe-form-container{padding:var(--spacing-1)}}.recipe-form{display:flex;flex-direction:column;gap:1rem}.recipe-form-section{margin-bottom:var(--spacing-8);padding:var(--spacing-6);background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.recipe-form-section-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-4);color:var(--color-text)}.recipe-form-group{margin-bottom:var(--spacing-6)}.recipe-form-label{display:block;margin-bottom:var(--spacing-2);font-weight:600;color:var(--color-text);font-size:var(--font-size-base)}.recipe-form-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);box-sizing:border-box;transition:border-color .2s}.recipe-form-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);min-height:120px;resize:vertical;box-sizing:border-box;font-family:inherit;transition:border-color .2s}.recipe-form-textarea:focus{outline:none;border-color:var(--color-primary)}.recipe-form-select{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);box-sizing:border-box;transition:border-color .2s}.recipe-form-select:focus{outline:none;border-color:var(--color-primary)}.recipe-form-checkbox-group{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.recipe-form-checkbox{flex:1 1 0;max-width:33.33%;min-width:0;height:32px;background:var(--color-surface-secondary, #666);color:var(--color-text-primary, white);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:var(--control-border-radius);cursor:pointer;font-size:14px;font-weight:700;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .1));pointer-events:auto}.recipe-form-image-preview{max-width:300px;max-height:200px;border-radius:var(--control-border-radius)}.recipe-form-image-error{display:none;color:var(--color-error, #f44336);font-size:.9rem;margin-top:.5rem}.recipe-form-image-upload{display:flex;flex-direction:column;gap:var(--spacing-2)}.recipe-form-image-upload-btn{padding:var(--spacing-3) var(--spacing-6);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-primary);color:var(--color-text-inverse, #fff);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:background-color .2s;width:fit-content}.recipe-form-image-upload-btn:hover{background:var(--color-primary-hover)}.recipe-form-image-upload-btn:disabled{background:var(--color-surface-hover);cursor:not-allowed}.recipe-form-image-upload-note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-form-image-label{display:block;margin-bottom:.5rem;color:var(--color-text-primary, #fff);font-weight:700;text-align:center}.recipe-form-image-description{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;margin-bottom:.5rem;text-align:center}.recipe-form-image-controls{display:flex;flex-direction:column;gap:.5rem;align-items:stretch;margin-bottom:.5rem;justify-content:center}.recipe-form-image-controls.desktop{flex-direction:row;gap:1rem}.recipe-form-file-input{display:none}.recipe-form-url-input{padding:var(--spacing-2);border-radius:var(--control-border-radius);border:1px solid var(--color-border);background:var(--color-input-bg, var(--color-surface));color:var(--color-text);width:100%;min-height:44px;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.recipe-form-url-input::placeholder{color:var(--color-text-muted)}.recipe-form-url-input:focus{outline:none;border-color:var(--color-primary);box-shadow:none}.recipe-form-url-input.desktop{width:300px}.recipe-form-ingredients{margin-bottom:var(--spacing-6)}.recipe-form-ingredient-row{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2);align-items:center}.recipe-form-ingredient-input{flex:1;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);transition:border-color .2s}.recipe-form-ingredient-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-quantity-input{width:80px;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);text-align:center;transition:border-color .2s}.recipe-form-quantity-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-ingredient-remove{padding:var(--spacing-2);border:none;border-radius:var(--control-border-radius);background:var(--color-error);color:var(--color-text-inverse, #fff);cursor:pointer;font-size:var(--font-size-sm);transition:background-color .2s}.recipe-form-ingredient-remove:hover{background:var(--color-error-hover)}.recipe-form-add-ingredient{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-primary);border-radius:var(--control-border-radius);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s}.recipe-form-add-ingredient:hover{background:var(--color-primary);color:var(--color-text-inverse, #fff)}.recipe-form-instructions{margin-bottom:var(--spacing-6)}.recipe-form-instruction-row{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2);align-items:flex-start}.recipe-form-instruction-number{width:30px;height:30px;border-radius:50%;background:var(--color-primary);color:var(--color-text-inverse, #fff);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600;flex-shrink:0;margin-top:2px}.recipe-form-instruction-input{flex:1;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);min-height:60px;resize:vertical;font-family:inherit;transition:border-color .2s}.recipe-form-instruction-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-instruction-remove{padding:var(--spacing-2);border:none;border-radius:var(--control-border-radius);background:var(--color-error);color:var(--color-text-inverse, #fff);cursor:pointer;font-size:var(--font-size-sm);transition:background-color .2s;flex-shrink:0;margin-top:2px}.recipe-form-instruction-remove:hover{background:var(--color-error-hover)}.recipe-form-add-instruction{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-primary);border-radius:var(--control-border-radius);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s}.recipe-form-add-instruction:hover{background:var(--color-primary);color:var(--color-text-inverse, #fff)}.recipe-form-tags{margin-bottom:var(--spacing-6)}.recipe-form-tags-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.recipe-form-tags-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);box-sizing:border-box;transition:border-color .2s;margin-bottom:var(--spacing-4)}.recipe-form-tags-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-tag-input-container{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.recipe-form-tag-input{flex:1;padding:var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-sm)}.recipe-form-add-tag{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-primary);border-radius:var(--control-border-radius);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s}.recipe-form-add-tag:hover{background:var(--color-primary);color:var(--color-text-inverse, #fff)}.recipe-form-tag-list{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.recipe-form-tag{display:flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background:var(--color-primary);color:var(--color-text-inverse, #fff);border-radius:var(--control-border-radius);font-size:var(--font-size-xs)}.recipe-form-tag-remove{cursor:pointer;font-weight:700;transition:opacity .2s}.recipe-form-tag-remove:hover{opacity:.7}.recipe-form-import{margin-bottom:var(--spacing-6);padding:var(--spacing-5) var(--spacing-6);background:var(--color-button-background, var(--color-surface-secondary));border-radius:var(--border-radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-3)}.recipe-form-import-controls{display:flex;gap:var(--spacing-3);align-items:center;width:100%}.recipe-form-import-controls .recipe-form-import-input{flex:1}.recipe-form-import-controls .button.recipe-form-import-btn{flex:0 0 auto}.recipe-form-import-input{padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg, var(--color-surface-secondary));color:var(--color-text);font-size:var(--font-size-sm);box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.recipe-form-import-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus, rgba(76, 175, 80, .2))}.button.recipe-form-import-btn{padding:var(--spacing-2) var(--spacing-5);font-size:var(--font-size-sm);align-self:flex-start;background:linear-gradient(145deg,#0000001f,#0000000d),var(--color-button-background, var(--color-surface-secondary));border-color:var(--color-border);box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm)}.button.recipe-form-import-btn:hover:not(.button--disabled){background:linear-gradient(145deg,#0003,#0000001a),var(--color-button-hover, var(--color-surface-hover))}.recipe-form-import-progress-container{margin-top:var(--spacing-3);padding:var(--spacing-4);background:var(--color-button-background, var(--color-surface-secondary));border-radius:var(--border-radius-lg);border:1px solid var(--color-border);display:flex;justify-content:center;box-shadow:var(--shadow-sm)}.recipe-form-import-progress-inner{display:flex;align-items:center;gap:.75rem}.recipe-form-import-spinner{width:20px;height:20px;border:3px solid var(--color-warning);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.recipe-form-import-progress-text{color:var(--color-text-secondary);font-size:var(--font-size-sm)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.recipe-form-actions{display:flex;gap:var(--spacing-4);flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-top:var(--spacing-8);padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.recipe-form-actions .button{width:auto;flex:0 0 auto}.recipe-form-additional-btns{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.recipe-form-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}.recipe-form-loading{opacity:.6;pointer-events:none}.recipe-form-metadata{display:flex;align-items:center;gap:1.5rem;justify-content:center;flex-wrap:wrap}.recipe-form-metadata-item{display:flex;align-items:center;gap:.5rem}.recipe-form-metadata-label{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;white-space:nowrap}.recipe-form-metadata-input{padding:.5rem;border-radius:var(--control-border-radius);border:1px solid var(--color-border, #424242);background:var(--color-input-bg, var(--color-surface));color:var(--color-text);height:38px;box-sizing:border-box;cursor:text;width:auto;min-width:100px;transition:border-color .2s ease}.recipe-form-metadata-input::placeholder{color:var(--color-text-muted, #888)}.recipe-form-metadata-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-metadata-input[readonly],.recipe-form-metadata-input:disabled{cursor:not-allowed;color:var(--color-text-muted, #888);background:var(--color-surface-secondary)}.recipe-form-metadata-source{flex-basis:100%;justify-content:center}.recipe-form-metadata-link{color:var(--color-primary, #ff6b35);text-decoration:none;font-size:.9rem;padding:.5rem 1rem;border-radius:var(--control-border-radius);border:1px solid var(--color-primary, #ff6b35);transition:all .2s;display:inline-block}.recipe-form-metadata-link:hover{background:var(--color-primary, #ff6b35);color:var(--color-text-primary, #fff)}.recipe-form-imported-notice{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;padding:.5rem 1rem;background:var(--color-surface-secondary, #1a1a1a);border-radius:var(--control-border-radius);border:1px solid var(--color-border, #424242)}.recipe-form-title-description{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;margin-bottom:.5rem}@media(max-width:767px){.recipe-form-ingredient-row,.recipe-form-instruction-row{flex-direction:column;align-items:stretch;gap:var(--spacing-1)}.recipe-form-quantity-input{width:100%}.recipe-form-actions{flex-direction:column;align-items:stretch}.recipe-form-submit-btn,.recipe-form-secondary-action{width:100%}}.recipe-form-description{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;margin-bottom:.5rem}.recipe-form-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.recipe-form-ingredients-section{margin-bottom:var(--spacing-6)}.recipe-form-ingredients-label{display:block;margin-bottom:.5rem;color:var(--color-text-primary, #fff);font-weight:700}.recipe-form-ingredients-description{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;margin-bottom:.5rem}.recipe-form-ingredient-section-header{display:flex;align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.recipe-form-ingredient-section-title{color:var(--color-primary);margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);flex:1}.icon-button.recipe-form-section-edit-btn{border:1px solid var(--color-border);background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-secondary);transition:var(--transition-fast)}.icon-button.recipe-form-section-edit-btn:hover:not(.icon-button--disabled){border-color:var(--color-secondary);background:var(--color-button-hover, var(--color-surface-hover));color:var(--color-secondary)}.icon-button.recipe-form-section-delete-btn{border:1px solid transparent;background:var(--color-error);color:var(--color-text-inverse, #fff);transition:var(--transition-fast)}.icon-button.recipe-form-section-delete-btn:hover:not(.icon-button--disabled){background:var(--color-error-hover)}.recipe-form-ingredient-container{margin-top:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--border-radius-xl);background:var(--color-button-background, var(--color-surface-secondary));box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-duration-base) var(--transition-timing-in-out),transform var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-form-ingredient-container.sectioned{border:2px solid var(--color-primary)}.recipe-form-ingredient-container:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.recipe-form-ingredient-inputs{display:flex;gap:var(--spacing-1);align-items:center;margin-bottom:0}.recipe-form-move-buttons{display:flex;flex-direction:column;gap:var(--spacing-2);flex-shrink:0;justify-content:center;align-items:center;align-self:center}.icon-button.recipe-form-move-btn{border:1px solid var(--color-border);background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-secondary);transition:var(--transition-fast);width:36px;height:36px}.icon-button.recipe-form-move-btn:hover:not(.icon-button--disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-button-hover, var(--color-surface-hover))}.icon-button.recipe-form-move-btn.icon-button--disabled{opacity:.4;cursor:not-allowed}.icon-button.recipe-form-move-btn.recipe-form-move-btn-compact{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.recipe-form-ingredient-fields{display:flex;flex-direction:column;gap:.5rem;flex:1}.recipe-form-ingredient-name{padding:.5rem;border-radius:var(--control-border-radius);border:1px solid var(--color-border, #424242);background:var(--color-surface-secondary, #263238);color:var(--color-text-primary, #fff);width:100%;height:38px;box-sizing:border-box}.recipe-form-ingredient-quantity-container{display:flex;gap:.5rem;align-items:center}.recipe-form-ingredient-quantity{padding:.5rem;border-radius:var(--control-border-radius);border:1px solid var(--color-border, #424242);background:var(--color-surface-secondary, #263238);color:var(--color-text-primary, #fff);flex:1;height:38px;box-sizing:border-box}.recipe-form-fraction-buttons{margin-bottom:1rem;margin-top:1rem;display:flex;flex-wrap:wrap;gap:.25rem;justify-content:center}.button.recipe-form-fraction-btn{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--control-border-radius);border:1px solid var(--color-border);background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-primary);font-size:.9rem;height:32px;min-width:36px;flex-shrink:0;transition:transform var(--transition-duration-base) var(--transition-timing-in-out)}.button.recipe-form-fraction-btn:hover:not(.button--disabled){transform:translateY(-1px)}.button.recipe-form-fraction-btn.mobile{font-size:.8rem}.recipe-form-add-buttons{display:flex;flex-direction:row;gap:var(--spacing-2);margin-top:var(--spacing-2);justify-content:center}.recipe-form-add-buttons .button{width:auto;flex:0 0 auto}.recipe-form-add-buttons.mobile{flex-direction:column}.recipe-form-add-buttons.mobile .button{width:100%}.recipe-form-instructions-section{margin-bottom:var(--spacing-6)}.recipe-form-instructions-label{display:block;margin-bottom:.5rem;color:var(--color-text-primary, #fff);font-weight:700}.recipe-form-instructions-description{color:var(--color-text-muted, #b0b0b0);font-size:.9rem;margin-bottom:.5rem}.recipe-form-instruction-section-header{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;margin-bottom:.5rem}.recipe-form-instruction-section-title{color:var(--color-secondary);margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);flex:1}.recipe-form-instruction-container{margin-top:var(--spacing-2);padding:var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--border-radius-xl);background:var(--color-button-background, var(--color-surface-secondary));box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-duration-base) var(--transition-timing-in-out),transform var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-form-instruction-container.sectioned{border:2px solid var(--color-secondary)}.recipe-form-instruction-container:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.recipe-form-instruction-inputs{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.recipe-form-instruction-inputs>div[style*="position: relative"]{flex:1;min-width:0}.recipe-form-instruction-textarea{padding:var(--spacing-3);border-radius:var(--control-border-radius);border:1px solid var(--color-border);background:var(--color-input-bg, var(--color-surface-secondary));color:var(--color-text);width:100%;max-width:100%;box-sizing:border-box;resize:vertical;flex:1;min-height:90px;font-family:inherit}.recipe-form-instruction-controls{display:flex;flex-direction:row;gap:var(--spacing-3);align-items:stretch;justify-content:center}.recipe-form-instruction-controls.mobile{flex-direction:column;gap:.5rem;align-items:stretch}.recipe-form-instruction-file-section{display:flex;flex-direction:row;gap:var(--spacing-2);align-items:stretch;flex:1;justify-content:flex-start}.recipe-form-instruction-file-section.mobile{flex-direction:column;align-items:stretch}.recipe-form-file-btn{position:relative;padding:var(--spacing-3) var(--spacing-5);border-radius:var(--control-border-radius);border:1px solid var(--color-border);background:linear-gradient(145deg,#0000001f,#0000000d),var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-primary);cursor:pointer;min-height:var(--control-height);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-family:inherit;box-sizing:border-box;transition:box-shadow var(--transition-duration-base) var(--transition-timing-in-out),transform var(--transition-duration-base) var(--transition-timing-in-out);box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm);overflow:hidden;isolation:isolate}.recipe-form-file-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;border-radius:inherit;transition:background var(--transition-duration-base) var(--transition-timing-in-out);pointer-events:none}.recipe-form-file-btn:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #ffffff0f,0 10px 20px #0000002e}.recipe-form-file-btn:hover:after{background:#0000002e}.recipe-form-file-btn:active:after{background:#00000042}.recipe-form-instruction-url-section .recipe-form-url-input{flex:1;align-self:stretch;display:flex;align-items:center}.icon-button.recipe-form-instruction-delete{border:1px solid transparent;background:var(--color-error);color:var(--color-text-inverse, #fff);min-width:44px;min-height:44px;transition:var(--transition-fast)}.icon-button.recipe-form-instruction-delete:hover:not(.icon-button--disabled){background:var(--color-error-hover)}.icon-button.recipe-form-instruction-delete.icon-button--disabled{opacity:.5;cursor:not-allowed}.recipe-form-instruction-preview{position:relative}.recipe-form-instruction-image{max-width:100px;max-height:100px;border-radius:var(--control-border-radius)}.recipe-form-instruction-image-error{display:none;color:var(--color-error, #f44336);font-size:.8rem;margin-top:.25rem}.recipe-form-source-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.recipe-form-source-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);box-sizing:border-box;transition:border-color .2s;margin-bottom:var(--spacing-4)}.recipe-form-source-input:focus{outline:none;border-color:var(--color-primary)}.recipe-form-notes-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.recipe-form-notes-textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);min-height:120px;resize:vertical;box-sizing:border-box;font-family:inherit;transition:border-color .2s;margin-bottom:var(--spacing-4)}.recipe-form-notes-textarea:focus{outline:none;border-color:var(--color-primary)}.recipe-form-checkboxes{margin-top:1rem;display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.recipe-form-checkbox-label{display:flex;align-items:center;gap:.5rem}.recipe-form-checkbox-label input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:var(--control-border-radius);border:1px solid var(--color-border);background:linear-gradient(145deg,#0000001f,#0000000d),var(--color-button-background, var(--color-surface-secondary));display:grid;place-items:center;cursor:pointer;transition:border-color var(--transition-duration-base) var(--transition-timing-in-out),box-shadow var(--transition-duration-base) var(--transition-timing-in-out),transform var(--transition-duration-fast) var(--transition-timing-in-out);box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm)}.recipe-form-checkbox-label input[type=checkbox]:after{content:"✓";font-size:1rem;color:transparent;transform:scale(.6);transition:color var(--transition-duration-fast) var(--transition-timing-in-out),transform var(--transition-duration-fast) var(--transition-timing-in-out),opacity var(--transition-duration-fast) var(--transition-timing-in-out);opacity:0}.recipe-form-checkbox-label input[type=checkbox]:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:inset 0 0 0 1px #ffffff0f,0 10px 18px #0000002e}.recipe-form-checkbox-label input[type=checkbox]:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:3px}.recipe-form-checkbox-label input[type=checkbox]:checked{border-color:var(--color-primary);background:var(--color-primary);box-shadow:0 6px 16px #4caf504d}.recipe-form-checkbox-label input[type=checkbox]:checked:after{color:var(--color-text-inverse, #fff);transform:scale(1);opacity:1}.recipe-form-checkbox-label.disabled input[type=checkbox]{cursor:not-allowed;opacity:.6;box-shadow:none}.recipe-form-checkbox-label.disabled{opacity:.5;cursor:not-allowed}.recipe-form-submit-section{display:flex;flex-direction:column;gap:1rem;justify-content:center;align-items:center}.recipe-form-submit-section.mobile{flex-direction:column}.recipe-form-submit-btn{border-radius:var(--control-border-radius);min-width:180px;font-weight:var(--font-weight-semibold);box-shadow:none}.recipe-form-submit-btn:disabled{opacity:.6;cursor:not-allowed}.recipe-form-submit-section.mobile .recipe-form-submit-btn{width:100%}.recipe-form-progress{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:var(--color-surface-secondary);border-radius:8px;border:1px solid var(--color-border)}.recipe-form-progress-spinner{width:20px;height:20px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.recipe-form-progress-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.recipe-form-instruction-url-section{display:flex;gap:.5rem;flex:1}.recipe-form-multi-image-container{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;gap:var(--spacing-3);margin:var(--spacing-4) auto 0;width:100%;max-width:760px;padding:0 var(--spacing-4)}@media(max-width:1023px){.recipe-form-multi-image-container{grid-template-columns:repeat(3,minmax(0,1fr));max-width:540px}}@media(max-width:767px){.recipe-form-multi-image-container{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;padding:0 var(--spacing-2)}.recipe-form-import-controls{flex-direction:column;align-items:stretch}.recipe-form-import-controls .button.recipe-form-import-btn{width:100%}}.recipe-form-image-item{display:flex;flex-direction:column;align-items:center;position:relative;margin-bottom:16px;width:100%;max-width:140px}.recipe-form-image-slot{position:relative;aspect-ratio:1;border:2px dashed var(--color-border);border-radius:var(--control-border-radius);background:var(--color-button-background, var(--color-surface-secondary));transition:border-color var(--transition-duration-base) var(--transition-timing-in-out),box-shadow var(--transition-duration-base) var(--transition-timing-in-out),transform var(--transition-duration-base) var(--transition-timing-in-out);width:100%;box-sizing:border-box;box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm);overflow:hidden;isolation:isolate}.recipe-form-image-slot.has-image{border:2px solid var(--color-primary);border-style:solid}.recipe-form-empty-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer;color:var(--color-text-secondary);padding:var(--spacing-2);box-sizing:border-box;border-radius:var(--control-border-radius);background:linear-gradient(145deg,#0000001f,#0000000d),var(--color-button-background, var(--color-surface-secondary));box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm);overflow:hidden;isolation:isolate;transition:transform var(--transition-duration-base) var(--transition-timing-in-out),box-shadow var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-form-empty-slot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;border-radius:inherit;transition:background var(--transition-duration-base) var(--transition-timing-in-out);pointer-events:none}.recipe-form-empty-slot:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #ffffff0d,0 10px 24px #0000002e}.recipe-form-empty-slot:hover:after{background:#0000002e}.recipe-form-empty-slot:active:after{background:#00000042}.recipe-form-empty-slot:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.recipe-form-empty-slot input[type=file]:disabled{cursor:not-allowed}.recipe-form-empty-slot:has(input[type=file]:disabled){opacity:.5;cursor:not-allowed}.recipe-form-empty-slot:has(input[type=file]:disabled):after{background:#0003}.recipe-form-empty-slot:has(input[type=file]:disabled):hover{transform:none;box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm)}.recipe-form-slot-number{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--spacing-2)}.recipe-form-slot-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.recipe-form-image-slot-preview{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:calc(var(--control-border-radius) - 2px)}.recipe-form-slot-image{width:100%;height:100%;object-fit:cover;display:block}.recipe-form-primary-badge{position:absolute;top:var(--spacing-2);left:var(--spacing-2);background:var(--color-primary);color:var(--color-text-inverse, #fff);padding:4px 8px;border-radius:var(--border-radius-base);font-size:var(--font-size-xs);font-weight:600;box-shadow:var(--shadow-sm)}.recipe-form-image-slot-controls{display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.recipe-form-empty-slot-wrapper{display:flex;flex-direction:column;width:100%;height:100%;gap:.5rem;padding:var(--spacing-2);box-sizing:border-box}.recipe-form-empty-slot-wrapper .recipe-form-empty-slot{flex:1;margin:0}.button.recipe-form-url-toggle{width:100%;justify-content:center;font-weight:var(--font-weight-semibold);background:linear-gradient(145deg,#0000001f,#0000000d),var(--color-button-background, var(--color-surface-secondary));border-color:var(--color-border);box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm)}.button.recipe-form-url-toggle:hover:not(.button--disabled){background:linear-gradient(145deg,#0000002e,#00000014),var(--color-button-hover, var(--color-surface-hover))}.recipe-form-url-input-container{display:flex;flex-direction:column;gap:.5rem;padding:var(--spacing-3);width:100%;height:100%;background:var(--color-button-background, var(--color-surface-secondary));border:1px solid var(--color-border);border-radius:var(--control-border-radius);box-shadow:inset 0 0 0 1px #ffffff0a,var(--shadow-sm)}.recipe-form-url-actions{display:flex;gap:var(--spacing-2);justify-content:flex-end}.recipe-form-url-actions .button{flex:1;justify-content:center}.recipe-form-url-input-container .recipe-form-url-input{font-size:var(--font-size-sm);min-height:var(--control-height);border-radius:var(--control-border-radius)}.icon-button.recipe-form-reorder-btn,.icon-button.recipe-form-delete-btn{width:36px;height:36px;border-radius:var(--control-border-radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);background:var(--color-button-background, var(--color-surface-secondary))}.icon-button.recipe-form-reorder-btn{color:var(--color-text-primary)}.icon-button.recipe-form-reorder-btn:hover:not(.icon-button--disabled){background:var(--color-button-hover, var(--color-surface-hover));color:var(--color-primary);transform:translateY(-1px);border-color:var(--color-primary)}.icon-button.recipe-form-reorder-btn.icon-button--disabled{opacity:.35;transform:none}.icon-button.recipe-form-delete-btn{background:var(--color-error);color:var(--color-text-inverse, #ffffff);border-color:transparent}.icon-button.recipe-form-delete-btn:hover{background:var(--color-error-hover);transform:translateY(-1px)}.recipe-form-instruction-row{display:flex;gap:var(--spacing-4);align-items:flex-start}.recipe-form-instruction-text-section{flex:1;display:flex;gap:var(--spacing-2);align-items:flex-start}.recipe-form-instruction-textarea{flex:1;min-height:150px;max-height:150px;height:150px;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-border-radius);background:var(--color-input-bg);color:var(--color-text);font-size:var(--font-size-base);resize:vertical;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.recipe-form-instruction-textarea:focus{outline:none;border-color:var(--color-primary)}.recipe-form-instruction-image-section{width:150px;flex-shrink:0;position:relative}.recipe-form-instruction-image-section .recipe-form-image-slot{height:150px}.recipe-form-image-remove-overlay.ingredient-remove{position:absolute;top:var(--spacing-1);right:var(--spacing-1);z-index:10;width:32px!important;height:32px!important;min-width:32px!important;padding:0}.recipe-form-instruction-delete-right{align-self:center;flex-shrink:0}.recipe-form-instruction-image-section .recipe-form-empty-slot-wrapper{display:flex;flex-direction:column;width:100%;height:100%;gap:var(--spacing-2);padding:var(--spacing-2);box-sizing:border-box}.recipe-form-instruction-image-section .recipe-form-empty-slot{flex:1;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2);box-sizing:border-box}.recipe-form-instruction-image-section .recipe-form-slot-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.recipe-form-instruction-image-section .button.recipe-form-url-toggle{width:100%;font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3)}.recipe-form-instruction-image-section .recipe-form-url-input-container{height:100%;display:flex;flex-direction:column;gap:var(--spacing-2);justify-content:center}.recipe-form-instruction-image-section .recipe-form-url-input{font-size:var(--font-size-xs);padding:var(--spacing-2);min-height:auto}.recipe-form-instruction-image-section .recipe-form-url-actions{display:flex;gap:var(--spacing-1)}.recipe-form-instruction-image-section .recipe-form-url-actions .button{font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2)}.recipe-form-move-buttons-mobile{display:none}.recipe-form-instruction-controls-row{display:contents}@media(max-width:767px){.recipe-form-instruction-row{display:flex;flex-direction:column;gap:var(--spacing-3);align-items:stretch}.recipe-form-instruction-text-section{width:100%;display:block}.recipe-form-move-buttons-desktop{display:none}.recipe-form-move-buttons-mobile{display:flex}.recipe-form-instruction-textarea{min-height:100px;height:auto;width:100%}.recipe-form-instruction-controls-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2);width:100%}.recipe-form-instruction-controls-row .recipe-form-move-buttons{order:1;flex-shrink:0}.recipe-form-instruction-controls-row .recipe-form-instruction-image-section{order:2;width:120px;flex-shrink:0;margin:0 auto}.recipe-form-instruction-controls-row .recipe-form-instruction-image-section .recipe-form-image-slot{height:120px}.recipe-form-instruction-controls-row .recipe-form-instruction-delete-right{order:3;flex-shrink:0}}.recipe-builder-login-container{max-width:420px;margin:var(--spacing-8) auto;padding:var(--spacing-6);background:var(--color-surface-primary, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);text-align:center;display:flex;flex-direction:column;gap:var(--spacing-4)}.recipe-builder-login-title{margin:0;color:var(--color-text-primary)}.recipe-builder-login-description{margin:0;color:var(--color-text-secondary);line-height:var(--line-height-normal)}.recipe-builder-login-button{gap:var(--spacing-2);font-weight:var(--font-weight-semibold)}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-2)}.input-label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-1)}.input-required{color:var(--color-error);margin-left:var(--spacing-1)}.input{padding:var(--input-padding);border:1px solid var(--input-border);border-radius:var(--input-border-radius);background:var(--input-background);color:var(--input-color);font-size:var(--font-size-base);font-family:var(--font-family-primary);transition:var(--transition-fast);width:100%;box-sizing:border-box}.input:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 2px #4caf5033}.input:hover:not(:focus){border-color:var(--color-border-hover)}.input--error{border-color:var(--color-error)}.input--error:focus{border-color:var(--color-error);box-shadow:0 0 0 2px #f4433633}.input--disabled{background:var(--color-surface-tertiary);color:var(--color-text-disabled);cursor:not-allowed;opacity:.6}.input::placeholder{color:var(--color-text-muted)}.input[type=textarea]{resize:vertical;min-height:80px;line-height:var(--line-height-relaxed)}.input[type=select]{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-3) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--spacing-10)}.input[type=select]:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%234caf50' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e")}.input-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}@media(max-width:767px){.input{font-size:var(--font-size-base);padding:calc(var(--input-padding) * .875)}.input-label{font-size:var(--font-size-xs)}}.add-to-list-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-backdrop);padding:var(--spacing-4)}.add-to-list-modal{background:var(--modal-background);border-radius:var(--modal-border-radius);width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;border:1px solid var(--color-border);box-shadow:var(--modal-shadow)}.add-to-list-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-6);border-bottom:1px solid var(--color-border)}.add-to-list-modal-title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-2xl)}.add-to-list-modal-close{background:none;border:none;font-size:var(--font-size-3xl);color:var(--color-text-muted);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.add-to-list-modal-close:hover{color:var(--color-text-primary)}.add-to-list-modal-content{flex:1;overflow-y:auto;padding:var(--spacing-4)}.add-to-list-modal-error{background:var(--color-error-bg, #f443361a);border:1px solid var(--color-error, #f44336);color:var(--color-error);padding:var(--spacing-3);border-radius:var(--border-radius-base);margin-bottom:var(--spacing-4);text-align:center}.add-to-list-section{margin-bottom:var(--spacing-6)}.add-to-list-section-title{margin:0 0 var(--spacing-3) 0;color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.add-to-list-create-new{display:flex;gap:var(--spacing-2);align-items:flex-end}.add-to-list-create-new input{flex:1}.add-to-list-divider{text-align:center;margin:var(--spacing-6) 0;position:relative}.add-to-list-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--color-border);z-index:0}.add-to-list-divider span{background:var(--modal-background);padding:0 var(--spacing-3);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);position:relative;z-index:1}.add-to-list-loading,.add-to-list-empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-4)}.add-to-list-lists{display:flex;flex-direction:column;gap:var(--spacing-2);margin-bottom:var(--spacing-4);max-height:300px;overflow-y:auto;padding:var(--spacing-1)}.add-to-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-surface-hover);border-radius:var(--border-radius-base);cursor:pointer;transition:all var(--transition-duration-base);border:2px solid transparent}.add-to-list-item:hover{background:var(--color-surface)}.add-to-list-item.selected{background:var(--color-surface);border-color:var(--color-primary)}.add-to-list-item-info{flex:1}.add-to-list-item-name{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);margin-bottom:var(--spacing-1)}.add-to-list-item-date{color:var(--color-text-muted);font-size:var(--font-size-sm)}.add-to-list-item-radio{width:1.5rem;height:1.5rem;border-radius:var(--border-radius-full);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);color:var(--color-primary);flex-shrink:0}.add-to-list-item.selected .add-to-list-item-radio{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.add-to-list-add-button{width:100%}@media(max-width:768px){.add-to-list-modal{max-width:95vw;max-height:90vh}.add-to-list-modal-header{padding:var(--spacing-4)}.add-to-list-modal-content{padding:var(--spacing-3)}.add-to-list-create-new{flex-direction:column;align-items:stretch}.add-to-list-lists{max-height:200px}}.ingredient-header-row-wrapper{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-end;width:100%;margin-bottom:0}.ingredient-header-row-outer{position:relative;width:100%;margin-bottom:0;display:flex;align-items:center;gap:var(--spacing-3)}.ingredient-nutrition-headers-flex{display:grid;grid-template-columns:40px minmax(0,1fr) repeat(5,58px);align-items:stretch;justify-items:center;margin-top:var(--spacing-2);margin-bottom:0;margin-left:0;margin-right:0;padding-left:0;padding-right:16px;gap:8px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;min-height:28px;border-top-left-radius:var(--border-radius-base);border-top-right-radius:var(--border-radius-base);flex:1}.ingredient-nutrition-header-toggle-absolute{position:absolute;top:0;right:0;height:100%;display:flex;align-items:center;z-index:2}.ingredient-nutrition-header-toggle-cell{min-width:70px;max-width:70px;display:flex;align-items:center;justify-content:flex-end;margin-left:auto}.ingredient-nutrition-headers-flex .ingredient-nutrition-header-checkbox{min-width:40px;max-width:40px;text-align:center;display:flex;align-items:center;justify-content:center}.ingredient-nutrition-header-checkbox{text-align:center;display:flex;align-items:center;justify-content:center;min-width:40px;max-width:40px;padding:0 var(--spacing-4)}@media(min-width:769px){.ingredient-header-row-outer{padding:0 var(--spacing-4)}.ingredient-nutrition-header-toggle-absolute{right:var(--spacing-4)}.ingredient-checklist-table .ingredient-checklist-row{padding-left:0;padding-right:var(--spacing-8)}}.ingredient-checklist-container{margin-bottom:var(--spacing-4)}.ingredient-checklist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.ingredient-checklist-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.ingredient-checklist-unit-toggle{padding:.4rem .65rem;border-radius:20px;border:2px solid transparent;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-duration-base) var(--transition-timing-in-out);display:flex;align-items:center;justify-content:center;gap:.25rem;min-width:70px;height:32px}.ingredient-checklist-unit-toggle:hover{background:var(--color-surface-hover);border:2px solid transparent}body.theme-light .ingredient-checklist-unit-toggle{background:#ebe8dc}body.theme-light .ingredient-checklist-unit-toggle:hover{background:#ddd9ca}.ingredient-checklist-unit-toggle:active{transform:scale(.95)}.ingredient-checklist-section-header-row{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;margin-bottom:var(--spacing-2)}.ingredient-checklist-section-header-row:first-child{margin-top:0}.ingredient-checklist-section-header{color:var(--color-primary);margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.ingredient-checklist-action-buttons{display:flex;gap:.5rem;align-items:center}.ingredient-checklist-clear-button{padding:.4rem .65rem;border-radius:20px;border:2px solid transparent;background:var(--color-surface-secondary);color:#f44336;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-duration-base) var(--transition-timing-in-out);display:flex;align-items:center;justify-content:center;gap:.25rem;min-width:38px;height:32px}.ingredient-checklist-clear-button:hover:not(:disabled){background:var(--color-surface-hover);border:2px solid transparent}body.theme-light .ingredient-checklist-clear-button{background:#ebe8dc}body.theme-light .ingredient-checklist-clear-button:hover:not(:disabled){background:#ddd9ca}.ingredient-checklist-clear-button:disabled,.ingredient-checklist-clear-button.disabled{opacity:.4;cursor:not-allowed;color:var(--color-text-muted)}.ingredient-checklist-list-button{padding:.4rem .65rem;border-radius:20px;border:2px solid transparent;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-duration-base) var(--transition-timing-in-out);display:flex;align-items:center;justify-content:center;gap:.25rem;min-width:38px;height:32px}.ingredient-checklist-list-button:hover{background:var(--color-surface-hover);border:2px solid transparent}.ingredient-checklist-list-button.active{background:var(--color-surface-hover);border:2px solid var(--color-text-primary);color:var(--color-text-primary)}body.theme-light .ingredient-checklist-list-button{background:#ebe8dc}body.theme-light .ingredient-checklist-list-button:hover{background:#ddd9ca}body.theme-light .ingredient-checklist-list-button.active{background:#ddd9ca;border:2px solid var(--color-text-primary);color:var(--color-text-primary)}.ingredient-checklist-clear-button-above{display:flex;justify-content:flex-end;margin-bottom:1rem;margin-top:-.5rem}.ingredient-checklist-row.selection-mode{opacity:1;text-decoration:none}.ingredient-checklist-row.selection-mode:hover{background:var(--color-surface-hover)}.ingredient-checklist-row.selected{outline:3px solid var(--color-primary);outline-offset:-3px;background:var(--color-surface-hover);position:relative;z-index:1;border-radius:8px}.ingredient-checklist-row.selected .ingredient-checklist-cell{border-bottom-color:var(--color-primary)}.ingredient-checklist-row.selected .ingredient-checklist-cell:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.ingredient-checklist-row.selected .ingredient-checklist-cell:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.ingredient-checklist-table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:var(--spacing-4);background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);overflow:hidden;box-shadow:0 2px 8px #0000001a}.ingredient-checklist-row{opacity:1;text-decoration:none;transition:all var(--transition-duration-base) var(--transition-timing-in-out);height:48px;padding-left:0;border-bottom:var(--border-width-thin) solid var(--color-border)}.ingredient-checklist-row:hover{background:var(--color-surface-hover)}.ingredient-checklist-row.checked{opacity:.5;text-decoration:line-through;background:var(--color-surface-secondary)}.ingredient-checklist-row:last-child{border-bottom:none}.ingredient-checklist-cell{padding:var(--spacing-3) var(--spacing-1);vertical-align:middle;height:48px;box-sizing:border-box}.ingredient-checklist-checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}body.theme-light .ingredient-checklist-checkbox{opacity:.4}body.theme-light .ingredient-checklist-checkbox:checked{opacity:1;accent-color:var(--color-primary)}.ingredient-checklist-checkbox-cell{width:40px;text-align:center}.ingredient-checklist-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.5}.ingredient-checklist-quantity{text-align:right;color:var(--color-text-muted);font-family:var(--font-family-mono);white-space:nowrap;min-width:100px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5}.ingredient-quantity-amount{color:var(--color-text-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.ingredient-quantity-unit{color:var(--color-text-muted);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.ingredient-nutrition-headers{display:grid;grid-template-columns:40px 1fr 65px 65px 65px 65px 80px;gap:0;align-items:stretch;padding:0;background:none!important;border:none!important;box-shadow:none!important;border-radius:0!important;margin-bottom:0;margin-top:var(--spacing-2);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;min-height:28px}.ingredient-nutrition-headers.hidden{visibility:hidden}.ingredient-nutrition-headers.visible{visibility:visible}.ingredient-nutrition-header-checkbox{text-align:center;display:flex;align-items:center;justify-content:center;min-width:40px;max-width:40px;padding:0}.ingredient-nutrition-header-name{text-align:left;display:flex;align-items:center;padding-left:var(--spacing-4);padding-right:var(--spacing-4);min-width:0;overflow:hidden}.ingredient-nutrition-header-value{text-align:center;font-size:var(--font-size-xs);display:flex;justify-content:center;align-items:center;min-width:58px;max-width:58px;width:100%;line-height:1.2;padding:var(--spacing-3) 0;box-sizing:border-box}.ingredient-nutrition-header-value:last-child{padding-right:0}.ingredient-checklist-table,.ingredient-checklist-table tbody{display:block}.ingredient-checklist-table .ingredient-checklist-row{display:grid!important;grid-template-columns:40px minmax(0,1.5fr) repeat(5,minmax(40px,60px));gap:var(--spacing-1);align-items:center;width:100%}@media(min-width:769px){.ingredient-checklist-table{display:block!important;padding-right:16px!important}.ingredient-checklist-table tbody{display:block!important}.ingredient-checklist-table .ingredient-checklist-row{display:grid!important;grid-template-columns:40px minmax(0,1fr) repeat(5,58px)!important;gap:8px!important;padding-left:0!important;padding-right:0!important}.ingredient-checklist-table .ingredient-checklist-cell{display:flex!important;align-items:center!important;justify-content:center!important}.ingredient-checklist-table .ingredient-checklist-checkbox-cell{justify-content:center!important}.ingredient-checklist-table .ingredient-checklist-name{justify-content:flex-start!important;padding-left:var(--spacing-4)!important}.ingredient-checklist-table .ingredient-quantity-value,.ingredient-checklist-table .ingredient-nutrition-value{justify-content:center!important;width:100%!important;min-width:100%!important;max-width:100%!important}.ingredient-checklist-table .ingredient-quantity-value span,.ingredient-checklist-table .ingredient-nutrition-value span{width:100%!important;text-align:center!important}.ingredient-checklist-table .ingredient-checklist-cell:last-child{padding-right:0!important}.ingredient-header-row-outer{padding-left:0!important;padding-right:var(--spacing-4)!important;margin-bottom:var(--spacing-1)!important}.ingredient-nutrition-headers-flex{display:grid!important;grid-template-columns:40px minmax(0,1fr) repeat(5,58px)!important;gap:8px!important;padding-left:0!important;padding-right:16px!important;padding-top:var(--spacing-2)!important;padding-bottom:var(--spacing-2)!important;margin-left:0!important;margin-bottom:0!important;align-items:center!important;justify-items:center!important}.ingredient-nutrition-header-checkbox{min-width:40px!important;max-width:40px!important;padding:0!important}.ingredient-nutrition-header-name{justify-self:start!important;padding-left:var(--spacing-4)!important}.ingredient-nutrition-header-value{min-width:58px!important;max-width:58px!important;padding:0!important}}.ingredient-checklist-table .ingredient-checklist-cell{display:flex;align-items:center}.ingredient-checklist-table .ingredient-checklist-checkbox-cell{justify-content:center}.ingredient-checklist-table .ingredient-checklist-checkbox{width:18px;height:18px;flex-shrink:0}.ingredient-checklist-table .ingredient-checklist-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:var(--spacing-2)!important}.ingredient-nutrition-value,.ingredient-quantity-value{text-align:center;font-family:var(--font-family-mono);font-weight:var(--font-weight-medium);white-space:nowrap;justify-content:center;overflow:hidden;text-overflow:ellipsis;padding-left:0!important;padding-right:0!important}.nutrition-not-available{color:var(--color-text-muted);font-style:normal;font-size:var(--font-size-sm);text-align:center;display:block;font-family:var(--font-family-mono)}@media(max-width:768px){.ingredient-checklist-table .ingredient-checklist-row{height:auto;min-height:32px;padding:calc(var(--spacing-1) / 1.5) calc(var(--spacing-1) / 1.5);grid-template-columns:28px minmax(0,1fr) repeat(5,max-content);column-gap:calc(var(--spacing-1) / 3)}.ingredient-checklist-table .ingredient-checklist-cell{padding:calc(var(--spacing-1) / 3) calc(var(--spacing-1) / 2)}.ingredient-checklist-table .ingredient-checklist-name{font-size:var(--font-size-xs);line-height:1.4;white-space:normal;overflow:visible;text-overflow:initial;padding-left:calc(var(--spacing-1) * 3)}.ingredient-quantity-value,.ingredient-nutrition-value{font-size:var(--font-size-xs);line-height:1.2}.ingredient-nutrition-headers-flex{display:grid;grid-template-columns:28px minmax(0,1fr) repeat(5,minmax(36px,max-content));column-gap:calc(var(--spacing-1) / 3);align-items:center;margin:calc(var(--spacing-1) / 2) 0;padding:0 calc(var(--spacing-1) / 2);font-size:calc(var(--font-size-xs) * .9);letter-spacing:.4px}.ingredient-nutrition-headers-flex .ingredient-nutrition-header-checkbox{min-width:28px;max-width:28px;padding:0}.ingredient-nutrition-headers-flex .ingredient-nutrition-header-name{padding-left:calc(var(--spacing-1) * 3);padding-right:calc(var(--spacing-1))}.ingredient-nutrition-headers-flex .ingredient-nutrition-header-value{min-width:36px;max-width:52px;padding:0}.ingredient-nutrition-headers-flex .ingredient-nutrition-header-value:last-child{padding-right:calc(var(--spacing-1) * 3)}.ingredient-nutrition-header-toggle-absolute{position:absolute;top:20%;right:calc(var(--spacing-1) / 2);transform:translateY(-50%);margin-left:0;display:flex;align-items:center;height:auto;padding:0}.ingredient-checklist-table .ingredient-nutrition-value,.ingredient-checklist-table .ingredient-quantity-value{padding:0}.ingredient-checklist-table .ingredient-quantity-amount,.ingredient-checklist-table .ingredient-quantity-unit{display:flex;justify-content:center;align-items:center;white-space:normal;padding:0}.ingredient-checklist-table .ingredient-checklist-cell:first-child{padding-right:calc(var(--spacing-1) * 2.4)}.ingredient-mobile-values{grid-column:3 / span 5;display:grid;grid-auto-flow:column;justify-content:end;justify-items:center;align-items:center;gap:calc(var(--spacing-1) / 6);padding:0;width:100%}.ingredient-mobile-values--nutrition{grid-template-columns:repeat(5,minmax(36px,1fr));gap:calc(var(--spacing-1) / 10)}.ingredient-mobile-values--header{padding-right:calc(var(--spacing-1) * 3);gap:var(--mobile-header-gap, calc(var(--spacing-1) / 10));grid-template-columns:repeat(5,minmax(20px,1fr))}.ingredient-mobile-value{display:flex;align-items:center;justify-content:center;min-width:36px;text-align:center;line-height:1.25}.ingredient-mobile-values--nutrition .ingredient-mobile-value{min-width:36px;width:100%}.ingredient-mobile-values--header .ingredient-mobile-value{min-width:0}.ingredient-mobile-value--header{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.4px;font-size:calc(var(--font-size-xs) * .85);flex-direction:column;gap:2px;text-align:center;line-height:1.1}.ingredient-mobile-value-label{display:block}.ingredient-mobile-value-unit{display:block;font-size:calc(var(--font-size-2xs));font-weight:var(--font-weight-medium);text-transform:none;letter-spacing:.2px}.ingredient-mobile-value.ingredient-quantity-unit{color:var(--color-text-muted)}.ingredient-checklist-table .ingredient-quantity-unit{color:var(--color-text-muted);font-size:var(--font-size-xs)}.ingredient-checklist-table .ingredient-checklist-cell:last-child{padding-right:calc(var(--spacing-1) * 3)}}.ingredient-nutrition-toggle-container{margin-bottom:var(--spacing-4)}.ingredient-nutrition-toggle-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.ingredient-nutrition-toggle-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.ingredient-nutrition-toggle-actions{display:flex;align-items:center;gap:.5rem}.ingredient-nutrition-toggle-button{display:flex;align-items:center;justify-content:center;padding:.4rem .65rem;border-radius:20px;border:2px solid transparent;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-duration-base) var(--transition-timing-in-out);min-width:90px;height:32px}.ingredient-nutrition-toggle-button:hover{background:var(--color-surface-hover);border:2px solid transparent}body.theme-light .ingredient-nutrition-toggle-button{background:#ebe8dc}body.theme-light .ingredient-nutrition-toggle-button:hover{background:#ddd9ca}.ingredient-nutrition-toggle-button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ingredient-nutrition-toggle-label{font-weight:var(--font-weight-semibold)}.ingredient-nutrition-headers{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-surface-secondary);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.ingredient-nutrition-header-name{flex:1}.ingredient-nutrition-header-values{display:flex;gap:1.5rem;min-width:180px;justify-content:flex-end}.ingredient-nutrition-header{width:3rem;text-align:center}.ingredient-nutrition-list{border:var(--border-width-thin) solid var(--color-border);border-top:none;border-radius:0 0 var(--border-radius-base) var(--border-radius-base);overflow:hidden;background:var(--color-surface)}.ingredient-nutrition-section-header{color:var(--color-primary);margin:0;padding:1rem 1rem .5rem;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);background:var(--color-surface)}.ingredient-nutrition-section-header:first-child{padding-top:1rem}.ingredient-nutrition-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:var(--border-width-thin) solid var(--color-border);transition:background var(--transition-duration-base) var(--transition-timing-in-out)}.ingredient-nutrition-row:last-child{border-bottom:none}.ingredient-nutrition-row:hover{background:var(--color-surface-hover)}.ingredient-nutrition-name{flex:1;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ingredient-nutrition-values{display:flex;gap:1.5rem;min-width:180px;justify-content:flex-end}.ingredient-nutrition-value{width:3rem;text-align:center;font-family:var(--font-family-mono);display:flex;flex-direction:column;align-items:center}.ingredient-nutrition-amount{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.ingredient-nutrition-unit{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.ingredient-nutrition-empty{text-align:center;padding:3rem 2rem;color:var(--color-text-muted);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface)}.ingredient-nutrition-empty p{margin:.5rem 0}.ingredient-nutrition-empty-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}@media(max-width:768px){.ingredient-nutrition-toggle-actions{gap:.5rem}.ingredient-nutrition-header-values,.ingredient-nutrition-values{gap:.75rem;min-width:140px}.ingredient-nutrition-header,.ingredient-nutrition-value{width:2.5rem}.ingredient-nutrition-amount{font-size:var(--font-size-sm)}.ingredient-nutrition-unit{font-size:.625rem}.ingredient-nutrition-toggle-button{min-width:64px;height:32px}}.nutrition-facts-panel{padding:.5rem;font-family:var(--font-family-sans);max-width:280px;margin:0 auto;box-shadow:0 2px 8px #0000001a}.nutrition-facts-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem;gap:.5rem}.nutrition-facts-header-content{flex:1}.nutrition-facts-header h2{font-size:2.5rem;font-weight:900;margin:0;line-height:1;letter-spacing:-.02em}.nutrition-facts-recipe-title{font-size:.875rem;font-weight:700;margin-top:.125rem}.nutrition-facts-servings{font-size:.875rem;font-weight:400;margin-top:.125rem}.nutrition-facts-toggle{padding:.375rem .75rem;border-radius:16px;cursor:pointer;font-size:.75rem;font-weight:700;transition:all .2s ease;white-space:nowrap;margin-top:.25rem}.nutrition-facts-toggle:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.nutrition-facts-toggle:active{transform:scale(.95)}.nutrition-facts-serving-size{display:flex;justify-content:space-between;align-items:baseline;padding:.375rem 0;font-size:.875rem}.nutrition-facts-serving-size .nutrition-facts-label{font-weight:700}.nutrition-facts-calories{display:flex;justify-content:space-between;align-items:baseline;padding:.25rem 0}.nutrition-facts-calories .nutrition-facts-label{font-size:1.125rem;font-weight:700}.nutrition-facts-calories .nutrition-facts-value{font-size:2.25rem;font-weight:900;line-height:1}.nutrition-facts-nutrient{display:flex;justify-content:space-between;align-items:baseline;padding:.25rem 0;font-size:.875rem}.nutrition-facts-nutrient .nutrition-facts-label{flex:1}.nutrition-facts-nutrient .nutrition-facts-dv{font-weight:700;min-width:3rem;text-align:right}.nutrition-facts-micronutrients{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.25rem 1.25rem;margin-top:.25rem}.nutrition-facts-micronutrients .nutrition-facts-nutrient{padding:.125rem 0;gap:.75rem}.nutrition-facts-additional{margin-top:.5rem}.nutrition-facts-additional-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.35rem 1.5rem;margin-top:.5rem}.nutrition-facts-additional-item{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.8125rem;line-height:1.3}.nutrition-facts-additional-item span:first-child{flex:1;text-align:left}.nutrition-facts-additional-item span:last-child{min-width:3rem;text-align:right;font-variant-numeric:tabular-nums}.nutrition-facts-footer{padding-top:.5rem;margin-top:.25rem}.nutrition-facts-footer p{font-size:.625rem;line-height:1.3;margin:0}.nutrition-facts-disclaimer{margin-top:.75rem;padding-top:.5rem;font-size:.625rem;line-height:1.3}.nutrition-facts-disclaimer p{margin:0}.nutrition-facts-disclaimer strong{font-weight:700}@media(prefers-color-scheme:light){.nutrition-facts-panel{background:#fff!important;border:2px solid black!important}.nutrition-facts-panel,.nutrition-facts-panel *{color:#000!important}.nutrition-facts-toggle{border:1.5px solid black;background:#fff;color:#000}.nutrition-facts-toggle:hover{background:#f5f5f5}.nutrition-facts-toggle.active{background:#000;color:#fff}}@media(prefers-color-scheme:dark){.nutrition-facts-panel{background:#1a1a1a;border:2px solid #e0e0e0}.nutrition-facts-panel,.nutrition-facts-panel *{color:#e0e0e0!important}.nutrition-facts-toggle{border:1.5px solid #e0e0e0;background:#1a1a1a;color:#e0e0e0}.nutrition-facts-toggle:hover{background:#2a2a2a}.nutrition-facts-toggle.active{background:#333;color:#e0e0e0}}.nutrition-facts-thick-divider,.nutrition-facts-medium-divider{margin:.25rem 0}.nutrition-facts-thin-divider{margin:0}@media(prefers-color-scheme:light){.nutrition-facts-thick-divider{border-top:10px solid black}.nutrition-facts-medium-divider{border-top:5px solid black}.nutrition-facts-thin-divider{border-top:1px solid black}.nutrition-facts-footer{border-top:4px solid black}.nutrition-facts-disclaimer{border-top:1px solid rgba(0,0,0,.2)}}@media(prefers-color-scheme:dark){.nutrition-facts-thick-divider{border-top:10px solid #e0e0e0}.nutrition-facts-medium-divider{border-top:5px solid #e0e0e0}.nutrition-facts-thin-divider{border-top:1px solid #e0e0e0}.nutrition-facts-footer{border-top:4px solid #e0e0e0}.nutrition-facts-disclaimer{border-top:1px solid rgba(224,224,224,.3)}}.nutrition-preview{background:var(--color-surface-primary);border:2px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3);font-family:var(--font-family-base)}.nutrition-preview-thumbnail{width:100%;height:100%;min-height:200px;justify-content:center;align-items:center}.nutrition-preview-full{width:100%;max-width:500px;margin:0 auto;padding:var(--spacing-6);gap:var(--spacing-4)}.nutrition-preview-header{text-align:center;border-bottom:3px solid var(--color-text-primary);padding-bottom:var(--spacing-2)}.nutrition-preview-header h3{font-size:var(--font-size-xl);font-weight:700;margin:0 0 var(--spacing-1) 0;color:var(--color-text-primary)}.nutrition-preview-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:400}.nutrition-preview-empty{text-align:center;padding:var(--spacing-4) 0;color:var(--color-text-secondary)}.nutrition-preview-empty p{margin:0;font-size:var(--font-size-base)}.nutrition-preview-calories{text-align:center;padding:var(--spacing-3) 0;border-bottom:2px solid var(--color-border)}.nutrition-preview-calories-value{font-size:3rem;font-weight:700;line-height:1;color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.nutrition-preview-thumbnail .nutrition-preview-calories-value{font-size:1.875rem}.nutrition-preview-thumbnail .nutrition-preview-calories-label{font-size:.55rem}.nutrition-preview-calories-label{font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:500}.nutrition-preview-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-3);padding:var(--spacing-2) 0}.nutrition-preview-macro{text-align:center}.nutrition-preview-macro-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.nutrition-preview-thumbnail .nutrition-preview-macro-value{font-size:var(--font-size-lg)}.nutrition-preview-macro-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.nutrition-preview-tap-hint{text-align:center;font-size:var(--font-size-sm);color:var(--color-primary);font-weight:500;padding-top:var(--spacing-2);border-top:1px solid var(--color-border);margin-top:auto}@media(max-width:768px){.nutrition-preview-full{padding:var(--spacing-4);max-width:100%}.nutrition-preview-calories-value{font-size:2.5rem}.nutrition-preview-header h3{font-size:var(--font-size-lg)}}.nutrition-lightbox-content{width:100%;max-width:600px;max-height:90vh;overflow-y:auto;padding:var(--spacing-4);background:var(--color-surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl)}.nutrition-lightbox-content .nutrition-facts-panel{box-shadow:none}.nutrition-lightbox-content{background:#fff!important}.nutrition-lightbox-content .nutrition-facts-panel{background:#fff!important;border:2px solid black!important}.nutrition-lightbox-content .nutrition-facts-panel,.nutrition-lightbox-content .nutrition-facts-panel *,.nutrition-lightbox-content .nutrition-facts-panel h2,.nutrition-lightbox-content .nutrition-facts-panel p,.nutrition-lightbox-content .nutrition-facts-panel div,.nutrition-lightbox-content .nutrition-facts-panel span{color:#000!important}.nutrition-lightbox-content .nutrition-facts-thick-divider,.nutrition-lightbox-content .nutrition-facts-medium-divider,.nutrition-lightbox-content .nutrition-facts-thin-divider{border-color:#000!important}.nutrition-lightbox-content .nutrition-facts-footer,.nutrition-lightbox-content .nutrition-facts-disclaimer{border-top-color:#000!important}.nutrition-lightbox-content .nutrition-facts-toggle{border:1.5px solid black!important;background:#fff!important;color:#000!important}.nutrition-lightbox-content .nutrition-facts-toggle:hover{background:#f5f5f5!important}.nutrition-lightbox-content .nutrition-facts-toggle.active{background:#000!important;color:#fff!important}.nutrition-lightbox-content::-webkit-scrollbar{width:8px}.nutrition-lightbox-content::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:var(--border-radius-sm)}.nutrition-lightbox-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--border-radius-sm)}.nutrition-lightbox-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@media(max-width:768px){.nutrition-lightbox-content{max-width:95vw;max-height:85vh;padding:var(--spacing-3)}}body.theme-dark .nutrition-lightbox-content{background:#1a1a1a!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel{background:#1a1a1a!important;border:2px solid #e0e0e0!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel,body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel *,body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel h2,body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel p,body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel div,body.theme-dark .nutrition-lightbox-content .nutrition-facts-panel span{color:#e0e0e0!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-thick-divider,body.theme-dark .nutrition-lightbox-content .nutrition-facts-medium-divider,body.theme-dark .nutrition-lightbox-content .nutrition-facts-thin-divider{border-color:#e0e0e0!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-footer,body.theme-dark .nutrition-lightbox-content .nutrition-facts-disclaimer{border-top-color:#e0e0e0!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-toggle{border:1.5px solid #e0e0e0!important;background:#1a1a1a!important;color:#e0e0e0!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-toggle:hover{background:#2a2a2a!important}body.theme-dark .nutrition-lightbox-content .nutrition-facts-toggle.active{background:#333!important;color:#e0e0e0!important}@media(max-width:768px){.recipe-action-buttons-sticky-mobile{position:sticky;top:calc(var(--navbar-height-mobile) + var(--spacing-2));z-index:1100;background:var(--color-background);padding:0 var(--spacing-1);margin:0 calc(-1 * var(--spacing-1));width:calc(100% + 2 * var(--spacing-1))}.recipe-action-buttons-sticky-mobile .recipe-action-buttons{margin-bottom:.5rem;margin-top:0;padding-top:.75rem;padding-bottom:.5rem}}.recipe-action-buttons{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-bottom:var(--spacing-4)}.recipe-action-buttons .icon-button{width:auto!important;height:auto!important;min-width:auto!important;min-height:auto!important;padding:.4rem .65rem;border:2px solid transparent!important;background:var(--color-surface-secondary)!important;color:var(--color-text-primary, #e0e0e0);cursor:pointer;border-radius:20px;font-size:1.2rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;vertical-align:middle;line-height:1;box-shadow:none;outline:none}.recipe-action-buttons .icon-button>*{display:flex;align-items:center;justify-content:center}.recipe-action-buttons .icon-button:hover{background:var(--color-surface-hover)!important;box-shadow:none;border:2px solid transparent!important}body.theme-light .recipe-action-buttons .icon-button{background:#ebe8dc!important}body.theme-light .recipe-action-buttons .icon-button:hover{background:#ddd9ca!important}.recipe-action-buttons .icon-button:focus,.recipe-action-buttons .icon-button:focus-visible{outline:none;box-shadow:none}.recipe-action-buttons .icon-button.icon-button--primary,.recipe-action-buttons .icon-button.icon-button--danger,.recipe-action-buttons .icon-button.icon-button--secondary{background:var(--color-primary, #00bfa5)!important;color:var(--color-text-inverse, #ffffff);box-shadow:none}.recipe-action-buttons .icon-button.icon-button--danger{background:var(--color-error, #f44336)!important}.recipe-action-buttons .icon-button.icon-button--secondary{background:var(--color-secondary, #2196f3)!important}.timer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.timer-modal{background:var(--color-surface, #1e1e1e);border-radius:12px;width:100%;max-width:400px;box-shadow:0 8px 32px #0006;border:1px solid var(--color-border, #424242)}.timer-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border, #424242)}.timer-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text-primary, #fff);display:flex;align-items:center;gap:.5rem}.timer-close-btn{background:none;border:none;font-size:2rem;color:var(--color-text-muted, #888);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.timer-close-btn:hover{background:var(--color-surface-hover, #2a2a2a);color:var(--color-text-primary, #fff)}.timer-body{padding:2rem 1.5rem}.timer-setup{display:flex;flex-direction:column;gap:2rem}.timer-inputs{display:flex;align-items:center;justify-content:center;gap:1rem}.timer-input-group{display:flex;flex-direction:column;gap:.5rem;align-items:center}.timer-label{font-size:.9rem;color:var(--color-text-muted, #888);font-weight:500}.timer-input{width:80px;padding:.75rem;font-size:1.5rem;text-align:center;border:2px solid var(--color-border, #424242);border-radius:8px;background:var(--color-surface-secondary, #1a1a1a);color:var(--color-text-primary, #fff);font-weight:600}.timer-input:focus{outline:none;border-color:var(--color-primary, #ff6b35)}.timer-colon{font-size:2rem;font-weight:600;color:var(--color-text-primary, #fff);margin-top:1.5rem}.timer-start-btn{padding:1rem 2rem;font-size:1.1rem;font-weight:600;background:var(--color-primary, #ff6b35);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.timer-start-btn:hover{background:var(--color-primary-hover, #ff8555);transform:translateY(-2px);box-shadow:0 4px 12px #ff6b354d}.timer-start-btn:active{transform:translateY(0)}.timer-running{display:flex;flex-direction:column;gap:2rem;align-items:center}.timer-display{font-size:4rem;font-weight:700;color:var(--color-primary, #ff6b35);font-family:Courier New,monospace;text-align:center;padding:1rem;background:var(--color-surface-secondary, #1a1a1a);border-radius:12px;min-width:200px;border:2px solid var(--color-border, #424242)}.timer-controls{display:flex;gap:1rem;width:100%}.timer-pause-btn,.timer-reset-btn{flex:1;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.timer-pause-btn{background:var(--color-primary, #ff6b35);color:#fff}.timer-pause-btn:hover{background:var(--color-primary-hover, #ff8555)}.timer-reset-btn{background:var(--color-surface-secondary, #1a1a1a);color:var(--color-text-primary, #fff);border:1px solid var(--color-border, #424242)}.timer-reset-btn:hover{background:var(--color-surface-hover, #2a2a2a)}@media(max-width:480px){.timer-modal{max-width:100%;margin:0 .5rem}.timer-display{font-size:3rem;min-width:150px}.timer-input{width:70px;font-size:1.25rem}.timer-controls{flex-direction:column}}.share-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.share-modal{background:var(--color-surface-secondary);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.share-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--color-border-dark)}.share-modal-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0}.share-modal-close{background:none;border:none;cursor:pointer;padding:.5rem;color:var(--color-text-secondary);transition:color .2s;display:flex;align-items:center;justify-content:center}.share-modal-close:hover{color:var(--color-text-primary)}.share-modal-recipe-preview{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border-dark)}.share-modal-recipe-preview h3{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.share-modal-recipe-preview p{font-size:.9rem;color:var(--color-text-secondary);margin:0}.share-modal-tabs{display:flex;border-bottom:2px solid var(--color-border-dark);padding:0 1.5rem}.share-modal-tab{flex:1;padding:1rem;background:none;border:none;border-bottom:3px solid transparent;color:var(--color-text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:-2px}.share-modal-tab:hover{color:var(--color-text-primary);background:var(--color-surface-tertiary)}.share-modal-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.share-modal-content{padding:1.5rem}.share-modal-description{font-size:.95rem;color:var(--color-text-secondary);margin:0 0 1.5rem;line-height:1.5}.share-modal-link-box{display:flex;gap:.75rem;margin-bottom:1.5rem}.share-modal-link-input{flex:1;padding:.75rem;background:var(--color-surface-tertiary);border:1px solid var(--color-border-dark);border-radius:6px;color:var(--color-text-primary);font-size:.9rem;font-family:monospace}.share-modal-link-input:focus{outline:none;border-color:var(--color-primary)}.share-modal-loading{text-align:center;padding:2rem;color:var(--color-text-secondary)}.share-modal-social-share{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border-dark)}.share-modal-social-share p{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 1rem}.share-modal-social-buttons{display:flex;gap:.75rem}.share-modal-social-btn{flex:1;padding:.75rem;text-align:center;border-radius:6px;text-decoration:none;font-size:.9rem;font-weight:500;transition:transform .2s,opacity .2s;color:#fff}.share-modal-social-btn:hover{transform:translateY(-2px);opacity:.9}.share-modal-social-btn.facebook{background:#1877f2}.share-modal-social-btn.twitter{background:#1da1f2}.share-modal-social-btn.whatsapp{background:#25d366}.share-modal-user-form{margin-top:1rem}.share-modal-form-group{margin-bottom:1.5rem}.share-modal-form-group label{display:block;font-size:.9rem;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.share-modal-input{width:100%;padding:.75rem;background:var(--color-surface-tertiary);border:1px solid var(--color-border-dark);border-radius:6px;color:var(--color-text-primary);font-size:1rem}.share-modal-input:focus{outline:none;border-color:var(--color-primary)}.share-modal-input:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.share-modal{max-width:100%;margin:0;border-radius:12px 12px 0 0;max-height:85vh}.share-modal-header{padding:1rem}.share-modal-title{font-size:1.25rem}.share-modal-recipe-preview{padding:1rem}.share-modal-tabs{padding:0 1rem}.share-modal-tab{font-size:.9rem;padding:.75rem}.share-modal-content{padding:1rem}.share-modal-link-box,.share-modal-social-buttons{flex-direction:column}}.recipe-view-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}@media(max-width:768px){.recipe-view-container{padding:var(--spacing-1)}.recipe-view-header-row{margin-left:0;margin-right:0;padding:0 var(--spacing-1);width:100%}.recipe-view-ingredients-table{border-radius:var(--border-radius-base)}.recipe-view-ingredients-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:.5rem}.recipe-view-ingredients-cell{padding:var(--spacing-2) var(--spacing-2)}.recipe-view-ingredients-cell.recipe-view-ingredients-checkbox{width:auto;text-align:left}.recipe-view-ingredients-cell.recipe-view-ingredients-name{white-space:normal;word-break:break-word;font-size:var(--font-size-sm)}.recipe-view-ingredients-cell.recipe-view-ingredients-quantity{min-width:0;font-size:var(--font-size-sm);white-space:normal;display:flex;justify-content:flex-end;gap:.25rem;flex-wrap:wrap}}@media(min-width:769px){.recipe-view-ingredients-row{display:grid;grid-template-columns:28px 1fr 120px;align-items:center;gap:.75rem}.recipe-view-ingredients-cell{padding:var(--spacing-2) var(--spacing-2)}.recipe-view-ingredients-cell.recipe-view-ingredients-checkbox{width:auto;text-align:left}.recipe-view-ingredients-cell.recipe-view-ingredients-name{white-space:normal;word-break:break-word;font-size:var(--font-size-sm)}.recipe-view-ingredients-cell.recipe-view-ingredients-quantity{min-width:0;font-size:var(--font-size-sm);white-space:normal;display:flex;justify-content:flex-start;gap:.25rem;flex-wrap:wrap;padding-right:var(--spacing-4)}}.recipe-view-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.recipe-view-back-link{color:var(--color-primary);text-decoration:none;background:none;border:none;font-size:var(--font-size-base);cursor:pointer;padding:0;font-family:inherit}.recipe-view-back-link:hover{text-decoration:underline}.recipe-view-privacy-indicator-mobile{color:var(--color-text-primary, #e0e0e0);font-size:1.5rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}.recipe-view-title-section{position:relative;display:flex;justify-content:center;align-items:center;margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.recipe-view-title{text-align:center;margin:0;font-size:var(--font-size-3xl)}.recipe-view-title-mobile{font-size:var(--font-size-xl)}.recipe-view-privacy-indicator{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:0;border:none;background:none;color:var(--color-text-primary, #e0e0e0);font-size:1.5rem;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:none;outline:none}.recipe-view-rating-mobile{display:flex;align-items:center;justify-content:center;gap:.3rem;margin-top:var(--spacing-2);margin-bottom:var(--spacing-3);font-size:var(--font-size-lg);line-height:1}.recipe-view-rating-mobile .icon{display:flex;align-items:center;justify-content:center;height:auto}.recipe-view-rating-mobile .star-rating-container{display:flex;align-items:center;height:1.125rem}.recipe-view-rating-number-mobile,.recipe-view-rating-count-mobile,.recipe-view-stat-number{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-primary);line-height:1;display:flex;align-items:center;height:1.125rem}.recipe-view-stat-separator{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0 .1rem;display:flex;align-items:center;height:1.125rem}.recipe-view-author-mobile{text-align:center;margin-top:0;margin-bottom:var(--spacing-3);font-size:var(--font-size-sm);font-style:italic}.recipe-view-stat-icon-mobile{font-size:var(--font-size-lg)}.recipe-view-action-button{padding:var(--spacing-2) var(--spacing-6);background:var(--color-surface-secondary);color:var(--color-text-primary);border:none;border-radius:var(--border-radius-base);cursor:pointer;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-view-action-button:hover{background:var(--color-surface-hover)}.recipe-view-favorite-button{background:var(--color-warning)}.recipe-view-save-button{background:var(--color-secondary)}.recipe-view-share-button{background:var(--color-info);display:flex;align-items:center;gap:var(--spacing-2)}.recipe-view-edit-button{background:var(--color-accent, #FF9800);color:var(--color-text-inverse, #ffffff);text-decoration:none;display:flex;align-items:center}.recipe-view-saved-copy-notice{background:var(--color-surface-secondary);border:var(--border-width-thin) solid var(--color-primary);border-radius:var(--border-radius-base);padding:var(--spacing-3) var(--spacing-6);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm)}.recipe-view-saved-copy-label{color:var(--color-primary)}.recipe-view-saved-copy-author-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-bold)}.recipe-view-metadata{display:flex;justify-content:center;gap:var(--spacing-8);margin-bottom:var(--spacing-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-wrap:wrap}.recipe-view-metadata-item{display:flex;align-items:center;gap:var(--spacing-2)}.recipe-view-author-link{color:var(--color-primary);text-decoration:none}.recipe-view-author-link:hover{text-decoration:underline}.recipe-view-source-link{color:var(--color-primary);text-decoration:none;transition:all .2s}.recipe-view-source-link:hover{text-decoration:underline;color:var(--color-primary-hover, #ff8555)}.recipe-view-author-name{color:var(--color-text-secondary)}.recipe-view-author-imported{color:var(--color-text-muted);font-size:.9em}.recipe-view-rating{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap;flex-basis:100%;justify-content:center}.recipe-view-rating-display{display:flex;align-items:center;gap:var(--spacing-2)}.recipe-view-rating-stars{color:var(--color-accent);font-size:var(--font-size-base)}.recipe-view-rating-value{color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.recipe-view-rating-count{color:var(--color-text-secondary);font-size:var(--font-size-base)}.recipe-view-like-count,.recipe-view-save-count{display:flex;align-items:center;gap:.25rem;font-size:var(--font-size-base);color:var(--color-text-secondary)}.recipe-view-image-gallery{margin-bottom:var(--spacing-4)}.recipe-view-image{width:100%;max-height:400px;object-fit:cover;border-radius:var(--border-radius-xl);margin-bottom:var(--spacing-4)}@media(min-width:769px){.recipe-view-image{aspect-ratio:4 / 3;max-height:none}}.recipe-view-thumbnails-container{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-4);position:relative}.recipe-view-thumbnails{display:flex;gap:var(--spacing-2);overflow-x:auto;padding:var(--spacing-2) 4px;scroll-behavior:smooth;max-width:fit-content;justify-content:center}.recipe-view-thumbnails::-webkit-scrollbar{height:6px}.recipe-view-thumbnails::-webkit-scrollbar-track{background:var(--color-surface-secondary, #f8f8f8);border-radius:3px}.recipe-view-thumbnails::-webkit-scrollbar-thumb{background:var(--color-border, #e0e0e0);border-radius:3px}.recipe-view-thumbnails::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary, #333333)}.recipe-view-thumbnail{flex-shrink:0;width:80px;height:80px;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .2s ease;background:none;padding:0}.recipe-view-thumbnail:hover{border-color:var(--color-primary);transform:scale(1.05)}.recipe-view-thumbnail.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.recipe-view-thumbnail-image{width:100%;height:100%;object-fit:cover}.recipe-view-thumbnail-nav{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);box-shadow:var(--shadow-sm);position:absolute;z-index:10}.recipe-view-thumbnail-nav-left{left:0}.recipe-view-thumbnail-nav-right{right:0}.recipe-view-thumbnail-nav:hover:not(:disabled){background:var(--color-surface-hover);transform:scale(1.05)}.recipe-view-thumbnail-nav:disabled{opacity:.3;cursor:not-allowed;transform:none}@media(max-width:767px){.recipe-view-thumbnail{width:60px;height:60px}.recipe-view-thumbnail-nav{width:36px;height:36px}}.recipe-view-nutrition-display{width:100%;min-height:400px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-4)}.recipe-view-nutrition-display.recipe-view-image-clickable{cursor:pointer;transition:var(--transition-base)}.recipe-view-nutrition-display.recipe-view-image-clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.recipe-view-thumbnail-nutrition{background:var(--color-surface-primary);display:flex;align-items:center;justify-content:center;padding:4px}.recipe-view-thumbnail-nutrition .nutrition-preview{width:100%;height:100%;border:none;border-radius:4px;padding:0;gap:2px;justify-content:center}.recipe-view-thumbnail-nutrition .nutrition-preview-header{padding-bottom:2px;border-bottom-width:1px;margin-bottom:0}.recipe-view-thumbnail-nutrition .nutrition-preview-header h3{font-size:.65rem;font-weight:700;margin:0;padding:0;line-height:1;text-align:center}.recipe-view-thumbnail-nutrition .nutrition-preview-subtitle{font-size:.45rem;display:none}.recipe-view-thumbnail-nutrition .nutrition-preview-calories{padding:2px 0 0;border-bottom:none;margin:0}.recipe-view-thumbnail-nutrition .nutrition-preview-calories-value{font-size:1.25rem;font-weight:700;line-height:1;margin-bottom:2px}.recipe-view-thumbnail-nutrition .nutrition-preview-calories-label{font-size:.5rem;font-weight:600}.recipe-view-thumbnail-nutrition .nutrition-preview-macros,.recipe-view-thumbnail-nutrition .nutrition-preview-tap-hint{display:none}@media(max-width:767px){.recipe-view-nutrition-display{min-height:300px}.recipe-view-thumbnail-nutrition .nutrition-preview-header h3{font-size:.55rem}.recipe-view-thumbnail-nutrition .nutrition-preview-calories-value{font-size:.45rem}.recipe-view-thumbnail-nutrition .nutrition-preview-calories-label{font-size:.38rem}}.recipe-view-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-4)}.recipe-view-details{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-3);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm)}@media(max-width:768px){.recipe-view-details{grid-template-columns:repeat(3,1fr)}}.recipe-view-detail-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem}.recipe-view-detail-item strong{font-weight:700;font-size:var(--font-size-sm);text-decoration:underline}.recipe-view-detail-item span{font-size:var(--font-size-sm)}.recipe-view-details-mobile{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:0;background:var(--color-surface-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-base);overflow:hidden;max-width:500px;margin:0 auto var(--spacing-4) auto}.recipe-view-details-mobile .recipe-view-detail-item{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--spacing-3);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:center;gap:.25rem}.recipe-view-details-mobile .recipe-view-detail-item:nth-child(3),.recipe-view-details-mobile .recipe-view-detail-item:nth-child(6){border-right:none}.recipe-view-details-mobile .recipe-view-detail-item:nth-child(4),.recipe-view-details-mobile .recipe-view-detail-item:nth-child(5),.recipe-view-details-mobile .recipe-view-detail-item:nth-child(6){border-bottom:none}.recipe-view-details-mobile .recipe-view-detail-item strong{font-weight:700;color:var(--color-text-primary);font-size:var(--font-size-sm);text-decoration:none}.recipe-view-details-mobile .recipe-view-detail-item span{font-weight:400;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.recipe-view-servings{display:flex;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-6);padding:var(--spacing-4);background:var(--color-surface-primary, #ffffff);border-radius:var(--border-radius-base);border:1px solid var(--color-border);flex-wrap:nowrap}.recipe-view-servings-info{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);white-space:nowrap;flex-shrink:0}.recipe-view-multiplier-buttons{display:flex;gap:var(--spacing-2);margin-left:auto;flex-shrink:0}.recipe-view-multiplier-button{padding:.4rem .65rem;border-radius:20px;border:1px solid var(--color-border);background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-duration-base) var(--transition-timing-in-out);min-width:45px;text-align:center;white-space:nowrap}.recipe-view-multiplier-button:hover{background:var(--color-surface-hover);border-color:var(--color-border-dark)}.recipe-view-multiplier-button--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.recipe-view-ingredients-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.recipe-view-ingredients-title{margin:0}.recipe-view-clear-button{padding:.5rem 1rem;border-radius:4px;border:1px solid var(--color-error, #ff5722);background:var(--color-surface-primary, #ffffff);color:var(--color-error, #ff5722);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.recipe-view-clear-button:hover{background:var(--color-error, #ff5722);color:var(--color-text-inverse, #fff)}.recipe-view-ingredients-table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:var(--spacing-4);background:var(--color-surface-primary, #ffffff);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);overflow:hidden;box-shadow:var(--shadow-md, 0 2px 8px rgba(0, 0, 0, .1))}.recipe-view-ingredients-row{opacity:1;text-decoration:none;transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-view-ingredients-row:hover{background:var(--color-hover, rgba(0, 0, 0, .05))}.recipe-view-ingredients-row.checked{opacity:.5;text-decoration:line-through;background:var(--color-surface-secondary, #f8f8f8)}.recipe-view-ingredients-cell{padding:var(--spacing-3) var(--spacing-4);border-bottom:var(--border-width-thin) solid var(--color-border);vertical-align:middle}.recipe-view-ingredients-row:last-child .recipe-view-ingredients-cell{border-bottom:none}.recipe-view-ingredients-checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}body.theme-light .recipe-view-ingredients-checkbox{accent-color:#b0b0b0!important}.recipe-view-ingredients-cell.recipe-view-ingredients-checkbox{width:40px;text-align:center}.recipe-view-ingredients-cell.recipe-view-ingredients-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.recipe-view-ingredients-cell.recipe-view-ingredients-quantity{text-align:right;color:var(--color-text-muted);font-family:var(--font-family-mono);white-space:nowrap;min-width:100px}.recipe-view-instructions-title{margin-bottom:var(--spacing-4);margin-top:var(--spacing-8);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.recipe-view-instruction-step{margin-bottom:var(--spacing-4);padding:var(--spacing-6);background:var(--color-surface-primary, #ffffff);border-radius:var(--border-radius-xl);border-left:var(--border-width-thick) solid var(--color-primary);box-shadow:var(--shadow-md, 0 2px 8px rgba(0, 0, 0, .1));position:relative}.recipe-view-instruction-step{cursor:pointer;transition:all .3s ease;position:relative}.recipe-view-instruction-step.selected{transform:scale(1.03);box-shadow:0 4px 12px #ff6b354d;border-color:var(--color-primary, #ff6b35);background:var(--color-surface-hover, #2a2a2a);z-index:1}.recipe-view-instruction-content{display:flex;gap:var(--spacing-4);align-items:flex-start}.recipe-view-instruction-left{flex:1;min-width:0}.recipe-view-instruction-header{display:flex;justify-content:flex-start;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3)}.recipe-view-instruction-number{display:inline-block;background:var(--color-primary, #4CAF50);color:var(--color-text-inverse, #ffffff);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.recipe-view-instruction-text{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.recipe-view-instruction-image-container{width:150px;height:150px;flex-shrink:0;cursor:pointer;border-radius:var(--border-radius-lg);overflow:hidden;transition:transform .2s}.recipe-view-instruction-image-container:hover{transform:scale(1.05)}.recipe-view-instruction-image{width:100%;height:100%;object-fit:cover;display:block}.recipe-view-instruction-time-highlight{text-decoration:underline;text-decoration-color:var(--color-primary, #ff6b35);text-decoration-thickness:2px;text-underline-offset:2px;font-weight:500}.recipe-view-instruction-header .icon-button{width:auto!important;height:auto!important;min-width:auto!important;min-height:auto!important;padding:.4rem .65rem;border:2px solid transparent!important;background:var(--color-surface-secondary)!important;color:var(--color-text-primary, #e0e0e0);cursor:pointer;border-radius:20px;font-size:1.2rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;box-shadow:none;outline:none}.recipe-view-instruction-header .icon-button:hover{background:var(--color-surface-hover)!important;box-shadow:none;border:2px solid transparent!important}body.theme-light .recipe-view-instruction-header .icon-button{background:#ebe8dc!important}body.theme-light .recipe-view-instruction-header .icon-button:hover{background:#ddd9ca!important}.recipe-view-instruction-image{width:100%;max-width:400px;height:auto;object-fit:cover;margin-top:var(--spacing-4);border-radius:var(--border-radius-base);display:block}.recipe-view-tags{margin-bottom:var(--spacing-2)}.recipe-view-source-link{color:var(--color-primary);text-decoration:none}.recipe-view-source-link:hover{text-decoration:underline}.recipe-view-notes{margin-top:var(--spacing-4);padding:var(--spacing-6);background:var(--color-surface-secondary);border-radius:var(--border-radius-base)}.recipe-view-notes-content{white-space:pre-wrap;margin:var(--spacing-2) 0 0 0}.recipe-view-posts-section{margin-top:var(--spacing-12);padding-top:var(--spacing-8);border-top:var(--border-width-thick) solid var(--color-border)}.recipe-view-posts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.recipe-view-posts-title{margin:0}.recipe-view-posts-header .icon-button{width:auto!important;height:auto!important;min-width:auto!important;min-height:auto!important;padding:.4rem .65rem;border:2px solid transparent!important;background:var(--color-surface-secondary)!important;color:var(--color-text-primary, #e0e0e0);cursor:pointer;border-radius:20px;font-size:1.2rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;box-shadow:none;outline:none}.recipe-view-posts-header .icon-button:hover{background:var(--color-surface-hover)!important;box-shadow:none;border:2px solid transparent!important}body.theme-light .recipe-view-posts-header .icon-button{background:#ebe8dc!important}body.theme-light .recipe-view-posts-header .icon-button:hover{background:#ddd9ca!important}.recipe-view-post-form{background:var(--color-surface-secondary, #f8f8f8);padding:var(--spacing-6);border-radius:var(--border-radius-xl);margin-bottom:var(--spacing-8)}.recipe-view-form-group{margin-bottom:var(--spacing-4);position:relative}.recipe-view-form-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold)}.recipe-view-form-label-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:var(--font-weight-normal)}.recipe-view-form-input{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);width:100%;box-sizing:border-box;font-family:inherit}.recipe-view-form-textarea{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);width:100%;box-sizing:border-box;resize:vertical;font-family:inherit;min-height:100px}.recipe-view-form-preview{max-width:200px;max-height:200px;margin-top:var(--spacing-2);border-radius:var(--border-radius-xl);object-fit:cover}.recipe-view-form-submit{padding:var(--spacing-2) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-success, #4CAF50);color:var(--color-text-inverse, #ffffff);cursor:pointer;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.recipe-view-posts-container{position:relative}.recipe-view-posts-loading{text-align:center;color:var(--color-text-muted)}.recipe-view-posts-empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-8)}.recipe-view-scroll-controls{position:absolute;right:calc(-50px - var(--spacing-2));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:var(--spacing-2)}.recipe-view-scroll-controls-mobile{display:flex;flex-direction:row;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-4)}.recipe-view-scroll-button{padding:var(--spacing-2);border-radius:50%;border:none;background:var(--color-primary, #4CAF50);color:var(--color-text-inverse, #ffffff);cursor:pointer;font-size:var(--font-size-lg);width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-view-scroll-button:disabled{background:var(--color-surface-tertiary, #f0f0f0);cursor:not-allowed;opacity:.6}.recipe-view-scroll-button:hover:not(:disabled){background:var(--color-primary-dark)}.recipe-view-post{display:flex;flex-direction:row;gap:var(--spacing-6);padding:var(--spacing-6);background:var(--color-surface-secondary, #f8f8f8);border-radius:var(--border-radius-xl);border:var(--border-width-thin) solid var(--color-border);margin-bottom:var(--spacing-4)}.recipe-view-post-mobile{flex-direction:column}.recipe-view-post-image-container{flex-shrink:0;align-self:flex-start;width:150px;height:150px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--border-radius-xl);background:var(--color-surface-primary, #ffffff)}.recipe-view-post-image-container-mobile{align-self:center}.recipe-view-post-image{width:100%;height:100%;object-fit:cover;object-position:center}.recipe-view-post-content{flex:1;display:flex;flex-direction:column;min-width:0}.recipe-view-post-text{margin-bottom:var(--spacing-2);line-height:var(--line-height-relaxed)}.recipe-view-post-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2)}.recipe-view-post-author{color:var(--color-primary);font-weight:var(--font-weight-bold)}.recipe-view-post-date{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-left:var(--spacing-2)}.recipe-view-post-actions{display:flex;gap:var(--spacing-2);align-items:center}.recipe-view-post-like-button{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-tertiary, #f0f0f0);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--spacing-1);transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-view-post-like-button.liked{background:var(--color-error, #F44336);color:var(--color-text-inverse, #ffffff)}.recipe-view-post-delete-button{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);border:none;background:var(--color-error, #F44336);color:var(--color-text-inverse, #ffffff);cursor:pointer;font-size:var(--font-size-sm)}.recipe-view-post-edit-button{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);border:none;background:var(--color-warning, #FF9800);color:var(--color-text-inverse, #ffffff);cursor:pointer;font-size:var(--font-size-sm)}.recipe-view-post-edit-form{background:var(--color-surface-primary, #ffffff);padding:var(--spacing-4);border-radius:var(--border-radius-xl);margin-top:var(--spacing-2)}.recipe-view-post-edit-textarea{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);width:100%;box-sizing:border-box;resize:vertical;font-family:inherit;min-height:80px}.recipe-view-post-edit-actions{display:flex;gap:var(--spacing-2)}.recipe-view-post-edit-submit{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-success, #4CAF50);color:var(--color-text-inverse, #ffffff);cursor:pointer;font-weight:var(--font-weight-semibold)}.recipe-view-post-edit-cancel{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:var(--border-width-thin) solid var(--color-border);background:var(--color-surface-secondary, #f8f8f8);color:var(--color-text-primary);cursor:pointer}.recipe-view-post-rating{margin-top:var(--spacing-2);display:flex;align-items:center;gap:var(--spacing-2)}.recipe-view-post-rating-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-view-post-rating-stars{color:var(--color-warning, #FF9800);font-size:var(--font-size-base)}.recipe-view-post-rating-value{color:var(--color-warning, #FF9800);font-weight:var(--font-weight-semibold)}.recipe-view-loading,.recipe-view-error{max-width:800px;margin:0 auto;padding:var(--spacing-8);text-align:center}.recipe-view-error-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-4);color:var(--color-text-secondary)}.recipe-view-error-text{color:var(--color-text-muted);font-size:var(--font-size-base)}@media(max-width:767px){.recipe-view-metadata{gap:var(--spacing-4);font-size:var(--font-size-xs);justify-content:center;width:100%}.recipe-view-metadata-item{text-align:center;width:100%;justify-content:center;display:flex}.recipe-view-servings{flex-direction:row;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);flex-wrap:nowrap}.recipe-view-servings-info{font-size:var(--font-size-sm);flex-shrink:1;min-width:0}.recipe-view-multiplier-buttons{margin-left:auto;gap:var(--spacing-1);flex-shrink:0}.recipe-view-multiplier-button{padding:.3rem .5rem;font-size:var(--font-size-xs);min-width:38px}.recipe-view-posts-header{flex-direction:column;gap:var(--spacing-4);align-items:stretch}.recipe-view-add-post-button{align-self:center;max-width:200px}.recipe-view-scroll-controls{position:static;transform:none;margin-bottom:var(--spacing-4)}}.recipe-view-section-header{color:var(--color-primary);margin-top:2rem;margin-bottom:var(--spacing-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.recipe-view-section-header:first-child{margin-top:0}.recipe-view-posts-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.recipe-view-nutrition-section{margin:var(--spacing-6) 0;display:flex;justify-content:center}@media(max-width:768px){.recipe-view-nutrition-section{margin:var(--spacing-4) 0}}.recipe-view-image-clickable{cursor:pointer;transition:opacity var(--transition-duration-base) var(--transition-timing-in-out)}.recipe-view-image-clickable:hover{opacity:.9}.image-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:9999;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:var(--spacing-4)}.image-lightbox-close{position:absolute;top:var(--spacing-4);right:var(--spacing-4);background:#ffffff1a;border:none;color:#f44336;font-size:2rem;cursor:pointer;padding:0;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-base);transition:var(--transition-fast);z-index:10000;line-height:1}.image-lightbox-close svg,.image-lightbox-close .icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-lightbox-close:hover{background:#fff3}.image-lightbox-content{max-width:95vw;max-height:95vh;display:flex;align-items:center;justify-content:center;cursor:default}.image-lightbox-image{max-width:100%;max-height:95vh;width:auto;height:auto;object-fit:contain;border-radius:var(--border-radius-base);box-shadow:0 10px 50px #00000080}.recipe-editor-notice{max-width:800px;margin:0 auto var(--spacing-8);padding:var(--spacing-6);background:var(--color-button-background, var(--color-surface-secondary));border:1px solid var(--color-border);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}.recipe-editor-notice h3{margin:0 0 var(--spacing-3);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-2)}.recipe-editor-notice p{margin:0;line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.recipe-editor-notice strong{color:var(--color-text-primary)}@media(max-width:767px){.recipe-editor-notice{padding:var(--spacing-4);margin-bottom:var(--spacing-6)}.recipe-editor-notice h3{font-size:var(--font-size-lg)}}.my-recipes-container{max-width:1200px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}@media(max-width:768px){.my-recipes-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);margin:0}}.my-recipes-title{text-align:center;margin-bottom:var(--spacing-4)}.my-recipes-controls{display:flex;gap:var(--spacing-2);flex-wrap:wrap;justify-content:center;margin-bottom:var(--spacing-8)}.my-recipes-control-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:4px;border:none;background:var(--color-surface);color:var(--color-text);cursor:pointer;height:38px;transition:background-color .2s}.my-recipes-control-btn:hover{background:var(--color-surface-hover)}.my-recipes-control-btn.active{background:var(--color-primary)}.my-recipes-control-btn.favorites{background:var(--color-warning)}.my-recipes-control-btn.favorites.active{background:var(--color-warning-hover)}.my-recipes-mobile-controls{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-4);justify-content:center}.my-recipes-mobile-control-btn{padding:var(--spacing-2) var(--spacing-3);border-radius:4px;border:none;background:var(--color-surface);color:var(--color-text);cursor:pointer;height:38px;font-size:.85rem;transition:background-color .2s}.my-recipes-mobile-control-btn:hover{background:var(--color-surface-hover)}.my-recipes-mobile-control-btn.active{background:var(--color-primary)}.my-recipes-mobile-control-btn.favorites{background:var(--color-warning)}.my-recipes-mobile-control-btn.favorites.active{background:var(--color-warning-hover)}.my-recipes-search{margin-bottom:var(--spacing-8)}.my-recipes-search-input{padding:var(--spacing-2);border-radius:4px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);width:100%;box-sizing:border-box}.my-recipes-filters{margin-bottom:var(--spacing-8);display:flex;flex-wrap:wrap;gap:var(--spacing-4);align-items:center;justify-content:center}@media(max-width:768px){.my-recipes-filters{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3)}.my-recipes-sort-select{grid-column:span 2}}.my-recipes-filter-select{padding:var(--spacing-2);border-radius:4px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);width:auto}@media(max-width:768px){.my-recipes-filter-select{width:100%}}.my-recipes-sort-select{padding:var(--spacing-2);border-radius:4px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text)}.my-recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-8)}.my-recipes-card{border:1px solid var(--color-border);border-radius:8px;padding:var(--spacing-4);background:var(--color-surface);cursor:pointer;transition:transform .2s,box-shadow .2s;height:100%;display:flex;flex-direction:column;text-decoration:none;color:inherit}.my-recipes-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.my-recipes-card-image{width:100%;height:200px;object-fit:cover;border-radius:4px;margin-bottom:var(--spacing-4)}.my-recipes-card-title{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-lg)}.my-recipes-card-rating{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);font-size:.9rem}.my-recipes-card-stars{color:var(--color-warning)}.my-recipes-card-rating-value{color:var(--color-warning);font-weight:600}.my-recipes-card-description{color:var(--color-text-secondary);font-size:.9rem;margin:0 0 var(--spacing-2) 0;flex-grow:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.my-recipes-card-privacy-icon{display:flex;justify-content:flex-end;align-items:center;margin-bottom:var(--spacing-1);font-size:1.2rem}.my-recipes-card-metadata{font-size:.85rem;color:var(--color-text-secondary);border-top:1px solid var(--color-border);padding-top:var(--spacing-3);margin-top:var(--spacing-1);line-height:1.6}.my-recipes-card-metadata-item{margin-bottom:var(--spacing-1)}.my-recipes-card-tags{display:flex;gap:var(--spacing-2);flex-wrap:wrap;margin-top:var(--spacing-3)}.my-recipes-card-tag{background:var(--color-primary);padding:var(--spacing-1) var(--spacing-2);border-radius:4px;font-size:.8rem}.my-recipes-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.my-recipes-list-item{text-decoration:none;color:inherit;display:block;border:1px solid var(--color-border);border-radius:8px;padding:var(--spacing-3) var(--spacing-4);background:var(--color-surface);cursor:pointer;transition:transform .2s,box-shadow .2s;width:100%;box-sizing:border-box}.my-recipes-list-item:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0003}.my-recipes-list-item-content{display:flex;align-items:center;gap:var(--spacing-4)}.my-recipes-list-item-image{width:60px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0}.my-recipes-list-item-placeholder{width:60px;height:60px;background:var(--color-surface-hover);border-radius:4px;flex-shrink:0}.my-recipes-list-item-details{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-6);flex:1;min-width:0}.my-recipes-list-item-title{margin:0;font-size:var(--font-size-lg);font-weight:600;min-width:200px;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.my-recipes-list-item-metadata{display:flex;align-items:center;gap:var(--spacing-3);font-size:.85rem;color:var(--color-text-secondary);flex:1;min-width:0}.my-recipes-list-item-rating{display:flex;align-items:center;gap:var(--spacing-1);color:var(--color-warning);font-size:.85rem}.my-recipes-list-item-author{display:flex;align-items:center;gap:var(--spacing-4);flex-shrink:0}.my-recipes-list-item-author-link{color:var(--color-primary);text-decoration:none;font-style:italic;font-size:.85rem}@media(max-width:768px){.my-recipes-list-item-content{display:flex;gap:var(--spacing-3)}.my-recipes-list-item-image,.my-recipes-list-item-placeholder{width:50px;height:50px}.my-recipes-list-item-details{display:flex;flex-direction:column;gap:var(--spacing-2);flex:1;min-width:0}.my-recipes-list-item-title-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2)}.my-recipes-list-item-title{margin:0;font-size:var(--font-size-base);font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-recipes-list-item-metadata{display:flex;align-items:center;gap:var(--spacing-2);font-size:.8rem;color:var(--color-text-secondary);flex-wrap:wrap}}.my-recipes-empty{text-align:center;color:var(--color-text-secondary)}.my-recipes-loading{max-width:1200px;margin:0 auto;padding:var(--spacing-8);text-align:center}.my-recipes-load-more{display:flex;justify-content:center;margin-top:var(--spacing-8);margin-bottom:var(--spacing-4);padding:var(--spacing-4)}.my-recipes-loading-more{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-base);margin:0;padding:var(--spacing-4)}.my-recipes-end-message{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-base)}.my-recipes-end-message p{margin:0}.edit-profile-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}.edit-profile-title{margin-bottom:var(--spacing-8);color:var(--color-text-primary)}.edit-profile-loading{padding:var(--spacing-8);text-align:center;color:var(--color-text-primary)}.edit-profile-top-actions{display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-5);border-bottom:2px solid var(--color-border);flex-wrap:wrap}.edit-profile-edit-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:opacity .2s}.edit-profile-edit-btn:hover{opacity:.9}.edit-profile-save-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-success);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:opacity .2s}.edit-profile-save-btn:hover:not(:disabled){opacity:.9}.edit-profile-save-btn.loading{background:var(--color-surface-secondary);cursor:not-allowed;opacity:.7}.edit-profile-save-btn:disabled{cursor:not-allowed;opacity:.6}.edit-profile-cancel-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-error);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:opacity .2s}.edit-profile-cancel-btn:hover:not(:disabled){opacity:.9}.edit-profile-cancel-btn.loading{cursor:not-allowed;opacity:.6}.edit-profile-cancel-btn:disabled{cursor:not-allowed;opacity:.6}.edit-profile-message{padding:var(--spacing-4);border-radius:var(--border-radius-base);color:var(--color-text-primary);margin-bottom:var(--spacing-4)}.edit-profile-message.error{background:var(--color-error)}.edit-profile-message.success{background:var(--color-success)}.edit-profile-picture-section{margin-bottom:var(--spacing-6)}.edit-profile-picture-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.edit-profile-picture-preview{margin-bottom:var(--spacing-4)}.edit-profile-picture-image{width:150px;height:150px;border-radius:var(--border-radius-full);object-fit:cover;border:3px solid var(--color-success)}.edit-profile-picture-upload{display:flex;gap:var(--spacing-2);flex-direction:column}.edit-profile-picture-input{display:none}.edit-profile-picture-upload-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:none;background:var(--color-accent);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-base);text-align:center;display:inline-block;width:fit-content}.edit-profile-picture-upload-btn.loading{background:var(--color-surface-secondary);cursor:not-allowed}.edit-profile-picture-upload-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.edit-profile-picture-url-section{margin-top:var(--spacing-4)}.edit-profile-picture-url-label{display:block;margin-bottom:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.edit-profile-picture-url-input{width:100%;padding:var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);font-size:var(--font-size-base);box-sizing:border-box}.edit-profile-field{margin-bottom:var(--spacing-6)}.edit-profile-field-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.edit-profile-field-description{margin-top:var(--spacing-1);margin-bottom:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.edit-profile-field-checking{margin-left:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.edit-profile-field-input{width:100%;padding:var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);font-size:var(--font-size-base);box-sizing:border-box}.edit-profile-field-input.disabled{background:var(--color-surface-secondary);color:var(--color-text-muted)}.edit-profile-field-input.error{border-color:var(--color-error)}.edit-profile-field-textarea{width:100%;padding:var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary);min-height:100px;resize:vertical;font-size:var(--font-size-base);box-sizing:border-box;font-family:inherit}.edit-profile-field-textarea.disabled{background:var(--color-surface-secondary);color:var(--color-text-muted)}.edit-profile-field-error{margin-top:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-error)}.edit-profile-field-hint{margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-muted)}.edit-profile-view-profile-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:opacity .2s}.edit-profile-view-profile-btn:hover:not(:disabled){opacity:.9}.edit-profile-view-profile-btn:disabled{cursor:not-allowed;opacity:.6}.edit-profile-privacy-toggle{display:flex;flex-direction:column;gap:var(--spacing-3)}.edit-profile-toggle-option{display:flex;align-items:flex-start;gap:var(--spacing-2);padding:var(--spacing-3);border-radius:var(--border-radius-base);border:2px solid var(--color-border);cursor:pointer;transition:all .2s}.edit-profile-toggle-option:has(input:checked){border-color:var(--color-success);background:var(--color-surface-secondary)}.edit-profile-toggle-option:has(input:disabled){cursor:not-allowed;opacity:.7}.edit-profile-toggle-option input[type=radio]{margin-top:2px;cursor:pointer}.edit-profile-toggle-option input[type=radio]:disabled{cursor:not-allowed}.edit-profile-toggle-label{flex:1;font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer}.edit-profile-toggle-label.disabled{cursor:not-allowed;color:var(--color-text-muted)}.edit-profile-color-default-toggle{margin-bottom:var(--spacing-4)}.edit-profile-checkbox-label{display:flex;align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-primary)}.edit-profile-checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.edit-profile-checkbox-label input[type=checkbox]:disabled{cursor:not-allowed}.edit-profile-checkbox-label span.disabled{color:var(--color-text-muted);cursor:not-allowed}.edit-profile-color-section-wrapper{display:flex;gap:var(--spacing-5);align-items:stretch;margin-bottom:var(--spacing-3);flex-wrap:wrap;padding:var(--spacing-5);border-radius:var(--border-radius-base);background:var(--color-surface-secondary);border:1px solid var(--color-border)}.edit-profile-color-controls{flex:0 0 300px;display:flex;flex-direction:column}.edit-profile-color-picker-container{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary);height:100%}.edit-profile-color-picker{width:100%;height:70px;border-radius:var(--border-radius-base);border:2px solid var(--color-border);cursor:pointer;transition:all .2s}.edit-profile-color-picker:hover:not(:disabled){border-color:var(--color-success);box-shadow:0 0 0 3px #4caf501a}.edit-profile-color-picker:disabled{cursor:not-allowed;opacity:.5}.edit-profile-color-input-group{display:flex;gap:var(--spacing-2);align-items:center}.edit-profile-color-hex-input{flex:1;padding:var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--font-size-base);font-family:Courier New,monospace;text-transform:uppercase;transition:border-color .2s}.edit-profile-color-hex-input:focus{outline:none;border-color:var(--color-success)}.edit-profile-color-hex-input.disabled{background:var(--color-surface-secondary);color:var(--color-text-muted);cursor:not-allowed}.edit-profile-color-preview{width:50px;height:50px;border-radius:var(--border-radius-base);border:2px solid var(--color-border);box-shadow:inset 0 0 0 1px #0000001a;flex-shrink:0}.edit-profile-svg-preview{flex:1;min-width:350px;display:flex;flex-direction:column}.edit-profile-svg-preview-label{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-3);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;flex-wrap:wrap}.edit-profile-preview-scale-slider{flex:1;min-width:100px;max-width:150px;cursor:pointer}.edit-profile-preview-scale-value{font-size:var(--font-size-xs);color:var(--color-text-primary);min-width:40px;text-align:right}.edit-profile-svg-preview-container{width:100%;height:250px;border-radius:var(--border-radius-base);border:2px solid var(--color-border);background:var(--color-surface-tertiary);padding:var(--spacing-3);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 2px 4px #0000000d}.edit-profile-svg-preview-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;transition:filter .3s ease}.edit-profile-color-mode-toggle{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--color-border)}.edit-profile-color-mode-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.edit-profile-color-mode-buttons{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.edit-profile-color-mode-btn{flex:1;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all .2s}.edit-profile-color-mode-btn:hover:not(:disabled){background:var(--color-surface-tertiary);border-color:var(--color-success)}.edit-profile-color-mode-btn.active{background:var(--color-success);border-color:var(--color-success);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.edit-profile-color-mode-btn.disabled{cursor:not-allowed;opacity:.6}.edit-profile-color-mode-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.edit-profile-bg-controls{margin-top:var(--spacing-4);padding:var(--spacing-3);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary)}.edit-profile-bg-control-row{margin-bottom:var(--spacing-3)}.edit-profile-bg-control-row:last-of-type{margin-bottom:0}.edit-profile-bg-control-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.edit-profile-bg-control-slider{width:100%;cursor:pointer}.edit-profile-bg-control-slider:disabled{cursor:not-allowed;opacity:.5}@media(max-width:768px){.edit-profile-color-section-wrapper{flex-direction:column}.edit-profile-color-controls,.edit-profile-svg-preview{width:100%}}.tab-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;background:var(--color-background);padding:.75rem .5rem;z-index:200;border-bottom:1px solid transparent}.tab-bar.sticky{position:sticky;top:var(--navbar-height-desktop, 64px);background:var(--color-background);box-shadow:none;padding:.5rem;margin-bottom:0;border-bottom:1px solid var(--color-border);z-index:1100}.tab-button{padding:.75rem;border-radius:4px;border:none;background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-primary);cursor:pointer;font-size:1.5rem;font-weight:700;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:1;min-height:3rem;box-shadow:none!important;outline:none!important;line-height:1;vertical-align:middle;transform:none!important}.tab-button:hover{background:var(--color-button-hover, var(--color-surface-hover));box-shadow:none!important;transform:none!important}.tab-button.active{background:var(--color-button-background, var(--color-surface-secondary));color:var(--color-text-primary);font-weight:600;box-shadow:none!important;border:none;box-shadow:0 0 0 2px var(--color-text-secondary, #666666)!important;transform:none!important}.tab-button:focus{outline:none!important;box-shadow:none!important}.tab-button:focus-visible{outline:none!important;box-shadow:none!important}.tab-icon{color:var(--color-text-primary);font-size:1.5rem;display:flex;align-items:center;justify-content:center}.tab-icon>*{display:flex;align-items:center;justify-content:center}.tab-button.active .tab-icon{color:var(--color-text-inverse)}.tab-text{color:var(--color-text-primary)}.tab-button.active .tab-text{color:var(--color-text-inverse)}body.theme-light .tab-button{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;border:none!important}body.theme-light .tab-button:hover{background:var(--color-button-hover, #ddd9ca)!important}body.theme-light .tab-button.active{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;box-shadow:0 0 0 2px var(--color-text-secondary, #666666)!important;transform:none!important;font-weight:700!important;position:relative!important;z-index:10!important}body.theme-light .tab-button.active .tab-icon,body.theme-light .tab-button.active .tab-text{color:var(--color-text-primary, #1a1a1a)!important}body.theme-light .tab-button.active:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:transparent;border-radius:inherit;z-index:-1}@media(max-width:768px){.tab-bar{position:fixed;bottom:0;left:0;right:0;margin-bottom:0;padding:.5rem var(--spacing-1);background:var(--color-surface);box-shadow:0 -2px 8px #00000026;border-top:1px solid var(--color-border);gap:.4rem;z-index:1000}.tab-bar.sticky{position:fixed;top:auto;bottom:0}.tab-button{padding:.6rem;font-size:1.3rem;min-width:2.5rem;min-height:2.5rem;flex:1;background:transparent;border-radius:8px}.tab-button:hover{background:#8080801a}.tab-button.active{background:#80808026;border:none;box-shadow:0 0 0 2px var(--color-text-secondary, rgba(200, 200, 200, .5))}body.theme-light .tab-button.active{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;box-shadow:0 0 0 2px var(--color-text-secondary, #666666)!important;position:relative!important;z-index:10!important}body.theme-light .tab-button.active .tab-icon,body.theme-light .tab-button.active .tab-text{color:var(--color-text-primary, #1a1a1a)!important}body.theme-light .tab-button.active:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:transparent;border-radius:inherit;z-index:-1}.tab-icon{font-size:1.3rem;color:var(--color-text-primary)}.tab-text{color:var(--color-text-primary)}}body.theme-light .tab-bar .tab-button.active,body.theme-light .tab-bar .tab-button.button--default.button--active{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;box-shadow:0 0 0 2px var(--color-text-secondary, #666666)!important;position:relative!important;z-index:10!important;font-weight:700!important}body.theme-light .tab-bar .tab-button.active .tab-icon,body.theme-light .tab-bar .tab-button.button--default.button--active .tab-icon,body.theme-light .tab-bar .tab-button.active .tab-text,body.theme-light .tab-bar .tab-button.button--default.button--active .tab-text{color:var(--color-text-primary, #1a1a1a)!important}body.theme-light .tab-bar .tab-button.active:before,body.theme-light .tab-bar .tab-button.button--default.button--active:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:transparent;border-radius:inherit;z-index:-1}body.theme-dark .tab-bar .tab-button,body.theme-dark .tab-bar .tab-button.button--default{background:var(--color-button-background, #252525)!important;color:var(--color-text-primary, #e0e0e0)!important;border:none!important}body.theme-dark .tab-bar .tab-button:hover,body.theme-dark .tab-bar .tab-button.button--default:hover{background:var(--color-button-hover, #333333)!important}body.theme-dark .tab-bar .tab-button.active,body.theme-dark .tab-bar .tab-button.button--default.button--active{background:var(--color-button-background, #252525)!important;color:var(--color-text-primary, #e0e0e0)!important;border:none!important;box-shadow:0 0 0 2px var(--color-text-secondary, #b0b0b0)!important;position:relative!important;z-index:10!important;font-weight:700!important}body.theme-dark .tab-bar .tab-button.active .tab-icon,body.theme-dark .tab-bar .tab-button.button--default.button--active .tab-icon,body.theme-dark .tab-bar .tab-button.active .tab-text,body.theme-dark .tab-bar .tab-button.button--default.button--active .tab-text{color:var(--color-text-primary, #e0e0e0)!important}body.theme-dark .tab-bar .tab-button.active:before,body.theme-dark .tab-bar .tab-button.button--default.button--active:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:transparent;border-radius:inherit;z-index:-1}.profile-header{position:relative;display:flex;align-items:stretch;gap:2rem;padding:2rem;background:transparent;margin-bottom:2rem;min-height:300px;border-radius:8px;max-width:1200px;margin-left:auto;margin-right:auto;z-index:1}.profile-header:before{content:"";position:absolute;top:0;left:calc(-50vw + 50%);right:calc(-50vw + 50%);height:100%;background:var(--container-background, #000000);border-radius:8px;z-index:-1}@media(min-width:769px){.profile-header-mobile{flex-direction:column;align-items:center;text-align:center;gap:1.5rem}}.profile-header-left-section{position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:center;z-index:10;width:var(--door-width, 180px);min-height:350px}.profile-header-door-frame{position:relative;width:var(--door-width, 180px);height:100%;pointer-events:none}.profile-header-door-semicircle{position:absolute;top:0;left:0;width:var(--door-width, 180px);height:var(--door-semicircle-radius, 90px);background:var(--door-color, #f0f0f0);border:none!important;border-radius:calc(var(--door-width, 180px) / 2) calc(var(--door-width, 180px) / 2) 0 0;z-index:1}.profile-header-door-rectangle{position:absolute;top:var(--door-semicircle-radius, 90px);left:0;bottom:0;width:var(--door-width, 180px);background:var(--door-color, #f0f0f0);border:none!important;border-radius:0 0 8px 8px;z-index:1}.profile-header-avatar-container{position:absolute;top:var(--avatar-offset-y, 0px);left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;justify-content:center}.profile-header-avatar{position:relative;width:calc(var(--door-avatar-radius, 60px) * 2);height:calc(var(--door-avatar-radius, 60px) * 2);border-radius:50%;object-fit:cover;border:3px solid var(--profile-pic-border-color, #cccccc)!important;box-shadow:0 2px 8px #00000026;z-index:2}.profile-header-avatar-placeholder{position:relative;width:calc(var(--door-avatar-radius, 60px) * 2);height:calc(var(--door-avatar-radius, 60px) * 2);border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff;border:3px solid var(--profile-pic-border-color, #cccccc)!important;box-shadow:0 2px 8px #00000026;z-index:2}.profile-header-bio-container{position:absolute;top:calc(var(--door-semicircle-radius, 90px) + var(--door-avatar-radius, 70px) + 20px);left:50%;transform:translate(-50%);width:calc(var(--door-width, 180px) - 30px);padding:.75rem;text-align:center;z-index:3;max-height:calc(100% - var(--door-semicircle-radius, 90px) - var(--door-avatar-radius, 70px) - 40px);overflow-y:auto}.profile-header-bio{font-size:.875rem;line-height:1.5;color:var(--color-text-secondary, #555);margin:0;margin-bottom:.5rem;word-wrap:break-word}.profile-header-link-text{font-size:.75rem;line-height:1.4;color:var(--color-secondary, #1e90ff);margin:0;word-wrap:break-word;font-weight:500;text-decoration:none;display:block;cursor:pointer;transition:color .2s}.profile-header-link-text:hover{color:#06c;text-decoration:underline}.profile-header-right-section{position:relative;flex:1;background:var(--cutout-rectangle-color, var(--color-surface-primary, #ffffff));border-radius:8px;box-shadow:var(--shadow-md, 0 2px 8px rgba(0, 0, 0, .1));padding:var(--profile-rect-padding, 2rem);min-height:var(--profile-rect-min-height, 300px);overflow:hidden}.profile-header-background-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:5;overflow:visible}.profile-header-svg-stack{position:absolute;top:calc(50% + var(--cutout-offset-y, 30px));left:50%;transform:translate(-50%,-50%);width:80%;min-width:600px;max-width:900px;height:var(--cutout-height, 240px);display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--cutout-corner-radius, 20px);z-index:10}.profile-header-svg-layer{position:absolute;width:100%;height:auto;object-fit:cover;object-position:center center;min-height:100%}.profile-header-main-rectangle{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--cutout-rectangle-color, #ffffff);pointer-events:none;z-index:1}.profile-header-cutout-window{display:none}.profile-header-info{position:relative;display:flex;flex-direction:column;gap:.5rem;z-index:10}.profile-header-info-mobile{align-items:center;width:100%}.profile-header-text-container{position:absolute;top:calc(50% + var(--cutout-offset-y, 30px) - var(--cutout-height, 240px) / 2 - 5rem);left:50%;transform:translate(-50%);display:flex!important;justify-content:space-between!important;align-items:flex-start!important;width:80%!important;min-width:600px!important;max-width:900px!important;z-index:100!important;pointer-events:auto;padding:.5rem}.profile-header-text-container>*{pointer-events:auto}.profile-header-text-container .profile-header-name{font-size:1.75rem;font-weight:700;color:var(--color-text-secondary, #333);margin:0;position:relative}.profile-header-text-container .profile-header-username{font-size:1.125rem;color:var(--color-text-secondary, #666);font-weight:500;margin-top:.25rem;position:relative}.profile-header-text-container .profile-header-username-with-name{font-size:1rem;color:var(--color-text-muted, #888);margin-top:.25rem;top:auto;position:relative}.profile-header-text-container .profile-header-username-only{font-size:1.5rem;font-weight:600;color:var(--color-text-secondary, #444);top:auto;position:relative}.profile-header-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--stat-item-gap, 16px);padding:1rem 0;transform:translateY(var(--stats-offset-y, 0px))}.profile-header-stats-four{grid-template-columns:repeat(4,1fr);gap:calc(var(--stat-item-gap, 16px) * 1.5)}.profile-header-stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--stat-label-gap, 4px);cursor:pointer;transition:transform .2s;padding:.5rem;border-radius:4px;position:relative}.profile-header-stat-item:hover{background:transparent;transform:translateY(-2px)}.profile-header-stat-item:nth-child(3),.profile-header-stat-item:nth-child(4),.profile-header-stat-item:nth-child(5){cursor:default}.profile-header-stat-item:nth-child(3):hover,.profile-header-stat-item:nth-child(4):hover,.profile-header-stat-item:nth-child(5):hover{background:transparent;transform:none}.profile-header-stat-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(60px * var(--stat-bg-scale, 1));height:calc(60px * var(--stat-bg-scale, 1));object-fit:contain;pointer-events:none;z-index:0;opacity:var(--stat-bg-opacity, .3);transition:opacity .2s;border:none;box-shadow:none;background:transparent}.theme-light .profile-header-stat-value{color:var(--stat-text-color-light)}.theme-dark .profile-header-stat-value{color:var(--stat-text-color-dark)}.profile-header-stat-value{position:relative;z-index:1;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center}.profile-header-stat-text{position:relative;z-index:2}.profile-header-stat-rating{color:var(--color-accent, #f39c12)}.profile-header-stat-label{font-size:.875rem;color:var(--color-text-secondary, #666);font-weight:700}.profile-header-stat-label:only-child{font-size:1.25rem}.profile-header-website{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-secondary, #007bff);text-decoration:none;font-size:.9375rem;transition:color .2s}.profile-header-website:hover{color:#0056b3;text-decoration:underline}.profile-header-text-container .profile-header-actions{position:relative;display:flex;gap:.75rem;z-index:20}.profile-header-edit-btn,.profile-header-follow-btn{border:2px solid transparent!important;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;outline:none!important;box-shadow:none!important;background:none;padding:0;vertical-align:middle;line-height:1}.profile-header-edit-btn{padding:.4rem .55rem .4rem .75rem;border-radius:20px;background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;border:none!important;justify-content:center;gap:0!important;display:flex;align-items:center;vertical-align:middle;line-height:1;box-shadow:none;outline:none;width:auto}.profile-header-edit-btn:hover{background:var(--color-button-hover, #ddd9ca)!important;border:none!important;transform:none;box-shadow:none!important;outline:none!important}.profile-header-edit-btn:focus,.profile-header-edit-btn:focus-visible{outline:none!important;box-shadow:none!important;border-color:transparent!important}body.theme-light .profile-header-edit-btn{background:var(--color-button-background, #ebe8dc)!important;color:var(--color-text-primary, #1a1a1a)!important;border:none!important}body.theme-light .profile-header-edit-btn:hover{background:var(--color-button-hover, #ddd9ca)!important;border:none!important}body.theme-dark .profile-header-edit-btn{color:var(--color-text-primary, #e0e0e0)!important;border:none!important}body.theme-dark .profile-header-edit-btn:hover{background:var(--color-button-hover, #333333)!important;border:none!important}.profile-header-follow-btn{padding:.625rem 1.5rem;border-radius:6px;background:var(--color-success, #28a745);color:var(--color-text-inverse, white)}.profile-header-follow-btn{background:var(--color-success, #28a745);color:var(--color-text-inverse, white)}.profile-header-follow-btn:hover:not(:disabled){background:#218838;transform:translateY(-1px);box-shadow:0 2px 8px #28a7454d}.profile-header-follow-btn-following{background:#6c757d}.profile-header-follow-btn-following:hover:not(:disabled){background:#545b62}.profile-header-follow-btn-pending{background:var(--color-warning, #ffc107);color:var(--color-text-secondary, #333)}.profile-header-follow-btn-pending:hover:not(:disabled){background:#e0a800}.profile-header-follow-btn-loading,.profile-header-follow-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.profile-header{padding:0;background:none!important}.profile-header:before{display:none!important}.profile-header-mobile-wrapper{background:var(--color-button-background)!important;border-radius:12px;overflow:visible;margin-bottom:.5rem;padding:.85rem .75rem .75rem;will-change:auto;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0)}.profile-header.profile-header-mobile{--mobile-spacing: 1rem;--mobile-svg-height: calc(clamp(110px, 26vw, 170px)*.7) ;--profile-pic-size: clamp(85px, 20vw, 130px);display:flex;flex-direction:row;align-items:stretch;gap:var(--mobile-spacing)!important;padding:0;height:auto;min-height:auto;background:none!important;box-shadow:none!important}.profile-header-mobile-right-column{flex:1 1 auto;display:flex;flex-direction:column;gap:.5rem;min-width:0;max-width:calc(100% - var(--profile-pic-size) - var(--mobile-spacing));margin-left:0!important}.profile-header-mobile .profile-header-left-section{flex-shrink:0;width:var(--profile-pic-size);height:auto;align-self:stretch;min-height:unset;display:flex;align-items:center;justify-content:center;background:none!important;box-shadow:none!important}.profile-header-mobile .profile-header-door-frame,.profile-header-mobile .profile-header-door-semicircle,.profile-header-mobile .profile-header-door-rectangle,.profile-header-mobile .profile-header-bio-container{display:none}.profile-header-mobile .profile-header-avatar-container{position:static;transform:none;width:var(--profile-pic-size);height:var(--profile-pic-size)}.profile-header-mobile .profile-header-avatar,.profile-header-mobile .profile-header-avatar-placeholder{width:var(--profile-pic-size);height:var(--profile-pic-size);border-radius:50%;border:3px solid var(--profile-pic-border-color, var(--color-primary));object-fit:cover;aspect-ratio:1 / 1}.profile-header-mobile .profile-header-avatar-placeholder{font-size:clamp(1.5rem,4.5vw,3rem)}.profile-header-mobile-right-column .profile-header-right-section{position:relative;width:100%;margin:0;height:var(--mobile-svg-height);min-height:80px;flex-shrink:0;padding:0;background:none!important;box-shadow:none!important;border-radius:8px;overflow:hidden}.profile-header-mobile-right-column .profile-header-mobile-stats-row{display:none}.profile-header-mobile-right-column .profile-header-background-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;background:none!important;overflow:hidden;border-radius:8px}.profile-header-mobile-right-column .profile-header-svg-stack{position:absolute!important;top:0;left:0;transform:none!important;width:100%!important;height:100%!important;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden}.profile-header-mobile-right-column .profile-header-svg-layer{position:static!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;transform:none!important;max-width:100%!important;max-height:100%!important}.profile-header-mobile-right-column .profile-header-main-rectangle,.profile-header-mobile-right-column .profile-header-name,.profile-header-mobile-right-column .profile-header-username,.profile-header-mobile-right-column .profile-header-actions,.profile-header-mobile-right-column .profile-header-bio,.profile-header-mobile-right-column .profile-header-info{display:none}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stats{display:flex!important;flex-direction:row;justify-content:space-between;align-items:center;gap:clamp(.5rem,2vw,1rem);padding:0;margin:0;width:100%;transform:none;background:transparent;border-radius:0}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stat-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.75rem .5rem;min-width:0;background:var(--color-surface-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stat-value{font-size:clamp(.65rem,2vw,.9rem);position:relative;display:flex;align-items:center;justify-content:center;font-weight:700}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stat-bg{display:none!important}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stat-label{font-size:clamp(.5rem,1.8vw,.7rem);font-weight:600;text-align:center;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--color-text-secondary)}.profile-header-mobile-right-column .profile-header-mobile-stats-row .profile-header-stat-label .icon{font-size:clamp(1rem,3.5vw,1.4rem)!important}.profile-header-mobile-stats-row-internal{display:flex;align-items:center;width:100%;margin:.75rem 0 0;padding:0;background:transparent}.profile-header-mobile-stats-row-internal .profile-header-stats{display:flex!important;flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;padding:0;margin:0;width:100%;transform:none;background:transparent;border-radius:0}.profile-header-mobile-stats-row-internal .profile-header-stat-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.75rem .5rem;min-width:0;background:var(--color-surface-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a}.profile-header-mobile-stats-row-internal .profile-header-stat-value{font-size:clamp(.9rem,2.5vw,1.2rem);position:relative;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-text-primary)}.profile-header-mobile-stats-row-internal .profile-header-stat-label{font-size:clamp(.65rem,2vw,.85rem);font-weight:600;text-align:center;line-height:1.2;white-space:nowrap;overflow:visible;max-width:100%;color:var(--color-text-secondary)}body.theme-dark .profile-header-mobile-stats-row-internal .profile-header-stat-item{background:#0006}.profile-header-mobile-stats-row-internal .profile-header-stat-label .icon{font-size:clamp(1.2rem,4vw,1.6rem)!important}.profile-header-bio-mobile{width:100%;background:none!important;padding:.5rem 0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.profile-header-bio-mobile-text{font-size:.9rem;line-height:1.6;color:var(--color-text-secondary);margin:0 0 .75rem;text-align:center;width:100%}.profile-header-link-mobile{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--color-secondary, #1e90ff);text-decoration:none;font-size:.875rem;font-weight:500;transition:color .2s;width:100%;text-align:center}.profile-header-link-mobile:hover{color:#06c;text-decoration:underline}}@media(max-width:480px){.profile-header-mobile{--mobile-spacing: .1rem}.profile-header-mobile .profile-header-avatar,.profile-header-mobile .profile-header-avatar-placeholder{border:2px solid var(--profile-pic-border-color, var(--color-primary))}.profile-header-mobile .profile-header-stat-bg{width:clamp(2.8rem,10vw,4.2rem)!important;height:clamp(2.8rem,10vw,4.2rem)!important}.profile-header-mobile .profile-header-stats{gap:clamp(.3rem,1.5vw,.7rem);padding:0 0 .2rem}}.user-profile-container{max-width:1200px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background);box-sizing:border-box}@media(max-width:768px){.user-profile-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);padding-top:var(--spacing-2);padding-bottom:80px;margin:0}.user-profile-header{margin-left:var(--spacing-1)!important;margin-right:var(--spacing-1)!important;border-radius:var(--border-radius-base)!important;padding:var(--spacing-4)!important}main,section,article{padding-left:var(--spacing-1)!important;padding-right:var(--spacing-1)!important}.user-profile-recipes-title,.user-profile-posts-title,.user-profile-saved-title,.user-profile-liked-title{display:none}.filter-bar-sticky-mobile{position:sticky;top:calc(var(--navbar-height-mobile) + var(--spacing-2));z-index:1100;background:transparent;padding:0;margin:0}.filter-bar-sticky-mobile .filter-bar-container{margin-bottom:.5rem;margin-top:0}.filter-bar-sticky-mobile .filter-bar-controls,.filter-bar-sticky-mobile .filter-bar-controls-mobile{margin-bottom:.5rem;margin-top:0;padding-top:.75rem;padding-bottom:.75rem;padding-left:0;padding-right:0}.filter-bar-sticky-mobile .filter-bar-search,.filter-bar-sticky-mobile .filter-bar-search-mobile,.filter-bar-sticky-mobile .filter-bar-filters,.filter-bar-sticky-mobile .filter-bar-filters-mobile{margin-bottom:.5rem;margin-top:0;padding-left:0;padding-right:0}}.user-profile-loading{padding:var(--spacing-8);text-align:center;color:var(--color-text-primary);font-size:var(--font-size-xl)}.user-profile-error{padding:var(--spacing-8);text-align:center;color:var(--color-text-primary);max-width:600px;margin:var(--spacing-8) auto}.user-profile-error h2{margin:0 0 var(--spacing-4) 0;color:var(--color-text-primary)}.user-profile-error p{margin-bottom:var(--spacing-4)}.user-profile-error-btn{margin-top:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--color-success);color:var(--color-text-primary);border:none;border-radius:var(--border-radius-base);cursor:pointer}.user-profile-header{background:var(--color-surface);border-radius:var(--border-radius-xl);padding:var(--spacing-8);margin-bottom:var(--spacing-8);display:flex;flex-direction:row;gap:var(--spacing-8);align-items:center}.user-profile-header.mobile{flex-direction:column}.user-profile-avatar-container{flex-shrink:0}.user-profile-avatar{width:150px;height:150px;border-radius:var(--border-radius-full);object-fit:cover;border:3px solid var(--color-primary)}.user-profile-avatar-placeholder{width:150px;height:150px;border-radius:var(--border-radius-full);background:var(--color-surface-secondary);display:flex;align-items:center;justify-content:center;font-size:4rem;border:3px solid var(--color-primary);color:var(--color-text-primary)}.user-profile-info{flex:1;text-align:left}.user-profile-info.mobile{text-align:center}.user-profile-name{margin:0 0 var(--spacing-1) 0;color:var(--color-text-primary);font-size:var(--font-size-3xl)}.user-profile-username{margin:0 0 var(--spacing-2) 0;color:var(--color-text-muted);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal)}.user-profile-username.with-name{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-normal)}.user-profile-username.only{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.user-profile-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-4);margin-top:var(--spacing-1);padding:var(--spacing-4);background:var(--color-surface-secondary);border-radius:var(--border-radius-xl)}.user-profile-stat-item{text-align:center;cursor:pointer;padding:var(--spacing-2);border-radius:var(--border-radius-base);transition:background var(--transition-duration-base);display:flex;flex-direction:column;justify-content:space-between;min-height:60px}.user-profile-stat-item:hover{background:var(--color-surface-hover)}.user-profile-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.user-profile-stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.user-profile-stat-rating{color:var(--color-accent)}@media(max-width:768px){.user-profile-stats{grid-template-columns:repeat(3,1fr);gap:var(--spacing-2)}}@media(max-width:480px){.user-profile-stats{grid-template-columns:repeat(2,1fr);gap:var(--spacing-2)}}.user-profile-bio{color:var(--color-text-secondary);margin:var(--spacing-2) 0 var(--spacing-1) 0;line-height:var(--line-height-relaxed)}.user-profile-website{display:inline-block;margin-top:var(--spacing-4);color:var(--color-secondary);text-decoration:none;font-size:var(--font-size-base)}.user-profile-actions{margin-top:var(--spacing-4);display:flex;gap:var(--spacing-2);flex-wrap:wrap}.user-profile-edit-btn{padding:var(--spacing-2) var(--spacing-4);background:var(--color-accent);color:var(--color-background);border:none;border-radius:var(--border-radius-base);cursor:pointer;font-weight:var(--font-weight-semibold)}.user-profile-follow-btn{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);color:var(--color-text-primary);border:none;border-radius:var(--border-radius-base);cursor:pointer;font-weight:var(--font-weight-semibold);opacity:1;transition:background var(--transition-duration-base)}.user-profile-follow-btn.following{background:var(--color-surface-secondary)}.user-profile-follow-btn.pending{background:var(--color-warning)}.user-profile-follow-btn.loading{cursor:not-allowed;opacity:.6}.user-profile-view-toggle{display:flex;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-4)}.user-profile-recipes-title{margin-bottom:var(--spacing-4);text-align:center;color:var(--color-text-primary)}.user-profile-filters{display:flex;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-8);flex-wrap:wrap;align-items:center}.user-profile-filter-select{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-button-background);color:var(--color-text-primary);cursor:pointer;transition:background .2s ease}body.theme-light .user-profile-filter-select{background:#f0f!important}.user-profile-filter-select:hover{background:var(--color-button-hover)}body.theme-light .user-profile-filter-select:hover{background:#0f0!important}.user-profile-search-input{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-button-background);color:var(--color-text-primary);width:100%;box-sizing:border-box;transition:background .2s ease}body.theme-light .user-profile-search-input{background:#f0f!important}.user-profile-search-input:hover{background:var(--color-button-hover)}body.theme-light .user-profile-search-input:hover{background:#0f0!important}.user-profile-view-buttons{display:flex;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-4)}.user-profile-view-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-button-background);color:var(--color-text-primary);cursor:pointer;height:38px;display:flex;align-items:center;gap:var(--spacing-1);transition:background .2s ease}body.theme-light .user-profile-view-btn{background:#f0f!important}.user-profile-view-btn:hover{background:var(--color-button-hover)}body.theme-light .user-profile-view-btn:hover{background:#0f0!important}.user-profile-view-btn.active{background:var(--color-primary)}.user-profile-view-btn.active:hover{background:var(--color-primary-hover)}.user-profile-favorites-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-button-background);color:var(--color-text-primary);cursor:pointer;height:38px;display:flex;align-items:center;gap:var(--spacing-1);transition:background .2s ease}body.theme-light .user-profile-favorites-btn{background:#f0f!important}.user-profile-favorites-btn:hover{background:var(--color-button-hover)}body.theme-light .user-profile-favorites-btn:hover{background:#0f0!important}.user-profile-favorites-btn.active{background:var(--color-primary)}.user-profile-favorites-btn.active:hover{background:var(--color-primary-hover)}.user-profile-recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-4)}.user-profile-recipes-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.user-profile-no-recipes{text-align:center;color:var(--color-text-muted);padding:var(--spacing-8)}.user-profile-posts-title{margin-bottom:var(--spacing-8);text-align:center;color:var(--color-text-primary)}.user-profile-posts-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.user-profile-post-item{display:flex;gap:var(--spacing-4);padding:var(--spacing-3);background:var(--color-surface);border-radius:var(--border-radius-base);min-height:120px;max-height:120px;position:relative;overflow:hidden}.user-profile-post-image-container{width:120px;min-width:120px;height:120px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--border-radius-base);background:var(--color-surface-hover);position:relative;cursor:pointer;border:2px dashed var(--color-primary)}.user-profile-post-image-container.edit{border:2px dashed var(--color-primary)}.user-profile-post-image{width:100%;height:100%;object-fit:cover;object-position:center;opacity:1}.user-profile-post-image.uploading{opacity:.5}.user-profile-post-upload-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-primary);font-size:var(--font-size-sm)}.user-profile-post-file-input{display:none}.user-profile-post-content{flex:1;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding-right:var(--spacing-8)}.user-profile-post-content.edit{overflow:visible}.user-profile-post-link{display:block;text-decoration:none;color:var(--color-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);margin-bottom:var(--spacing-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile-post-link.edit{white-space:normal;overflow:visible;text-overflow:clip}.user-profile-post-description{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis}.user-profile-post-description.edit{overflow:visible;display:block;-webkit-line-clamp:unset;line-clamp:unset;-webkit-box-orient:unset;text-overflow:clip}.user-profile-post-textarea{width:100%;min-height:60px;padding:var(--spacing-2);background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-base);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);resize:vertical;font-family:inherit}.user-profile-post-bottom{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-2);flex-wrap:wrap;gap:var(--spacing-1)}.user-profile-post-rating{display:flex;align-items:center;gap:var(--spacing-1);color:var(--color-accent);font-size:var(--font-size-xs)}.user-profile-post-actions{display:flex;align-items:center;gap:var(--spacing-3)}.user-profile-post-like-btn{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xs);display:flex;align-items:center;gap:var(--spacing-1);transition:background var(--transition-duration-base)}.user-profile-post-like-btn.liked{background:var(--color-error)}.user-profile-post-edit-btn{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);border:none;background:var(--color-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xs)}.user-profile-post-edit-actions{display:flex;gap:var(--spacing-1)}.user-profile-post-save-btn{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);border:none;background:var(--color-success);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.user-profile-post-save-btn.loading{background:var(--color-surface-secondary);cursor:not-allowed}.user-profile-post-cancel-btn{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xs)}.user-profile-post-cancel-btn.loading{cursor:not-allowed}.user-profile-post-date{font-size:var(--font-size-xs)}.user-profile-post-privacy{position:absolute;top:var(--spacing-1);right:var(--spacing-1);font-size:var(--font-size-lg);opacity:.9;color:var(--color-text-primary);background:#0009;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-base);display:flex;align-items:center}.user-profile-no-posts{text-align:center;color:var(--color-text-muted);padding:var(--spacing-8)}.user-profile-saved-title{margin-bottom:var(--spacing-4);text-align:center;color:var(--color-text-primary)}.user-profile-saved-search-container{margin-bottom:var(--spacing-4)}.user-profile-saved-view-toggle{display:flex;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-4)}.user-profile-saved-favorites-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;height:38px;display:flex;align-items:center;gap:var(--spacing-1)}.user-profile-saved-favorites-btn.active{background:var(--color-warning)}.user-profile-saved-grid-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;height:38px;display:flex;align-items:center;gap:var(--spacing-1)}.user-profile-saved-grid-btn.active{background:var(--color-primary)}.user-profile-saved-list-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius-base);border:none;background:var(--color-surface-secondary);color:var(--color-text-primary);cursor:pointer;height:38px;display:flex;align-items:center;gap:var(--spacing-1)}.user-profile-saved-list-btn.active{background:var(--color-primary)}.user-profile-saved-filters{margin-bottom:var(--spacing-8);display:flex;flex-wrap:wrap;gap:var(--spacing-4);align-items:center;justify-content:center}.user-profile-saved-filter-select{padding:var(--spacing-2);border-radius:var(--border-radius-base);border:1px solid var(--color-border);background:var(--color-surface-tertiary);color:var(--color-text-primary)}.user-profile-saved-no-recipes{text-align:center;color:var(--color-text-muted);padding:var(--spacing-8)}.user-profile-saved-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-4)}.user-profile-saved-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.user-profile-liked-title{margin-bottom:var(--spacing-4);text-align:center;color:var(--color-text-primary)}.user-profile-liked-no-recipes{text-align:center;color:var(--color-text-muted);padding:var(--spacing-8)}.user-profile-liked-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-4)}.user-profile-liked-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.user-profile-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--modal-backdrop);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-backdrop);padding:var(--spacing-4)}.user-profile-modal-backdrop.on-click{cursor:pointer}.user-profile-modal{background:var(--modal-background);border-radius:var(--modal-border-radius);width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;border:1px solid var(--color-border);box-shadow:var(--modal-shadow)}.user-profile-modal.on-click{cursor:default}.user-profile-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-6);border-bottom:1px solid var(--color-border)}.user-profile-modal-title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-2xl)}.user-profile-modal-close{background:none;border:none;font-size:var(--font-size-3xl);color:var(--color-text-muted);cursor:pointer;padding:0;width:var(--font-size-3xl);height:var(--font-size-3xl);display:flex;align-items:center;justify-content:center}.user-profile-modal-content{flex:1;overflow-y:auto;padding:var(--spacing-4)}.user-profile-modal-loading{text-align:center;color:var(--color-text-muted)}.user-profile-modal-empty{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-8)}.user-profile-modal-users{display:flex;flex-direction:column;gap:var(--spacing-3)}.user-profile-modal-user{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3);background:var(--color-surface-hover);border-radius:var(--border-radius-xl);cursor:pointer;transition:background var(--transition-duration-base)}.user-profile-modal-user:hover{background:var(--color-surface)}.user-profile-modal-avatar{width:3rem;height:3rem;border-radius:var(--border-radius-full);background:linear-gradient(135deg,#d95d39,#e67e50);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);flex-shrink:0;overflow:hidden}.user-profile-modal-avatar img{width:100%;height:100%;object-fit:cover}.user-profile-modal-info{flex:1}.user-profile-modal-username{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}@media(max-width:768px){.user-profile-container{padding-bottom:80px!important;padding-top:0!important}.tab-bar.mobile-sticky-footer{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--color-background);border-top:1px solid var(--color-border);box-shadow:0 -2px 4px #0000001a}}.user-profile-load-more{display:flex;justify-content:center;margin-top:var(--spacing-8);margin-bottom:var(--spacing-4);padding:var(--spacing-4)}.user-profile-loading-more{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-base);margin:0;padding:var(--spacing-4)}.user-profile-end-message{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-base)}.user-profile-end-message p{margin:0}.notifications-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--modal-overlay, rgba(0, 0, 0, .7));display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.notifications-container{background:var(--color-surface-primary, #1a1a1a);border-radius:12px;width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--modal-shadow, 0 4px 20px rgba(0, 0, 0, .5));border:1px solid var(--color-border, #2c2c2c)}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border, #2c2c2c)}.notifications-header h2{margin:0;font-size:1.5rem;color:var(--color-text-primary, #fff)}.close-btn{background:none;border:none;font-size:2rem;color:var(--color-text-muted, #999);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-btn:hover{color:var(--color-text-primary, #fff)}.notifications-tabs{display:flex;border-bottom:1px solid var(--color-border, #2c2c2c);background:var(--color-surface-secondary, #0f0f0f)}.notifications-tabs .tab{flex:1;padding:1rem;background:none;border:none;font-size:.95rem;font-weight:500;color:var(--color-text-muted, #999);cursor:pointer;position:relative;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.notifications-tabs .tab:hover{background:var(--color-hover, rgba(0, 0, 0, .05));color:var(--color-text-primary, #fff)}.notifications-tabs .tab.active{color:var(--color-primary, #d95d39);background:var(--color-hover, rgba(0, 0, 0, .05));border-bottom:2px solid var(--color-primary, #d95d39)}.tab-badge{background:var(--color-primary, #d95d39);color:var(--color-text-inverse, white);font-size:.75rem;padding:.15rem .5rem;border-radius:12px;min-width:1.25rem;text-align:center}.notifications-content{flex:1;overflow-y:auto;padding:0}.notifications-list{display:flex;flex-direction:column}.notifications-loading{padding:2rem;text-align:center;color:var(--color-text-muted, #999)}.no-notifications{padding:3rem 2rem;text-align:center;color:var(--color-text-muted, #666);font-size:.95rem}.notification-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border, #2c2c2c);transition:background .2s;cursor:pointer}.notification-item:hover{background:var(--color-hover, rgba(0, 0, 0, .05))}.notification-item:last-child{border-bottom:none}.notification-avatar{width:3rem;height:3rem;border-radius:50%;background:linear-gradient(135deg,#d95d39,#e67e50);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.25rem;flex-shrink:0;overflow:hidden}.notification-avatar img{width:100%;height:100%;object-fit:cover}.notification-content{flex:1;min-width:0}.notification-content p{margin:0 0 .25rem;font-size:.95rem;color:var(--color-text-primary, #fff);line-height:1.4}.notification-content strong{font-weight:600;color:var(--color-primary, #d95d39)}.notification-time{font-size:.85rem;color:var(--color-text-muted, #666)}.notification-delete{background:none;border:none;font-size:1.5rem;color:var(--color-text-muted, #666);cursor:pointer;padding:.25rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}.notification-delete:hover{background:var(--color-hover, rgba(0, 0, 0, .05));color:var(--color-text-secondary, #999)}.follow-request-item{cursor:default}.follow-request-actions{display:flex;gap:.5rem;flex-shrink:0}.follow-request-actions button{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary{background:var(--color-surface-tertiary, #3c3c3c);color:var(--color-text-primary, #fff)}.btn-secondary:hover{background:var(--color-surface-secondary, #2c2c2c)}.btn-approve{background:var(--color-primary, #d95d39);color:var(--color-text-inverse, white)}.btn-approve:hover{opacity:.9}.btn-reject{background:var(--color-surface-secondary, #2c2c2c);color:var(--color-text-muted, #999)}.btn-reject:hover{background:var(--color-surface-tertiary, #3c3c3c);color:var(--color-text-primary, #fff)}.btn-approve:disabled,.btn-reject:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-approve:disabled:hover,.btn-reject:disabled:hover,.btn-secondary:disabled:hover{opacity:.5}@media(max-width:768px){.notifications-container{max-height:90vh;border-radius:12px 12px 0 0}.notifications-header{padding:1rem}.notifications-tabs .tab{font-size:.85rem;padding:.75rem .5rem}.notification-item{padding:1rem;gap:.75rem}.notification-avatar{width:2.5rem;height:2.5rem;font-size:1rem}.notification-content p{font-size:.9rem}.follow-request-actions{flex-direction:column;gap:.25rem}.follow-request-actions button{padding:.4rem .75rem;font-size:.8rem}}.agreement-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--color-background, linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%))}.agreement-content{background:var(--color-surface, white);padding:3rem;border-radius:12px;box-shadow:0 10px 40px #0000001a;max-width:700px;width:100%}.agreement-content h1{font-size:2rem;color:var(--color-text-primary, #2c3e50);margin-bottom:1rem;text-align:center}.intro{font-size:1.1rem;line-height:1.6;color:var(--color-text-secondary, #5a6c7d);text-align:center;margin-bottom:2rem}.agreement-section{background:var(--color-surface-secondary, #f8f9fa);border-radius:8px;padding:2rem;margin-bottom:2rem}.checkbox-item{display:flex;align-items:flex-start;margin-bottom:1.5rem;padding:1rem;background:var(--color-surface, white);border-radius:8px;border:2px solid var(--color-border, #e9ecef);transition:all .3s ease}.checkbox-item:hover{border-color:var(--color-primary, #e74c3c);box-shadow:0 2px 8px #e74c3c1a}.checkbox-item:last-child{margin-bottom:0}.checkbox-item input[type=checkbox]{margin-right:1rem;margin-top:.25rem;width:20px;height:20px;cursor:pointer;flex-shrink:0}.checkbox-item label{display:flex;flex-direction:column;cursor:pointer;flex:1}.checkbox-label{font-size:1.05rem;color:var(--color-text-primary, #2c3e50);font-weight:500;margin-bottom:.5rem}.checkbox-label a{color:var(--color-primary, #e74c3c);text-decoration:none;font-weight:600}.checkbox-label a:hover{text-decoration:underline}.checkbox-description{font-size:.9rem;color:var(--color-text-muted, #7f8c8d);font-style:italic}.important-notice{background:var(--color-surface-tertiary, #fff9e6);border-left:4px solid var(--color-warning, #ffc107);padding:1.5rem;border-radius:8px;margin-bottom:2rem}.important-notice h3{margin-top:0;margin-bottom:1rem;color:var(--color-warning, #f39c12);font-size:1.2rem}.important-notice ul{margin:0;padding-left:1.5rem;line-height:1.8}.important-notice li{margin-bottom:.5rem;color:var(--color-text-secondary, #5a6c7d)}.important-notice li:last-child{margin-bottom:0}.important-notice strong{color:var(--color-text-primary, #2c3e50)}.agreement-actions{display:flex;gap:1rem;margin-bottom:1.5rem}.accept-button{flex:1;padding:1rem 2rem;font-size:1.1rem;font-weight:600;background:#28a745;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease}.accept-button:hover:not(.disabled){background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.accept-button.disabled{background:var(--color-text-disabled, #95a5a6);cursor:not-allowed;opacity:.6}.decline-button{padding:1rem 2rem;font-size:1.1rem;font-weight:600;background:transparent;color:var(--color-error, #dc3545);border:2px solid var(--color-error, #dc3545);border-radius:8px;cursor:pointer;transition:all .3s ease}.decline-button:hover{background:var(--color-error, #dc3545);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.footer-note{font-size:.9rem;color:var(--color-text-muted, #7f8c8d);text-align:center;line-height:1.6;margin:0}@media(max-width:768px){.agreement-container{padding:1rem}.agreement-content{padding:2rem 1.5rem}.agreement-content h1{font-size:1.6rem}.intro{font-size:1rem}.agreement-section{padding:1.5rem}.checkbox-item{padding:.75rem}.checkbox-label{font-size:1rem}.agreement-actions{flex-direction:column}.accept-button,.decline-button{width:100%;padding:.875rem;font-size:1rem}}.account-setup-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:2rem;background:var(--color-background, linear-gradient(135deg, #667eea 0%, #764ba2 100%))}.account-setup-card{background:var(--color-surface, white);border-radius:12px;padding:3rem;max-width:500px;width:100%;box-shadow:0 10px 40px #0003;text-align:center}.account-setup-title{font-size:2rem;font-weight:700;color:var(--color-text-primary, #333);margin-bottom:1.5rem}.account-setup-icon{font-size:4rem;margin:1.5rem 0}.account-setup-message{font-size:1.1rem;color:var(--color-text-secondary, #666);margin-bottom:2rem;line-height:1.6}.account-setup-info{background:var(--color-surface-secondary, #f8f9fa);border-radius:8px;padding:1.5rem;margin-bottom:2rem;text-align:left}.account-setup-info p{margin:.5rem 0;color:var(--color-text-primary, #333)}.account-setup-info strong{color:var(--color-primary, #667eea)}.account-setup-hint{font-size:.9rem;color:var(--color-text-muted, #999);font-style:italic}.account-setup-actions{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.account-setup-continue-btn{background:var(--color-primary, #667eea);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.account-setup-continue-btn:hover{background:var(--color-primary-dark, #5568d3);transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.account-setup-skip-btn{background:transparent;color:var(--color-text-muted, #999);border:1px solid var(--color-border, #ddd);padding:.8rem 2rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.account-setup-skip-btn:hover{border-color:var(--color-border-hover, #999);color:var(--color-text-secondary, #666)}.account-setup-footer{font-size:.85rem;color:var(--color-text-muted, #999);margin-top:1.5rem}@media(max-width:768px){.account-setup-container{padding:1rem}.account-setup-card{padding:2rem 1.5rem}.account-setup-title{font-size:1.5rem}.account-setup-icon{font-size:3rem}.account-setup-message{font-size:1rem}}.migration-tools-container{max-width:800px;margin:0 auto;padding:var(--spacing-6)}.migration-tools-container h1{color:var(--text-primary);margin-bottom:var(--spacing-4);text-align:center}.migration-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-4);margin-bottom:var(--spacing-4)}.migration-section h2{color:var(--text-primary);margin-bottom:var(--spacing-2)}.migration-description{color:var(--text-secondary);margin-bottom:var(--spacing-4);line-height:var(--line-height-relaxed)}.migration-description code{background:var(--background);padding:2px 6px;border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:.9em}.migration-actions{display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.migration-status{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);background:var(--info-bg, #e3f2fd);border:1px solid var(--info-border, #90caf9);border-radius:var(--radius-md);margin-bottom:var(--spacing-4)}.migration-spinner{width:20px;height:20px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.migration-result{padding:var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-4)}.migration-result.success{background:var(--success-bg, #e8f5e9);border:1px solid var(--success-border, #81c784);color:var(--success-text, #2e7d32)}.migration-result.error{background:var(--error-bg, #ffebee);border:1px solid var(--error-border, #ef5350);color:var(--error-text, #c62828)}.migration-result h3{margin-bottom:var(--spacing-2)}.migration-result ul{list-style:none;padding-left:0}.migration-result li{padding:var(--spacing-1) 0}.migration-instructions{background:var(--background);padding:var(--spacing-3);border-radius:var(--radius-md);border:1px solid var(--border)}.migration-instructions h3{color:var(--text-primary);margin-bottom:var(--spacing-2);font-size:1rem}.migration-instructions ol{margin-left:var(--spacing-4);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.migration-instructions li{margin-bottom:var(--spacing-2)}.migration-note{margin-top:var(--spacing-3);padding:var(--spacing-2);background:var(--warning-bg, #fff3e0);border-left:3px solid var(--warning-border, #ffb74d);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem}.migration-note strong{color:var(--text-primary)}.lists-container{max-width:1000px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}@media(max-width:767px){.lists-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);padding-top:var(--spacing-2);margin:0}.lists-title{display:none}}.lists-header{margin-bottom:var(--spacing-6);text-align:center}.lists-title{margin:0;font-size:var(--font-size-3xl);color:var(--color-text-primary)}.lists-loading{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-lg)}.lists-error{background:var(--color-error-bg, #f443361a);border:1px solid var(--color-error, #f44336);color:var(--color-error);padding:var(--spacing-4);border-radius:var(--border-radius-base);margin-bottom:var(--spacing-4);text-align:center}.lists-empty{text-align:center;padding:var(--spacing-8);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.lists-empty .icon{font-size:4rem;color:var(--color-text-muted);opacity:.5}.lists-empty h2{margin:0;color:var(--color-text-primary);font-size:var(--font-size-2xl)}.lists-empty p{margin:0;color:var(--color-text-muted);font-size:var(--font-size-base);max-width:400px}.lists-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.lists-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.lists-list-item:hover{background:var(--color-surface-hover);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.lists-list-item-main{display:flex;align-items:center;gap:var(--spacing-4);flex:1}.lists-list-item-icon{width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border-radius:var(--border-radius-base);font-size:var(--font-size-2xl);color:var(--color-primary);flex-shrink:0}.lists-list-item-info{flex:1;min-width:0}.lists-list-item-name{margin:0 0 var(--spacing-1) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lists-list-item-meta{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.lists-list-item-date,.lists-list-item-count{white-space:nowrap}.lists-list-item-separator{color:var(--color-text-muted)}.lists-list-item-arrow{display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);color:var(--color-text-muted);flex-shrink:0}@media(max-width:768px){.lists-title{font-size:var(--font-size-2xl)}.lists-list-item{padding:var(--spacing-3)}.lists-list-item-main{gap:var(--spacing-3)}.lists-list-item-icon{width:2.5rem;height:2.5rem;font-size:var(--font-size-xl)}.lists-list-item-name{font-size:var(--font-size-base)}.lists-list-item-meta{font-size:var(--font-size-xs);gap:var(--spacing-1);flex-wrap:wrap}}.list-detail-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}@media(max-width:767px){.list-detail-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);padding-top:var(--spacing-2);margin:0}}.list-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.list-detail-back-link{color:var(--color-primary);text-decoration:none;background:none;border:none;font-size:var(--font-size-base);cursor:pointer;padding:0;font-family:inherit}.list-detail-back-link:hover{text-decoration:underline}.list-detail-shared{color:var(--color-text-muted);font-size:var(--font-size-sm)}.list-detail-shared-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-semibold)}.list-detail-shared-link:hover{text-decoration:underline}.list-detail-title-section{text-align:center;margin-bottom:var(--spacing-6)}.list-detail-title{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-3xl);color:var(--color-text-primary)}.list-detail-meta{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.list-detail-meta-separator{color:var(--color-text-muted)}.list-detail-actions{display:flex;gap:var(--spacing-3);justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:var(--spacing-6)}.list-detail-recipes{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);padding:var(--spacing-4);margin-bottom:var(--spacing-6)}.list-detail-recipes-title{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.list-detail-recipes-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.list-detail-recipe-item{display:flex;align-items:center;gap:var(--spacing-2)}.list-detail-recipe-number{font-weight:var(--font-weight-bold);color:var(--color-primary);min-width:1.5rem}.list-detail-recipe-link{color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-duration-base)}.list-detail-recipe-link:hover{color:var(--color-primary);text-decoration:underline}.list-detail-filter{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap}.list-detail-filter-label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.list-detail-filter-select{flex:1;max-width:300px;padding:var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-base);cursor:pointer}.list-detail-filter-select:focus{outline:none;border-color:var(--color-primary)}.list-detail-ingredients{margin-bottom:var(--spacing-6)}.list-detail-ingredients-title{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.list-detail-empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-4)}.list-detail-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-base);overflow:hidden;box-shadow:0 2px 8px #0000001a}.list-detail-row{opacity:1;text-decoration:none;transition:all var(--transition-duration-base) var(--transition-timing-in-out)}.list-detail-row:hover{background:var(--color-surface-hover)}.list-detail-row.checked{opacity:.5;text-decoration:line-through;background:var(--color-surface-secondary)}.list-detail-cell{padding:var(--spacing-3) var(--spacing-4);border-bottom:var(--border-width-thin) solid var(--color-border);vertical-align:middle}.list-detail-row:last-child .list-detail-cell{border-bottom:none}.list-detail-checkbox-cell{width:40px;text-align:center}.list-detail-checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}.list-detail-recipe-cell{width:80px;color:var(--color-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.list-detail-name-cell{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.list-detail-quantity-cell{text-align:right;color:var(--color-text-muted);font-family:var(--font-family-mono);white-space:nowrap;min-width:100px}.list-detail-loading{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-lg)}.list-detail-error{background:var(--color-error-bg, #f443361a);border:1px solid var(--color-error, #f44336);color:var(--color-error);padding:var(--spacing-4);border-radius:var(--border-radius-base);margin-bottom:var(--spacing-4);text-align:center}.list-detail-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-backdrop);padding:var(--spacing-4)}.list-detail-modal{background:var(--modal-background);border-radius:var(--modal-border-radius);width:100%;max-width:500px;border:1px solid var(--color-border);box-shadow:var(--modal-shadow)}.list-detail-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-6);border-bottom:1px solid var(--color-border)}.list-detail-modal-title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-2xl)}.list-detail-modal-close{background:none;border:none;font-size:var(--font-size-3xl);color:var(--color-text-muted);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.list-detail-modal-close:hover{color:var(--color-text-primary)}.list-detail-modal-content{padding:var(--spacing-6)}.list-detail-modal-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.list-detail-modal-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-base);margin-bottom:var(--spacing-4);box-sizing:border-box}.list-detail-modal-input:focus{outline:none;border-color:var(--color-primary)}.list-detail-modal-actions{display:flex;gap:var(--spacing-2);justify-content:flex-end}@media(max-width:768px){.list-detail-title{font-size:var(--font-size-2xl)}.list-detail-actions{gap:var(--spacing-2)}.list-detail-filter{flex-direction:column;align-items:stretch}.list-detail-filter-select{max-width:none}.list-detail-modal{max-width:95vw}.list-detail-modal-header,.list-detail-modal-content{padding:var(--spacing-4)}.list-detail-modal-actions{flex-direction:column}.list-detail-recipes{padding:var(--spacing-3)}.list-detail-cell{padding:var(--spacing-2) var(--spacing-3)}.list-detail-recipe-cell{width:60px}.list-detail-quantity-cell{min-width:80px;font-size:var(--font-size-sm)}}.list-form-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}@media(max-width:767px){.list-form-container{padding-left:var(--spacing-1);padding-right:var(--spacing-1);padding-top:var(--spacing-2);margin:0}}.list-form-header{margin-bottom:var(--spacing-4)}.list-form-back-link{color:var(--color-primary);text-decoration:none;background:none;border:none;font-size:var(--font-size-base);cursor:pointer;padding:0;font-family:inherit}.list-form-back-link:hover{text-decoration:underline}.list-form-title{margin:0 0 var(--spacing-6) 0;font-size:var(--font-size-3xl);color:var(--color-text-primary);text-align:center}.list-form-loading{text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--font-size-lg)}.list-form-error{background:var(--color-error-bg, #f443361a);border:1px solid var(--color-error, #f44336);color:var(--color-error);padding:var(--spacing-4);border-radius:var(--border-radius-base);margin-bottom:var(--spacing-4);text-align:center}.list-form-section{margin-bottom:var(--spacing-8)}.list-form-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-base)}.list-form-section-title{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.list-form-section-description{margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.list-form-recipes{display:flex;flex-direction:column;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.list-form-recipe-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base)}.list-form-recipe-number{font-weight:var(--font-weight-bold);color:var(--color-primary);min-width:1.5rem;flex-shrink:0}.list-form-recipe-name{flex:1;color:var(--color-text-primary)}.list-form-recipe-remove{background:none;border:none;color:var(--color-error);cursor:pointer;padding:var(--spacing-1);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-base);transition:background var(--transition-duration-base);flex-shrink:0}.list-form-recipe-remove:hover{background:var(--color-error-bg, #f443361a)}.list-form-ingredients{display:flex;flex-direction:column;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.list-form-ingredient-item{display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);position:relative}.list-form-ingredient-main{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2)}.list-form-ingredient-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);flex:1}.list-form-ingredient-quantity{color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.list-form-ingredient-meta{display:flex;flex-direction:column;gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-text-muted)}.list-form-ingredient-recipe{color:var(--color-primary)}.list-form-ingredient-note{font-style:italic}.list-form-ingredient-remove{position:absolute;top:var(--spacing-2);right:var(--spacing-2);background:none;border:none;color:var(--color-error);cursor:pointer;padding:var(--spacing-1);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-base);transition:background var(--transition-duration-base)}.list-form-ingredient-remove:hover{background:var(--color-error-bg, #f443361a)}.list-form-add-row{display:flex;gap:var(--spacing-2);align-items:flex-end}.list-form-add-row input,.list-form-add-row .input-wrapper{flex:1}.list-form-add-ingredient{display:flex;flex-direction:column;gap:var(--spacing-2)}.list-form-select{flex:1;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-base);cursor:pointer}.list-form-select:focus{outline:none;border-color:var(--color-primary)}.list-form-actions{display:flex;gap:var(--spacing-3);justify-content:center;margin-top:var(--spacing-8);padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}@media(max-width:768px){.list-form-title{font-size:var(--font-size-2xl)}.list-form-add-row{flex-direction:column;align-items:stretch}.list-form-actions{flex-direction:column}.list-form-ingredient-item{padding-right:var(--spacing-8)}}.static-page-container{max-width:800px;margin:0 auto;padding:var(--spacing-8);min-height:100vh;background:var(--color-background)}.static-page-content{background:var(--color-surface);border-radius:var(--border-radius-lg);padding:var(--spacing-8);box-shadow:0 2px 8px #0000001a}.static-page-title{margin:0 0 var(--spacing-6) 0;font-size:var(--font-size-3xl);color:var(--color-text-primary);text-align:center}.static-page-subtitle{margin:var(--spacing-6) 0 var(--spacing-3) 0;font-size:var(--font-size-xl);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.static-page-section{margin-bottom:var(--spacing-6)}.static-page-text{margin:var(--spacing-3) 0;font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-primary)}.static-page-link{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.static-page-link:hover{color:var(--color-primary-dark);text-decoration:underline}.static-page-list{margin:var(--spacing-3) 0;padding-left:var(--spacing-6);color:var(--color-text-primary);line-height:1.8}.static-page-list li{margin-bottom:var(--spacing-2)}@media(max-width:767px){.static-page-container{padding:var(--spacing-4) var(--spacing-2)}.static-page-content{padding:var(--spacing-4)}.static-page-title{display:none}.static-page-subtitle{font-size:var(--font-size-lg)}}.terms-container{max-width:900px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 200px)}.terms-content{background:var(--color-surface, white);padding:2.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.terms-content h1{font-size:2.5rem;color:var(--color-text-primary, #2c3e50);margin-bottom:.5rem;text-align:center}.terms-content section{margin-bottom:2.5rem}.terms-content h2{font-size:1.5rem;color:var(--color-text-secondary, #34495e);margin-top:2rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-primary, #e74c3c)}.terms-content h3{font-size:1.2rem;color:var(--color-text-primary, #2c3e50);margin-top:1.5rem;margin-bottom:.75rem}.terms-content p{line-height:1.8;color:var(--color-text-secondary, #34495e);margin-bottom:1rem}.terms-content ul,.terms-content ol{margin:1rem 0 1rem 1.5rem;line-height:1.8;color:var(--color-text-secondary, #34495e)}.terms-content li{margin-bottom:.5rem}.terms-content a{color:var(--color-primary, #e74c3c);text-decoration:none;font-weight:500}.terms-content a:hover{text-decoration:underline}.terms-content strong{color:var(--color-text-primary, #2c3e50);font-weight:600}.acknowledgment{background:var(--color-surface-secondary, #fff5f5);border-left:4px solid var(--color-primary, #e74c3c);padding:1.5rem;margin-top:3rem;border-radius:4px}.acknowledgment p{margin:0;font-size:1.05rem}@media(max-width:768px){.terms-container{padding:1rem .5rem}.terms-content{padding:1.5rem}.terms-content h1{font-size:2rem}.terms-content h2{font-size:1.3rem}.terms-content h3{font-size:1.1rem}}.guidelines-container{max-width:1000px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 200px)}.guidelines-content{background:var(--color-surface, white);padding:2.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.guidelines-content h1{font-size:2.5rem;color:var(--color-text-primary, #2c3e50);margin-bottom:.5rem;text-align:center}.last-updated{text-align:center;color:var(--color-text-muted, #7f8c8d);font-size:.9rem;margin-bottom:2rem}.intro-section{background:linear-gradient(135deg,#fff5f5,#ffe8e8);border-left:4px solid #e74c3c;padding:1.5rem;margin-bottom:2.5rem;border-radius:8px}.intro{font-size:1.1rem;line-height:1.8;color:var(--color-text-primary, #2c3e50);margin-bottom:1rem}.intro:last-child{margin-bottom:0}.guidelines-content section{margin-bottom:2.5rem}.guidelines-content h2{font-size:1.6rem;color:var(--color-text-secondary, #34495e);margin-top:2rem;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-primary, #e74c3c)}.guidelines-content h3{font-size:1.2rem;color:var(--color-text-primary, #2c3e50);margin-top:1.5rem;margin-bottom:.75rem}.guidelines-content p{line-height:1.8;color:var(--color-text-secondary, #34495e);margin-bottom:1rem}.guidelines-content ul,.guidelines-content ol{margin:1rem 0 1rem 1.5rem;line-height:1.8;color:var(--color-text-secondary, #34495e)}.guidelines-content li{margin-bottom:.5rem}.guidelines-content a{color:#e74c3c;text-decoration:none;font-weight:500}.guidelines-content a:hover{text-decoration:underline}.guidelines-content strong{color:var(--color-text-primary, #2c3e50);font-weight:600}.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin:1.5rem 0}.value-card{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-top:3px solid #e74c3c;text-align:center}.value-card h3{margin:0 0 .5rem;color:#e74c3c;font-size:1.2rem}.value-card p{margin:0;font-size:.95rem;color:#5a6c7d}.prohibited-section{background:#fff9f9;border:2px solid #ffcccb;border-radius:8px;padding:2rem;margin:2rem 0}.prohibited-section h2{border-bottom-color:#dc3545;color:#dc3545}.prohibited-item{background:var(--color-surface, white);padding:1.5rem;border-left:4px solid #dc3545;margin-bottom:1.5rem;border-radius:4px}.prohibited-item:last-child{margin-bottom:0}.prohibited-item h3{color:#dc3545;margin-top:0}.rule-reason{background:#fff5f5;padding:1rem;border-radius:4px;margin-top:1rem;font-style:italic}.encouraged-item{background:#f0f9ff;border-left:4px solid #28a745;padding:1.5rem;margin-bottom:1.5rem;border-radius:4px}.encouraged-item h3{color:#28a745;margin-top:0}.closing-section{background:linear-gradient(135deg,#fff9e6,#ffe8b3);border:2px solid #ffc107;border-radius:8px;padding:2rem;text-align:center}.closing-section h2{border-bottom:none;color:#f39c12;margin-top:0}.closing-section p{font-size:1.1rem;margin-bottom:1rem}.contact-section{background:#e8f5e9;padding:1.5rem;border-radius:8px;border-left:4px solid #4caf50}.acknowledgment{background:#fff5f5;border-left:4px solid #e74c3c;padding:1.5rem;margin-top:3rem;border-radius:4px}.acknowledgment p{margin-bottom:1rem;font-size:1.05rem}.acknowledgment p:last-child{margin-bottom:0}.thank-you{text-align:center;font-size:1.2rem!important;color:#e74c3c;font-weight:600;margin-top:1rem!important}@media(max-width:768px){.guidelines-container{padding:1rem .5rem}.guidelines-content{padding:1.5rem}.guidelines-content h1{font-size:2rem}.guidelines-content h2{font-size:1.4rem}.guidelines-content h3{font-size:1.1rem}.values-grid{grid-template-columns:1fr}.intro,.closing-section p{font-size:1rem}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface-primary);color:var(--color-text-primary);cursor:pointer;transition:all .3s ease;padding:0;line-height:0}.theme-toggle>*{display:flex;align-items:center;justify-content:center;line-height:0}.theme-toggle:hover{background:var(--color-hover);border-color:var(--color-border-dark);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle:disabled{opacity:.5;cursor:not-allowed}.theme-toggle svg,.theme-toggle img{width:20px;height:20px;transition:transform .3s ease;display:block;margin:0;padding:0}.theme-toggle:hover svg,.theme-toggle:hover img{transform:rotate(20deg)}.theme-light .theme-toggle{box-shadow:0 2px 4px #0000001a}.theme-dark .theme-toggle{box-shadow:0 2px 4px #0000004d}:root{--navbar-height-desktop: 64px;--navbar-height-mobile: 52px}body{padding-top:var(--navbar-height-desktop)}@media(max-width:767px){body{padding-top:var(--navbar-height-mobile)}}.navbar{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;z-index:1200;flex-wrap:wrap;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);min-height:var(--navbar-height-desktop);background:var(--color-background);border-bottom:none;box-shadow:none;box-sizing:border-box}body.theme-light .navbar{box-shadow:none}.navbar__links{display:flex;gap:var(--spacing-4);flex-wrap:wrap;justify-content:center}.navbar__link{color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius-base);transition:var(--transition-fast)}.navbar__link:hover{color:var(--color-primary)}.navbar__link--active{font-weight:700;font-size:1.1em;color:var(--color-primary)}.navbar__user{position:absolute;right:var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--color-surface-secondary);border-radius:var(--border-radius-base);font-size:var(--font-size-sm)}body.theme-dark .navbar__user{background:transparent}.navbar__user-dropdown{position:relative}.navbar__user-menu{position:absolute;top:calc(100% + var(--spacing-2));right:0;display:flex;flex-direction:column;min-width:220px;padding:var(--spacing-2) 0;background:var(--color-surface-primary);border-radius:var(--border-radius-lg);box-shadow:0 16px 32px #0000001f;border:1px solid var(--color-border);z-index:1600}body.theme-light .navbar__user-menu{background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 16px 24px #00000014}body.theme-dark .navbar__user-menu{background:#121212f2;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 36px #0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.navbar__user-menu-item{display:flex;align-items:center;gap:var(--spacing-2);padding:calc(var(--spacing-2) + 2px) var(--spacing-4);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);line-height:1.2;transition:background var(--transition-fast),color var(--transition-fast);cursor:pointer}.navbar__user-menu-item span{flex:1;text-align:left}.navbar__user-menu-item svg,.navbar__user-menu-item img{width:1.1rem;height:1.1rem}.navbar__user-trigger{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--color-surface-primary);border:none;border-radius:var(--border-radius-base);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:var(--transition-fast)}.navbar__user-trigger:hover{background:var(--color-hover)}.navbar__username{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar__user-menu-item:hover{background:var(--color-surface-hover)}.navbar__user-menu-item--logout{color:var(--color-error)}.navbar__user-menu-item--logout:hover{background:var(--color-error-light);color:var(--color-error-dark)}.navbar__notification-btn{position:relative}.navbar__user .icon-button{line-height:0;border:2px solid transparent!important;background:var(--color-surface-secondary)!important;box-shadow:none!important;outline:none!important;width:40px!important;height:32px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.navbar__user .icon-button:hover{background:var(--color-surface-hover)!important;border:2px solid transparent!important;box-shadow:none!important}body.theme-light .navbar__user .icon-button{background:#ebe8dc!important}body.theme-light .navbar__user .icon-button:hover{background:#ddd9ca!important}body.theme-light .theme-toggle{background:#ebe8dc!important;border:none!important}body.theme-light .navbar__user-trigger{background:#ebe8dc!important}body.theme-light .theme-toggle:hover{background:#ddd9ca!important;transform:none!important}body.theme-light .navbar__user-trigger:hover{background:#ddd9ca!important}.navbar__user .icon-button:focus,.navbar__user .icon-button:focus-visible,.navbar__user .icon-button:active{box-shadow:none!important;outline:none!important}.navbar__profile-btn .icon-button{border-radius:20px!important}.theme-toggle,.navbar__notification-btn.icon-button{border-radius:50%!important;width:32px!important;height:32px!important;border:none!important}.theme-toggle,.navbar__notification-btn.icon-button{display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important}.theme-toggle>*,.navbar__notification-btn.icon-button>*{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;padding:0!important}.theme-toggle:hover,.navbar__notification-btn.icon-button:hover{transform:none!important}.navbar__mobile-user .icon-button{border:1px solid var(--color-border)!important;background:var(--color-surface-primary)!important;box-shadow:none!important;outline:none!important}.navbar__mobile-user .icon-button:hover{background:var(--color-hover)!important;border-color:var(--color-border-dark)!important;box-shadow:none!important}.navbar__mobile-user .icon-button:focus,.navbar__mobile-user .icon-button:focus-visible,.navbar__mobile-user .icon-button:active{box-shadow:none!important;outline:none!important}.navbar__user .icon-button>*{line-height:0}.navbar__user .icon,.navbar__mobile-user .icon{display:flex!important;align-items:center!important;justify-content:center!important;line-height:0!important}.navbar__user .icon svg,.navbar__mobile-user .icon svg,.navbar__user .icon img,.navbar__mobile-user .icon img{display:block;margin:0 auto}.navbar__mobile{display:none}.navbar__mobile-btn .icon-button{border:1px solid var(--color-border)!important;background:var(--color-surface-primary)!important;box-shadow:none!important}.navbar__mobile-dropdown,.navbar__mobile-profile-dropdown{position:fixed;top:calc(var(--navbar-height-mobile) + var(--spacing-2));left:0;right:0;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);box-shadow:0 4px 6px #00000026;z-index:2000;display:flex;flex-direction:column}.navbar__mobile-notifications-dropdown{position:fixed;top:calc(var(--navbar-height-mobile) + var(--spacing-2));left:0;right:0;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);box-shadow:0 4px 6px #00000026;z-index:2000;display:flex;flex-direction:column;max-height:calc(100vh - (var(--navbar-height-mobile) + var(--spacing-2)));overflow-y:auto}.navbar__mobile-notifications-dropdown .notifications-modal{position:static;background:none;padding:0;align-items:stretch;justify-content:stretch}.navbar__mobile-notifications-dropdown .notifications-container{position:static;background:var(--color-surface-secondary);border-radius:0;width:100%;max-width:none;max-height:none;box-shadow:none;border:none}.navbar__mobile-notifications-dropdown .notifications-header{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border)}.navbar__mobile-notifications-dropdown .notifications-header h2{font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary)}.navbar__mobile-notifications-dropdown .close-btn{display:none}.navbar__mobile-notifications-dropdown .notifications-tabs{background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.navbar__mobile-notifications-dropdown .notifications-tabs .tab{font-size:var(--font-size-base);padding:var(--spacing-3) var(--spacing-2);color:var(--color-text-primary)}.navbar__mobile-notifications-dropdown .notifications-tabs .tab.active{color:var(--color-primary);font-weight:700;font-size:var(--font-size-lg)}.navbar__mobile-notifications-dropdown .notifications-content{padding:0}.navbar__mobile-notifications-dropdown .notification-item{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border)}.navbar__mobile-notifications-dropdown .notification-content p{font-size:var(--font-size-base)}.navbar__mobile-notifications-dropdown .notification-time{font-size:var(--font-size-sm)}.navbar__mobile-link{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-base);border-bottom:1px solid var(--color-border);transition:var(--transition-fast);cursor:pointer}.navbar__mobile-link:hover{background:var(--color-surface-hover)}.navbar__mobile-link--logout{color:var(--color-error)}.navbar__mobile-link--logout:hover{background:var(--color-error-light);color:var(--color-error-dark)}.navbar__mobile-link--active{font-weight:700;font-size:var(--font-size-lg);color:var(--color-primary)}.navbar__mobile-divider{height:1px;background:var(--color-border);margin:var(--spacing-2) 0}.navbar__mobile-link--active:hover{background:var(--color-surface-hover)}@media(max-width:767px){.navbar{display:none}.navbar__mobile{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;left:0;right:0;z-index:1200;padding:var(--spacing-2) var(--spacing-3);background:var(--color-background);box-shadow:none;border-bottom:none;min-height:var(--navbar-height-mobile)}.navbar__mobile-title{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.1rem}.navbar__mobile-title-main{font-size:1rem;font-weight:600;color:var(--color-text-primary);line-height:1.2}.navbar__mobile-title-sub{font-size:.8rem;font-weight:400;color:var(--color-text-secondary);line-height:1.2}.navbar__mobile-btn .icon-button{border:none!important;background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;outline:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important}.navbar__mobile-btn .icon-button:hover{background:transparent!important;opacity:.7;box-shadow:none!important;outline:none!important}.navbar__mobile-btn .icon-button:focus,.navbar__mobile-btn .icon-button:focus-visible,.navbar__mobile-btn .icon-button:active,.navbar__mobile-btn .icon-button:focus-within{box-shadow:none!important;outline:none!important;background:transparent!important;border:none!important;-webkit-tap-highlight-color:transparent!important}.navbar__mobile-btn .icon{font-size:2rem!important}}.navbar__mobile-profile-btn .icon-button{border:none!important;background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;outline:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important}.navbar__mobile-profile-btn .icon-button:hover{background:transparent!important;opacity:.7;box-shadow:none!important;outline:none!important}.navbar__mobile-profile-btn .icon-button:focus,.navbar__mobile-profile-btn .icon-button:focus-visible,.navbar__mobile-profile-btn .icon-button:active,.navbar__mobile-profile-btn .icon-button:focus-within{box-shadow:none!important;outline:none!important;background:transparent!important;border:none!important;-webkit-tap-highlight-color:transparent!important}.navbar__mobile-profile-btn .icon{font-size:2.2rem!important}@media(max-width:480px){.navbar__links{flex-direction:column;align-items:center;gap:var(--spacing-2)}.navbar__link{width:100%;text-align:center}}@media(max-width:1024px){.navbar__username{display:none}}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--spacing-6) var(--spacing-4);margin-top:var(--spacing-8)}.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3)}.footer-links{display:flex;align-items:center;gap:var(--spacing-3)}.footer-link{color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);transition:color var(--transition-fast)}.footer-link:hover{color:var(--color-primary);text-decoration:underline}.footer-separator{color:var(--color-text-muted);font-size:var(--font-size-sm)}.footer-copyright{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}@media(max-width:767px){.footer{padding:var(--spacing-4) var(--spacing-2);margin-top:var(--spacing-6)}.footer-links{gap:var(--spacing-2)}}.cookie-consent-backdrop{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .3s ease-in}.cookie-consent-banner{background:var(--card-background);border-top:3px solid var(--primary);box-shadow:0 -4px 20px #0003;padding:24px;max-width:800px;margin:0 auto;animation:slideUp .4s ease-out}.cookie-consent-content{margin-bottom:20px}.cookie-consent-content h3{margin:0 0 12px;font-size:1.3rem;color:var(--text-primary)}.cookie-consent-content p{margin:8px 0;line-height:1.6;color:var(--text-secondary)}.cookie-consent-details{font-size:.9rem;padding:12px;background:var(--background);border-radius:8px;border-left:3px solid var(--primary);margin:12px 0}.cookie-consent-details strong{color:var(--text-primary)}.cookie-consent-learn-more{font-size:.9rem}.cookie-consent-link{color:var(--primary);text-decoration:underline}.cookie-consent-link:hover{color:var(--primary-dark)}.cookie-consent-actions{display:flex;gap:12px;flex-wrap:wrap}.cookie-consent-btn{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;flex:1;min-width:150px}.cookie-consent-accept{background:var(--primary);color:#fff}.cookie-consent-accept:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--primary-rgb),.3)}.cookie-consent-decline{background:var(--background);color:var(--text-primary);border:2px solid var(--border)}.cookie-consent-decline:hover{background:var(--hover-background);border-color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(max-width:768px){.cookie-consent-banner{padding:20px 16px}.cookie-consent-content h3{font-size:1.1rem}.cookie-consent-content p{font-size:.9rem}.cookie-consent-actions{flex-direction:column}.cookie-consent-btn{width:100%}}
