.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;background-color:var(--sidebar-bg);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border-right:1px solid var(--sidebar-border);padding:var(--space-4);padding-top:calc(var(--space-4) + env(safe-area-inset-top));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));height:100vh;height:100dvh;position:fixed;top:0;left:0;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;transition:width .28s cubic-bezier(.4,0,.2,1),padding .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:50}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background-color:transparent}.sidebar:hover::-webkit-scrollbar-thumb{background-color:var(--border-color)}.sidebar:not(.collapsed){overflow-y:auto}.sidebar.collapsed{width:var(--sidebar-width-collapsed);padding:var(--space-4) var(--space-2)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);padding:0 var(--space-2);height:40px;flex-shrink:0}.sidebar-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.theme-toggle,.sidebar-toggle{width:36px;height:36px;padding:0;background-color:transparent;border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--sidebar-text);transition:var(--transition-base)}.theme-toggle:hover,.sidebar-toggle:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text-light)}.theme-toggle:hover{color:var(--color-accent)}.sidebar.collapsed .theme-toggle{display:none}.sidebar-logo-container{display:flex;align-items:center;gap:var(--space-3);padding-left:var(--space-1);overflow:hidden;white-space:nowrap}.sidebar-logo{font-family:var(--font-family-heading);font-size:1.25rem;font-weight:700;color:var(--sidebar-text-light);margin:0;letter-spacing:-.02em;white-space:nowrap}.sidebar.collapsed .sidebar-logo-container{display:none}.sidebar.collapsed .sidebar-header{justify-content:center}.sidebar-content{display:block;flex:1;min-height:0;overflow-y:auto}.sidebar-content.collapsed{display:none}.new-recipe-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;margin:0 0 var(--space-6) 0;padding:.875rem 1rem;background:var(--color-primary);color:#fff;text-decoration:none;border:none;border-radius:var(--radius-xl);font-size:var(--font-size-sm);font-weight:600;transition:background-color .15s,transform .15s,box-shadow .15s;box-sizing:border-box;flex-shrink:0;white-space:nowrap;box-shadow:var(--shadow-primary-sm);overflow:hidden}.new-recipe-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary-md)}.new-recipe-btn:active{transform:translateY(0)}.new-recipe-btn.collapsed{display:none}.new-recipe-icon{font-size:1.2rem}.sidebar-filters{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4);padding:0 var(--space-1);flex-shrink:0}.sidebar-filters.collapsed{display:none}.search-input{width:100%;padding:.5rem .75rem;background-color:var(--sidebar-input-bg);border:1px solid var(--sidebar-border);border-radius:var(--radius-lg);color:var(--sidebar-text-light);font-size:.9rem;box-sizing:border-box;transition:var(--transition-base);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;background-color:var(--bg-surface);border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.favorites-filter{display:flex;align-items:center;gap:.6rem;padding:.6rem .875rem;background-color:transparent;border:1px solid var(--sidebar-border);border-radius:var(--radius-lg);color:var(--sidebar-text);font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition-base)}.favorites-filter:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text-light)}.favorites-filter.active{background-color:#f59e0b1a;border-color:#f59e0b4d;color:var(--color-accent)}.favorites-filter.active:hover{background-color:#f59e0b33}.history-list{display:flex;flex-direction:column;gap:2px}.history-item{display:flex;align-items:center;justify-content:space-between;text-decoration:none;padding:.6rem .75rem;margin:1px 0;border-radius:var(--radius-md);background-color:transparent;color:var(--sidebar-text);font-size:.9rem;font-weight:500;transition:background-color .15s,color .15s;box-sizing:border-box;position:relative}.history-item:has(.history-item-menu-btn.active){z-index:10}.history-item-title{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.4;white-space:normal}.history-item:hover,.history-item:has(.history-item-menu-btn.active){background-color:var(--sidebar-hover);color:var(--sidebar-text-light)}.history-item.active{background-color:var(--sidebar-active);color:var(--color-primary-dark)}[data-theme=dark] .history-item.active{color:var(--color-primary-light)}.history-item-menu-container{position:relative;flex-shrink:0;z-index:2}.history-item-menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;opacity:0;border-radius:var(--radius-sm);transition:opacity .15s,background-color .15s,color .15s}.history-item:hover .history-item-menu-btn,.history-item-menu-btn:focus,.history-item-menu-btn.active,.history-item-menu-container:hover .history-item-menu-btn{opacity:1}.history-item-menu-btn:hover,.history-item-menu-btn.active{background-color:#0000000d;color:var(--sidebar-text-light)}.history-item-dropdown{position:absolute;top:calc(100% + 4px);right:0;left:unset;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:160px;overflow:hidden;z-index:1000;transform-origin:top right;opacity:1}.history-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--sidebar-text);font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .15s;text-align:left}.history-dropdown-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.history-dropdown-item.is-favorite{color:var(--color-accent)}.history-dropdown-item.delete{color:var(--color-danger)}.history-dropdown-item.delete:hover{background-color:var(--color-danger-light)}.no-history,.history-loading{color:var(--text-muted);font-size:.85rem;padding:var(--space-4);text-align:center;font-style:italic}.history-error{color:var(--color-danger);font-size:.85rem;padding:var(--space-4);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.history-error button{background:var(--color-primary-subtle);border:1px solid var(--color-primary-light);color:var(--color-primary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);cursor:pointer;font-size:.75rem;font-weight:600;transition:var(--transition-base)}.history-error button:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--sidebar-border);position:relative;flex-shrink:0}.sidebar-footer.collapsed{display:none}.profile-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:.75rem;background-color:transparent;border:none;border-radius:var(--radius-lg);cursor:pointer;color:var(--sidebar-text);font-size:.9rem;font-weight:500;text-align:left;transition:var(--transition-base)}.profile-btn:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text-light)}.profile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;animation:slideUpFade .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.recipe-management-section{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--space-8)}.update-section{display:flex;flex-direction:column;gap:var(--space-6);background-color:var(--bg-surface);padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--border-color)}.modification-input{width:100%;padding:var(--space-4);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-base);box-sizing:border-box;transition:var(--transition-base)}.modification-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.management-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.modification-buttons{display:flex;gap:var(--space-3);flex-wrap:wrap}.modification-buttons button{padding:var(--space-3) var(--space-5);font-weight:600;border-radius:var(--radius-lg);font-size:var(--font-size-sm)}.modification-buttons button[type=submit]{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.modification-buttons button[type=submit]:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.regenerate-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);background-color:var(--color-primary-subtle);color:var(--color-primary);border:1px solid var(--color-primary-light);padding:var(--space-3) var(--space-5);font-weight:600;border-radius:var(--radius-lg);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-sm)}.regenerate-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.delete-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);background-color:transparent;color:var(--color-danger);padding:var(--space-3) var(--space-5);border:1px solid var(--color-danger);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-base);margin-left:auto}.delete-btn:hover{background-color:var(--color-danger);color:#fff;box-shadow:var(--shadow-md)}@media screen and (max-width:768px){.update-section{background-color:transparent;padding:var(--space-4) 0;border-radius:0;border:none}.delete-btn{width:100%;margin-left:0}.management-actions{flex-direction:column;align-items:stretch;width:100%}.modification-buttons{flex-direction:column;width:100%}.modification-buttons button,.modification-buttons .regenerate-btn{width:100%}}.profile-dropdown .dropdown-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:.875rem 1rem;background:none;border:none;text-align:left;cursor:pointer;color:var(--text-secondary);text-decoration:none;font-size:.9rem;transition:background-color .15s}.profile-dropdown .dropdown-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.auth-actions{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-2)}.login-btn,.signup-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;transition:var(--transition-base);box-sizing:border-box}.login-btn{background-color:transparent;border:1px solid var(--sidebar-border);color:var(--sidebar-text)}.login-btn:hover{background-color:var(--sidebar-hover);color:var(--sidebar-text-light);border-color:var(--sidebar-text-light)}.signup-btn{background-color:var(--color-primary);border:1px solid var(--color-primary);color:#fff;box-shadow:var(--shadow-md)}.signup-btn:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.main-content{flex:1;margin-left:var(--sidebar-width);padding:calc(var(--space-10) + env(safe-area-inset-top)) var(--space-10) calc(var(--space-10) + env(safe-area-inset-bottom));display:flex;justify-content:center;transition:margin-left var(--transition-base);width:calc(100% - var(--sidebar-width))}.main-content:has(.home-page.centered){padding:0}.main-content>*{width:100%;max-width:900px}.sidebar-collapsed .main-content{margin-left:var(--sidebar-width-collapsed);width:calc(100% - var(--sidebar-width-collapsed))}@media(display-mode:standalone){.main-content:has(.recipe-detail-page){padding-top:0}}.mobile-logo{font-family:var(--font-family-heading);font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0;flex:1;text-align:center}.sidebar-overlay{position:fixed;inset:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:49;touch-action:none;animation:fadeIn .3s ease}body.sidebar-open{overflow:hidden}.layout.sidebar-hidden .main-content{margin-left:0;width:100%;padding:0}.layout.sidebar-hidden .main-content>.landing-page{max-width:100%}.mobile-menu-toggle{position:fixed;top:calc(var(--space-3) + env(safe-area-inset-top));left:var(--space-4);z-index:101;width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background-color:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);box-shadow:var(--shadow-md);cursor:pointer;transition:var(--transition-base);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-menu-toggle:hover{background-color:var(--bg-tertiary);transform:translateY(-1px)}.mobile-menu-toggle:active{transform:translateY(0)}@media screen and (max-width:768px){.layout{padding-top:0}.sidebar{width:280px;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));z-index:1000;transform:translate(0);box-shadow:var(--shadow-xl)}@media(display-mode:standalone){.sidebar{padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}}.sidebar.collapsed{transform:translate(-100%);width:280px;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.sidebar .sidebar-header{margin-bottom:var(--space-6)}.main-content{margin-left:0!important;width:100%;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.main-content:has(.home-page.centered){padding:0}.sidebar-collapsed .main-content{margin-left:0!important;width:100%}.history-list{gap:4px}.history-item{min-height:48px;padding:.75rem .875rem;margin:2px 0}.history-item .history-item-menu-container{display:none}}.react-tooltip{background-color:var(--color-gray-800)!important;color:var(--color-gray-50)!important;font-size:.85rem!important;padding:.5rem .75rem!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;opacity:1!important;z-index:100000!important}[data-theme=dark] .react-tooltip{background-color:var(--color-gray-100)!important;color:var(--color-gray-900)!important}.history-skeleton{display:flex;flex-direction:column;gap:.125rem}.history-skeleton .skeleton-item{display:flex;align-items:center;height:40px;margin:.125rem 0;padding:0 1rem;border-left:3px solid transparent;box-sizing:border-box}.history-skeleton .skeleton-item .react-loading-skeleton{border-radius:8px}@media(max-width:768px){.history-skeleton{flex-direction:row;flex-wrap:wrap;gap:.5rem}.history-skeleton .skeleton-item{width:120px;height:32px;padding:0 .6rem;box-sizing:border-box}.history-skeleton .skeleton-item .react-loading-skeleton{border-radius:20px}}
